vendor: 5,979 bytes, lines 1-231
1/*! 2 * MediaElement.js 3 * http://www.mediaelementjs.com/ 4 * 5 * Wrapper that mimics native HTML5 MediaElement (audio and video) 6 * using a variety of technologies (pure JavaScript, Flash, iframe) 7 * 8 * Copyright 2010-2017, John Dyer (http://j.hn/) 9 * License: MIT 10 * 11 */(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ 12'use strict'; 13 14var DailyMotionApi = { 15 isSDKStarted: false, 16 17 isSDKLoaded: false, 18 19 iframeQueue: [], 20 21 enqueueIframe: function enqueueIframe(settings) { 22 23 if (DailyMotionApi.isLoaded) { 24 DailyMotionApi.createIframe(settings); 25 } else { 26 DailyMotionApi.loadIframeApi(); 27 DailyMotionApi.iframeQueue.push(settings); 28 } 29 }, 30 31 loadIframeApi: function loadIframeApi() { 32 if (!DailyMotionApi.isSDKStarted) { 33 mejs.Utils.loadScript('https://api.dmcdn.net/all.js'); 34 DailyMotionApi.isSDKStarted = true; 35 } 36 }, 37 38 apiReady: function apiReady() { 39 40 DailyMotionApi.isLoaded = true; 41 DailyMotionApi.isSDKLoaded = true; 42 43 while (DailyMotionApi.iframeQueue.length > 0) { 44 var settings = DailyMotionApi.iframeQueue.pop(); 45 46 DM.init({ 47 apiKey: settings.apiKey, 48 status: settings.status, 49 cookie: settings.cookie 50 }); 51 52 DailyMotionApi.createIframe(settings); 53 } 54 }, 55 56 createIframe: function createIframe(settings) { 57 58 var player = DM.player(settings.container, { 59 height: settings.height || '100%', 60 width: settings.width || '100%', 61 video: settings.videoId, 62 params: Object.assign({ api: true }, settings.params), 63 origin: location.host 64 }); 65 66 player.addEventListener('apiready', function () { 67 window['__ready__' + settings.id](player, { paused: true, ended: false }); 68 }); 69 }, 70 71 getDailyMotionId: function getDailyMotionId(url) { 72 var parts = url.split('/'), 73 lastPart = parts[parts.length - 1], 74 dashParts = lastPart.split('_'); 75 76 return dashParts[0]; 77 } 78}; 79 80var DailyMotionIframeRenderer = { 81 name: 'dailymotion_iframe', 82 options: { 83 prefix: 'dailymotion_iframe', 84 dailymotion: { 85 width: '100%', 86 height: '100%', 87 params: { 88 autoplay: false, 89 chromeless: 1, 90 info: 0, 91 logo: 0, 92 related: 0 93 }, 94 apiKey: null, 95 status: true, 96 cookie: true 97 } 98 }, 99 100 canPlayType: function canPlayType(type) { 101 return ~['video/dailymotion', 'video/x-dailymotion'].indexOf(type.toLowerCase()); 102 }, 103 104 create: function create(mediaElement, options, mediaFiles) { 105 106 var dm = {}, 107 apiStack = [], 108 readyState = 4; 109 110 var events = void 0, 111 dmPlayer = null, 112 dmIframe = null; 113 114 dm.options = options; 115 dm.id = mediaElement.id + '_' + options.prefix; 116 dm.mediaElement = mediaElement; 117 118 var props = mejs.html5media.properties, 119 assignGettersSetters = function assignGettersSetters(propName) { 120 121 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); 122 123 dm['get' + capName] = function () { 124 if (dmPlayer !== null) { 125 var value = null; 126 127 switch (propName) { 128 case 'currentTime': 129 return dmPlayer.currentTime; 130 case 'duration': 131 return isNaN(dmPlayer.duration) ? 0 : dmPlayer.duration; 132 case 'volume': 133 return dmPlayer.volume; 134 case 'paused': 135 return dmPlayer.paused; 136 case 'ended': 137 return dmPlayer.ended; 138 case 'muted': 139 return dmPlayer.muted; 140 case 'buffered': 141 var percentLoaded = dmPlayer.bufferedTime, 142 duration = dmPlayer.duration; 143 return { 144 start: function start() { 145 return 0; 146 }, 147 end: function end() { 148 return percentLoaded / duration; 149 }, 150 length: 1 151 }; 152 case 'src': 153 return mediaElement.originalNode.getAttribute('src'); 154 case 'readyState': 155 return readyState; 156 } 157 158 return value; 159 } else { 160 return null; 161 } 162 }; 163 164 dm['set' + capName] = function (value) { 165 if (dmPlayer !== null) { 166 switch (propName) { 167 case 'src': 168 var url = typeof value === 'string' ? value : value[0].src; 169 dmPlayer.load(DailyMotionApi.getDailyMotionId(url)); 170 break; 171 case 'currentTime': 172 dmPlayer.seek(value); 173 break; 174 case 'muted': 175 dmPlayer.setMuted(value); 176 setTimeout(function () { 177 var event = mejs.Utils.createEvent('volumechange', dm); 178 mediaElement.dispatchEvent(event); 179 }, 50); 180 break; 181 case 'volume': 182 dmPlayer.setVolume(value); 183 setTimeout(function () { 184 var event = mejs.Utils.createEvent('volumechange', dm); 185 mediaElement.dispatchEvent(event); 186 }, 50); 187 break; 188 case 'readyState': 189 var event = mejs.Utils.createEvent('canplay', dm); 190 mediaElement.dispatchEvent(event); 191 break; 192 default: 193 194 break; 195 } 196 } else { 197 apiStack.push({ type: 'set', propName: propName, value: value }); 198 } 199 }; 200 }; 201 202 for (var i = 0, total = props.length; i < total; i++) { 203 assignGettersSetters(props[i]); 204 } 205 206 var methods = mejs.html5media.methods, 207 assignMethods = function assignMethods(methodName) { 208 dm[methodName] = function () { 209 if (dmPlayer !== null) { 210 switch (methodName) { 211 case 'play': 212 return dmPlayer.play(); 213 case 'pause': 214 return dmPlayer.pause(); 215 case 'load': 216 return null; 217 } 218 } else { 219 apiStack.push({ type: 'call', methodName: methodName }); 220 } 221 }; 222 }; 223 224 for (var _i = 0, _total = methods.length; _i < _total; _i++) { 225 assignMethods(methods[_i]); 226 } 227 228 window['__ready__' + dm.id] = function (_dmPlayer) { 229 230 mediaElement.dmPlayer = dmPlayer = _dmPlayer; 231
232 if (apiStack.length) { 233 for (var _i2 = 0, _total2 = apiStack.length; _i2 < _total2; _i2++) { 234 235 var stackItem = apiStack[_i2]; 236 237 if (stackItem.type === 'set') { 238 var propName = stackItem.propName, 239 capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1); 240 241 dm['set' + capName](stackItem.value); 242 } else if (stackItem.type === 'call') { 243 dm[stackItem.methodName](); 244 } 245 } 246 } 247 248 dmIframe = document.getElementById(dm.id); 249 250 events = ['mouseover', 'mouseout']; 251 var assignEvents = function assignEvents(e) { 252 var event = mejs.Utils.createEvent(e.type, dm); 253 mediaElement.dispatchEvent(event); 254 }; 255 256 for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) { 257 dmIframe.addEventListener(events[_i3], assignEvents, false); 258 } 259 260 if (mediaElement.originalNode.muted) { 261 dmPlayer.setMuted(true); 262 dmPlayer.setVolume(0); 263 } 264 265 events = mejs.html5media.events; 266 events = events.concat(['click', 'mouseover', 'mouseout']); 267 var assignNativeEvents = function assignNativeEvents(eventName) { 268 if (eventName !== 'ended') { 269 dmPlayer.addEventListener(eventName, function (e) { 270 var event = mejs.Utils.createEvent(e.type, dmPlayer); 271 mediaElement.dispatchEvent(event); 272 }); 273 } 274 }; 275 276 for (var _i4 = 0, _total4 = events.length; _i4 < _total4; _i4++) { 277 assignNativeEvents(events[_i4]); 278 } 279 280 dmPlayer.addEventListener('ad_start', function () { 281 var event = mejs.Utils.createEvent('play', dmPlayer); 282 mediaElement.dispatchEvent(event); 283 284 event = mejs.Utils.createEvent('progress', dmPlayer); 285 mediaElement.dispatchEvent(event); 286 287 event = mejs.Utils.createEvent('timeupdate', dmPlayer); 288 mediaElement.dispatchEvent(event); 289 }); 290 dmPlayer.addEventListener('ad_timeupdate', function () { 291 var event = mejs.Utils.createEvent('timeupdate', dmPlayer); 292 mediaElement.dispatchEvent(event); 293 }); 294 dmPlayer.addEventListener('ad_pause', function () { 295 var event = mejs.Utils.createEvent('pause', dmPlayer); 296 mediaElement.dispatchEvent(event); 297 }); 298 dmPlayer.addEventListener('ad_end', function () { 299 var event = mejs.Utils.createEvent('ended', dmPlayer); 300 mediaElement.dispatchEvent(event); 301 }); 302 dmPlayer.addEventListener('start', function () { 303 if (mediaElement.originalNode.muted) { 304 dmPlayer.setMuted(true); 305 } 306 }); 307 dmPlayer.addEventListener('video_start', function () { 308 var event = mejs.Utils.createEvent('play', dmPlayer); 309 mediaElement.dispatchEvent(event); 310 }); 311 dmPlayer.addEventListener('ad_timeupdate', function () { 312 var event = mejs.Utils.createEvent('timeupdate', dmPlayer); 313 mediaElement.dispatchEvent(event); 314 }); 315 dmPlayer.addEventListener('video_end', function () { 316 var event = mejs.Utils.createEvent('ended', dmPlayer); 317 mediaElement.dispatchEvent(event); 318 319 if (mediaElement.originalNode.getAttribute('loop')) { 320 dmPlayer.play(); 321 } 322 }); 323 324 var initEvents = ['rendererready', 'loadedmetadata', 'loadeddata', 'canplay']; 325 326 for (var _i5 = 0, _total5 = initEvents.length; _i5 < _total5; _i5++) { 327 var event = mejs.Utils.createEvent(initEvents[_i5], dm); 328 mediaElement.dispatchEvent(event); 329 } 330 }; 331 332 var dmContainer = document.createElement('div'); 333 dmContainer.id = dm.id; 334 mediaElement.appendChild(dmContainer); 335 if (mediaElement.originalNode) { 336 dmContainer.style.width = mediaElement.originalNode.style.width; 337 dmContainer.style.height = mediaElement.originalNode.style.height; 338 } 339 mediaElement.originalNode.style.display = 'none'; 340 341 var videoId = DailyMotionApi.getDailyMotionId(mediaFiles[0].src), 342 dmSettings = Object.assign({ 343 id: dm.id, 344 container: dmContainer, 345 videoId: videoId 346 }, dm.options.dailymotion); 347 348 if (mediaElement.originalNode.autoplay) { 349 dmSettings.params.autoplay = true; 350 } 351 if (mediaElement.originalNode.muted) { 352 dmSettings.params.mute = true; 353 } 354 355 DailyMotionApi.enqueueIframe(dmSettings); 356 357 dm.hide = function () { 358 dm.pause(); 359 if (dmIframe) { 360 dmIframe.style.display = 'none'; 361 } 362 }; 363 dm.show = function () { 364 if (dmIframe) { 365 dmIframe.style.display = ''; 366 } 367 }; 368 dm.setSize = function (width, height) { 369 if (dmIframe) { 370 dmIframe.width = width; 371 dmIframe.height = height; 372 } 373 }; 374 dm.destroy = function () { 375 dmPlayer.destroy(); 376 }; 377 378 return dm; 379 } 380}; 381 382mejs.Utils.typeChecks.push(function (url) { 383 return (/\/\/((www\.)?dailymotion\.com|dai\.ly)/i.test(url) ? 'video/x-dailymotion' : null 384 ); 385}); 386 387window.dmAsyncInit = function () { 388 DailyMotionApi.apiReady(); 389}; 390 391mejs.Renderers.add(DailyMotionIframeRenderer); 392 393},{}]},{},[1]);
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.