run:R W Run
DIR
2026-03-11 16:18:51
R W Run
259.6 KB
2026-03-11 16:18:51
R W Run
154.3 KB
2026-03-11 16:18:51
R W Run
2.77 KB
2026-03-11 16:18:51
R W Run
1.16 KB
2026-03-11 16:18:51
R W Run
119.71 KB
2026-03-11 16:18:51
R W Run
66.71 KB
2026-03-11 16:18:51
R W Run
15.39 KB
2026-03-11 16:18:51
R W Run
10.99 KB
2026-03-11 16:18:51
R W Run
15.53 KB
2026-03-11 16:18:51
R W Run
11.14 KB
2026-03-11 16:18:51
R W Run
2.82 KB
2026-03-11 16:18:51
R W Run
4.49 KB
2026-03-11 16:18:51
R W Run
4.84 KB
2026-03-11 16:18:51
R W Run
2.69 KB
2026-03-11 16:18:51
R W Run
4.09 KB
2026-03-11 16:18:51
R W Run
1.08 KB
2026-03-11 16:18:51
R W Run
5.28 KB
2026-03-11 16:18:51
R W Run
3.36 KB
2026-03-11 16:18:51
R W Run
error_log
📄mediaelement.js
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(){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}return e})()({1:[function(_dereq_,module,exports){
12
13},{}],2:[function(_dereq_,module,exports){
14(function (global){
15var topLevel = typeof global !== 'undefined' ? global :
16 typeof window !== 'undefined' ? window : {}
17var minDoc = _dereq_(1);
18
19var doccy;
20
21if (typeof document !== 'undefined') {
22 doccy = document;
23} else {
24 doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'];
25
26 if (!doccy) {
27 doccy = topLevel['__GLOBAL_DOCUMENT_CACHE@4'] = minDoc;
28 }
29}
30
31module.exports = doccy;
32
33}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
34},{"1":1}],3:[function(_dereq_,module,exports){
35(function (global){
36var win;
37
38if (typeof window !== "undefined") {
39 win = window;
40} else if (typeof global !== "undefined") {
41 win = global;
42} else if (typeof self !== "undefined"){
43 win = self;
44} else {
45 win = {};
46}
47
48module.exports = win;
49
50}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
51},{}],4:[function(_dereq_,module,exports){
52(function (root) {
53
54 // Store setTimeout reference so promise-polyfill will be unaffected by
55 // other code modifying setTimeout (like sinon.useFakeTimers())
56 var setTimeoutFunc = setTimeout;
57
58 function noop() {}
59
60 // Polyfill for Function.prototype.bind
61 function bind(fn, thisArg) {
62 return function () {
63 fn.apply(thisArg, arguments);
64 };
65 }
66
67 function Promise(fn) {
68 if (typeof this !== 'object') throw new TypeError('Promises must be constructed via new');
69 if (typeof fn !== 'function') throw new TypeError('not a function');
70 this._state = 0;
71 this._handled = false;
72 this._value = undefined;
73 this._deferreds = [];
74
75 doResolve(fn, this);
76 }
77
78 function handle(self, deferred) {
79 while (self._state === 3) {
80 self = self._value;
81 }
82 if (self._state === 0) {
83 self._deferreds.push(deferred);
84 return;
85 }
86 self._handled = true;
87 Promise._immediateFn(function () {
88 var cb = self._state === 1 ? deferred.onFulfilled : deferred.onRejected;
89 if (cb === null) {
90 (self._state === 1 ? resolve : reject)(deferred.promise, self._value);
91 return;
92 }
93 var ret;
94 try {
95 ret = cb(self._value);
96 } catch (e) {
97 reject(deferred.promise, e);
98 return;
99 }
100 resolve(deferred.promise, ret);
101 });
102 }
103
104 function resolve(self, newValue) {
105 try {
106 // Promise Resolution Procedure: https://github.com/promises-aplus/promises-spec#the-promise-resolution-procedure
107 if (newValue === self) throw new TypeError('A promise cannot be resolved with itself.');
108 if (newValue && (typeof newValue === 'object' || typeof newValue === 'function')) {
109 var then = newValue.then;
110 if (newValue instanceof Promise) {
111 self._state = 3;
112 self._value = newValue;
113 finale(self);
114 return;
115 } else if (typeof then === 'function') {
116 doResolve(bind(then, newValue), self);
117 return;
118 }
119 }
120 self._state = 1;
121 self._value = newValue;
122 finale(self);
123 } catch (e) {
124 reject(self, e);
125 }
126 }
127
128 function reject(self, newValue) {
129 self._state = 2;
130 self._value = newValue;
131 finale(self);
132 }
133
134 function finale(self) {
135 if (self._state === 2 && self._deferreds.length === 0) {
136 Promise._immediateFn(function() {
137 if (!self._handled) {
138 Promise._unhandledRejectionFn(self._value);
139 }
140 });
141 }
142
143 for (var i = 0, len = self._deferreds.length; i < len; i++) {
144 handle(self, self._deferreds[i]);
145 }
146 self._deferreds = null;
147 }
148
149 function Handler(onFulfilled, onRejected, promise) {
150 this.onFulfilled = typeof onFulfilled === 'function' ? onFulfilled : null;
151 this.onRejected = typeof onRejected === 'function' ? onRejected : null;
152 this.promise = promise;
153 }
154
155 /**
156 * Take a potentially misbehaving resolver function and make sure
157 * onFulfilled and onRejected are only called once.
158 *
159 * Makes no guarantees about asynchrony.
160 */
161 function doResolve(fn, self) {
162 var done = false;
163 try {
164 fn(function (value) {
165 if (done) return;
166 done = true;
167 resolve(self, value);
168 }, function (reason) {
169 if (done) return;
170 done = true;
171 reject(self, reason);
172 });
173 } catch (ex) {
174 if (done) return;
175 done = true;
176 reject(self, ex);
177 }
178 }
179
180 Promise.prototype['catch'] = function (onRejected) {
181 return this.then(null, onRejected);
182 };
183
184 Promise.prototype.then = function (onFulfilled, onRejected) {
185 var prom = new (this.constructor)(noop);
186
187 handle(this, new Handler(onFulfilled, onRejected, prom));
188 return prom;
189 };
190
191 Promise.all = function (arr) {
192 var args = Array.prototype.slice.call(arr);
193
194 return new Promise(function (resolve, reject) {
195 if (args.length === 0) return resolve([]);
196 var remaining = args.length;
197
198 function res(i, val) {
199 try {
200 if (val && (typeof val === 'object' || typeof val === 'function')) {
201 var then = val.then;
202 if (typeof then === 'function') {
203 then.call(val, function (val) {
204 res(i, val);
205 }, reject);
206 return;
207 }
208 }
209 args[i] = val;
210 if (--remaining === 0) {
211 resolve(args);
212 }
213 } catch (ex) {
214 reject(ex);
215 }
216 }
217
218 for (var i = 0; i < args.length; i++) {
219 res(i, args[i]);
220 }
221 });
222 };
223
224 Promise.resolve = function (value) {
225 if (value && typeof value === 'object' && value.constructor === Promise) {
226 return value;
227 }
228
229 return new Promise(function (resolve) {
230 resolve(value);
231 });
232 };
233
234 Promise.reject = function (value) {
235 return new Promise(function (resolve, reject) {
236 reject(value);
237 });
238 };
239
240 Promise.race = function (values) {
241 return new Promise(function (resolve, reject) {
242 for (var i = 0, len = values.length; i < len; i++) {
243 values[i].then(resolve, reject);
244 }
245 });
246 };
247
248 // Use polyfill for setImmediate for performance gains
249 Promise._immediateFn = (typeof setImmediate === 'function' && function (fn) { setImmediate(fn); }) ||
250 function (fn) {
251 setTimeoutFunc(fn, 0);
252 };
253
254 Promise._unhandledRejectionFn = function _unhandledRejectionFn(err) {
255 if (typeof console !== 'undefined' && console) {
256 console.warn('Possible Unhandled Promise Rejection:', err); // eslint-disable-line no-console
257 }
258 };
259
260 /**
261 * Set the immediate function to execute callbacks
262 * @param fn {function} Function to execute
263 * @deprecated
264 */
265 Promise._setImmediateFn = function _setImmediateFn(fn) {
266 Promise._immediateFn = fn;
267 };
268
269 /**
270 * Change the function to execute on unhandled rejection
271 * @param {function} fn Function to execute on unhandled rejection
272 * @deprecated
273 */
274 Promise._setUnhandledRejectionFn = function _setUnhandledRejectionFn(fn) {
275 Promise._unhandledRejectionFn = fn;
276 };
277
278 if (typeof module !== 'undefined' && module.exports) {
279 module.exports = Promise;
280 } else if (!root.Promise) {
281 root.Promise = Promise;
282 }
283
284})(this);
285
286},{}],5:[function(_dereq_,module,exports){
287'use strict';
288
289Object.defineProperty(exports, "__esModule", {
290 value: true
291});
292
293var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
294
295var _mejs = _dereq_(7);
296
297var _mejs2 = _interopRequireDefault(_mejs);
298
299var _en = _dereq_(9);
300
301var _general = _dereq_(18);
302
303function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
304
305var i18n = { lang: 'en', en: _en.EN };
306
307i18n.language = function () {
308 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
309 args[_key] = arguments[_key];
310 }
311
312 if (args !== null && args !== undefined && args.length) {
313
314 if (typeof args[0] !== 'string') {
315 throw new TypeError('Language code must be a string value');
316 }
317
318 if (!/^[a-z]{2,3}((\-|_)[a-z]{2})?$/i.test(args[0])) {
319 throw new TypeError('Language code must have format 2-3 letters and. optionally, hyphen, underscore followed by 2 more letters');
320 }
321
322 i18n.lang = args[0];
323
324 if (i18n[args[0]] === undefined) {
325 args[1] = args[1] !== null && args[1] !== undefined && _typeof(args[1]) === 'object' ? args[1] : {};
326 i18n[args[0]] = !(0, _general.isObjectEmpty)(args[1]) ? args[1] : _en.EN;
327 } else if (args[1] !== null && args[1] !== undefined && _typeof(args[1]) === 'object') {
328 i18n[args[0]] = args[1];
329 }
330 }
331
332 return i18n.lang;
333};
334
335i18n.t = function (message) {
336 var pluralParam = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;
337
338
339 if (typeof message === 'string' && message.length) {
340
341 var str = void 0,
342 pluralForm = void 0;
343
344 var language = i18n.language();
345
346 var _plural = function _plural(input, number, form) {
347
348 if ((typeof input === 'undefined' ? 'undefined' : _typeof(input)) !== 'object' || typeof number !== 'number' || typeof form !== 'number') {
349 return input;
350 }
351
352 var _pluralForms = function () {
353 return [function () {
354 return arguments.length <= 1 ? undefined : arguments[1];
355 }, function () {
356 return (arguments.length <= 0 ? undefined : arguments[0]) === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
357 }, function () {
358 return (arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
359 }, function () {
360 if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) {
361 return arguments.length <= 1 ? undefined : arguments[1];
362 } else if ((arguments.length <= 0 ? undefined : arguments[0]) !== 0) {
363 return arguments.length <= 2 ? undefined : arguments[2];
364 } else {
365 return arguments.length <= 3 ? undefined : arguments[3];
366 }
367 }, function () {
368 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1 || (arguments.length <= 0 ? undefined : arguments[0]) === 11) {
369 return arguments.length <= 1 ? undefined : arguments[1];
370 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2 || (arguments.length <= 0 ? undefined : arguments[0]) === 12) {
371 return arguments.length <= 2 ? undefined : arguments[2];
372 } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 2 && (arguments.length <= 0 ? undefined : arguments[0]) < 20) {
373 return arguments.length <= 3 ? undefined : arguments[3];
374 } else {
375 return arguments.length <= 4 ? undefined : arguments[4];
376 }
377 }, function () {
378 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
379 return arguments.length <= 1 ? undefined : arguments[1];
380 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 > 0 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 20) {
381 return arguments.length <= 2 ? undefined : arguments[2];
382 } else {
383 return arguments.length <= 3 ? undefined : arguments[3];
384 }
385 }, function () {
386 if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) {
387 return arguments.length <= 1 ? undefined : arguments[1];
388 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
389 return arguments.length <= 2 ? undefined : arguments[2];
390 } else {
391 return [3];
392 }
393 }, function () {
394 if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 !== 11) {
395 return arguments.length <= 1 ? undefined : arguments[1];
396 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
397 return arguments.length <= 2 ? undefined : arguments[2];
398 } else {
399 return arguments.length <= 3 ? undefined : arguments[3];
400 }
401 }, function () {
402 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
403 return arguments.length <= 1 ? undefined : arguments[1];
404 } else if ((arguments.length <= 0 ? undefined : arguments[0]) >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) <= 4) {
405 return arguments.length <= 2 ? undefined : arguments[2];
406 } else {
407 return arguments.length <= 3 ? undefined : arguments[3];
408 }
409 }, function () {
410 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
411 return arguments.length <= 1 ? undefined : arguments[1];
412 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
413 return arguments.length <= 2 ? undefined : arguments[2];
414 } else {
415 return arguments.length <= 3 ? undefined : arguments[3];
416 }
417 }, function () {
418 if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 1) {
419 return arguments.length <= 2 ? undefined : arguments[2];
420 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 2) {
421 return arguments.length <= 3 ? undefined : arguments[3];
422 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 === 3 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 === 4) {
423 return arguments.length <= 4 ? undefined : arguments[4];
424 } else {
425 return arguments.length <= 1 ? undefined : arguments[1];
426 }
427 }, function () {
428 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
429 return arguments.length <= 1 ? undefined : arguments[1];
430 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
431 return arguments.length <= 2 ? undefined : arguments[2];
432 } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 2 && (arguments.length <= 0 ? undefined : arguments[0]) < 7) {
433 return arguments.length <= 3 ? undefined : arguments[3];
434 } else if ((arguments.length <= 0 ? undefined : arguments[0]) > 6 && (arguments.length <= 0 ? undefined : arguments[0]) < 11) {
435 return arguments.length <= 4 ? undefined : arguments[4];
436 } else {
437 return arguments.length <= 5 ? undefined : arguments[5];
438 }
439 }, function () {
440 if ((arguments.length <= 0 ? undefined : arguments[0]) === 0) {
441 return arguments.length <= 1 ? undefined : arguments[1];
442 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
443 return arguments.length <= 2 ? undefined : arguments[2];
444 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
445 return arguments.length <= 3 ? undefined : arguments[3];
446 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 3 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 <= 10) {
447 return arguments.length <= 4 ? undefined : arguments[4];
448 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 11) {
449 return arguments.length <= 5 ? undefined : arguments[5];
450 } else {
451 return arguments.length <= 6 ? undefined : arguments[6];
452 }
453 }, function () {
454 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
455 return arguments.length <= 1 ? undefined : arguments[1];
456 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 0 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 > 1 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 11) {
457 return arguments.length <= 2 ? undefined : arguments[2];
458 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 100 > 10 && (arguments.length <= 0 ? undefined : arguments[0]) % 100 < 20) {
459 return arguments.length <= 3 ? undefined : arguments[3];
460 } else {
461 return arguments.length <= 4 ? undefined : arguments[4];
462 }
463 }, function () {
464 if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1) {
465 return arguments.length <= 1 ? undefined : arguments[1];
466 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 === 2) {
467 return arguments.length <= 2 ? undefined : arguments[2];
468 } else {
469 return arguments.length <= 3 ? undefined : arguments[3];
470 }
471 }, function () {
472 return (arguments.length <= 0 ? undefined : arguments[0]) !== 11 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 === 1 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
473 }, function () {
474 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
475 return arguments.length <= 1 ? undefined : arguments[1];
476 } else if ((arguments.length <= 0 ? undefined : arguments[0]) % 10 >= 2 && (arguments.length <= 0 ? undefined : arguments[0]) % 10 <= 4 && ((arguments.length <= 0 ? undefined : arguments[0]) % 100 < 10 || (arguments.length <= 0 ? undefined : arguments[0]) % 100 >= 20)) {
477 return arguments.length <= 2 ? undefined : arguments[2];
478 } else {
479 return arguments.length <= 3 ? undefined : arguments[3];
480 }
481 }, function () {
482 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
483 return arguments.length <= 1 ? undefined : arguments[1];
484 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
485 return arguments.length <= 2 ? undefined : arguments[2];
486 } else if ((arguments.length <= 0 ? undefined : arguments[0]) !== 8 && (arguments.length <= 0 ? undefined : arguments[0]) !== 11) {
487 return arguments.length <= 3 ? undefined : arguments[3];
488 } else {
489 return arguments.length <= 4 ? undefined : arguments[4];
490 }
491 }, function () {
492 return (arguments.length <= 0 ? undefined : arguments[0]) === 0 ? arguments.length <= 1 ? undefined : arguments[1] : arguments.length <= 2 ? undefined : arguments[2];
493 }, function () {
494 if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
495 return arguments.length <= 1 ? undefined : arguments[1];
496 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 2) {
497 return arguments.length <= 2 ? undefined : arguments[2];
498 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 3) {
499 return arguments.length <= 3 ? undefined : arguments[3];
500 } else {
501 return arguments.length <= 4 ? undefined : arguments[4];
502 }
503 }, function () {
504 if ((arguments.length <= 0 ? undefined : arguments[0]) === 0) {
505 return arguments.length <= 1 ? undefined : arguments[1];
506 } else if ((arguments.length <= 0 ? undefined : arguments[0]) === 1) {
507 return arguments.length <= 2 ? undefined : arguments[2];
508 } else {
509 return arguments.length <= 3 ? undefined : arguments[3];
510 }
511 }];
512 }();
513
514 return _pluralForms[form].apply(null, [number].concat(input));
515 };
516
517 if (i18n[language] !== undefined) {
518 str = i18n[language][message];
519 if (pluralParam !== null && typeof pluralParam === 'number') {
520 pluralForm = i18n[language]['mejs.plural-form'];
521 str = _plural.apply(null, [str, pluralParam, pluralForm]);
522 }
523 }
524
525 if (!str && i18n.en) {
526 str = i18n.en[message];
527 if (pluralParam !== null && typeof pluralParam === 'number') {
528 pluralForm = i18n.en['mejs.plural-form'];
529 str = _plural.apply(null, [str, pluralParam, pluralForm]);
530 }
531 }
532
533 str = str || message;
534
535 if (pluralParam !== null && typeof pluralParam === 'number') {
536 str = str.replace('%1', pluralParam);
537 }
538
539 return (0, _general.escapeHTML)(str);
540 }
541
542 return message;
543};
544
545_mejs2.default.i18n = i18n;
546
547if (typeof mejsL10n !== 'undefined') {
548 _mejs2.default.i18n.language(mejsL10n.language, mejsL10n.strings);
549}
550
551exports.default = i18n;
552
553},{"18":18,"7":7,"9":9}],6:[function(_dereq_,module,exports){
554'use strict';
555
556Object.defineProperty(exports, "__esModule", {
557 value: true
558});
559
560var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
561
562var _window = _dereq_(3);
563
564var _window2 = _interopRequireDefault(_window);
565
566var _document = _dereq_(2);
567
568var _document2 = _interopRequireDefault(_document);
569
570var _mejs = _dereq_(7);
571
572var _mejs2 = _interopRequireDefault(_mejs);
573
574var _general = _dereq_(18);
575
576var _media2 = _dereq_(19);
577
578var _renderer = _dereq_(8);
579
580var _constants = _dereq_(16);
581
582function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
583
584function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
585
586var MediaElement = function MediaElement(idOrNode, options, sources) {
587 var _this = this;
588
589 _classCallCheck(this, MediaElement);
590
591 var t = this;
592
593 sources = Array.isArray(sources) ? sources : null;
594
595 t.defaults = {
596 renderers: [],
597
598 fakeNodeName: 'mediaelementwrapper',
599
600 pluginPath: 'build/',
601
602 shimScriptAccess: 'sameDomain'
603 };
604
605 options = Object.assign(t.defaults, options);
606
607 t.mediaElement = _document2.default.createElement(options.fakeNodeName);
608
609 var id = idOrNode,
610 error = false;
611
612 if (typeof idOrNode === 'string') {
613 t.mediaElement.originalNode = _document2.default.getElementById(idOrNode);
614 } else {
615 t.mediaElement.originalNode = idOrNode;
616 id = idOrNode.id;
617 }
618
619 if (t.mediaElement.originalNode === undefined || t.mediaElement.originalNode === null) {
620 return null;
621 }
622
623 t.mediaElement.options = options;
624 id = id || 'mejs_' + Math.random().toString().slice(2);
625
626 t.mediaElement.originalNode.setAttribute('id', id + '_from_mejs');
627
628 var tagName = t.mediaElement.originalNode.tagName.toLowerCase();
629 if (['video', 'audio'].indexOf(tagName) > -1 && !t.mediaElement.originalNode.getAttribute('preload')) {
630 t.mediaElement.originalNode.setAttribute('preload', 'none');
631 }
632
633 t.mediaElement.originalNode.parentNode.insertBefore(t.mediaElement, t.mediaElement.originalNode);
634
635 t.mediaElement.appendChild(t.mediaElement.originalNode);
636
637 var processURL = function processURL(url, type) {
638 if (_window2.default.location.protocol === 'https:' && url.indexOf('http:') === 0 && _constants.IS_IOS && _mejs2.default.html5media.mediaTypes.indexOf(type) > -1) {
639 var xhr = new XMLHttpRequest();
640 xhr.onreadystatechange = function () {
641 if (this.readyState === 4 && this.status === 200) {
642 var _url = _window2.default.URL || _window2.default.webkitURL,
643 blobUrl = _url.createObjectURL(this.response);
644 t.mediaElement.originalNode.setAttribute('src', blobUrl);
645 return blobUrl;
646 }
647 return url;
648 };
649 xhr.open('GET', url);
650 xhr.responseType = 'blob';
651 xhr.send();
652 }
653
654 return url;
655 };
656
657 var mediaFiles = void 0;
658
659 if (sources !== null) {
660 mediaFiles = sources;
661 } else if (t.mediaElement.originalNode !== null) {
662
663 mediaFiles = [];
664
665 switch (t.mediaElement.originalNode.nodeName.toLowerCase()) {
666 case 'iframe':
667 mediaFiles.push({
668 type: '',
669 src: t.mediaElement.originalNode.getAttribute('src')
670 });
671 break;
672 case 'audio':
673 case 'video':
674 var _sources = t.mediaElement.originalNode.children.length,
675 nodeSource = t.mediaElement.originalNode.getAttribute('src');
676
677 if (nodeSource) {
678 var node = t.mediaElement.originalNode,
679 type = (0, _media2.formatType)(nodeSource, node.getAttribute('type'));
680 mediaFiles.push({
681 type: type,
682 src: processURL(nodeSource, type)
683 });
684 }
685
686 for (var i = 0; i < _sources; i++) {
687 var n = t.mediaElement.originalNode.children[i];
688 if (n.tagName.toLowerCase() === 'source') {
689 var src = n.getAttribute('src'),
690 _type = (0, _media2.formatType)(src, n.getAttribute('type'));
691 mediaFiles.push({ type: _type, src: processURL(src, _type) });
692 }
693 }
694 break;
695 }
696 }
697
698 t.mediaElement.id = id;
699 t.mediaElement.renderers = {};
700 t.mediaElement.events = {};
701 t.mediaElement.promises = [];
702 t.mediaElement.renderer = null;
703 t.mediaElement.rendererName = null;
704
705 t.mediaElement.changeRenderer = function (rendererName, mediaFiles) {
706
707 var t = _this,
708 media = Object.keys(mediaFiles[0]).length > 2 ? mediaFiles[0] : mediaFiles[0].src;
709
710 if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && t.mediaElement.renderer.name === rendererName) {
711 t.mediaElement.renderer.pause();
712 if (t.mediaElement.renderer.stop) {
713 t.mediaElement.renderer.stop();
714 }
715 t.mediaElement.renderer.show();
716 t.mediaElement.renderer.setSrc(media);
717 return true;
718 }
719
720 if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) {
721 t.mediaElement.renderer.pause();
722 if (t.mediaElement.renderer.stop) {
723 t.mediaElement.renderer.stop();
724 }
725 t.mediaElement.renderer.hide();
726 }
727
728 var newRenderer = t.mediaElement.renderers[rendererName],
729 newRendererType = null;
730
731 if (newRenderer !== undefined && newRenderer !== null) {
732 newRenderer.show();
733 newRenderer.setSrc(media);
734 t.mediaElement.renderer = newRenderer;
735 t.mediaElement.rendererName = rendererName;
736 return true;
737 }
738
739 var rendererArray = t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : _renderer.renderer.order;
740
741 for (var _i = 0, total = rendererArray.length; _i < total; _i++) {
742 var index = rendererArray[_i];
743
744 if (index === rendererName) {
745 var rendererList = _renderer.renderer.renderers;
746 newRendererType = rendererList[index];
747
748 var renderOptions = Object.assign(newRendererType.options, t.mediaElement.options);
749 newRenderer = newRendererType.create(t.mediaElement, renderOptions, mediaFiles);
750 newRenderer.name = rendererName;
751
752 t.mediaElement.renderers[newRendererType.name] = newRenderer;
753 t.mediaElement.renderer = newRenderer;
754 t.mediaElement.rendererName = rendererName;
755 newRenderer.show();
756 return true;
757 }
758 }
759
760 return false;
761 };
762
763 t.mediaElement.setSize = function (width, height) {
764 if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null) {
765 t.mediaElement.renderer.setSize(width, height);
766 }
767 };
768
769 t.mediaElement.generateError = function (message, urlList) {
770 message = message || '';
771 urlList = Array.isArray(urlList) ? urlList : [];
772 var event = (0, _general.createEvent)('error', t.mediaElement);
773 event.message = message;
774 event.urls = urlList;
775 t.mediaElement.dispatchEvent(event);
776 error = true;
777 };
778
779 var props = _mejs2.default.html5media.properties,
780 methods = _mejs2.default.html5media.methods,
781 addProperty = function addProperty(obj, name, onGet, onSet) {
782 var oldValue = obj[name];
783 var getFn = function getFn() {
784 return onGet.apply(obj, [oldValue]);
785 },
786 setFn = function setFn(newValue) {
787 oldValue = onSet.apply(obj, [newValue]);
788 return oldValue;
789 };
790
791 Object.defineProperty(obj, name, {
792 get: getFn,
793 set: setFn
794 });
795 },
796 assignGettersSetters = function assignGettersSetters(propName) {
797 if (propName !== 'src') {
798
799 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1),
800 getFn = function getFn() {
801 return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['get' + capName] === 'function' ? t.mediaElement.renderer['get' + capName]() : null;
802 },
803 setFn = function setFn(value) {
804 if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer['set' + capName] === 'function') {
805 t.mediaElement.renderer['set' + capName](value);
806 }
807 };
808
809 addProperty(t.mediaElement, propName, getFn, setFn);
810 t.mediaElement['get' + capName] = getFn;
811 t.mediaElement['set' + capName] = setFn;
812 }
813 },
814 getSrc = function getSrc() {
815 return t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null ? t.mediaElement.renderer.getSrc() : null;
816 },
817 setSrc = function setSrc(value) {
818 var mediaFiles = [];
819
820 if (typeof value === 'string') {
821 mediaFiles.push({
822 src: value,
823 type: value ? (0, _media2.getTypeFromFile)(value) : ''
824 });
825 } else if ((typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src !== undefined) {
826 var _src = (0, _media2.absolutizeUrl)(value.src),
827 _type2 = value.type,
828 media = Object.assign(value, {
829 src: _src,
830 type: (_type2 === '' || _type2 === null || _type2 === undefined) && _src ? (0, _media2.getTypeFromFile)(_src) : _type2
831 });
832 mediaFiles.push(media);
833 } else if (Array.isArray(value)) {
834 for (var _i2 = 0, total = value.length; _i2 < total; _i2++) {
835
836 var _src2 = (0, _media2.absolutizeUrl)(value[_i2].src),
837 _type3 = value[_i2].type,
838 _media = Object.assign(value[_i2], {
839 src: _src2,
840 type: (_type3 === '' || _type3 === null || _type3 === undefined) && _src2 ? (0, _media2.getTypeFromFile)(_src2) : _type3
841 });
842
843 mediaFiles.push(_media);
844 }
845 }
846
847 var renderInfo = _renderer.renderer.select(mediaFiles, t.mediaElement.options.renderers.length ? t.mediaElement.options.renderers : []),
848 event = void 0;
849
850 if (!t.mediaElement.paused && !(t.mediaElement.src == null || t.mediaElement.src === '')) {
851 t.mediaElement.pause();
852 event = (0, _general.createEvent)('pause', t.mediaElement);
853 t.mediaElement.dispatchEvent(event);
854 }
855 t.mediaElement.originalNode.src = mediaFiles[0].src || '';
856
857 if (renderInfo === null && mediaFiles[0].src) {
858 t.mediaElement.generateError('No renderer found', mediaFiles);
859 return;
860 }
861
862 var shouldChangeRenderer = !(mediaFiles[0].src == null || mediaFiles[0].src === '');
863 return shouldChangeRenderer ? t.mediaElement.changeRenderer(renderInfo.rendererName, mediaFiles) : null;
864 },
865 triggerAction = function triggerAction(methodName, args) {
866 try {
867 if (methodName === 'play' && (t.mediaElement.rendererName === 'native_dash' || t.mediaElement.rendererName === 'native_hls' || t.mediaElement.rendererName === 'vimeo_iframe')) {
868 var response = t.mediaElement.renderer[methodName](args);
869 if (response && typeof response.then === 'function') {
870 response.catch(function () {
871 if (t.mediaElement.paused) {
872 setTimeout(function () {
873 var tmpResponse = t.mediaElement.renderer.play();
874 if (tmpResponse !== undefined) {
875 tmpResponse.catch(function () {
876 if (!t.mediaElement.renderer.paused) {
877 t.mediaElement.renderer.pause();
878 }
879 });
880 }
881 }, 150);
882 }
883 });
884 }
885 } else {
886 t.mediaElement.renderer[methodName](args);
887 }
888 } catch (e) {
889 t.mediaElement.generateError(e, mediaFiles);
890 }
891 },
892 assignMethods = function assignMethods(methodName) {
893 t.mediaElement[methodName] = function () {
894 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
895 args[_key] = arguments[_key];
896 }
897
898 if (t.mediaElement.renderer !== undefined && t.mediaElement.renderer !== null && typeof t.mediaElement.renderer[methodName] === 'function') {
899 if (t.mediaElement.promises.length) {
900 Promise.all(t.mediaElement.promises).then(function () {
901 triggerAction(methodName, args);
902 }).catch(function (e) {
903 t.mediaElement.generateError(e, mediaFiles);
904 });
905 } else {
906 triggerAction(methodName, args);
907 }
908 }
909 return null;
910 };
911 };
912
913 addProperty(t.mediaElement, 'src', getSrc, setSrc);
914 t.mediaElement.getSrc = getSrc;
915 t.mediaElement.setSrc = setSrc;
916
917 for (var _i3 = 0, total = props.length; _i3 < total; _i3++) {
918 assignGettersSetters(props[_i3]);
919 }
920
921 for (var _i4 = 0, _total = methods.length; _i4 < _total; _i4++) {
922 assignMethods(methods[_i4]);
923 }
924
925 t.mediaElement.addEventListener = function (eventName, callback) {
926 t.mediaElement.events[eventName] = t.mediaElement.events[eventName] || [];
927
928 t.mediaElement.events[eventName].push(callback);
929 };
930 t.mediaElement.removeEventListener = function (eventName, callback) {
931 if (!eventName) {
932 t.mediaElement.events = {};
933 return true;
934 }
935
936 var callbacks = t.mediaElement.events[eventName];
937
938 if (!callbacks) {
939 return true;
940 }
941
942 if (!callback) {
943 t.mediaElement.events[eventName] = [];
944 return true;
945 }
946
947 for (var _i5 = 0; _i5 < callbacks.length; _i5++) {
948 if (callbacks[_i5] === callback) {
949 t.mediaElement.events[eventName].splice(_i5, 1);
950 return true;
951 }
952 }
953 return false;
954 };
955
956 t.mediaElement.dispatchEvent = function (event) {
957 var callbacks = t.mediaElement.events[event.type];
958 if (callbacks) {
959 for (var _i6 = 0; _i6 < callbacks.length; _i6++) {
960 callbacks[_i6].apply(null, [event]);
961 }
962 }
963 };
964
965 t.mediaElement.destroy = function () {
966 var mediaElement = t.mediaElement.originalNode.cloneNode(true);
967 var wrapper = t.mediaElement.parentElement;
968 mediaElement.removeAttribute('id');
969 mediaElement.remove();
970 t.mediaElement.remove();
971 wrapper.appendChild(mediaElement);
972 };
973
974 if (mediaFiles.length) {
975 t.mediaElement.src = mediaFiles;
976 }
977
978 if (t.mediaElement.promises.length) {
979 Promise.all(t.mediaElement.promises).then(function () {
980 if (t.mediaElement.options.success) {
981 t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode);
982 }
983 }).catch(function () {
984 if (error && t.mediaElement.options.error) {
985 t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode);
986 }
987 });
988 } else {
989 if (t.mediaElement.options.success) {
990 t.mediaElement.options.success(t.mediaElement, t.mediaElement.originalNode);
991 }
992
993 if (error && t.mediaElement.options.error) {
994 t.mediaElement.options.error(t.mediaElement, t.mediaElement.originalNode);
995 }
996 }
997
998 return t.mediaElement;
999};
1000
1001_window2.default.MediaElement = MediaElement;
1002_mejs2.default.MediaElement = MediaElement;
1003
1004exports.default = MediaElement;
1005
1006},{"16":16,"18":18,"19":19,"2":2,"3":3,"7":7,"8":8}],7:[function(_dereq_,module,exports){
1007'use strict';
1008
1009Object.defineProperty(exports, "__esModule", {
1010 value: true
1011});
1012
1013var _window = _dereq_(3);
1014
1015var _window2 = _interopRequireDefault(_window);
1016
1017function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1018
1019var mejs = {};
1020
1021mejs.version = '4.2.17';
1022
1023mejs.html5media = {
1024 properties: ['volume', 'src', 'currentTime', 'muted', 'duration', 'paused', 'ended', 'buffered', 'error', 'networkState', 'readyState', 'seeking', 'seekable', 'currentSrc', 'preload', 'bufferedBytes', 'bufferedTime', 'initialTime', 'startOffsetTime', 'defaultPlaybackRate', 'playbackRate', 'played', 'autoplay', 'loop', 'controls'],
1025 readOnlyProperties: ['duration', 'paused', 'ended', 'buffered', 'error', 'networkState', 'readyState', 'seeking', 'seekable'],
1026
1027 methods: ['load', 'play', 'pause', 'canPlayType'],
1028
1029 events: ['loadstart', 'durationchange', 'loadedmetadata', 'loadeddata', 'progress', 'canplay', 'canplaythrough', 'suspend', 'abort', 'error', 'emptied', 'stalled', 'play', 'playing', 'pause', 'waiting', 'seeking', 'seeked', 'timeupdate', 'ended', 'ratechange', 'volumechange'],
1030
1031 mediaTypes: ['audio/mp3', 'audio/ogg', 'audio/oga', 'audio/wav', 'audio/x-wav', 'audio/wave', 'audio/x-pn-wav', 'audio/mpeg', 'audio/mp4', 'video/mp4', 'video/webm', 'video/ogg', 'video/ogv']
1032};
1033
1034_window2.default.mejs = mejs;
1035
1036exports.default = mejs;
1037
1038},{"3":3}],8:[function(_dereq_,module,exports){
1039'use strict';
1040
1041Object.defineProperty(exports, "__esModule", {
1042 value: true
1043});
1044exports.renderer = undefined;
1045
1046var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
1047
1048var _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }();
1049
1050var _mejs = _dereq_(7);
1051
1052var _mejs2 = _interopRequireDefault(_mejs);
1053
1054function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1055
1056function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1057
1058var Renderer = function () {
1059 function Renderer() {
1060 _classCallCheck(this, Renderer);
1061
1062 this.renderers = {};
1063 this.order = [];
1064 }
1065
1066 _createClass(Renderer, [{
1067 key: 'add',
1068 value: function add(renderer) {
1069 if (renderer.name === undefined) {
1070 throw new TypeError('renderer must contain at least `name` property');
1071 }
1072
1073 this.renderers[renderer.name] = renderer;
1074 this.order.push(renderer.name);
1075 }
1076 }, {
1077 key: 'select',
1078 value: function select(mediaFiles) {
1079 var renderers = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
1080
1081 var renderersLength = renderers.length;
1082
1083 renderers = renderers.length ? renderers : this.order;
1084
1085 if (!renderersLength) {
1086 var rendererIndicator = [/^(html5|native)/i, /^flash/i, /iframe$/i],
1087 rendererRanking = function rendererRanking(renderer) {
1088 for (var i = 0, total = rendererIndicator.length; i < total; i++) {
1089 if (rendererIndicator[i].test(renderer)) {
1090 return i;
1091 }
1092 }
1093 return rendererIndicator.length;
1094 };
1095
1096 renderers.sort(function (a, b) {
1097 return rendererRanking(a) - rendererRanking(b);
1098 });
1099 }
1100
1101 for (var i = 0, total = renderers.length; i < total; i++) {
1102 var key = renderers[i],
1103 _renderer = this.renderers[key];
1104
1105 if (_renderer !== null && _renderer !== undefined) {
1106 for (var j = 0, jl = mediaFiles.length; j < jl; j++) {
1107 if (typeof _renderer.canPlayType === 'function' && typeof mediaFiles[j].type === 'string' && _renderer.canPlayType(mediaFiles[j].type)) {
1108 return {
1109 rendererName: _renderer.name,
1110 src: mediaFiles[j].src
1111 };
1112 }
1113 }
1114 }
1115 }
1116
1117 return null;
1118 }
1119 }, {
1120 key: 'order',
1121 set: function set(order) {
1122 if (!Array.isArray(order)) {
1123 throw new TypeError('order must be an array of strings.');
1124 }
1125
1126 this._order = order;
1127 },
1128 get: function get() {
1129 return this._order;
1130 }
1131 }, {
1132 key: 'renderers',
1133 set: function set(renderers) {
1134 if (renderers !== null && (typeof renderers === 'undefined' ? 'undefined' : _typeof(renderers)) !== 'object') {
1135 throw new TypeError('renderers must be an array of objects.');
1136 }
1137
1138 this._renderers = renderers;
1139 },
1140 get: function get() {
1141 return this._renderers;
1142 }
1143 }]);
1144
1145 return Renderer;
1146}();
1147
1148var renderer = exports.renderer = new Renderer();
1149
1150_mejs2.default.Renderers = renderer;
1151
1152},{"7":7}],9:[function(_dereq_,module,exports){
1153'use strict';
1154
1155Object.defineProperty(exports, "__esModule", {
1156 value: true
1157});
1158var EN = exports.EN = {
1159 'mejs.plural-form': 1,
1160
1161 'mejs.download-file': 'Download File',
1162
1163 'mejs.install-flash': 'You are using a browser that does not have Flash player enabled or installed. Please turn on your Flash player plugin or download the latest version from https://get.adobe.com/flashplayer/',
1164
1165 'mejs.fullscreen': 'Fullscreen',
1166
1167 'mejs.play': 'Play',
1168 'mejs.pause': 'Pause',
1169
1170 'mejs.time-slider': 'Time Slider',
1171 'mejs.time-help-text': 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.',
1172 'mejs.live-broadcast': 'Live Broadcast',
1173
1174 'mejs.volume-help-text': 'Use Up/Down Arrow keys to increase or decrease volume.',
1175 'mejs.unmute': 'Unmute',
1176 'mejs.mute': 'Mute',
1177 'mejs.volume-slider': 'Volume Slider',
1178
1179 'mejs.video-player': 'Video Player',
1180 'mejs.audio-player': 'Audio Player',
1181
1182 'mejs.captions-subtitles': 'Captions/Subtitles',
1183 'mejs.captions-chapters': 'Chapters',
1184 'mejs.none': 'None',
1185 'mejs.afrikaans': 'Afrikaans',
1186 'mejs.albanian': 'Albanian',
1187 'mejs.arabic': 'Arabic',
1188 'mejs.belarusian': 'Belarusian',
1189 'mejs.bulgarian': 'Bulgarian',
1190 'mejs.catalan': 'Catalan',
1191 'mejs.chinese': 'Chinese',
1192 'mejs.chinese-simplified': 'Chinese (Simplified)',
1193 'mejs.chinese-traditional': 'Chinese (Traditional)',
1194 'mejs.croatian': 'Croatian',
1195 'mejs.czech': 'Czech',
1196 'mejs.danish': 'Danish',
1197 'mejs.dutch': 'Dutch',
1198 'mejs.english': 'English',
1199 'mejs.estonian': 'Estonian',
1200 'mejs.filipino': 'Filipino',
1201 'mejs.finnish': 'Finnish',
1202 'mejs.french': 'French',
1203 'mejs.galician': 'Galician',
1204 'mejs.german': 'German',
1205 'mejs.greek': 'Greek',
1206 'mejs.haitian-creole': 'Haitian Creole',
1207 'mejs.hebrew': 'Hebrew',
1208 'mejs.hindi': 'Hindi',
1209 'mejs.hungarian': 'Hungarian',
1210 'mejs.icelandic': 'Icelandic',
1211 'mejs.indonesian': 'Indonesian',
1212 'mejs.irish': 'Irish',
1213 'mejs.italian': 'Italian',
1214 'mejs.japanese': 'Japanese',
1215 'mejs.korean': 'Korean',
1216 'mejs.latvian': 'Latvian',
1217 'mejs.lithuanian': 'Lithuanian',
1218 'mejs.macedonian': 'Macedonian',
1219 'mejs.malay': 'Malay',
1220 'mejs.maltese': 'Maltese',
1221 'mejs.norwegian': 'Norwegian',
1222 'mejs.persian': 'Persian',
1223 'mejs.polish': 'Polish',
1224 'mejs.portuguese': 'Portuguese',
1225 'mejs.romanian': 'Romanian',
1226 'mejs.russian': 'Russian',
1227 'mejs.serbian': 'Serbian',
1228 'mejs.slovak': 'Slovak',
1229 'mejs.slovenian': 'Slovenian',
1230 'mejs.spanish': 'Spanish',
1231 'mejs.swahili': 'Swahili',
1232 'mejs.swedish': 'Swedish',
1233 'mejs.tagalog': 'Tagalog',
1234 'mejs.thai': 'Thai',
1235 'mejs.turkish': 'Turkish',
1236 'mejs.ukrainian': 'Ukrainian',
1237 'mejs.vietnamese': 'Vietnamese',
1238 'mejs.welsh': 'Welsh',
1239 'mejs.yiddish': 'Yiddish'
1240};
1241
1242},{}],10:[function(_dereq_,module,exports){
1243'use strict';
1244
1245var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
1246
1247var _window = _dereq_(3);
1248
1249var _window2 = _interopRequireDefault(_window);
1250
1251var _mejs = _dereq_(7);
1252
1253var _mejs2 = _interopRequireDefault(_mejs);
1254
1255var _renderer = _dereq_(8);
1256
1257var _general = _dereq_(18);
1258
1259var _media = _dereq_(19);
1260
1261var _constants = _dereq_(16);
1262
1263var _dom = _dereq_(17);
1264
1265function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1266
1267var NativeDash = {
1268
1269 promise: null,
1270
1271 load: function load(settings) {
1272 if (typeof dashjs !== 'undefined') {
1273 NativeDash.promise = new Promise(function (resolve) {
1274 resolve();
1275 }).then(function () {
1276 NativeDash._createPlayer(settings);
1277 });
1278 } else {
1279 settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.dashjs.org/latest/dash.all.min.js';
1280
1281 NativeDash.promise = NativeDash.promise || (0, _dom.loadScript)(settings.options.path);
1282 NativeDash.promise.then(function () {
1283 NativeDash._createPlayer(settings);
1284 });
1285 }
1286
1287 return NativeDash.promise;
1288 },
1289
1290 _createPlayer: function _createPlayer(settings) {
1291 var player = dashjs.MediaPlayer().create();
1292 _window2.default['__ready__' + settings.id](player);
1293 return player;
1294 }
1295};
1296
1297var DashNativeRenderer = {
1298 name: 'native_dash',
1299 options: {
1300 prefix: 'native_dash',
1301 dash: {
1302 path: 'https://cdn.dashjs.org/latest/dash.all.min.js',
1303 debug: false,
1304 drm: {},
1305
1306 robustnessLevel: ''
1307 }
1308 },
1309
1310 canPlayType: function canPlayType(type) {
1311 return _constants.HAS_MSE && ['application/dash+xml'].indexOf(type.toLowerCase()) > -1;
1312 },
1313
1314 create: function create(mediaElement, options, mediaFiles) {
1315
1316 var originalNode = mediaElement.originalNode,
1317 id = mediaElement.id + '_' + options.prefix,
1318 autoplay = originalNode.autoplay,
1319 children = originalNode.children;
1320
1321 var node = null,
1322 dashPlayer = null;
1323
1324 originalNode.removeAttribute('type');
1325 for (var i = 0, total = children.length; i < total; i++) {
1326 children[i].removeAttribute('type');
1327 }
1328
1329 node = originalNode.cloneNode(true);
1330 options = Object.assign(options, mediaElement.options);
1331
1332 var props = _mejs2.default.html5media.properties,
1333 events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
1334 return e !== 'error';
1335 }),
1336 attachNativeEvents = function attachNativeEvents(e) {
1337 var event = (0, _general.createEvent)(e.type, mediaElement);
1338 mediaElement.dispatchEvent(event);
1339 },
1340 assignGettersSetters = function assignGettersSetters(propName) {
1341 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
1342
1343 node['get' + capName] = function () {
1344 return dashPlayer !== null ? node[propName] : null;
1345 };
1346
1347 node['set' + capName] = function (value) {
1348 if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
1349 if (propName === 'src') {
1350 var source = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
1351 node[propName] = source;
1352 if (dashPlayer !== null) {
1353 dashPlayer.reset();
1354 for (var _i = 0, _total = events.length; _i < _total; _i++) {
1355 node.removeEventListener(events[_i], attachNativeEvents);
1356 }
1357 dashPlayer = NativeDash._createPlayer({
1358 options: options.dash,
1359 id: id
1360 });
1361
1362 if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && _typeof(value.drm) === 'object') {
1363 dashPlayer.setProtectionData(value.drm);
1364 if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) {
1365 dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel);
1366 }
1367 }
1368 dashPlayer.attachSource(source);
1369 if (autoplay) {
1370 dashPlayer.play();
1371 }
1372 }
1373 } else {
1374 node[propName] = value;
1375 }
1376 }
1377 };
1378 };
1379
1380 for (var _i2 = 0, _total2 = props.length; _i2 < _total2; _i2++) {
1381 assignGettersSetters(props[_i2]);
1382 }
1383
1384 _window2.default['__ready__' + id] = function (_dashPlayer) {
1385 mediaElement.dashPlayer = dashPlayer = _dashPlayer;
1386
1387 var dashEvents = dashjs.MediaPlayer.events,
1388 assignEvents = function assignEvents(eventName) {
1389 if (eventName === 'loadedmetadata') {
1390 dashPlayer.initialize();
1391 dashPlayer.attachView(node);
1392 dashPlayer.setAutoPlay(false);
1393
1394 if (_typeof(options.dash.drm) === 'object' && !_mejs2.default.Utils.isObjectEmpty(options.dash.drm)) {
1395 dashPlayer.setProtectionData(options.dash.drm);
1396 if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) {
1397 dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel);
1398 }
1399 }
1400 dashPlayer.attachSource(node.getSrc());
1401 }
1402
1403 node.addEventListener(eventName, attachNativeEvents);
1404 };
1405
1406 for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
1407 assignEvents(events[_i3]);
1408 }
1409
1410 var assignMdashEvents = function assignMdashEvents(e) {
1411 if (e.type.toLowerCase() === 'error') {
1412 mediaElement.generateError(e.message, node.src);
1413 console.error(e);
1414 } else {
1415 var _event = (0, _general.createEvent)(e.type, mediaElement);
1416 _event.data = e;
1417 mediaElement.dispatchEvent(_event);
1418 }
1419 };
1420
1421 for (var eventType in dashEvents) {
1422 if (dashEvents.hasOwnProperty(eventType)) {
1423 dashPlayer.on(dashEvents[eventType], function (e) {
1424 return assignMdashEvents(e);
1425 });
1426 }
1427 }
1428 };
1429
1430 if (mediaFiles && mediaFiles.length > 0) {
1431 for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) {
1432 if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) {
1433 node.setAttribute('src', mediaFiles[_i4].src);
1434 if (typeof mediaFiles[_i4].drm !== 'undefined') {
1435 options.dash.drm = mediaFiles[_i4].drm;
1436 }
1437 break;
1438 }
1439 }
1440 }
1441
1442 node.setAttribute('id', id);
1443
1444 originalNode.parentNode.insertBefore(node, originalNode);
1445 originalNode.autoplay = false;
1446 originalNode.style.display = 'none';
1447
1448 node.setSize = function (width, height) {
1449 node.style.width = width + 'px';
1450 node.style.height = height + 'px';
1451 return node;
1452 };
1453
1454 node.hide = function () {
1455 node.pause();
1456 node.style.display = 'none';
1457 return node;
1458 };
1459
1460 node.show = function () {
1461 node.style.display = '';
1462 return node;
1463 };
1464
1465 node.destroy = function () {
1466 if (dashPlayer !== null) {
1467 dashPlayer.reset();
1468 }
1469 };
1470
1471 var event = (0, _general.createEvent)('rendererready', node);
1472 mediaElement.dispatchEvent(event);
1473
1474 mediaElement.promises.push(NativeDash.load({
1475 options: options.dash,
1476 id: id
1477 }));
1478
1479 return node;
1480 }
1481};
1482
1483_media.typeChecks.push(function (url) {
1484 return ~url.toLowerCase().indexOf('.mpd') ? 'application/dash+xml' : null;
1485});
1486
1487_renderer.renderer.add(DashNativeRenderer);
1488
1489},{"16":16,"17":17,"18":18,"19":19,"3":3,"7":7,"8":8}],11:[function(_dereq_,module,exports){
1490'use strict';
1491
1492Object.defineProperty(exports, "__esModule", {
1493 value: true
1494});
1495exports.PluginDetector = undefined;
1496
1497var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
1498
1499var _window = _dereq_(3);
1500
1501var _window2 = _interopRequireDefault(_window);
1502
1503var _document = _dereq_(2);
1504
1505var _document2 = _interopRequireDefault(_document);
1506
1507var _mejs = _dereq_(7);
1508
1509var _mejs2 = _interopRequireDefault(_mejs);
1510
1511var _i18n = _dereq_(5);
1512
1513var _i18n2 = _interopRequireDefault(_i18n);
1514
1515var _renderer = _dereq_(8);
1516
1517var _general = _dereq_(18);
1518
1519var _constants = _dereq_(16);
1520
1521var _media = _dereq_(19);
1522
1523function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1524
1525var PluginDetector = exports.PluginDetector = {
1526 plugins: [],
1527
1528 hasPluginVersion: function hasPluginVersion(plugin, v) {
1529 var pv = PluginDetector.plugins[plugin];
1530 v[1] = v[1] || 0;
1531 v[2] = v[2] || 0;
1532 return pv[0] > v[0] || pv[0] === v[0] && pv[1] > v[1] || pv[0] === v[0] && pv[1] === v[1] && pv[2] >= v[2];
1533 },
1534
1535 addPlugin: function addPlugin(p, pluginName, mimeType, activeX, axDetect) {
1536 PluginDetector.plugins[p] = PluginDetector.detectPlugin(pluginName, mimeType, activeX, axDetect);
1537 },
1538
1539 detectPlugin: function detectPlugin(pluginName, mimeType, activeX, axDetect) {
1540
1541 var version = [0, 0, 0],
1542 description = void 0,
1543 ax = void 0;
1544
1545 if (_constants.NAV.plugins !== null && _constants.NAV.plugins !== undefined && _typeof(_constants.NAV.plugins[pluginName]) === 'object') {
1546 description = _constants.NAV.plugins[pluginName].description;
1547 if (description && !(typeof _constants.NAV.mimeTypes !== 'undefined' && _constants.NAV.mimeTypes[mimeType] && !_constants.NAV.mimeTypes[mimeType].enabledPlugin)) {
1548 version = description.replace(pluginName, '').replace(/^\s+/, '').replace(/\sr/gi, '.').split('.');
1549 for (var i = 0, total = version.length; i < total; i++) {
1550 version[i] = parseInt(version[i].match(/\d+/), 10);
1551 }
1552 }
1553 } else if (_window2.default.ActiveXObject !== undefined) {
1554 try {
1555 ax = new ActiveXObject(activeX);
1556 if (ax) {
1557 version = axDetect(ax);
1558 }
1559 } catch (e) {
1560
1561 }
1562 }
1563 return version;
1564 }
1565};
1566
1567PluginDetector.addPlugin('flash', 'Shockwave Flash', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash', function (ax) {
1568 var version = [],
1569 d = ax.GetVariable("$version");
1570
1571 if (d) {
1572 d = d.split(" ")[1].split(",");
1573 version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
1574 }
1575 return version;
1576});
1577
1578var FlashMediaElementRenderer = {
1579 create: function create(mediaElement, options, mediaFiles) {
1580
1581 var flash = {};
1582 var isActive = false;
1583
1584 flash.options = options;
1585 flash.id = mediaElement.id + '_' + flash.options.prefix;
1586 flash.mediaElement = mediaElement;
1587 flash.flashState = {};
1588 flash.flashApi = null;
1589 flash.flashApiStack = [];
1590
1591 var props = _mejs2.default.html5media.properties,
1592 assignGettersSetters = function assignGettersSetters(propName) {
1593 flash.flashState[propName] = null;
1594
1595 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
1596
1597 flash['get' + capName] = function () {
1598 if (flash.flashApi !== null) {
1599 if (typeof flash.flashApi['get_' + propName] === 'function') {
1600 var value = flash.flashApi['get_' + propName]();
1601
1602 if (propName === 'buffered') {
1603 return {
1604 start: function start() {
1605 return 0;
1606 },
1607 end: function end() {
1608 return value;
1609 },
1610 length: 1
1611 };
1612 }
1613 return value;
1614 } else {
1615 return null;
1616 }
1617 } else {
1618 return null;
1619 }
1620 };
1621
1622 flash['set' + capName] = function (value) {
1623 if (propName === 'src') {
1624 value = (0, _media.absolutizeUrl)(value);
1625 }
1626
1627 if (flash.flashApi !== null && flash.flashApi['set_' + propName] !== undefined) {
1628 try {
1629 flash.flashApi['set_' + propName](value);
1630 } catch (e) {
1631
1632 }
1633 } else {
1634 flash.flashApiStack.push({
1635 type: 'set',
1636 propName: propName,
1637 value: value
1638 });
1639 }
1640 };
1641 };
1642
1643 for (var i = 0, total = props.length; i < total; i++) {
1644 assignGettersSetters(props[i]);
1645 }
1646
1647 var methods = _mejs2.default.html5media.methods,
1648 assignMethods = function assignMethods(methodName) {
1649 flash[methodName] = function () {
1650 if (isActive) {
1651 if (flash.flashApi !== null) {
1652 if (flash.flashApi['fire_' + methodName]) {
1653 try {
1654 flash.flashApi['fire_' + methodName]();
1655 } catch (e) {
1656
1657 }
1658 } else {
1659
1660 }
1661 } else {
1662 flash.flashApiStack.push({
1663 type: 'call',
1664 methodName: methodName
1665 });
1666 }
1667 }
1668 };
1669 };
1670 methods.push('stop');
1671 for (var _i = 0, _total = methods.length; _i < _total; _i++) {
1672 assignMethods(methods[_i]);
1673 }
1674
1675 var initEvents = ['rendererready'];
1676
1677 for (var _i2 = 0, _total2 = initEvents.length; _i2 < _total2; _i2++) {
1678 var event = (0, _general.createEvent)(initEvents[_i2], flash);
1679 mediaElement.dispatchEvent(event);
1680 }
1681
1682 _window2.default['__ready__' + flash.id] = function () {
1683
1684 flash.flashReady = true;
1685 flash.flashApi = _document2.default.getElementById('__' + flash.id);
1686
1687 if (flash.flashApiStack.length) {
1688 for (var _i3 = 0, _total3 = flash.flashApiStack.length; _i3 < _total3; _i3++) {
1689 var stackItem = flash.flashApiStack[_i3];
1690
1691 if (stackItem.type === 'set') {
1692 var propName = stackItem.propName,
1693 capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
1694
1695 flash['set' + capName](stackItem.value);
1696 } else if (stackItem.type === 'call') {
1697 flash[stackItem.methodName]();
1698 }
1699 }
1700 }
1701 };
1702
1703 _window2.default['__event__' + flash.id] = function (eventName, message) {
1704 var event = (0, _general.createEvent)(eventName, flash);
1705 if (message) {
1706 try {
1707 event.data = JSON.parse(message);
1708 event.details.data = JSON.parse(message);
1709 } catch (e) {
1710 event.message = message;
1711 }
1712 }
1713
1714 flash.mediaElement.dispatchEvent(event);
1715 };
1716
1717 flash.flashWrapper = _document2.default.createElement('div');
1718
1719 if (['always', 'sameDomain'].indexOf(flash.options.shimScriptAccess) === -1) {
1720 flash.options.shimScriptAccess = 'sameDomain';
1721 }
1722
1723 var autoplay = mediaElement.originalNode.autoplay,
1724 flashVars = ['uid=' + flash.id, 'autoplay=' + autoplay, 'allowScriptAccess=' + flash.options.shimScriptAccess, 'preload=' + (mediaElement.originalNode.getAttribute('preload') || '')],
1725 isVideo = mediaElement.originalNode !== null && mediaElement.originalNode.tagName.toLowerCase() === 'video',
1726 flashHeight = isVideo ? mediaElement.originalNode.height : 1,
1727 flashWidth = isVideo ? mediaElement.originalNode.width : 1;
1728
1729 if (mediaElement.originalNode.getAttribute('src')) {
1730 flashVars.push('src=' + mediaElement.originalNode.getAttribute('src'));
1731 }
1732
1733 if (flash.options.enablePseudoStreaming === true) {
1734 flashVars.push('pseudostreamstart=' + flash.options.pseudoStreamingStartQueryParam);
1735 flashVars.push('pseudostreamtype=' + flash.options.pseudoStreamingType);
1736 }
1737
1738 if (flash.options.streamDelimiter) {
1739 flashVars.push('streamdelimiter=' + encodeURIComponent(flash.options.streamDelimiter));
1740 }
1741
1742 if (flash.options.proxyType) {
1743 flashVars.push('proxytype=' + flash.options.proxyType);
1744 }
1745
1746 mediaElement.appendChild(flash.flashWrapper);
1747 mediaElement.originalNode.style.display = 'none';
1748
1749 var settings = [];
1750
1751 if (_constants.IS_IE || _constants.IS_EDGE) {
1752 var specialIEContainer = _document2.default.createElement('div');
1753 flash.flashWrapper.appendChild(specialIEContainer);
1754
1755 if (_constants.IS_EDGE) {
1756 settings = ['type="application/x-shockwave-flash"', 'data="' + flash.options.pluginPath + flash.options.filename + '"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '\'"'];
1757 } else {
1758 settings = ['classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"', 'codebase="//download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '"'];
1759 }
1760
1761 if (!isVideo) {
1762 settings.push('style="clip: rect(0 0 0 0); position: absolute;"');
1763 }
1764
1765 specialIEContainer.outerHTML = '<object ' + settings.join(' ') + '>' + ('<param name="movie" value="' + flash.options.pluginPath + flash.options.filename + '?x=' + new Date() + '" />') + ('<param name="flashvars" value="' + flashVars.join('&amp;') + '" />') + '<param name="quality" value="high" />' + '<param name="bgcolor" value="#000000" />' + '<param name="wmode" value="transparent" />' + ('<param name="allowScriptAccess" value="' + flash.options.shimScriptAccess + '" />') + '<param name="allowFullScreen" value="true" />' + ('<div>' + _i18n2.default.t('mejs.install-flash') + '</div>') + '</object>';
1766 } else {
1767
1768 settings = ['id="__' + flash.id + '"', 'name="__' + flash.id + '"', 'play="true"', 'loop="false"', 'quality="high"', 'bgcolor="#000000"', 'wmode="transparent"', 'allowScriptAccess="' + flash.options.shimScriptAccess + '"', 'allowFullScreen="true"', 'type="application/x-shockwave-flash"', 'pluginspage="//www.macromedia.com/go/getflashplayer"', 'src="' + flash.options.pluginPath + flash.options.filename + '"', 'flashvars="' + flashVars.join('&') + '"'];
1769
1770 if (isVideo) {
1771 settings.push('width="' + flashWidth + '"');
1772 settings.push('height="' + flashHeight + '"');
1773 } else {
1774 settings.push('style="position: fixed; left: -9999em; top: -9999em;"');
1775 }
1776
1777 flash.flashWrapper.innerHTML = '<embed ' + settings.join(' ') + '>';
1778 }
1779
1780 flash.flashNode = flash.flashWrapper.lastChild;
1781
1782 flash.hide = function () {
1783 isActive = false;
1784 if (isVideo) {
1785 flash.flashNode.style.display = 'none';
1786 }
1787 };
1788 flash.show = function () {
1789 isActive = true;
1790 if (isVideo) {
1791 flash.flashNode.style.display = '';
1792 }
1793 };
1794 flash.setSize = function (width, height) {
1795 flash.flashNode.style.width = width + 'px';
1796 flash.flashNode.style.height = height + 'px';
1797
1798 if (flash.flashApi !== null && typeof flash.flashApi.fire_setSize === 'function') {
1799 flash.flashApi.fire_setSize(width, height);
1800 }
1801 };
1802
1803 flash.destroy = function () {
1804 flash.flashNode.remove();
1805 };
1806
1807 if (mediaFiles && mediaFiles.length > 0) {
1808 for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) {
1809 if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) {
1810 flash.setSrc(mediaFiles[_i4].src);
1811 break;
1812 }
1813 }
1814 }
1815
1816 return flash;
1817 }
1818};
1819
1820var hasFlash = PluginDetector.hasPluginVersion('flash', [10, 0, 0]);
1821
1822if (hasFlash) {
1823 _media.typeChecks.push(function (url) {
1824 url = url.toLowerCase();
1825
1826 if (url.startsWith('rtmp')) {
1827 if (~url.indexOf('.mp3')) {
1828 return 'audio/rtmp';
1829 } else {
1830 return 'video/rtmp';
1831 }
1832 } else if (/\.og(a|g)/i.test(url)) {
1833 return 'audio/ogg';
1834 } else if (~url.indexOf('.m3u8')) {
1835 return 'application/x-mpegURL';
1836 } else if (~url.indexOf('.mpd')) {
1837 return 'application/dash+xml';
1838 } else if (~url.indexOf('.flv')) {
1839 return 'video/flv';
1840 } else {
1841 return null;
1842 }
1843 });
1844
1845 var FlashMediaElementVideoRenderer = {
1846 name: 'flash_video',
1847 options: {
1848 prefix: 'flash_video',
1849 filename: 'mediaelement-flash-video.swf',
1850 enablePseudoStreaming: false,
1851
1852 pseudoStreamingStartQueryParam: 'start',
1853
1854 pseudoStreamingType: 'byte',
1855
1856 proxyType: '',
1857
1858 streamDelimiter: ''
1859 },
1860
1861 canPlayType: function canPlayType(type) {
1862 return ~['video/mp4', 'video/rtmp', 'audio/rtmp', 'rtmp/mp4', 'audio/mp4', 'video/flv', 'video/x-flv'].indexOf(type.toLowerCase());
1863 },
1864
1865 create: FlashMediaElementRenderer.create
1866
1867 };
1868 _renderer.renderer.add(FlashMediaElementVideoRenderer);
1869
1870 var FlashMediaElementHlsVideoRenderer = {
1871 name: 'flash_hls',
1872 options: {
1873 prefix: 'flash_hls',
1874 filename: 'mediaelement-flash-video-hls.swf'
1875 },
1876
1877 canPlayType: function canPlayType(type) {
1878 return ~['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase());
1879 },
1880
1881 create: FlashMediaElementRenderer.create
1882 };
1883 _renderer.renderer.add(FlashMediaElementHlsVideoRenderer);
1884
1885 var FlashMediaElementMdashVideoRenderer = {
1886 name: 'flash_dash',
1887 options: {
1888 prefix: 'flash_dash',
1889 filename: 'mediaelement-flash-video-mdash.swf'
1890 },
1891
1892 canPlayType: function canPlayType(type) {
1893 return ~['application/dash+xml'].indexOf(type.toLowerCase());
1894 },
1895
1896 create: FlashMediaElementRenderer.create
1897 };
1898 _renderer.renderer.add(FlashMediaElementMdashVideoRenderer);
1899
1900 var FlashMediaElementAudioRenderer = {
1901 name: 'flash_audio',
1902 options: {
1903 prefix: 'flash_audio',
1904 filename: 'mediaelement-flash-audio.swf'
1905 },
1906
1907 canPlayType: function canPlayType(type) {
1908 return ~['audio/mp3'].indexOf(type.toLowerCase());
1909 },
1910
1911 create: FlashMediaElementRenderer.create
1912 };
1913 _renderer.renderer.add(FlashMediaElementAudioRenderer);
1914
1915 var FlashMediaElementAudioOggRenderer = {
1916 name: 'flash_audio_ogg',
1917 options: {
1918 prefix: 'flash_audio_ogg',
1919 filename: 'mediaelement-flash-audio-ogg.swf'
1920 },
1921
1922 canPlayType: function canPlayType(type) {
1923 return ~['audio/ogg', 'audio/oga', 'audio/ogv'].indexOf(type.toLowerCase());
1924 },
1925
1926 create: FlashMediaElementRenderer.create
1927 };
1928 _renderer.renderer.add(FlashMediaElementAudioOggRenderer);
1929}
1930
1931},{"16":16,"18":18,"19":19,"2":2,"3":3,"5":5,"7":7,"8":8}],12:[function(_dereq_,module,exports){
1932'use strict';
1933
1934var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
1935
1936var _window = _dereq_(3);
1937
1938var _window2 = _interopRequireDefault(_window);
1939
1940var _mejs = _dereq_(7);
1941
1942var _mejs2 = _interopRequireDefault(_mejs);
1943
1944var _renderer = _dereq_(8);
1945
1946var _general = _dereq_(18);
1947
1948var _constants = _dereq_(16);
1949
1950var _media = _dereq_(19);
1951
1952var _dom = _dereq_(17);
1953
1954function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1955
1956var NativeFlv = {
1957
1958 promise: null,
1959
1960 load: function load(settings) {
1961 if (typeof flvjs !== 'undefined') {
1962 NativeFlv.promise = new Promise(function (resolve) {
1963 resolve();
1964 }).then(function () {
1965 NativeFlv._createPlayer(settings);
1966 });
1967 } else {
1968 settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/flv.js@latest';
1969
1970 NativeFlv.promise = NativeFlv.promise || (0, _dom.loadScript)(settings.options.path);
1971 NativeFlv.promise.then(function () {
1972 NativeFlv._createPlayer(settings);
1973 });
1974 }
1975
1976 return NativeFlv.promise;
1977 },
1978
1979 _createPlayer: function _createPlayer(settings) {
1980 flvjs.LoggingControl.enableDebug = settings.options.debug;
1981 flvjs.LoggingControl.enableVerbose = settings.options.debug;
1982 var player = flvjs.createPlayer(settings.options, settings.configs);
1983 _window2.default['__ready__' + settings.id](player);
1984 return player;
1985 }
1986};
1987
1988var FlvNativeRenderer = {
1989 name: 'native_flv',
1990 options: {
1991 prefix: 'native_flv',
1992 flv: {
1993 path: 'https://cdn.jsdelivr.net/npm/flv.js@latest',
1994
1995 cors: true,
1996 debug: false
1997 }
1998 },
1999
2000 canPlayType: function canPlayType(type) {
2001 return _constants.HAS_MSE && ['video/x-flv', 'video/flv'].indexOf(type.toLowerCase()) > -1;
2002 },
2003
2004 create: function create(mediaElement, options, mediaFiles) {
2005
2006 var originalNode = mediaElement.originalNode,
2007 id = mediaElement.id + '_' + options.prefix;
2008
2009 var node = null,
2010 flvPlayer = null;
2011
2012 node = originalNode.cloneNode(true);
2013 options = Object.assign(options, mediaElement.options);
2014
2015 var props = _mejs2.default.html5media.properties,
2016 events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
2017 return e !== 'error';
2018 }),
2019 attachNativeEvents = function attachNativeEvents(e) {
2020 var event = (0, _general.createEvent)(e.type, mediaElement);
2021 mediaElement.dispatchEvent(event);
2022 },
2023 assignGettersSetters = function assignGettersSetters(propName) {
2024 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
2025
2026 node['get' + capName] = function () {
2027 return flvPlayer !== null ? node[propName] : null;
2028 };
2029
2030 node['set' + capName] = function (value) {
2031 if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
2032 if (propName === 'src') {
2033 node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
2034 if (flvPlayer !== null) {
2035 var _flvOptions = {};
2036 _flvOptions.type = 'flv';
2037 _flvOptions.url = value;
2038 _flvOptions.cors = options.flv.cors;
2039 _flvOptions.debug = options.flv.debug;
2040 _flvOptions.path = options.flv.path;
2041 var _flvConfigs = options.flv.configs;
2042
2043 flvPlayer.destroy();
2044 for (var i = 0, total = events.length; i < total; i++) {
2045 node.removeEventListener(events[i], attachNativeEvents);
2046 }
2047 flvPlayer = NativeFlv._createPlayer({
2048 options: _flvOptions,
2049 configs: _flvConfigs,
2050 id: id
2051 });
2052 flvPlayer.attachMediaElement(node);
2053 flvPlayer.load();
2054 }
2055 } else {
2056 node[propName] = value;
2057 }
2058 }
2059 };
2060 };
2061
2062 for (var i = 0, total = props.length; i < total; i++) {
2063 assignGettersSetters(props[i]);
2064 }
2065
2066 _window2.default['__ready__' + id] = function (_flvPlayer) {
2067 mediaElement.flvPlayer = flvPlayer = _flvPlayer;
2068
2069 var flvEvents = flvjs.Events,
2070 assignEvents = function assignEvents(eventName) {
2071 if (eventName === 'loadedmetadata') {
2072 flvPlayer.unload();
2073 flvPlayer.detachMediaElement();
2074 flvPlayer.attachMediaElement(node);
2075 flvPlayer.load();
2076 }
2077
2078 node.addEventListener(eventName, attachNativeEvents);
2079 };
2080
2081 for (var _i = 0, _total = events.length; _i < _total; _i++) {
2082 assignEvents(events[_i]);
2083 }
2084
2085 var assignFlvEvents = function assignFlvEvents(name, data) {
2086 if (name === 'error') {
2087 var message = data[0] + ': ' + data[1] + ' ' + data[2].msg;
2088 mediaElement.generateError(message, node.src);
2089 } else {
2090 var _event = (0, _general.createEvent)(name, mediaElement);
2091 _event.data = data;
2092 mediaElement.dispatchEvent(_event);
2093 }
2094 };
2095
2096 var _loop = function _loop(eventType) {
2097 if (flvEvents.hasOwnProperty(eventType)) {
2098 flvPlayer.on(flvEvents[eventType], function () {
2099 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
2100 args[_key] = arguments[_key];
2101 }
2102
2103 return assignFlvEvents(flvEvents[eventType], args);
2104 });
2105 }
2106 };
2107
2108 for (var eventType in flvEvents) {
2109 _loop(eventType);
2110 }
2111 };
2112
2113 if (mediaFiles && mediaFiles.length > 0) {
2114 for (var _i2 = 0, _total2 = mediaFiles.length; _i2 < _total2; _i2++) {
2115 if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i2].type)) {
2116 node.setAttribute('src', mediaFiles[_i2].src);
2117 break;
2118 }
2119 }
2120 }
2121
2122 node.setAttribute('id', id);
2123
2124 originalNode.parentNode.insertBefore(node, originalNode);
2125 originalNode.autoplay = false;
2126 originalNode.style.display = 'none';
2127
2128 var flvOptions = {};
2129 flvOptions.type = 'flv';
2130 flvOptions.url = node.src;
2131 flvOptions.cors = options.flv.cors;
2132 flvOptions.debug = options.flv.debug;
2133 flvOptions.path = options.flv.path;
2134 var flvConfigs = options.flv.configs;
2135
2136 node.setSize = function (width, height) {
2137 node.style.width = width + 'px';
2138 node.style.height = height + 'px';
2139 return node;
2140 };
2141
2142 node.hide = function () {
2143 if (flvPlayer !== null) {
2144 flvPlayer.pause();
2145 }
2146 node.style.display = 'none';
2147 return node;
2148 };
2149
2150 node.show = function () {
2151 node.style.display = '';
2152 return node;
2153 };
2154
2155 node.destroy = function () {
2156 if (flvPlayer !== null) {
2157 flvPlayer.destroy();
2158 }
2159 };
2160
2161 var event = (0, _general.createEvent)('rendererready', node);
2162 mediaElement.dispatchEvent(event);
2163
2164 mediaElement.promises.push(NativeFlv.load({
2165 options: flvOptions,
2166 configs: flvConfigs,
2167 id: id
2168 }));
2169
2170 return node;
2171 }
2172};
2173
2174_media.typeChecks.push(function (url) {
2175 return ~url.toLowerCase().indexOf('.flv') ? 'video/flv' : null;
2176});
2177
2178_renderer.renderer.add(FlvNativeRenderer);
2179
2180},{"16":16,"17":17,"18":18,"19":19,"3":3,"7":7,"8":8}],13:[function(_dereq_,module,exports){
2181'use strict';
2182
2183var _typeof = typeof Symbol === "function" && typeof Symbol.iterator === "symbol" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; };
2184
2185var _window = _dereq_(3);
2186
2187var _window2 = _interopRequireDefault(_window);
2188
2189var _mejs = _dereq_(7);
2190
2191var _mejs2 = _interopRequireDefault(_mejs);
2192
2193var _renderer = _dereq_(8);
2194
2195var _general = _dereq_(18);
2196
2197var _constants = _dereq_(16);
2198
2199var _media = _dereq_(19);
2200
2201var _dom = _dereq_(17);
2202
2203function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2204
2205var NativeHls = {
2206
2207 promise: null,
2208
2209 load: function load(settings) {
2210 if (typeof Hls !== 'undefined') {
2211 NativeHls.promise = new Promise(function (resolve) {
2212 resolve();
2213 }).then(function () {
2214 NativeHls._createPlayer(settings);
2215 });
2216 } else {
2217 settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/hls.js@latest';
2218
2219 NativeHls.promise = NativeHls.promise || (0, _dom.loadScript)(settings.options.path);
2220 NativeHls.promise.then(function () {
2221 NativeHls._createPlayer(settings);
2222 });
2223 }
2224
2225 return NativeHls.promise;
2226 },
2227
2228 _createPlayer: function _createPlayer(settings) {
2229 var player = new Hls(settings.options);
2230 _window2.default['__ready__' + settings.id](player);
2231 return player;
2232 }
2233};
2234
2235var HlsNativeRenderer = {
2236 name: 'native_hls',
2237 options: {
2238 prefix: 'native_hls',
2239 hls: {
2240 path: 'https://cdn.jsdelivr.net/npm/hls.js@latest',
2241
2242 autoStartLoad: false,
2243 debug: false
2244 }
2245 },
2246
2247 canPlayType: function canPlayType(type) {
2248 return _constants.HAS_MSE && ['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) > -1;
2249 },
2250
2251 create: function create(mediaElement, options, mediaFiles) {
2252
2253 var originalNode = mediaElement.originalNode,
2254 id = mediaElement.id + '_' + options.prefix,
2255 preload = originalNode.getAttribute('preload'),
2256 autoplay = originalNode.autoplay;
2257
2258 var hlsPlayer = null,
2259 node = null,
2260 index = 0,
2261 total = mediaFiles.length;
2262
2263 node = originalNode.cloneNode(true);
2264 options = Object.assign(options, mediaElement.options);
2265 options.hls.autoStartLoad = preload && preload !== 'none' || autoplay;
2266
2267 var props = _mejs2.default.html5media.properties,
2268 events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
2269 return e !== 'error';
2270 }),
2271 attachNativeEvents = function attachNativeEvents(e) {
2272 var event = (0, _general.createEvent)(e.type, mediaElement);
2273 mediaElement.dispatchEvent(event);
2274 },
2275 assignGettersSetters = function assignGettersSetters(propName) {
2276 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
2277
2278 node['get' + capName] = function () {
2279 return hlsPlayer !== null ? node[propName] : null;
2280 };
2281
2282 node['set' + capName] = function (value) {
2283 if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
2284 if (propName === 'src') {
2285 node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
2286 if (hlsPlayer !== null) {
2287 hlsPlayer.destroy();
2288 for (var i = 0, _total = events.length; i < _total; i++) {
2289 node.removeEventListener(events[i], attachNativeEvents);
2290 }
2291 hlsPlayer = NativeHls._createPlayer({
2292 options: options.hls,
2293 id: id
2294 });
2295 hlsPlayer.loadSource(value);
2296 hlsPlayer.attachMedia(node);
2297 }
2298 } else {
2299 node[propName] = value;
2300 }
2301 }
2302 };
2303 };
2304
2305 for (var i = 0, _total2 = props.length; i < _total2; i++) {
2306 assignGettersSetters(props[i]);
2307 }
2308
2309 _window2.default['__ready__' + id] = function (_hlsPlayer) {
2310 mediaElement.hlsPlayer = hlsPlayer = _hlsPlayer;
2311 var hlsEvents = Hls.Events,
2312 assignEvents = function assignEvents(eventName) {
2313 if (eventName === 'loadedmetadata') {
2314 var url = mediaElement.originalNode.src;
2315 hlsPlayer.detachMedia();
2316 hlsPlayer.loadSource(url);
2317 hlsPlayer.attachMedia(node);
2318 }
2319
2320 node.addEventListener(eventName, attachNativeEvents);
2321 };
2322
2323 for (var _i = 0, _total3 = events.length; _i < _total3; _i++) {
2324 assignEvents(events[_i]);
2325 }
2326
2327 var recoverDecodingErrorDate = void 0,
2328 recoverSwapAudioCodecDate = void 0;
2329 var assignHlsEvents = function assignHlsEvents(name, data) {
2330 if (name === 'hlsError') {
2331 console.warn(data);
2332 data = data[1];
2333
2334 if (data.fatal) {
2335 switch (data.type) {
2336 case 'mediaError':
2337 var now = new Date().getTime();
2338 if (!recoverDecodingErrorDate || now - recoverDecodingErrorDate > 3000) {
2339 recoverDecodingErrorDate = new Date().getTime();
2340 hlsPlayer.recoverMediaError();
2341 } else if (!recoverSwapAudioCodecDate || now - recoverSwapAudioCodecDate > 3000) {
2342 recoverSwapAudioCodecDate = new Date().getTime();
2343 console.warn('Attempting to swap Audio Codec and recover from media error');
2344 hlsPlayer.swapAudioCodec();
2345 hlsPlayer.recoverMediaError();
2346 } else {
2347 var message = 'Cannot recover, last media error recovery failed';
2348 mediaElement.generateError(message, node.src);
2349 console.error(message);
2350 }
2351 break;
2352 case 'networkError':
2353 if (data.details === 'manifestLoadError') {
2354 if (index < total && mediaFiles[index + 1] !== undefined) {
2355 node.setSrc(mediaFiles[index++].src);
2356 node.load();
2357 node.play();
2358 } else {
2359 var _message = 'Network error';
2360 mediaElement.generateError(_message, mediaFiles);
2361 console.error(_message);
2362 }
2363 } else {
2364 var _message2 = 'Network error';
2365 mediaElement.generateError(_message2, mediaFiles);
2366 console.error(_message2);
2367 }
2368 break;
2369 default:
2370 hlsPlayer.destroy();
2371 break;
2372 }
2373 return;
2374 }
2375 }
2376 var event = (0, _general.createEvent)(name, mediaElement);
2377 event.data = data;
2378 mediaElement.dispatchEvent(event);
2379 };
2380
2381 var _loop = function _loop(eventType) {
2382 if (hlsEvents.hasOwnProperty(eventType)) {
2383 hlsPlayer.on(hlsEvents[eventType], function () {
2384 for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
2385 args[_key] = arguments[_key];
2386 }
2387
2388 return assignHlsEvents(hlsEvents[eventType], args);
2389 });
2390 }
2391 };
2392
2393 for (var eventType in hlsEvents) {
2394 _loop(eventType);
2395 }
2396 };
2397
2398 if (total > 0) {
2399 for (; index < total; index++) {
2400 if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) {
2401 node.setAttribute('src', mediaFiles[index].src);
2402 break;
2403 }
2404 }
2405 }
2406
2407 if (preload !== 'auto' && !autoplay) {
2408 node.addEventListener('play', function () {
2409 if (hlsPlayer !== null) {
2410 hlsPlayer.startLoad();
2411 }
2412 });
2413
2414 node.addEventListener('pause', function () {
2415 if (hlsPlayer !== null) {
2416 hlsPlayer.stopLoad();
2417 }
2418 });
2419 }
2420
2421 node.setAttribute('id', id);
2422
2423 originalNode.parentNode.insertBefore(node, originalNode);
2424 originalNode.autoplay = false;
2425 originalNode.style.display = 'none';
2426
2427 node.setSize = function (width, height) {
2428 node.style.width = width + 'px';
2429 node.style.height = height + 'px';
2430 return node;
2431 };
2432
2433 node.hide = function () {
2434 node.pause();
2435 node.style.display = 'none';
2436 return node;
2437 };
2438
2439 node.show = function () {
2440 node.style.display = '';
2441 return node;
2442 };
2443
2444 node.destroy = function () {
2445 if (hlsPlayer !== null) {
2446 hlsPlayer.stopLoad();
2447 hlsPlayer.destroy();
2448 }
2449 };
2450
2451 var event = (0, _general.createEvent)('rendererready', node);
2452 mediaElement.dispatchEvent(event);
2453
2454 mediaElement.promises.push(NativeHls.load({
2455 options: options.hls,
2456 id: id
2457 }));
2458
2459 return node;
2460 }
2461};
2462
2463_media.typeChecks.push(function (url) {
2464 return ~url.toLowerCase().indexOf('.m3u8') ? 'application/x-mpegURL' : null;
2465});
2466
2467_renderer.renderer.add(HlsNativeRenderer);
2468
2469},{"16":16,"17":17,"18":18,"19":19,"3":3,"7":7,"8":8}],14:[function(_dereq_,module,exports){
2470'use strict';
2471
2472var _window = _dereq_(3);
2473
2474var _window2 = _interopRequireDefault(_window);
2475
2476var _document = _dereq_(2);
2477
2478var _document2 = _interopRequireDefault(_document);
2479
2480var _mejs = _dereq_(7);
2481
2482var _mejs2 = _interopRequireDefault(_mejs);
2483
2484var _renderer = _dereq_(8);
2485
2486var _general = _dereq_(18);
2487
2488var _constants = _dereq_(16);
2489
2490function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2491
2492var HtmlMediaElement = {
2493 name: 'html5',
2494 options: {
2495 prefix: 'html5'
2496 },
2497
2498 canPlayType: function canPlayType(type) {
2499
2500 var mediaElement = _document2.default.createElement('video');
2501
2502 if (_constants.IS_ANDROID && /\/mp(3|4)$/i.test(type) || ~['application/x-mpegurl', 'vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) && _constants.SUPPORTS_NATIVE_HLS) {
2503 return 'yes';
2504 } else if (mediaElement.canPlayType) {
2505 return mediaElement.canPlayType(type.toLowerCase()).replace(/no/, '');
2506 } else {
2507 return '';
2508 }
2509 },
2510
2511 create: function create(mediaElement, options, mediaFiles) {
2512
2513 var id = mediaElement.id + '_' + options.prefix;
2514 var isActive = false;
2515
2516 var node = null;
2517
2518 if (mediaElement.originalNode === undefined || mediaElement.originalNode === null) {
2519 node = _document2.default.createElement('audio');
2520 mediaElement.appendChild(node);
2521 } else {
2522 node = mediaElement.originalNode;
2523 }
2524
2525 node.setAttribute('id', id);
2526
2527 var props = _mejs2.default.html5media.properties,
2528 assignGettersSetters = function assignGettersSetters(propName) {
2529 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
2530
2531 node['get' + capName] = function () {
2532 return node[propName];
2533 };
2534
2535 node['set' + capName] = function (value) {
2536 if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
2537 node[propName] = value;
2538 }
2539 };
2540 };
2541
2542 for (var i = 0, _total = props.length; i < _total; i++) {
2543 assignGettersSetters(props[i]);
2544 }
2545
2546 var events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
2547 return e !== 'error';
2548 }),
2549 assignEvents = function assignEvents(eventName) {
2550 node.addEventListener(eventName, function (e) {
2551 if (isActive) {
2552 var _event = (0, _general.createEvent)(e.type, e.target);
2553 mediaElement.dispatchEvent(_event);
2554 }
2555 });
2556 };
2557
2558 for (var _i = 0, _total2 = events.length; _i < _total2; _i++) {
2559 assignEvents(events[_i]);
2560 }
2561
2562 node.setSize = function (width, height) {
2563 node.style.width = width + 'px';
2564 node.style.height = height + 'px';
2565 return node;
2566 };
2567
2568 node.hide = function () {
2569 isActive = false;
2570 node.style.display = 'none';
2571
2572 return node;
2573 };
2574
2575 node.show = function () {
2576 isActive = true;
2577 node.style.display = '';
2578
2579 return node;
2580 };
2581
2582 var index = 0,
2583 total = mediaFiles.length;
2584 if (total > 0) {
2585 for (; index < total; index++) {
2586 if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) {
2587 node.setAttribute('src', mediaFiles[index].src);
2588 break;
2589 }
2590 }
2591 }
2592
2593 node.addEventListener('error', function (e) {
2594 if (e && e.target && e.target.error && e.target.error.code === 4 && isActive) {
2595 if (index < total && mediaFiles[index + 1] !== undefined) {
2596 node.src = mediaFiles[index++].src;
2597 node.load();
2598 node.play();
2599 } else {
2600 mediaElement.generateError('Media error: Format(s) not supported or source(s) not found', mediaFiles);
2601 }
2602 }
2603 });
2604
2605 var event = (0, _general.createEvent)('rendererready', node);
2606 mediaElement.dispatchEvent(event);
2607
2608 return node;
2609 }
2610};
2611
2612_window2.default.HtmlMediaElement = _mejs2.default.HtmlMediaElement = HtmlMediaElement;
2613
2614_renderer.renderer.add(HtmlMediaElement);
2615
2616},{"16":16,"18":18,"2":2,"3":3,"7":7,"8":8}],15:[function(_dereq_,module,exports){
2617'use strict';
2618
2619var _window = _dereq_(3);
2620
2621var _window2 = _interopRequireDefault(_window);
2622
2623var _document = _dereq_(2);
2624
2625var _document2 = _interopRequireDefault(_document);
2626
2627var _mejs = _dereq_(7);
2628
2629var _mejs2 = _interopRequireDefault(_mejs);
2630
2631var _renderer = _dereq_(8);
2632
2633var _general = _dereq_(18);
2634
2635var _media = _dereq_(19);
2636
2637var _dom = _dereq_(17);
2638
2639function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2640
2641var YouTubeApi = {
2642 isIframeStarted: false,
2643
2644 isIframeLoaded: false,
2645
2646 iframeQueue: [],
2647
2648 enqueueIframe: function enqueueIframe(settings) {
2649 YouTubeApi.isLoaded = typeof YT !== 'undefined' && YT.loaded;
2650
2651 if (YouTubeApi.isLoaded) {
2652 YouTubeApi.createIframe(settings);
2653 } else {
2654 YouTubeApi.loadIframeApi();
2655 YouTubeApi.iframeQueue.push(settings);
2656 }
2657 },
2658
2659 loadIframeApi: function loadIframeApi() {
2660 if (!YouTubeApi.isIframeStarted) {
2661 (0, _dom.loadScript)('https://www.youtube.com/player_api');
2662 YouTubeApi.isIframeStarted = true;
2663 }
2664 },
2665
2666 iFrameReady: function iFrameReady() {
2667
2668 YouTubeApi.isLoaded = true;
2669 YouTubeApi.isIframeLoaded = true;
2670
2671 while (YouTubeApi.iframeQueue.length > 0) {
2672 var settings = YouTubeApi.iframeQueue.pop();
2673 YouTubeApi.createIframe(settings);
2674 }
2675 },
2676
2677 createIframe: function createIframe(settings) {
2678 return new YT.Player(settings.containerId, settings);
2679 },
2680
2681 getYouTubeId: function getYouTubeId(url) {
2682
2683 var youTubeId = '';
2684
2685 if (url.indexOf('?') > 0) {
2686 youTubeId = YouTubeApi.getYouTubeIdFromParam(url);
2687
2688 if (youTubeId === '') {
2689 youTubeId = YouTubeApi.getYouTubeIdFromUrl(url);
2690 }
2691 } else {
2692 youTubeId = YouTubeApi.getYouTubeIdFromUrl(url);
2693 }
2694
2695 var id = youTubeId.substring(youTubeId.lastIndexOf('/') + 1);
2696 youTubeId = id.split('?');
2697 return youTubeId[0];
2698 },
2699
2700 getYouTubeIdFromParam: function getYouTubeIdFromParam(url) {
2701
2702 if (url === undefined || url === null || !url.trim().length) {
2703 return null;
2704 }
2705
2706 var parts = url.split('?'),
2707 parameters = parts[1].split('&');
2708
2709 var youTubeId = '';
2710
2711 for (var i = 0, total = parameters.length; i < total; i++) {
2712 var paramParts = parameters[i].split('=');
2713 if (paramParts[0] === 'v') {
2714 youTubeId = paramParts[1];
2715 break;
2716 }
2717 }
2718
2719 return youTubeId;
2720 },
2721
2722 getYouTubeIdFromUrl: function getYouTubeIdFromUrl(url) {
2723
2724 if (url === undefined || url === null || !url.trim().length) {
2725 return null;
2726 }
2727
2728 var parts = url.split('?');
2729 url = parts[0];
2730 return url.substring(url.lastIndexOf('/') + 1);
2731 },
2732
2733 getYouTubeNoCookieUrl: function getYouTubeNoCookieUrl(url) {
2734 if (url === undefined || url === null || !url.trim().length || url.indexOf('//www.youtube') === -1) {
2735 return url;
2736 }
2737
2738 var parts = url.split('/');
2739 parts[2] = parts[2].replace('.com', '-nocookie.com');
2740 return parts.join('/');
2741 }
2742};
2743
2744var YouTubeIframeRenderer = {
2745 name: 'youtube_iframe',
2746
2747 options: {
2748 prefix: 'youtube_iframe',
2749
2750 youtube: {
2751 autoplay: 0,
2752 controls: 0,
2753 disablekb: 1,
2754 end: 0,
2755 loop: 0,
2756 modestbranding: 0,
2757 playsinline: 0,
2758 rel: 0,
2759 showinfo: 0,
2760 start: 0,
2761 iv_load_policy: 3,
2762
2763 nocookie: false,
2764
2765 imageQuality: null
2766 }
2767 },
2768
2769 canPlayType: function canPlayType(type) {
2770 return ~['video/youtube', 'video/x-youtube'].indexOf(type.toLowerCase());
2771 },
2772
2773 create: function create(mediaElement, options, mediaFiles) {
2774
2775 var youtube = {},
2776 apiStack = [],
2777 readyState = 4;
2778
2779 var youTubeApi = null,
2780 paused = true,
2781 ended = false,
2782 youTubeIframe = null,
2783 volume = 1;
2784
2785 youtube.options = options;
2786 youtube.id = mediaElement.id + '_' + options.prefix;
2787 youtube.mediaElement = mediaElement;
2788
2789 var props = _mejs2.default.html5media.properties,
2790 assignGettersSetters = function assignGettersSetters(propName) {
2791
2792 var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
2793
2794 youtube['get' + capName] = function () {
2795 if (youTubeApi !== null) {
2796 var value = null;
2797
2798 switch (propName) {
2799 case 'currentTime':
2800 return youTubeApi.getCurrentTime();
2801 case 'duration':
2802 return youTubeApi.getDuration();
2803 case 'volume':
2804 volume = youTubeApi.getVolume() / 100;
2805 return volume;
2806 case 'playbackRate':
2807 return youTubeApi.getPlaybackRate();
2808 case 'paused':
2809 return paused;
2810 case 'ended':
2811 return ended;
2812 case 'muted':
2813 return youTubeApi.isMuted();
2814 case 'buffered':
2815 var percentLoaded = youTubeApi.getVideoLoadedFraction(),
2816 duration = youTubeApi.getDuration();
2817 return {
2818 start: function start() {
2819 return 0;
2820 },
2821 end: function end() {
2822 return percentLoaded * duration;
2823 },
2824 length: 1
2825 };
2826 case 'src':
2827 return youTubeApi.getVideoUrl();
2828 case 'readyState':
2829 return readyState;
2830 }
2831
2832 return value;
2833 } else {
2834 return null;
2835 }
2836 };
2837
2838 youtube['set' + capName] = function (value) {
2839 if (youTubeApi !== null) {
2840 switch (propName) {
2841 case 'src':
2842 var url = typeof value === 'string' ? value : value[0].src,
2843 _videoId = YouTubeApi.getYouTubeId(url);
2844
2845 if (mediaElement.originalNode.autoplay) {
2846 youTubeApi.loadVideoById(_videoId);
2847 } else {
2848 youTubeApi.cueVideoById(_videoId);
2849 }
2850 break;
2851 case 'currentTime':
2852 youTubeApi.seekTo(value);
2853 break;
2854 case 'muted':
2855 if (value) {
2856 youTubeApi.mute();
2857 } else {
2858 youTubeApi.unMute();
2859 }
2860 setTimeout(function () {
2861 var event = (0, _general.createEvent)('volumechange', youtube);
2862 mediaElement.dispatchEvent(event);
2863 }, 50);
2864 break;
2865 case 'volume':
2866 volume = value;
2867 youTubeApi.setVolume(value * 100);
2868 setTimeout(function () {
2869 var event = (0, _general.createEvent)('volumechange', youtube);
2870 mediaElement.dispatchEvent(event);
2871 }, 50);
2872 break;
2873 case 'playbackRate':
2874 youTubeApi.setPlaybackRate(value);
2875 setTimeout(function () {
2876 var event = (0, _general.createEvent)('ratechange', youtube);
2877 mediaElement.dispatchEvent(event);
2878 }, 50);
2879 break;
2880 case 'readyState':
2881 var event = (0, _general.createEvent)('canplay', youtube);
2882 mediaElement.dispatchEvent(event);
2883 break;
2884 default:
2885
2886 break;
2887 }
2888 } else {
2889 apiStack.push({ type: 'set', propName: propName, value: value });
2890 }
2891 };
2892 };
2893
2894 for (var i = 0, total = props.length; i < total; i++) {
2895 assignGettersSetters(props[i]);
2896 }
2897
2898 var methods = _mejs2.default.html5media.methods,
2899 assignMethods = function assignMethods(methodName) {
2900 youtube[methodName] = function () {
2901 if (youTubeApi !== null) {
2902 switch (methodName) {
2903 case 'play':
2904 paused = false;
2905 return youTubeApi.playVideo();
2906 case 'pause':
2907 paused = true;
2908 return youTubeApi.pauseVideo();
2909 case 'load':
2910 return null;
2911 }
2912 } else {
2913 apiStack.push({ type: 'call', methodName: methodName });
2914 }
2915 };
2916 };
2917
2918 for (var _i = 0, _total = methods.length; _i < _total; _i++) {
2919 assignMethods(methods[_i]);
2920 }
2921
2922 var errorHandler = function errorHandler(error) {
2923 var message = '';
2924 switch (error.data) {
2925 case 2:
2926 message = 'The request contains an invalid parameter value. Verify that video ID has 11 characters and that contains no invalid characters, such as exclamation points or asterisks.';
2927 break;
2928 case 5:
2929 message = 'The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.';
2930 break;
2931 case 100:
2932 message = 'The video requested was not found. Either video has been removed or has been marked as private.';
2933 break;
2934 case 101:
2935 case 105:
2936 message = 'The owner of the requested video does not allow it to be played in embedded players.';
2937 break;
2938 default:
2939 message = 'Unknown error.';
2940 break;
2941 }
2942 mediaElement.generateError('Code ' + error.data + ': ' + message, mediaFiles);
2943 };
2944
2945 var youtubeContainer = _document2.default.createElement('div');
2946 youtubeContainer.id = youtube.id;
2947
2948 if (youtube.options.youtube.nocookie) {
2949 mediaElement.originalNode.src = YouTubeApi.getYouTubeNoCookieUrl(mediaFiles[0].src);
2950 }
2951
2952 mediaElement.originalNode.parentNode.insertBefore(youtubeContainer, mediaElement.originalNode);
2953 mediaElement.originalNode.style.display = 'none';
2954
2955 var isAudio = mediaElement.originalNode.tagName.toLowerCase() === 'audio',
2956 height = isAudio ? '1' : mediaElement.originalNode.height,
2957 width = isAudio ? '1' : mediaElement.originalNode.width,
2958 videoId = YouTubeApi.getYouTubeId(mediaFiles[0].src),
2959 youtubeSettings = {
2960 id: youtube.id,
2961 containerId: youtubeContainer.id,
2962 videoId: videoId,
2963 height: height,
2964 width: width,
2965 host: youtube.options.youtube && youtube.options.youtube.nocookie ? 'https://www.youtube-nocookie.com' : undefined,
2966 playerVars: Object.assign({
2967 controls: 0,
2968 rel: 0,
2969 disablekb: 1,
2970 showinfo: 0,
2971 modestbranding: 0,
2972 html5: 1,
2973 iv_load_policy: 3
2974 }, youtube.options.youtube),
2975 origin: _window2.default.location.host,
2976 events: {
2977 onReady: function onReady(e) {
2978 mediaElement.youTubeApi = youTubeApi = e.target;
2979 mediaElement.youTubeState = {
2980 paused: true,
2981 ended: false
2982 };
2983
2984 if (apiStack.length) {
2985 for (var _i2 = 0, _total2 = apiStack.length; _i2 < _total2; _i2++) {
2986
2987 var stackItem = apiStack[_i2];
2988
2989 if (stackItem.type === 'set') {
2990 var propName = stackItem.propName,
2991 capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
2992
2993 youtube['set' + capName](stackItem.value);
2994 } else if (stackItem.type === 'call') {
2995 youtube[stackItem.methodName]();
2996 }
2997 }
2998 }
2999
3000 youTubeIframe = youTubeApi.getIframe();
3001
3002 if (mediaElement.originalNode.muted) {
3003 youTubeApi.mute();
3004 }
3005
3006 var events = ['mouseover', 'mouseout'],
3007 assignEvents = function assignEvents(e) {
3008 var newEvent = (0, _general.createEvent)(e.type, youtube);
3009 mediaElement.dispatchEvent(newEvent);
3010 };
3011
3012 for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
3013 youTubeIframe.addEventListener(events[_i3], assignEvents, false);
3014 }
3015
3016 var initEvents = ['rendererready', 'loadedmetadata', 'loadeddata', 'canplay'];
3017
3018 for (var _i4 = 0, _total4 = initEvents.length; _i4 < _total4; _i4++) {
3019 var event = (0, _general.createEvent)(initEvents[_i4], youtube);
3020 mediaElement.dispatchEvent(event);
3021 }
3022 },
3023 onStateChange: function onStateChange(e) {
3024 var events = [];
3025
3026 switch (e.data) {
3027 case -1:
3028 events = ['loadedmetadata'];
3029 paused = true;
3030 ended = false;
3031 break;
3032 case 0:
3033 events = ['ended'];
3034 paused = false;
3035 ended = !youtube.options.youtube.loop;
3036 if (!youtube.options.youtube.loop) {
3037 youtube.stopInterval();
3038 }
3039 break;
3040 case 1:
3041 events = ['play', 'playing'];
3042 paused = false;
3043 ended = false;
3044 youtube.startInterval();
3045 break;
3046 case 2:
3047 events = ['pause'];
3048 paused = true;
3049 ended = false;
3050 youtube.stopInterval();
3051 break;
3052 case 3:
3053 events = ['progress'];
3054 ended = false;
3055 break;
3056 case 5:
3057 events = ['loadeddata', 'loadedmetadata', 'canplay'];
3058 paused = true;
3059 ended = false;
3060 break;
3061 }
3062
3063 for (var _i5 = 0, _total5 = events.length; _i5 < _total5; _i5++) {
3064 var event = (0, _general.createEvent)(events[_i5], youtube);
3065 mediaElement.dispatchEvent(event);
3066 }
3067 },
3068 onError: function onError(e) {
3069 return errorHandler(e);
3070 }
3071 }
3072 };
3073
3074 if (isAudio || mediaElement.originalNode.hasAttribute('playsinline')) {
3075 youtubeSettings.playerVars.playsinline = 1;
3076 }
3077
3078 if (mediaElement.originalNode.controls) {
3079 youtubeSettings.playerVars.controls = 1;
3080 }
3081 if (mediaElement.originalNode.autoplay) {
3082 youtubeSettings.playerVars.autoplay = 1;
3083 }
3084 if (mediaElement.originalNode.loop) {
3085 youtubeSettings.playerVars.loop = 1;
3086 }
3087
3088 if ((youtubeSettings.playerVars.loop && parseInt(youtubeSettings.playerVars.loop, 10) === 1 || mediaElement.originalNode.src.indexOf('loop=') > -1) && !youtubeSettings.playerVars.playlist && mediaElement.originalNode.src.indexOf('playlist=') === -1) {
3089 youtubeSettings.playerVars.playlist = YouTubeApi.getYouTubeId(mediaElement.originalNode.src);
3090 }
3091
3092 YouTubeApi.enqueueIframe(youtubeSettings);
3093
3094 youtube.onEvent = function (eventName, player, _youTubeState) {
3095 if (_youTubeState !== null && _youTubeState !== undefined) {
3096 mediaElement.youTubeState = _youTubeState;
3097 }
3098 };
3099
3100 youtube.setSize = function (width, height) {
3101 if (youTubeApi !== null) {
3102 youTubeApi.setSize(width, height);
3103 }
3104 };
3105 youtube.hide = function () {
3106 youtube.stopInterval();
3107 youtube.pause();
3108 if (youTubeIframe) {
3109 youTubeIframe.style.display = 'none';
3110 }
3111 };
3112 youtube.show = function () {
3113 if (youTubeIframe) {
3114 youTubeIframe.style.display = '';
3115 }
3116 };
3117 youtube.destroy = function () {
3118 youTubeApi.destroy();
3119 };
3120 youtube.interval = null;
3121
3122 youtube.startInterval = function () {
3123 youtube.interval = setInterval(function () {
3124 var event = (0, _general.createEvent)('timeupdate', youtube);
3125 mediaElement.dispatchEvent(event);
3126 }, 250);
3127 };
3128 youtube.stopInterval = function () {
3129 if (youtube.interval) {
3130 clearInterval(youtube.interval);
3131 }
3132 };
3133 youtube.getPosterUrl = function () {
3134 var quality = options.youtube.imageQuality,
3135 resolutions = ['default', 'hqdefault', 'mqdefault', 'sddefault', 'maxresdefault'],
3136 id = YouTubeApi.getYouTubeId(mediaElement.originalNode.src);
3137 return quality && resolutions.indexOf(quality) > -1 && id ? 'https://img.youtube.com/vi/' + id + '/' + quality + '.jpg' : '';
3138 };
3139
3140 return youtube;
3141 }
3142};
3143
3144_window2.default.onYouTubePlayerAPIReady = function () {
3145 YouTubeApi.iFrameReady();
3146};
3147
3148_media.typeChecks.push(function (url) {
3149 return (/\/\/(www\.youtube|youtu\.?be)/i.test(url) ? 'video/x-youtube' : null
3150 );
3151});
3152
3153_renderer.renderer.add(YouTubeIframeRenderer);
3154
3155},{"17":17,"18":18,"19":19,"2":2,"3":3,"7":7,"8":8}],16:[function(_dereq_,module,exports){
3156'use strict';
3157
3158Object.defineProperty(exports, "__esModule", {
3159 value: true
3160});
3161exports.cancelFullScreen = exports.requestFullScreen = exports.isFullScreen = exports.FULLSCREEN_EVENT_NAME = exports.HAS_NATIVE_FULLSCREEN_ENABLED = exports.HAS_TRUE_NATIVE_FULLSCREEN = exports.HAS_IOS_FULLSCREEN = exports.HAS_MS_NATIVE_FULLSCREEN = exports.HAS_MOZ_NATIVE_FULLSCREEN = exports.HAS_WEBKIT_NATIVE_FULLSCREEN = exports.HAS_NATIVE_FULLSCREEN = exports.SUPPORTS_NATIVE_HLS = exports.SUPPORT_PASSIVE_EVENT = exports.SUPPORT_POINTER_EVENTS = exports.HAS_MSE = exports.IS_STOCK_ANDROID = exports.IS_SAFARI = exports.IS_FIREFOX = exports.IS_CHROME = exports.IS_EDGE = exports.IS_IE = exports.IS_ANDROID = exports.IS_IOS = exports.IS_IPOD = exports.IS_IPHONE = exports.IS_IPAD = exports.UA = exports.NAV = undefined;
3162
3163var _window = _dereq_(3);
3164
3165var _window2 = _interopRequireDefault(_window);
3166
3167var _document = _dereq_(2);
3168
3169var _document2 = _interopRequireDefault(_document);
3170
3171var _mejs = _dereq_(7);
3172
3173var _mejs2 = _interopRequireDefault(_mejs);
3174
3175function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3176
3177var NAV = exports.NAV = _window2.default.navigator;
3178var UA = exports.UA = NAV.userAgent.toLowerCase();
3179var IS_IPAD = exports.IS_IPAD = /ipad/i.test(UA) && !_window2.default.MSStream;
3180var IS_IPHONE = exports.IS_IPHONE = /iphone/i.test(UA) && !_window2.default.MSStream;
3181var IS_IPOD = exports.IS_IPOD = /ipod/i.test(UA) && !_window2.default.MSStream;
3182var IS_IOS = exports.IS_IOS = /ipad|iphone|ipod/i.test(UA) && !_window2.default.MSStream;
3183var IS_ANDROID = exports.IS_ANDROID = /android/i.test(UA);
3184var IS_IE = exports.IS_IE = /(trident|microsoft)/i.test(NAV.appName);
3185var IS_EDGE = exports.IS_EDGE = 'msLaunchUri' in NAV && !('documentMode' in _document2.default);
3186var IS_CHROME = exports.IS_CHROME = /chrome/i.test(UA);
3187var IS_FIREFOX = exports.IS_FIREFOX = /firefox/i.test(UA);
3188var IS_SAFARI = exports.IS_SAFARI = /safari/i.test(UA) && !IS_CHROME;
3189var IS_STOCK_ANDROID = exports.IS_STOCK_ANDROID = /^mozilla\/\d+\.\d+\s\(linux;\su;/i.test(UA);
3190var HAS_MSE = exports.HAS_MSE = 'MediaSource' in _window2.default;
3191var SUPPORT_POINTER_EVENTS = exports.SUPPORT_POINTER_EVENTS = function () {
3192 var element = _document2.default.createElement('x'),
3193 documentElement = _document2.default.documentElement,
3194 getComputedStyle = _window2.default.getComputedStyle;
3195
3196 if (!('pointerEvents' in element.style)) {
3197 return false;
3198 }
3199
3200 element.style.pointerEvents = 'auto';
3201 element.style.pointerEvents = 'x';
3202 documentElement.appendChild(element);
3203 var supports = getComputedStyle && (getComputedStyle(element, '') || {}).pointerEvents === 'auto';
3204 element.remove();
3205 return !!supports;
3206}();
3207
3208var SUPPORT_PASSIVE_EVENT = exports.SUPPORT_PASSIVE_EVENT = function () {
3209 var supportsPassive = false;
3210 try {
3211 var opts = Object.defineProperty({}, 'passive', {
3212 get: function get() {
3213 supportsPassive = true;
3214 }
3215 });
3216 _window2.default.addEventListener('test', null, opts);
3217 } catch (e) {}
3218
3219 return supportsPassive;
3220}();
3221
3222var html5Elements = ['source', 'track', 'audio', 'video'];
3223var video = void 0;
3224
3225for (var i = 0, total = html5Elements.length; i < total; i++) {
3226 video = _document2.default.createElement(html5Elements[i]);
3227}
3228
3229var SUPPORTS_NATIVE_HLS = exports.SUPPORTS_NATIVE_HLS = IS_SAFARI || IS_IE && /edge/i.test(UA);
3230
3231var hasiOSFullScreen = video.webkitEnterFullscreen !== undefined;
3232
3233var hasNativeFullscreen = video.requestFullscreen !== undefined;
3234
3235if (hasiOSFullScreen && /mac os x 10_5/i.test(UA)) {
3236 hasNativeFullscreen = false;
3237 hasiOSFullScreen = false;
3238}
3239
3240var hasWebkitNativeFullScreen = video.webkitRequestFullScreen !== undefined;
3241var hasMozNativeFullScreen = video.mozRequestFullScreen !== undefined;
3242var hasMsNativeFullScreen = video.msRequestFullscreen !== undefined;
3243var hasTrueNativeFullScreen = hasWebkitNativeFullScreen || hasMozNativeFullScreen || hasMsNativeFullScreen;
3244var nativeFullScreenEnabled = hasTrueNativeFullScreen;
3245var fullScreenEventName = '';
3246var isFullScreen = void 0,
3247 requestFullScreen = void 0,
3248 cancelFullScreen = void 0;
3249
3250if (hasMozNativeFullScreen) {
3251 nativeFullScreenEnabled = _document2.default.mozFullScreenEnabled;
3252} else if (hasMsNativeFullScreen) {
3253 nativeFullScreenEnabled = _document2.default.msFullscreenEnabled;
3254}
3255
3256if (IS_CHROME) {
3257 hasiOSFullScreen = false;
3258}
3259
3260if (hasTrueNativeFullScreen) {
3261 if (hasWebkitNativeFullScreen) {
3262 fullScreenEventName = 'webkitfullscreenchange';
3263 } else if (hasMozNativeFullScreen) {
3264 fullScreenEventName = 'fullscreenchange';
3265 } else if (hasMsNativeFullScreen) {
3266 fullScreenEventName = 'MSFullscreenChange';
3267 }
3268
3269 exports.isFullScreen = isFullScreen = function isFullScreen() {
3270 if (hasMozNativeFullScreen) {
3271 return _document2.default.mozFullScreen;
3272 } else if (hasWebkitNativeFullScreen) {
3273 return _document2.default.webkitIsFullScreen;
3274 } else if (hasMsNativeFullScreen) {
3275 return _document2.default.msFullscreenElement !== null;
3276 }
3277 };
3278
3279 exports.requestFullScreen = requestFullScreen = function requestFullScreen(el) {
3280 if (hasWebkitNativeFullScreen) {
3281 el.webkitRequestFullScreen();
3282 } else if (hasMozNativeFullScreen) {
3283 el.mozRequestFullScreen();
3284 } else if (hasMsNativeFullScreen) {
3285 el.msRequestFullscreen();
3286 }
3287 };
3288
3289 exports.cancelFullScreen = cancelFullScreen = function cancelFullScreen() {
3290 if (hasWebkitNativeFullScreen) {
3291 _document2.default.webkitCancelFullScreen();
3292 } else if (hasMozNativeFullScreen) {
3293 _document2.default.mozCancelFullScreen();
3294 } else if (hasMsNativeFullScreen) {
3295 _document2.default.msExitFullscreen();
3296 }
3297 };
3298}
3299
3300var HAS_NATIVE_FULLSCREEN = exports.HAS_NATIVE_FULLSCREEN = hasNativeFullscreen;
3301var HAS_WEBKIT_NATIVE_FULLSCREEN = exports.HAS_WEBKIT_NATIVE_FULLSCREEN = hasWebkitNativeFullScreen;
3302var HAS_MOZ_NATIVE_FULLSCREEN = exports.HAS_MOZ_NATIVE_FULLSCREEN = hasMozNativeFullScreen;
3303var HAS_MS_NATIVE_FULLSCREEN = exports.HAS_MS_NATIVE_FULLSCREEN = hasMsNativeFullScreen;
3304var HAS_IOS_FULLSCREEN = exports.HAS_IOS_FULLSCREEN = hasiOSFullScreen;
3305var HAS_TRUE_NATIVE_FULLSCREEN = exports.HAS_TRUE_NATIVE_FULLSCREEN = hasTrueNativeFullScreen;
3306var HAS_NATIVE_FULLSCREEN_ENABLED = exports.HAS_NATIVE_FULLSCREEN_ENABLED = nativeFullScreenEnabled;
3307var FULLSCREEN_EVENT_NAME = exports.FULLSCREEN_EVENT_NAME = fullScreenEventName;
3308exports.isFullScreen = isFullScreen;
3309exports.requestFullScreen = requestFullScreen;
3310exports.cancelFullScreen = cancelFullScreen;
3311
3312
3313_mejs2.default.Features = _mejs2.default.Features || {};
3314_mejs2.default.Features.isiPad = IS_IPAD;
3315_mejs2.default.Features.isiPod = IS_IPOD;
3316_mejs2.default.Features.isiPhone = IS_IPHONE;
3317_mejs2.default.Features.isiOS = _mejs2.default.Features.isiPhone || _mejs2.default.Features.isiPad;
3318_mejs2.default.Features.isAndroid = IS_ANDROID;
3319_mejs2.default.Features.isIE = IS_IE;
3320_mejs2.default.Features.isEdge = IS_EDGE;
3321_mejs2.default.Features.isChrome = IS_CHROME;
3322_mejs2.default.Features.isFirefox = IS_FIREFOX;
3323_mejs2.default.Features.isSafari = IS_SAFARI;
3324_mejs2.default.Features.isStockAndroid = IS_STOCK_ANDROID;
3325_mejs2.default.Features.hasMSE = HAS_MSE;
3326_mejs2.default.Features.supportsNativeHLS = SUPPORTS_NATIVE_HLS;
3327_mejs2.default.Features.supportsPointerEvents = SUPPORT_POINTER_EVENTS;
3328_mejs2.default.Features.supportsPassiveEvent = SUPPORT_PASSIVE_EVENT;
3329_mejs2.default.Features.hasiOSFullScreen = HAS_IOS_FULLSCREEN;
3330_mejs2.default.Features.hasNativeFullscreen = HAS_NATIVE_FULLSCREEN;
3331_mejs2.default.Features.hasWebkitNativeFullScreen = HAS_WEBKIT_NATIVE_FULLSCREEN;
3332_mejs2.default.Features.hasMozNativeFullScreen = HAS_MOZ_NATIVE_FULLSCREEN;
3333_mejs2.default.Features.hasMsNativeFullScreen = HAS_MS_NATIVE_FULLSCREEN;
3334_mejs2.default.Features.hasTrueNativeFullScreen = HAS_TRUE_NATIVE_FULLSCREEN;
3335_mejs2.default.Features.nativeFullScreenEnabled = HAS_NATIVE_FULLSCREEN_ENABLED;
3336_mejs2.default.Features.fullScreenEventName = FULLSCREEN_EVENT_NAME;
3337_mejs2.default.Features.isFullScreen = isFullScreen;
3338_mejs2.default.Features.requestFullScreen = requestFullScreen;
3339_mejs2.default.Features.cancelFullScreen = cancelFullScreen;
3340
3341},{"2":2,"3":3,"7":7}],17:[function(_dereq_,module,exports){
3342'use strict';
3343
3344Object.defineProperty(exports, "__esModule", {
3345 value: true
3346});
3347exports.removeClass = exports.addClass = exports.hasClass = undefined;
3348exports.loadScript = loadScript;
3349exports.offset = offset;
3350exports.toggleClass = toggleClass;
3351exports.fadeOut = fadeOut;
3352exports.fadeIn = fadeIn;
3353exports.siblings = siblings;
3354exports.visible = visible;
3355exports.ajax = ajax;
3356
3357var _window = _dereq_(3);
3358
3359var _window2 = _interopRequireDefault(_window);
3360
3361var _document = _dereq_(2);
3362
3363var _document2 = _interopRequireDefault(_document);
3364
3365var _mejs = _dereq_(7);
3366
3367var _mejs2 = _interopRequireDefault(_mejs);
3368
3369function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3370
3371function loadScript(url) {
3372 return new Promise(function (resolve, reject) {
3373 var script = _document2.default.createElement('script');
3374 script.src = url;
3375 script.async = true;
3376 script.onload = function () {
3377 script.remove();
3378 resolve();
3379 };
3380 script.onerror = function () {
3381 script.remove();
3382 reject();
3383 };
3384 _document2.default.head.appendChild(script);
3385 });
3386}
3387
3388function offset(el) {
3389 var rect = el.getBoundingClientRect(),
3390 scrollLeft = _window2.default.pageXOffset || _document2.default.documentElement.scrollLeft,
3391 scrollTop = _window2.default.pageYOffset || _document2.default.documentElement.scrollTop;
3392 return { top: rect.top + scrollTop, left: rect.left + scrollLeft };
3393}
3394
3395var hasClassMethod = void 0,
3396 addClassMethod = void 0,
3397 removeClassMethod = void 0;
3398
3399if ('classList' in _document2.default.documentElement) {
3400 hasClassMethod = function hasClassMethod(el, className) {
3401 return el.classList !== undefined && el.classList.contains(className);
3402 };
3403 addClassMethod = function addClassMethod(el, className) {
3404 return el.classList.add(className);
3405 };
3406 removeClassMethod = function removeClassMethod(el, className) {
3407 return el.classList.remove(className);
3408 };
3409} else {
3410 hasClassMethod = function hasClassMethod(el, className) {
3411 return new RegExp('\\b' + className + '\\b').test(el.className);
3412 };
3413 addClassMethod = function addClassMethod(el, className) {
3414 if (!hasClass(el, className)) {
3415 el.className += ' ' + className;
3416 }
3417 };
3418 removeClassMethod = function removeClassMethod(el, className) {
3419 el.className = el.className.replace(new RegExp('\\b' + className + '\\b', 'g'), '');
3420 };
3421}
3422
3423var hasClass = exports.hasClass = hasClassMethod;
3424var addClass = exports.addClass = addClassMethod;
3425var removeClass = exports.removeClass = removeClassMethod;
3426
3427function toggleClass(el, className) {
3428 hasClass(el, className) ? removeClass(el, className) : addClass(el, className);
3429}
3430
3431function fadeOut(el) {
3432 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
3433 var callback = arguments[2];
3434
3435 if (!el.style.opacity) {
3436 el.style.opacity = 1;
3437 }
3438
3439 var start = null;
3440 _window2.default.requestAnimationFrame(function animate(timestamp) {
3441 start = start || timestamp;
3442 var progress = timestamp - start;
3443 var opacity = parseFloat(1 - progress / duration, 2);
3444 el.style.opacity = opacity < 0 ? 0 : opacity;
3445 if (progress > duration) {
3446 if (callback && typeof callback === 'function') {
3447 callback();
3448 }
3449 } else {
3450 _window2.default.requestAnimationFrame(animate);
3451 }
3452 });
3453}
3454
3455function fadeIn(el) {
3456 var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
3457 var callback = arguments[2];
3458
3459 if (!el.style.opacity) {
3460 el.style.opacity = 0;
3461 }
3462
3463 var start = null;
3464 _window2.default.requestAnimationFrame(function animate(timestamp) {
3465 start = start || timestamp;
3466 var progress = timestamp - start;
3467 var opacity = parseFloat(progress / duration, 2);
3468 el.style.opacity = opacity > 1 ? 1 : opacity;
3469 if (progress > duration) {
3470 if (callback && typeof callback === 'function') {
3471 callback();
3472 }
3473 } else {
3474 _window2.default.requestAnimationFrame(animate);
3475 }
3476 });
3477}
3478
3479function siblings(el, filter) {
3480 var siblings = [];
3481 el = el.parentNode.firstChild;
3482 do {
3483 if (!filter || filter(el)) {
3484 siblings.push(el);
3485 }
3486 } while (el = el.nextSibling);
3487 return siblings;
3488}
3489
3490function visible(elem) {
3491 if (elem.getClientRects !== undefined && elem.getClientRects === 'function') {
3492 return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);
3493 }
3494 return !!(elem.offsetWidth || elem.offsetHeight);
3495}
3496
3497function ajax(url, dataType, success, error) {
3498 var xhr = _window2.default.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
3499
3500 var type = 'application/x-www-form-urlencoded; charset=UTF-8',
3501 completed = false,
3502 accept = '*/'.concat('*');
3503
3504 switch (dataType) {
3505 case 'text':
3506 type = 'text/plain';
3507 break;
3508 case 'json':
3509 type = 'application/json, text/javascript';
3510 break;
3511 case 'html':
3512 type = 'text/html';
3513 break;
3514 case 'xml':
3515 type = 'application/xml, text/xml';
3516 break;
3517 }
3518
3519 if (type !== 'application/x-www-form-urlencoded') {
3520 accept = type + ', */*; q=0.01';
3521 }
3522
3523 if (xhr) {
3524 xhr.open('GET', url, true);
3525 xhr.setRequestHeader('Accept', accept);
3526 xhr.onreadystatechange = function () {
3527 if (completed) {
3528 return;
3529 }
3530
3531 if (xhr.readyState === 4) {
3532 if (xhr.status === 200) {
3533 completed = true;
3534 var data = void 0;
3535 switch (dataType) {
3536 case 'json':
3537 data = JSON.parse(xhr.responseText);
3538 break;
3539 case 'xml':
3540 data = xhr.responseXML;
3541 break;
3542 default:
3543 data = xhr.responseText;
3544 break;
3545 }
3546 success(data);
3547 } else if (typeof error === 'function') {
3548 error(xhr.status);
3549 }
3550 }
3551 };
3552
3553 xhr.send();
3554 }
3555}
3556
3557_mejs2.default.Utils = _mejs2.default.Utils || {};
3558_mejs2.default.Utils.offset = offset;
3559_mejs2.default.Utils.hasClass = hasClass;
3560_mejs2.default.Utils.addClass = addClass;
3561_mejs2.default.Utils.removeClass = removeClass;
3562_mejs2.default.Utils.toggleClass = toggleClass;
3563_mejs2.default.Utils.fadeIn = fadeIn;
3564_mejs2.default.Utils.fadeOut = fadeOut;
3565_mejs2.default.Utils.siblings = siblings;
3566_mejs2.default.Utils.visible = visible;
3567_mejs2.default.Utils.ajax = ajax;
3568_mejs2.default.Utils.loadScript = loadScript;
3569
3570},{"2":2,"3":3,"7":7}],18:[function(_dereq_,module,exports){
3571'use strict';
3572
3573Object.defineProperty(exports, "__esModule", {
3574 value: true
3575});
3576exports.escapeHTML = escapeHTML;
3577exports.debounce = debounce;
3578exports.isObjectEmpty = isObjectEmpty;
3579exports.splitEvents = splitEvents;
3580exports.createEvent = createEvent;
3581exports.isNodeAfter = isNodeAfter;
3582exports.isString = isString;
3583
3584var _mejs = _dereq_(7);
3585
3586var _mejs2 = _interopRequireDefault(_mejs);
3587
3588function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3589
3590function escapeHTML(input) {
3591
3592 if (typeof input !== 'string') {
3593 throw new Error('Argument passed must be a string');
3594 }
3595
3596 var map = {
3597 '&': '&amp;',
3598 '<': '&lt;',
3599 '>': '&gt;',
3600 '"': '&quot;'
3601 };
3602
3603 return input.replace(/[&<>"]/g, function (c) {
3604 return map[c];
3605 });
3606}
3607
3608function debounce(func, wait) {
3609 var _this = this,
3610 _arguments = arguments;
3611
3612 var immediate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
3613
3614
3615 if (typeof func !== 'function') {
3616 throw new Error('First argument must be a function');
3617 }
3618
3619 if (typeof wait !== 'number') {
3620 throw new Error('Second argument must be a numeric value');
3621 }
3622
3623 var timeout = void 0;
3624 return function () {
3625 var context = _this,
3626 args = _arguments;
3627 var later = function later() {
3628 timeout = null;
3629 if (!immediate) {
3630 func.apply(context, args);
3631 }
3632 };
3633 var callNow = immediate && !timeout;
3634 clearTimeout(timeout);
3635 timeout = setTimeout(later, wait);
3636
3637 if (callNow) {
3638 func.apply(context, args);
3639 }
3640 };
3641}
3642
3643function isObjectEmpty(instance) {
3644 return Object.getOwnPropertyNames(instance).length <= 0;
3645}
3646
3647function splitEvents(events, id) {
3648 var rwindow = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;
3649
3650 var ret = { d: [], w: [] };
3651 (events || '').split(' ').forEach(function (v) {
3652 var eventName = '' + v + (id ? '.' + id : '');
3653
3654 if (eventName.startsWith('.')) {
3655 ret.d.push(eventName);
3656 ret.w.push(eventName);
3657 } else {
3658 ret[rwindow.test(v) ? 'w' : 'd'].push(eventName);
3659 }
3660 });
3661
3662 ret.d = ret.d.join(' ');
3663 ret.w = ret.w.join(' ');
3664 return ret;
3665}
3666
3667function createEvent(eventName, target) {
3668
3669 if (typeof eventName !== 'string') {
3670 throw new Error('Event name must be a string');
3671 }
3672
3673 var eventFrags = eventName.match(/([a-z]+\.([a-z]+))/i),
3674 detail = {
3675 target: target
3676 };
3677
3678 if (eventFrags !== null) {
3679 eventName = eventFrags[1];
3680 detail.namespace = eventFrags[2];
3681 }
3682
3683 return new window.CustomEvent(eventName, {
3684 detail: detail
3685 });
3686}
3687
3688function isNodeAfter(sourceNode, targetNode) {
3689
3690 return !!(sourceNode && targetNode && sourceNode.compareDocumentPosition(targetNode) & 2);
3691}
3692
3693function isString(value) {
3694 return typeof value === 'string';
3695}
3696
3697_mejs2.default.Utils = _mejs2.default.Utils || {};
3698_mejs2.default.Utils.escapeHTML = escapeHTML;
3699_mejs2.default.Utils.debounce = debounce;
3700_mejs2.default.Utils.isObjectEmpty = isObjectEmpty;
3701_mejs2.default.Utils.splitEvents = splitEvents;
3702_mejs2.default.Utils.createEvent = createEvent;
3703_mejs2.default.Utils.isNodeAfter = isNodeAfter;
3704_mejs2.default.Utils.isString = isString;
3705
3706},{"7":7}],19:[function(_dereq_,module,exports){
3707'use strict';
3708
3709Object.defineProperty(exports, "__esModule", {
3710 value: true
3711});
3712exports.typeChecks = undefined;
3713exports.absolutizeUrl = absolutizeUrl;
3714exports.formatType = formatType;
3715exports.getMimeFromType = getMimeFromType;
3716exports.getTypeFromFile = getTypeFromFile;
3717exports.getExtension = getExtension;
3718exports.normalizeExtension = normalizeExtension;
3719
3720var _mejs = _dereq_(7);
3721
3722var _mejs2 = _interopRequireDefault(_mejs);
3723
3724var _general = _dereq_(18);
3725
3726function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3727
3728var typeChecks = exports.typeChecks = [];
3729
3730function absolutizeUrl(url) {
3731
3732 if (typeof url !== 'string') {
3733 throw new Error('`url` argument must be a string');
3734 }
3735
3736 var el = document.createElement('div');
3737 el.innerHTML = '<a href="' + (0, _general.escapeHTML)(url) + '">x</a>';
3738 return el.firstChild.href;
3739}
3740
3741function formatType(url) {
3742 var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
3743
3744 return url && !type ? getTypeFromFile(url) : type;
3745}
3746
3747function getMimeFromType(type) {
3748
3749 if (typeof type !== 'string') {
3750 throw new Error('`type` argument must be a string');
3751 }
3752
3753 return type && type.indexOf(';') > -1 ? type.substr(0, type.indexOf(';')) : type;
3754}
3755
3756function getTypeFromFile(url) {
3757
3758 if (typeof url !== 'string') {
3759 throw new Error('`url` argument must be a string');
3760 }
3761
3762 for (var i = 0, total = typeChecks.length; i < total; i++) {
3763 var type = typeChecks[i](url);
3764
3765 if (type) {
3766 return type;
3767 }
3768 }
3769
3770 var ext = getExtension(url),
3771 normalizedExt = normalizeExtension(ext);
3772
3773 var mime = 'video/mp4';
3774
3775 if (normalizedExt) {
3776 if (~['mp4', 'm4v', 'ogg', 'ogv', 'webm', 'flv', 'mpeg'].indexOf(normalizedExt)) {
3777 mime = 'video/' + normalizedExt;
3778 } else if ('mov' === normalizedExt) {
3779 mime = 'video/quicktime';
3780 } else if (~['mp3', 'oga', 'wav', 'mid', 'midi'].indexOf(normalizedExt)) {
3781 mime = 'audio/' + normalizedExt;
3782 }
3783 }
3784
3785 return mime;
3786}
3787
3788function getExtension(url) {
3789
3790 if (typeof url !== 'string') {
3791 throw new Error('`url` argument must be a string');
3792 }
3793
3794 var baseUrl = url.split('?')[0],
3795 baseName = baseUrl.split('\\').pop().split('/').pop();
3796 return ~baseName.indexOf('.') ? baseName.substring(baseName.lastIndexOf('.') + 1) : '';
3797}
3798
3799function normalizeExtension(extension) {
3800
3801 if (typeof extension !== 'string') {
3802 throw new Error('`extension` argument must be a string');
3803 }
3804
3805 switch (extension) {
3806 case 'mp4':
3807 case 'm4v':
3808 return 'mp4';
3809 case 'webm':
3810 case 'webma':
3811 case 'webmv':
3812 return 'webm';
3813 case 'ogg':
3814 case 'oga':
3815 case 'ogv':
3816 return 'ogg';
3817 default:
3818 return extension;
3819 }
3820}
3821
3822_mejs2.default.Utils = _mejs2.default.Utils || {};
3823_mejs2.default.Utils.typeChecks = typeChecks;
3824_mejs2.default.Utils.absolutizeUrl = absolutizeUrl;
3825_mejs2.default.Utils.formatType = formatType;
3826_mejs2.default.Utils.getMimeFromType = getMimeFromType;
3827_mejs2.default.Utils.getTypeFromFile = getTypeFromFile;
3828_mejs2.default.Utils.getExtension = getExtension;
3829_mejs2.default.Utils.normalizeExtension = normalizeExtension;
3830
3831},{"18":18,"7":7}],20:[function(_dereq_,module,exports){
3832'use strict';
3833
3834var _document = _dereq_(2);
3835
3836var _document2 = _interopRequireDefault(_document);
3837
3838var _promisePolyfill = _dereq_(4);
3839
3840var _promisePolyfill2 = _interopRequireDefault(_promisePolyfill);
3841
3842function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3843
3844(function (arr) {
3845 arr.forEach(function (item) {
3846 if (item.hasOwnProperty('remove')) {
3847 return;
3848 }
3849 Object.defineProperty(item, 'remove', {
3850 configurable: true,
3851 enumerable: true,
3852 writable: true,
3853 value: function remove() {
3854 this.parentNode.removeChild(this);
3855 }
3856 });
3857 });
3858})([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
3859
3860(function () {
3861
3862 if (typeof window.CustomEvent === 'function') {
3863 return false;
3864 }
3865
3866 function CustomEvent(event, params) {
3867 params = params || { bubbles: false, cancelable: false, detail: undefined };
3868 var evt = _document2.default.createEvent('CustomEvent');
3869 evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
3870 return evt;
3871 }
3872
3873 CustomEvent.prototype = window.Event.prototype;
3874 window.CustomEvent = CustomEvent;
3875})();
3876
3877if (typeof Object.assign !== 'function') {
3878 Object.assign = function (target) {
3879
3880 if (target === null || target === undefined) {
3881 throw new TypeError('Cannot convert undefined or null to object');
3882 }
3883
3884 var to = Object(target);
3885
3886 for (var index = 1, total = arguments.length; index < total; index++) {
3887 var nextSource = arguments[index];
3888
3889 if (nextSource !== null) {
3890 for (var nextKey in nextSource) {
3891 if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
3892 to[nextKey] = nextSource[nextKey];
3893 }
3894 }
3895 }
3896 }
3897 return to;
3898 };
3899}
3900
3901if (!String.prototype.startsWith) {
3902 String.prototype.startsWith = function (searchString, position) {
3903 position = position || 0;
3904 return this.substr(position, searchString.length) === searchString;
3905 };
3906}
3907
3908if (!Element.prototype.matches) {
3909 Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) {
3910 var matches = (this.document || this.ownerDocument).querySelectorAll(s),
3911 i = matches.length - 1;
3912 while (--i >= 0 && matches.item(i) !== this) {}
3913 return i > -1;
3914 };
3915}
3916
3917if (window.Element && !Element.prototype.closest) {
3918 Element.prototype.closest = function (s) {
3919 var matches = (this.document || this.ownerDocument).querySelectorAll(s),
3920 i = void 0,
3921 el = this;
3922 do {
3923 i = matches.length;
3924 while (--i >= 0 && matches.item(i) !== el) {}
3925 } while (i < 0 && (el = el.parentElement));
3926 return el;
3927 };
3928}
3929
3930(function () {
3931 var lastTime = 0;
3932 var vendors = ['ms', 'moz', 'webkit', 'o'];
3933 for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
3934 window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
3935 window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];
3936 }
3937
3938 if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback) {
3939 var currTime = new Date().getTime();
3940 var timeToCall = Math.max(0, 16 - (currTime - lastTime));
3941 var id = window.setTimeout(function () {
3942 callback(currTime + timeToCall);
3943 }, timeToCall);
3944 lastTime = currTime + timeToCall;
3945 return id;
3946 };
3947
3948 if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) {
3949 clearTimeout(id);
3950 };
3951})();
3952
3953if (/firefox/i.test(navigator.userAgent)) {
3954 var getComputedStyle = window.getComputedStyle;
3955 window.getComputedStyle = function (el, pseudoEl) {
3956 var t = getComputedStyle(el, pseudoEl);
3957 return t === null ? { getPropertyValue: function getPropertyValue() {} } : t;
3958 };
3959}
3960
3961if (!window.Promise) {
3962 window.Promise = _promisePolyfill2.default;
3963}
3964
3965(function (constructor) {
3966 if (constructor && constructor.prototype && constructor.prototype.children === null) {
3967 Object.defineProperty(constructor.prototype, 'children', {
3968 get: function get() {
3969 var i = 0,
3970 node = void 0,
3971 nodes = this.childNodes,
3972 children = [];
3973 while (node = nodes[i++]) {
3974 if (node.nodeType === 1) {
3975 children.push(node);
3976 }
3977 }
3978 return children;
3979 }
3980 });
3981 }
3982})(window.Node || window.Element);
3983
3984},{"2":2,"4":4}]},{},[20,6,5,9,14,11,10,12,13,15]);
3985
Ui Ux Design – Teachers Night Out https://cardgames4educators.com Wed, 16 Oct 2024 22:24:18 +0000 en-US hourly 1 https://wordpress.org/?v=6.9.4 https://cardgames4educators.com/wp-content/uploads/2024/06/cropped-Card-4-Educators-logo-32x32.png Ui Ux Design – Teachers Night Out https://cardgames4educators.com 32 32 Masters In English How English Speaker https://cardgames4educators.com/masters-in-english-how-english-speaker/ https://cardgames4educators.com/masters-in-english-how-english-speaker/#comments Mon, 27 May 2024 08:54:45 +0000 https://themexriver.com/wp/kadu/?p=1

Erat himenaeos neque id sagittis massa. Hac suscipit pulvinar dignissim platea magnis eu. Don tellus a pharetra inceptos efficitur dui pulvinar. Feugiat facilisis penatibus pulvinar nunc dictumst donec odio platea habitasse. Lacus porta dolor purus elit ante bibendum tortor netus taciti nullam cubilia. Erat per suspendisse placerat morbi egestas pulvinar bibendum sollicitudin nec. Euismod cubilia eleifend velit himenaeos sodales lectus. Leo maximus cras ac porttitor aliquam torquent pulvinar odio volutpat parturient. Quisque risus finibus suspendisse mus purus magnis facilisi condimentum consectetur dui. Curae elit suspendisse cursus vehicula.

Turpis taciti class non vel pretium quis pulvinar tempor lobortis nunc. Libero phasellus parturient sapien volutpat malesuada ornare. Cubilia dignissim sollicitudin rhoncus lacinia maximus. Cras lorem fermentum bibendum pellentesque nisl etiam ligula enim cubilia. Vulputate pede sapien torquent montes tempus malesuada in mattis dis turpis vitae. Porta est tempor ex eget feugiat vulputate ipsum. Justo nec iaculis habitant diam arcu fermentum.

We offer comprehen sive emplo ment services such as assistance wit employer compliance.Our company is your strategic HR partner as instead of HR. john smithson

Cubilia dignissim sollicitudin rhoncus lacinia maximus. Cras lorem fermentum bibendum pellentesque nisl etiam ligula enim cubilia. Vulputate pede sapien torquent montes tempus malesuada in mattis dis turpis vitae.

Exploring Learning Landscapes in Academic

Feugiat facilisis penatibus pulvinar nunc dictumst donec odio platea habitasse. Lacus porta dolor purus elit ante bibendum tortor netus taciti nullam cubilia. Erat per suspendisse placerat morbi egestas pulvinar bibendum sollicitudin nec. Euismod cubilia eleifend velit himenaeos sodales lectus. Leo maximus cras ac porttitor aliquam torquent.

]]>
https://cardgames4educators.com/masters-in-english-how-english-speaker/feed/ 1