Diff: STRATO-apps/wordpress_03/app/wp-includes/js/mediaelement/mediaelement-and-player.js

Keine Baseline-Datei – Diff nur gegen leer.
Zur Liste
1 -
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){
15 + var topLevel = typeof global !== 'undefined' ? global :
16 + typeof window !== 'undefined' ? window : {}
17 + var minDoc = _dereq_(1);
18 +
19 + var doccy;
20 +
21 + if (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 +
31 + module.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){
36 + var win;
37 +
38 + if (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 +
48 + module.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 +
289 + Object.defineProperty(exports, "__esModule", {
290 + value: true
291 + });
292 +
293 + var _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 +
295 + var _mejs = _dereq_(7);
296 +
297 + var _mejs2 = _interopRequireDefault(_mejs);
298 +
299 + var _en = _dereq_(15);
300 +
301 + var _general = _dereq_(27);
302 +
303 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
304 +
305 + var i18n = { lang: 'en', en: _en.EN };
306 +
307 + i18n.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 +
335 + i18n.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 +
547 + if (typeof mejsL10n !== 'undefined') {
548 + _mejs2.default.i18n.language(mejsL10n.language, mejsL10n.strings);
549 + }
550 +
551 + exports.default = i18n;
552 +
553 + },{"15":15,"27":27,"7":7}],6:[function(_dereq_,module,exports){
554 + 'use strict';
555 +
556 + Object.defineProperty(exports, "__esModule", {
557 + value: true
558 + });
559 +
560 + var _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 +
562 + var _window = _dereq_(3);
563 +
564 + var _window2 = _interopRequireDefault(_window);
565 +
566 + var _document = _dereq_(2);
567 +
568 + var _document2 = _interopRequireDefault(_document);
569 +
570 + var _mejs = _dereq_(7);
571 +
572 + var _mejs2 = _interopRequireDefault(_mejs);
573 +
574 + var _general = _dereq_(27);
575 +
576 + var _media2 = _dereq_(28);
577 +
578 + var _renderer = _dereq_(8);
579 +
580 + var _constants = _dereq_(25);
581 +
582 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
583 +
584 + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
585 +
586 + var 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 +
1004 + exports.default = MediaElement;
1005 +
1006 + },{"2":2,"25":25,"27":27,"28":28,"3":3,"7":7,"8":8}],7:[function(_dereq_,module,exports){
1007 + 'use strict';
1008 +
1009 + Object.defineProperty(exports, "__esModule", {
1010 + value: true
1011 + });
1012 +
1013 + var _window = _dereq_(3);
1014 +
1015 + var _window2 = _interopRequireDefault(_window);
1016 +
1017 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1018 +
1019 + var mejs = {};
1020 +
1021 + mejs.version = '4.2.17';
1022 +
1023 + mejs.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 +
1036 + exports.default = mejs;
1037 +
1038 + },{"3":3}],8:[function(_dereq_,module,exports){
1039 + 'use strict';
1040 +
1041 + Object.defineProperty(exports, "__esModule", {
1042 + value: true
1043 + });
1044 + exports.renderer = undefined;
1045 +
1046 + var _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 +
1048 + var _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 +
1050 + var _mejs = _dereq_(7);
1051 +
1052 + var _mejs2 = _interopRequireDefault(_mejs);
1053 +
1054 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1055 +
1056 + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1057 +
1058 + var 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 +
1148 + var renderer = exports.renderer = new Renderer();
1149 +
1150 + _mejs2.default.Renderers = renderer;
1151 +
1152 + },{"7":7}],9:[function(_dereq_,module,exports){
1153 + 'use strict';
1154 +
1155 + var _window = _dereq_(3);
1156 +
1157 + var _window2 = _interopRequireDefault(_window);
1158 +
1159 + var _document = _dereq_(2);
1160 +
1161 + var _document2 = _interopRequireDefault(_document);
1162 +
1163 + var _i18n = _dereq_(5);
1164 +
1165 + var _i18n2 = _interopRequireDefault(_i18n);
1166 +
1167 + var _player = _dereq_(16);
1168 +
1169 + var _player2 = _interopRequireDefault(_player);
1170 +
1171 + var _constants = _dereq_(25);
1172 +
1173 + var Features = _interopRequireWildcard(_constants);
1174 +
1175 + var _general = _dereq_(27);
1176 +
1177 + var _dom = _dereq_(26);
1178 +
1179 + var _media = _dereq_(28);
1180 +
1181 + function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
1182 +
1183 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1184 +
1185 + Object.assign(_player.config, {
1186 + usePluginFullScreen: true,
1187 +
1188 + fullscreenText: null,
1189 +
1190 + useFakeFullscreen: false
1191 + });
1192 +
1193 + Object.assign(_player2.default.prototype, {
1194 + isFullScreen: false,
1195 +
1196 + isNativeFullScreen: false,
1197 +
1198 + isInIframe: false,
1199 +
1200 + isPluginClickThroughCreated: false,
1201 +
1202 + fullscreenMode: '',
1203 +
1204 + containerSizeTimeout: null,
1205 +
1206 + buildfullscreen: function buildfullscreen(player) {
1207 + if (!player.isVideo) {
1208 + return;
1209 + }
1210 +
1211 + player.isInIframe = _window2.default.location !== _window2.default.parent.location;
1212 +
1213 + player.detectFullscreenMode();
1214 +
1215 + var t = this,
1216 + fullscreenTitle = (0, _general.isString)(t.options.fullscreenText) ? t.options.fullscreenText : _i18n2.default.t('mejs.fullscreen'),
1217 + fullscreenBtn = _document2.default.createElement('div');
1218 +
1219 + fullscreenBtn.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'fullscreen-button';
1220 + fullscreenBtn.innerHTML = '<button type="button" aria-controls="' + t.id + '" title="' + fullscreenTitle + '" aria-label="' + fullscreenTitle + '" tabindex="0"></button>';
1221 + t.addControlElement(fullscreenBtn, 'fullscreen');
1222 +
1223 + fullscreenBtn.addEventListener('click', function () {
1224 + var isFullScreen = Features.HAS_TRUE_NATIVE_FULLSCREEN && Features.IS_FULLSCREEN || player.isFullScreen;
1225 +
1226 + if (isFullScreen) {
1227 + player.exitFullScreen();
1228 + } else {
1229 + player.enterFullScreen();
1230 + }
1231 + });
1232 +
1233 + player.fullscreenBtn = fullscreenBtn;
1234 +
1235 + t.options.keyActions.push({
1236 + keys: [70],
1237 + action: function action(player, media, key, event) {
1238 + if (!event.ctrlKey) {
1239 + if (typeof player.enterFullScreen !== 'undefined') {
1240 + if (player.isFullScreen) {
1241 + player.exitFullScreen();
1242 + } else {
1243 + player.enterFullScreen();
1244 + }
1245 + }
1246 + }
1247 + }
1248 + });
1249 +
1250 + t.exitFullscreenCallback = function (e) {
1251 + var key = e.which || e.keyCode || 0;
1252 + if (t.options.enableKeyboard && key === 27 && (Features.HAS_TRUE_NATIVE_FULLSCREEN && Features.IS_FULLSCREEN || t.isFullScreen)) {
1253 + player.exitFullScreen();
1254 + }
1255 + };
1256 +
1257 + t.globalBind('keydown', t.exitFullscreenCallback);
1258 +
1259 + t.normalHeight = 0;
1260 + t.normalWidth = 0;
1261 +
1262 + if (Features.HAS_TRUE_NATIVE_FULLSCREEN) {
1263 + var fullscreenChanged = function fullscreenChanged() {
1264 + if (player.isFullScreen) {
1265 + if (Features.isFullScreen()) {
1266 + player.isNativeFullScreen = true;
1267 +
1268 + player.setControlsSize();
1269 + } else {
1270 + player.isNativeFullScreen = false;
1271 +
1272 + player.exitFullScreen();
1273 + }
1274 + }
1275 + };
1276 +
1277 + player.globalBind(Features.FULLSCREEN_EVENT_NAME, fullscreenChanged);
1278 + }
1279 + },
1280 + cleanfullscreen: function cleanfullscreen(player) {
1281 + player.exitFullScreen();
1282 + player.globalUnbind('keydown', player.exitFullscreenCallback);
1283 + },
1284 + detectFullscreenMode: function detectFullscreenMode() {
1285 + var t = this,
1286 + isNative = t.media.rendererName !== null && /(native|html5)/i.test(t.media.rendererName);
1287 +
1288 + var mode = '';
1289 +
1290 + if (Features.HAS_TRUE_NATIVE_FULLSCREEN && isNative) {
1291 + mode = 'native-native';
1292 + } else if (Features.HAS_TRUE_NATIVE_FULLSCREEN && !isNative) {
1293 + mode = 'plugin-native';
1294 + } else if (t.usePluginFullScreen && Features.SUPPORT_POINTER_EVENTS) {
1295 + mode = 'plugin-click';
1296 + }
1297 +
1298 + t.fullscreenMode = mode;
1299 + return mode;
1300 + },
1301 + enterFullScreen: function enterFullScreen() {
1302 + var t = this,
1303 + isNative = t.media.rendererName !== null && /(html5|native)/i.test(t.media.rendererName),
1304 + containerStyles = getComputedStyle(t.getElement(t.container));
1305 +
1306 + if (!t.isVideo) {
1307 + return;
1308 + }
1309 +
1310 + if (t.options.useFakeFullscreen === false && (Features.IS_IOS || Features.IS_SAFARI) && Features.HAS_IOS_FULLSCREEN && typeof t.media.originalNode.webkitEnterFullscreen === 'function' && t.media.originalNode.canPlayType((0, _media.getTypeFromFile)(t.media.getSrc()))) {
1311 + t.media.originalNode.webkitEnterFullscreen();
1312 + return;
1313 + }
1314 +
1315 + (0, _dom.addClass)(_document2.default.documentElement, t.options.classPrefix + 'fullscreen');
1316 + (0, _dom.addClass)(t.getElement(t.container), t.options.classPrefix + 'container-fullscreen');
1317 +
1318 + t.normalHeight = parseFloat(containerStyles.height);
1319 + t.normalWidth = parseFloat(containerStyles.width);
1320 +
1321 + if (t.fullscreenMode === 'native-native' || t.fullscreenMode === 'plugin-native') {
1322 + Features.requestFullScreen(t.getElement(t.container));
1323 +
1324 + if (t.isInIframe) {
1325 + setTimeout(function checkFullscreen() {
1326 +
1327 + if (t.isNativeFullScreen) {
1328 + var percentErrorMargin = 0.002,
1329 + windowWidth = _window2.default.innerWidth || _document2.default.documentElement.clientWidth || _document2.default.body.clientWidth,
1330 + screenWidth = screen.width,
1331 + absDiff = Math.abs(screenWidth - windowWidth),
1332 + marginError = screenWidth * percentErrorMargin;
1333 +
1334 + if (absDiff > marginError) {
1335 + t.exitFullScreen();
1336 + } else {
1337 + setTimeout(checkFullscreen, 500);
1338 + }
1339 + }
1340 + }, 1000);
1341 + }
1342 + }
1343 +
1344 + t.getElement(t.container).style.width = '100%';
1345 + t.getElement(t.container).style.height = '100%';
1346 +
1347 + t.containerSizeTimeout = setTimeout(function () {
1348 + t.getElement(t.container).style.width = '100%';
1349 + t.getElement(t.container).style.height = '100%';
1350 + t.setControlsSize();
1351 + }, 500);
1352 +
1353 + if (isNative) {
1354 + t.node.style.width = '100%';
1355 + t.node.style.height = '100%';
1356 + } else {
1357 + var elements = t.getElement(t.container).querySelectorAll('embed, object, video'),
1358 + _total = elements.length;
1359 + for (var i = 0; i < _total; i++) {
1360 + elements[i].style.width = '100%';
1361 + elements[i].style.height = '100%';
1362 + }
1363 + }
1364 +
1365 + if (t.options.setDimensions && typeof t.media.setSize === 'function') {
1366 + t.media.setSize(screen.width, screen.height);
1367 + }
1368 +
1369 + var layers = t.getElement(t.layers).children,
1370 + total = layers.length;
1371 + for (var _i = 0; _i < total; _i++) {
1372 + layers[_i].style.width = '100%';
1373 + layers[_i].style.height = '100%';
1374 + }
1375 +
1376 + if (t.fullscreenBtn) {
1377 + (0, _dom.removeClass)(t.fullscreenBtn, t.options.classPrefix + 'fullscreen');
1378 + (0, _dom.addClass)(t.fullscreenBtn, t.options.classPrefix + 'unfullscreen');
1379 + }
1380 +
1381 + t.setControlsSize();
1382 + t.isFullScreen = true;
1383 +
1384 + var zoomFactor = Math.min(screen.width / t.width, screen.height / t.height),
1385 + captionText = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'captions-text');
1386 + if (captionText) {
1387 + captionText.style.fontSize = zoomFactor * 100 + '%';
1388 + captionText.style.lineHeight = 'normal';
1389 + t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'captions-position').style.bottom = (screen.height - t.normalHeight) / 2 - t.getElement(t.controls).offsetHeight / 2 + zoomFactor + 15 + 'px';
1390 + }
1391 + var event = (0, _general.createEvent)('enteredfullscreen', t.getElement(t.container));
1392 + t.getElement(t.container).dispatchEvent(event);
1393 + },
1394 + exitFullScreen: function exitFullScreen() {
1395 + var t = this,
1396 + isNative = t.media.rendererName !== null && /(native|html5)/i.test(t.media.rendererName);
1397 +
1398 + if (!t.isVideo) {
1399 + return;
1400 + }
1401 +
1402 + clearTimeout(t.containerSizeTimeout);
1403 +
1404 + if (Features.HAS_TRUE_NATIVE_FULLSCREEN && (Features.IS_FULLSCREEN || t.isFullScreen)) {
1405 + Features.cancelFullScreen();
1406 + }
1407 +
1408 + (0, _dom.removeClass)(_document2.default.documentElement, t.options.classPrefix + 'fullscreen');
1409 + (0, _dom.removeClass)(t.getElement(t.container), t.options.classPrefix + 'container-fullscreen');
1410 +
1411 + if (t.options.setDimensions) {
1412 + t.getElement(t.container).style.width = t.normalWidth + 'px';
1413 + t.getElement(t.container).style.height = t.normalHeight + 'px';
1414 +
1415 + if (isNative) {
1416 + t.node.style.width = t.normalWidth + 'px';
1417 + t.node.style.height = t.normalHeight + 'px';
1418 + } else {
1419 + var elements = t.getElement(t.container).querySelectorAll('embed, object, video'),
1420 + _total2 = elements.length;
1421 + for (var i = 0; i < _total2; i++) {
1422 + elements[i].style.width = t.normalWidth + 'px';
1423 + elements[i].style.height = t.normalHeight + 'px';
1424 + }
1425 + }
1426 +
1427 + if (typeof t.media.setSize === 'function') {
1428 + t.media.setSize(t.normalWidth, t.normalHeight);
1429 + }
1430 +
1431 + var layers = t.getElement(t.layers).children,
1432 + total = layers.length;
1433 + for (var _i2 = 0; _i2 < total; _i2++) {
1434 + layers[_i2].style.width = t.normalWidth + 'px';
1435 + layers[_i2].style.height = t.normalHeight + 'px';
1436 + }
1437 + }
1438 +
1439 + if (t.fullscreenBtn) {
1440 + (0, _dom.removeClass)(t.fullscreenBtn, t.options.classPrefix + 'unfullscreen');
1441 + (0, _dom.addClass)(t.fullscreenBtn, t.options.classPrefix + 'fullscreen');
1442 + }
1443 +
1444 + t.setControlsSize();
1445 + t.isFullScreen = false;
1446 +
1447 + var captionText = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'captions-text');
1448 + if (captionText) {
1449 + captionText.style.fontSize = '';
1450 + captionText.style.lineHeight = '';
1451 + t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'captions-position').style.bottom = '';
1452 + }
1453 + var event = (0, _general.createEvent)('exitedfullscreen', t.getElement(t.container));
1454 + t.getElement(t.container).dispatchEvent(event);
1455 + }
1456 + });
1457 +
1458 + },{"16":16,"2":2,"25":25,"26":26,"27":27,"28":28,"3":3,"5":5}],10:[function(_dereq_,module,exports){
1459 + 'use strict';
1460 +
1461 + var _document = _dereq_(2);
1462 +
1463 + var _document2 = _interopRequireDefault(_document);
1464 +
1465 + var _player = _dereq_(16);
1466 +
1467 + var _player2 = _interopRequireDefault(_player);
1468 +
1469 + var _i18n = _dereq_(5);
1470 +
1471 + var _i18n2 = _interopRequireDefault(_i18n);
1472 +
1473 + var _general = _dereq_(27);
1474 +
1475 + var _dom = _dereq_(26);
1476 +
1477 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1478 +
1479 + Object.assign(_player.config, {
1480 + playText: null,
1481 +
1482 + pauseText: null
1483 + });
1484 +
1485 + Object.assign(_player2.default.prototype, {
1486 + buildplaypause: function buildplaypause(player, controls, layers, media) {
1487 + var t = this,
1488 + op = t.options,
1489 + playTitle = (0, _general.isString)(op.playText) ? op.playText : _i18n2.default.t('mejs.play'),
1490 + pauseTitle = (0, _general.isString)(op.pauseText) ? op.pauseText : _i18n2.default.t('mejs.pause'),
1491 + play = _document2.default.createElement('div');
1492 +
1493 + play.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'playpause-button ' + t.options.classPrefix + 'play';
1494 + play.innerHTML = '<button type="button" aria-controls="' + t.id + '" title="' + playTitle + '" aria-label="' + pauseTitle + '" tabindex="0"></button>';
1495 + play.addEventListener('click', function () {
1496 + if (t.paused) {
1497 + t.play();
1498 + } else {
1499 + t.pause();
1500 + }
1501 + });
1502 +
1503 + var playBtn = play.querySelector('button');
1504 + t.addControlElement(play, 'playpause');
1505 +
1506 + function togglePlayPause(which) {
1507 + if ('play' === which) {
1508 + (0, _dom.removeClass)(play, t.options.classPrefix + 'play');
1509 + (0, _dom.removeClass)(play, t.options.classPrefix + 'replay');
1510 + (0, _dom.addClass)(play, t.options.classPrefix + 'pause');
1511 + playBtn.setAttribute('title', pauseTitle);
1512 + playBtn.setAttribute('aria-label', pauseTitle);
1513 + } else {
1514 +
1515 + (0, _dom.removeClass)(play, t.options.classPrefix + 'pause');
1516 + (0, _dom.removeClass)(play, t.options.classPrefix + 'replay');
1517 + (0, _dom.addClass)(play, t.options.classPrefix + 'play');
1518 + playBtn.setAttribute('title', playTitle);
1519 + playBtn.setAttribute('aria-label', playTitle);
1520 + }
1521 + }
1522 +
1523 + togglePlayPause('pse');
1524 +
1525 + media.addEventListener('loadedmetadata', function () {
1526 + if (media.rendererName.indexOf('flash') === -1) {
1527 + togglePlayPause('pse');
1528 + }
1529 + });
1530 + media.addEventListener('play', function () {
1531 + togglePlayPause('play');
1532 + });
1533 + media.addEventListener('playing', function () {
1534 + togglePlayPause('play');
1535 + });
1536 + media.addEventListener('pause', function () {
1537 + togglePlayPause('pse');
1538 + });
1539 + media.addEventListener('ended', function () {
1540 + if (!player.options.loop) {
1541 + (0, _dom.removeClass)(play, t.options.classPrefix + 'pause');
1542 + (0, _dom.removeClass)(play, t.options.classPrefix + 'play');
1543 + (0, _dom.addClass)(play, t.options.classPrefix + 'replay');
1544 + playBtn.setAttribute('title', playTitle);
1545 + playBtn.setAttribute('aria-label', playTitle);
1546 + }
1547 + });
1548 + }
1549 + });
1550 +
1551 + },{"16":16,"2":2,"26":26,"27":27,"5":5}],11:[function(_dereq_,module,exports){
1552 + 'use strict';
1553 +
1554 + var _document = _dereq_(2);
1555 +
1556 + var _document2 = _interopRequireDefault(_document);
1557 +
1558 + var _player = _dereq_(16);
1559 +
1560 + var _player2 = _interopRequireDefault(_player);
1561 +
1562 + var _i18n = _dereq_(5);
1563 +
1564 + var _i18n2 = _interopRequireDefault(_i18n);
1565 +
1566 + var _constants = _dereq_(25);
1567 +
1568 + var _time = _dereq_(30);
1569 +
1570 + var _dom = _dereq_(26);
1571 +
1572 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
1573 +
1574 + Object.assign(_player.config, {
1575 + enableProgressTooltip: true,
1576 +
1577 + useSmoothHover: true,
1578 +
1579 + forceLive: false
1580 + });
1581 +
1582 + Object.assign(_player2.default.prototype, {
1583 + buildprogress: function buildprogress(player, controls, layers, media) {
1584 +
1585 + var lastKeyPressTime = 0,
1586 + mouseIsDown = false,
1587 + startedPaused = false;
1588 +
1589 + var t = this,
1590 + autoRewindInitial = player.options.autoRewind,
1591 + tooltip = player.options.enableProgressTooltip ? '<span class="' + t.options.classPrefix + 'time-float">' + ('<span class="' + t.options.classPrefix + 'time-float-current">00:00</span>') + ('<span class="' + t.options.classPrefix + 'time-float-corner"></span>') + '</span>' : '',
1592 + rail = _document2.default.createElement('div');
1593 +
1594 + rail.className = t.options.classPrefix + 'time-rail';
1595 + rail.innerHTML = '<span class="' + t.options.classPrefix + 'time-total ' + t.options.classPrefix + 'time-slider">' + ('<span class="' + t.options.classPrefix + 'time-buffering"></span>') + ('<span class="' + t.options.classPrefix + 'time-loaded"></span>') + ('<span class="' + t.options.classPrefix + 'time-current"></span>') + ('<span class="' + t.options.classPrefix + 'time-hovered no-hover"></span>') + ('<span class="' + t.options.classPrefix + 'time-handle"><span class="' + t.options.classPrefix + 'time-handle-content"></span></span>') + ('' + tooltip) + '</span>';
1596 +
1597 + t.addControlElement(rail, 'progress');
1598 +
1599 + t.options.keyActions.push({
1600 + keys: [37, 227],
1601 + action: function action(player) {
1602 + if (!isNaN(player.duration) && player.duration > 0) {
1603 + if (player.isVideo) {
1604 + player.showControls();
1605 + player.startControlsTimer();
1606 + }
1607 +
1608 + var timeSlider = player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'time-total');
1609 + if (timeSlider) {
1610 + timeSlider.focus();
1611 + }
1612 +
1613 + var newTime = Math.max(player.currentTime - player.options.defaultSeekBackwardInterval(player), 0);
1614 +
1615 + if (!player.paused) {
1616 + player.pause();
1617 + }
1618 +
1619 + setTimeout(function () {
1620 + player.setCurrentTime(newTime);
1621 + }, 0);
1622 +
1623 + setTimeout(function () {
1624 + player.play();
1625 + }, 0);
1626 + }
1627 + }
1628 + }, {
1629 + keys: [39, 228],
1630 + action: function action(player) {
1631 +
1632 + if (!isNaN(player.duration) && player.duration > 0) {
1633 + if (player.isVideo) {
1634 + player.showControls();
1635 + player.startControlsTimer();
1636 + }
1637 +
1638 + var timeSlider = player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'time-total');
1639 + if (timeSlider) {
1640 + timeSlider.focus();
1641 + }
1642 +
1643 + var newTime = Math.min(player.currentTime + player.options.defaultSeekForwardInterval(player), player.duration);
1644 +
1645 + if (!player.paused) {
1646 + player.pause();
1647 + }
1648 +
1649 + setTimeout(function () {
1650 + player.setCurrentTime(newTime);
1651 + }, 0);
1652 +
1653 + setTimeout(function () {
1654 + player.play();
1655 + }, 0);
1656 + }
1657 + }
1658 + });
1659 +
1660 + t.rail = controls.querySelector('.' + t.options.classPrefix + 'time-rail');
1661 + t.total = controls.querySelector('.' + t.options.classPrefix + 'time-total');
1662 + t.loaded = controls.querySelector('.' + t.options.classPrefix + 'time-loaded');
1663 + t.current = controls.querySelector('.' + t.options.classPrefix + 'time-current');
1664 + t.handle = controls.querySelector('.' + t.options.classPrefix + 'time-handle');
1665 + t.timefloat = controls.querySelector('.' + t.options.classPrefix + 'time-float');
1666 + t.timefloatcurrent = controls.querySelector('.' + t.options.classPrefix + 'time-float-current');
1667 + t.slider = controls.querySelector('.' + t.options.classPrefix + 'time-slider');
1668 + t.hovered = controls.querySelector('.' + t.options.classPrefix + 'time-hovered');
1669 + t.buffer = controls.querySelector('.' + t.options.classPrefix + 'time-buffering');
1670 + t.newTime = 0;
1671 + t.forcedHandlePause = false;
1672 + t.setTransformStyle = function (element, value) {
1673 + element.style.transform = value;
1674 + element.style.webkitTransform = value;
1675 + element.style.MozTransform = value;
1676 + element.style.msTransform = value;
1677 + element.style.OTransform = value;
1678 + };
1679 +
1680 + t.buffer.style.display = 'none';
1681 +
1682 + var handleMouseMove = function handleMouseMove(e) {
1683 + var totalStyles = getComputedStyle(t.total),
1684 + offsetStyles = (0, _dom.offset)(t.total),
1685 + width = t.total.offsetWidth,
1686 + transform = function () {
1687 + if (totalStyles.webkitTransform !== undefined) {
1688 + return 'webkitTransform';
1689 + } else if (totalStyles.mozTransform !== undefined) {
1690 + return 'mozTransform ';
1691 + } else if (totalStyles.oTransform !== undefined) {
1692 + return 'oTransform';
1693 + } else if (totalStyles.msTransform !== undefined) {
1694 + return 'msTransform';
1695 + } else {
1696 + return 'transform';
1697 + }
1698 + }(),
1699 + cssMatrix = function () {
1700 + if ('WebKitCSSMatrix' in window) {
1701 + return 'WebKitCSSMatrix';
1702 + } else if ('MSCSSMatrix' in window) {
1703 + return 'MSCSSMatrix';
1704 + } else if ('CSSMatrix' in window) {
1705 + return 'CSSMatrix';
1706 + }
1707 + }();
1708 +
1709 + var percentage = 0,
1710 + leftPos = 0,
1711 + pos = 0,
1712 + x = void 0;
1713 +
1714 + if (e.originalEvent && e.originalEvent.changedTouches) {
1715 + x = e.originalEvent.changedTouches[0].pageX;
1716 + } else if (e.changedTouches) {
1717 + x = e.changedTouches[0].pageX;
1718 + } else {
1719 + x = e.pageX;
1720 + }
1721 +
1722 + if (t.getDuration()) {
1723 + if (x < offsetStyles.left) {
1724 + x = offsetStyles.left;
1725 + } else if (x > width + offsetStyles.left) {
1726 + x = width + offsetStyles.left;
1727 + }
1728 +
1729 + pos = x - offsetStyles.left;
1730 + percentage = pos / width;
1731 + t.newTime = percentage * t.getDuration();
1732 +
1733 + if (mouseIsDown && t.getCurrentTime() !== null && t.newTime.toFixed(4) !== t.getCurrentTime().toFixed(4)) {
1734 + t.setCurrentRailHandle(t.newTime);
1735 + t.updateCurrent(t.newTime);
1736 + }
1737 +
1738 + if (!_constants.IS_IOS && !_constants.IS_ANDROID) {
1739 + if (pos < 0) {
1740 + pos = 0;
1741 + }
1742 + if (t.options.useSmoothHover && cssMatrix !== null && typeof window[cssMatrix] !== 'undefined') {
1743 + var matrix = new window[cssMatrix](getComputedStyle(t.handle)[transform]),
1744 + handleLocation = matrix.m41,
1745 + hoverScaleX = pos / parseFloat(getComputedStyle(t.total).width) - handleLocation / parseFloat(getComputedStyle(t.total).width);
1746 +
1747 + t.hovered.style.left = handleLocation + 'px';
1748 + t.setTransformStyle(t.hovered, 'scaleX(' + hoverScaleX + ')');
1749 + t.hovered.setAttribute('pos', pos);
1750 +
1751 + if (hoverScaleX >= 0) {
1752 + (0, _dom.removeClass)(t.hovered, 'negative');
1753 + } else {
1754 + (0, _dom.addClass)(t.hovered, 'negative');
1755 + }
1756 + }
1757 +
1758 + if (t.timefloat) {
1759 + var half = t.timefloat.offsetWidth / 2,
1760 + offsetContainer = mejs.Utils.offset(t.getElement(t.container)),
1761 + tooltipStyles = getComputedStyle(t.timefloat);
1762 +
1763 + if (x - offsetContainer.left < t.timefloat.offsetWidth) {
1764 + leftPos = half;
1765 + } else if (x - offsetContainer.left >= t.getElement(t.container).offsetWidth - half) {
1766 + leftPos = t.total.offsetWidth - half;
1767 + } else {
1768 + leftPos = pos;
1769 + }
1770 +
1771 + if ((0, _dom.hasClass)(t.getElement(t.container), t.options.classPrefix + 'long-video')) {
1772 + leftPos += parseFloat(tooltipStyles.marginLeft) / 2 + t.timefloat.offsetWidth / 2;
1773 + }
1774 +
1775 + t.timefloat.style.left = leftPos + 'px';
1776 + t.timefloatcurrent.innerHTML = (0, _time.secondsToTimeCode)(t.newTime, player.options.alwaysShowHours, player.options.showTimecodeFrameCount, player.options.framesPerSecond, player.options.secondsDecimalLength, player.options.timeFormat);
1777 + t.timefloat.style.display = 'block';
1778 + }
1779 + }
1780 + } else if (!_constants.IS_IOS && !_constants.IS_ANDROID && t.timefloat) {
1781 + leftPos = t.timefloat.offsetWidth + width >= t.getElement(t.container).offsetWidth ? t.timefloat.offsetWidth / 2 : 0;
1782 + t.timefloat.style.left = leftPos + 'px';
1783 + t.timefloat.style.left = leftPos + 'px';
1784 + t.timefloat.style.display = 'block';
1785 + }
1786 + },
1787 + updateSlider = function updateSlider() {
1788 + var seconds = t.getCurrentTime(),
1789 + timeSliderText = _i18n2.default.t('mejs.time-slider'),
1790 + time = (0, _time.secondsToTimeCode)(seconds, player.options.alwaysShowHours, player.options.showTimecodeFrameCount, player.options.framesPerSecond, player.options.secondsDecimalLength, player.options.timeFormat),
1791 + duration = t.getDuration();
1792 +
1793 + t.slider.setAttribute('role', 'slider');
1794 + t.slider.tabIndex = 0;
1795 +
1796 + if (media.paused) {
1797 + t.slider.setAttribute('aria-label', timeSliderText);
1798 + t.slider.setAttribute('aria-valuemin', 0);
1799 + t.slider.setAttribute('aria-valuemax', isNaN(duration) ? 0 : duration);
1800 + t.slider.setAttribute('aria-valuenow', seconds);
1801 + t.slider.setAttribute('aria-valuetext', time);
1802 + } else {
1803 + t.slider.removeAttribute('aria-label');
1804 + t.slider.removeAttribute('aria-valuemin');
1805 + t.slider.removeAttribute('aria-valuemax');
1806 + t.slider.removeAttribute('aria-valuenow');
1807 + t.slider.removeAttribute('aria-valuetext');
1808 + }
1809 + },
1810 + restartPlayer = function restartPlayer() {
1811 + if (new Date() - lastKeyPressTime >= 1000) {
1812 + t.play();
1813 + }
1814 + },
1815 + handleMouseup = function handleMouseup() {
1816 + if (mouseIsDown && t.getCurrentTime() !== null && t.newTime.toFixed(4) !== t.getCurrentTime().toFixed(4)) {
1817 + t.setCurrentTime(t.newTime);
1818 + t.setCurrentRailHandle(t.newTime);
1819 + t.updateCurrent(t.newTime);
1820 + }
1821 + if (t.forcedHandlePause) {
1822 + t.slider.focus();
1823 + t.play();
1824 + }
1825 + t.forcedHandlePause = false;
1826 + };
1827 +
1828 + t.slider.addEventListener('focus', function () {
1829 + player.options.autoRewind = false;
1830 + });
1831 + t.slider.addEventListener('blur', function () {
1832 + player.options.autoRewind = autoRewindInitial;
1833 + });
1834 + t.slider.addEventListener('keydown', function (e) {
1835 + if (new Date() - lastKeyPressTime >= 1000) {
1836 + startedPaused = t.paused;
1837 + }
1838 +
1839 + if (t.options.enableKeyboard && t.options.keyActions.length) {
1840 +
1841 + var keyCode = e.which || e.keyCode || 0,
1842 + duration = t.getDuration(),
1843 + seekForward = player.options.defaultSeekForwardInterval(media),
1844 + seekBackward = player.options.defaultSeekBackwardInterval(media);
1845 +
1846 + var seekTime = t.getCurrentTime();
1847 + var volume = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'volume-slider');
1848 +
1849 + if (keyCode === 38 || keyCode === 40) {
1850 + if (volume) {
1851 + volume.style.display = 'block';
1852 + }
1853 + if (t.isVideo) {
1854 + t.showControls();
1855 + t.startControlsTimer();
1856 + }
1857 +
1858 + var newVolume = keyCode === 38 ? Math.min(t.volume + 0.1, 1) : Math.max(t.volume - 0.1, 0),
1859 + mutePlayer = newVolume <= 0;
1860 + t.setVolume(newVolume);
1861 + t.setMuted(mutePlayer);
1862 + return;
1863 + } else {
1864 + if (volume) {
1865 + volume.style.display = 'none';
1866 + }
1867 + }
1868 +
1869 + switch (keyCode) {
1870 + case 37:
1871 + if (t.getDuration() !== Infinity) {
1872 + seekTime -= seekBackward;
1873 + }
1874 + break;
1875 + case 39:
1876 + if (t.getDuration() !== Infinity) {
1877 + seekTime += seekForward;
1878 + }
1879 + break;
1880 + case 36:
1881 + seekTime = 0;
1882 + break;
1883 + case 35:
1884 + seekTime = duration;
1885 + break;
1886 + case 13:
1887 + case 32:
1888 + if (_constants.IS_FIREFOX) {
1889 + if (t.paused) {
1890 + t.play();
1891 + } else {
1892 + t.pause();
1893 + }
1894 + }
1895 + return;
1896 + default:
1897 + return;
1898 + }
1899 +
1900 + seekTime = seekTime < 0 || isNaN(seekTime) ? 0 : seekTime >= duration ? duration : Math.floor(seekTime);
1901 + lastKeyPressTime = new Date();
1902 + if (!startedPaused) {
1903 + player.pause();
1904 + }
1905 +
1906 + setTimeout(function () {
1907 + t.setCurrentTime(seekTime);
1908 + }, 0);
1909 +
1910 + if (seekTime < t.getDuration() && !startedPaused) {
1911 + setTimeout(restartPlayer, 1100);
1912 + }
1913 +
1914 + player.showControls();
1915 +
1916 + e.preventDefault();
1917 + e.stopPropagation();
1918 + }
1919 + });
1920 +
1921 + var events = ['mousedown', 'touchstart'];
1922 +
1923 + t.slider.addEventListener('dragstart', function () {
1924 + return false;
1925 + });
1926 +
1927 + for (var i = 0, total = events.length; i < total; i++) {
1928 + t.slider.addEventListener(events[i], function (e) {
1929 + t.forcedHandlePause = false;
1930 + if (t.getDuration() !== Infinity) {
1931 + if (e.which === 1 || e.which === 0) {
1932 + if (!t.paused) {
1933 + t.pause();
1934 + t.forcedHandlePause = true;
1935 + }
1936 +
1937 + mouseIsDown = true;
1938 + handleMouseMove(e);
1939 + var endEvents = ['mouseup', 'touchend'];
1940 +
1941 + for (var j = 0, totalEvents = endEvents.length; j < totalEvents; j++) {
1942 + t.getElement(t.container).addEventListener(endEvents[j], function (event) {
1943 + var target = event.target;
1944 + if (target === t.slider || target.closest('.' + t.options.classPrefix + 'time-slider')) {
1945 + handleMouseMove(event);
1946 + }
1947 + });
1948 + }
1949 + t.globalBind('mouseup.dur touchend.dur', function () {
1950 + handleMouseup();
1951 + mouseIsDown = false;
1952 + if (t.timefloat) {
1953 + t.timefloat.style.display = 'none';
1954 + }
1955 + });
1956 + }
1957 + }
1958 + }, _constants.SUPPORT_PASSIVE_EVENT && events[i] === 'touchstart' ? { passive: true } : false);
1959 + }
1960 + t.slider.addEventListener('mouseenter', function (e) {
1961 + if (e.target === t.slider && t.getDuration() !== Infinity) {
1962 + t.getElement(t.container).addEventListener('mousemove', function (event) {
1963 + var target = event.target;
1964 + if (target === t.slider || target.closest('.' + t.options.classPrefix + 'time-slider')) {
1965 + handleMouseMove(event);
1966 + }
1967 + });
1968 + if (t.timefloat && !_constants.IS_IOS && !_constants.IS_ANDROID) {
1969 + t.timefloat.style.display = 'block';
1970 + }
1971 + if (t.hovered && !_constants.IS_IOS && !_constants.IS_ANDROID && t.options.useSmoothHover) {
1972 + (0, _dom.removeClass)(t.hovered, 'no-hover');
1973 + }
1974 + }
1975 + });
1976 + t.slider.addEventListener('mouseleave', function () {
1977 + if (t.getDuration() !== Infinity) {
1978 + if (!mouseIsDown) {
1979 + if (t.timefloat) {
1980 + t.timefloat.style.display = 'none';
1981 + }
1982 + if (t.hovered && t.options.useSmoothHover) {
1983 + (0, _dom.addClass)(t.hovered, 'no-hover');
1984 + }
1985 + }
1986 + }
1987 + });
1988 +
1989 + t.broadcastCallback = function (e) {
1990 + var broadcast = controls.querySelector('.' + t.options.classPrefix + 'broadcast');
1991 + if (!t.options.forceLive && t.getDuration() !== Infinity) {
1992 + if (broadcast) {
1993 + t.slider.style.display = '';
1994 + broadcast.remove();
1995 + }
1996 +
1997 + player.setProgressRail(e);
1998 + if (!t.forcedHandlePause) {
1999 + player.setCurrentRail(e);
2000 + }
2001 + updateSlider();
2002 + } else if (!broadcast && t.options.forceLive) {
2003 + var label = _document2.default.createElement('span');
2004 + label.className = t.options.classPrefix + 'broadcast';
2005 + label.innerText = _i18n2.default.t('mejs.live-broadcast');
2006 + t.slider.style.display = 'none';
2007 + t.rail.appendChild(label);
2008 + }
2009 + };
2010 +
2011 + media.addEventListener('progress', t.broadcastCallback);
2012 + media.addEventListener('timeupdate', t.broadcastCallback);
2013 + media.addEventListener('play', function () {
2014 + t.buffer.style.display = 'none';
2015 + });
2016 + media.addEventListener('playing', function () {
2017 + t.buffer.style.display = 'none';
2018 + });
2019 + media.addEventListener('seeking', function () {
2020 + t.buffer.style.display = '';
2021 + });
2022 + media.addEventListener('seeked', function () {
2023 + t.buffer.style.display = 'none';
2024 + });
2025 + media.addEventListener('pause', function () {
2026 + t.buffer.style.display = 'none';
2027 + });
2028 + media.addEventListener('waiting', function () {
2029 + t.buffer.style.display = '';
2030 + });
2031 + media.addEventListener('loadeddata', function () {
2032 + t.buffer.style.display = '';
2033 + });
2034 + media.addEventListener('canplay', function () {
2035 + t.buffer.style.display = 'none';
2036 + });
2037 + media.addEventListener('error', function () {
2038 + t.buffer.style.display = 'none';
2039 + });
2040 +
2041 + t.getElement(t.container).addEventListener('controlsresize', function (e) {
2042 + if (t.getDuration() !== Infinity) {
2043 + player.setProgressRail(e);
2044 + if (!t.forcedHandlePause) {
2045 + player.setCurrentRail(e);
2046 + }
2047 + }
2048 + });
2049 + },
2050 + cleanprogress: function cleanprogress(player, controls, layers, media) {
2051 + media.removeEventListener('progress', player.broadcastCallback);
2052 + media.removeEventListener('timeupdate', player.broadcastCallback);
2053 + if (player.rail) {
2054 + player.rail.remove();
2055 + }
2056 + },
2057 + setProgressRail: function setProgressRail(e) {
2058 + var t = this,
2059 + target = e !== undefined ? e.detail.target || e.target : t.media;
2060 +
2061 + var percent = null;
2062 +
2063 + if (target && target.buffered && target.buffered.length > 0 && target.buffered.end && t.getDuration()) {
2064 + percent = target.buffered.end(target.buffered.length - 1) / t.getDuration();
2065 + } else if (target && target.bytesTotal !== undefined && target.bytesTotal > 0 && target.bufferedBytes !== undefined) {
2066 + percent = target.bufferedBytes / target.bytesTotal;
2067 + } else if (e && e.lengthComputable && e.total !== 0) {
2068 + percent = e.loaded / e.total;
2069 + }
2070 +
2071 + if (percent !== null) {
2072 + percent = Math.min(1, Math.max(0, percent));
2073 +
2074 + if (t.loaded) {
2075 + t.setTransformStyle(t.loaded, 'scaleX(' + percent + ')');
2076 + }
2077 + }
2078 + },
2079 + setCurrentRailHandle: function setCurrentRailHandle(fakeTime) {
2080 + var t = this;
2081 + t.setCurrentRailMain(t, fakeTime);
2082 + },
2083 + setCurrentRail: function setCurrentRail() {
2084 + var t = this;
2085 + t.setCurrentRailMain(t);
2086 + },
2087 + setCurrentRailMain: function setCurrentRailMain(t, fakeTime) {
2088 + if (t.getCurrentTime() !== undefined && t.getDuration()) {
2089 + var nTime = typeof fakeTime === 'undefined' ? t.getCurrentTime() : fakeTime;
2090 +
2091 + if (t.total && t.handle) {
2092 + var tW = parseFloat(getComputedStyle(t.total).width);
2093 +
2094 + var newWidth = Math.round(tW * nTime / t.getDuration()),
2095 + handlePos = newWidth - Math.round(t.handle.offsetWidth / 2);
2096 +
2097 + handlePos = handlePos < 0 ? 0 : handlePos;
2098 + t.setTransformStyle(t.current, 'scaleX(' + newWidth / tW + ')');
2099 + t.setTransformStyle(t.handle, 'translateX(' + handlePos + 'px)');
2100 +
2101 + if (t.options.useSmoothHover && !(0, _dom.hasClass)(t.hovered, 'no-hover')) {
2102 + var pos = parseInt(t.hovered.getAttribute('pos'), 10);
2103 + pos = isNaN(pos) ? 0 : pos;
2104 +
2105 + var hoverScaleX = pos / tW - handlePos / tW;
2106 +
2107 + t.hovered.style.left = handlePos + 'px';
2108 + t.setTransformStyle(t.hovered, 'scaleX(' + hoverScaleX + ')');
2109 +
2110 + if (hoverScaleX >= 0) {
2111 + (0, _dom.removeClass)(t.hovered, 'negative');
2112 + } else {
2113 + (0, _dom.addClass)(t.hovered, 'negative');
2114 + }
2115 + }
2116 + }
2117 + }
2118 + }
2119 + });
2120 +
2121 + },{"16":16,"2":2,"25":25,"26":26,"30":30,"5":5}],12:[function(_dereq_,module,exports){
2122 + 'use strict';
2123 +
2124 + var _document = _dereq_(2);
2125 +
2126 + var _document2 = _interopRequireDefault(_document);
2127 +
2128 + var _player = _dereq_(16);
2129 +
2130 + var _player2 = _interopRequireDefault(_player);
2131 +
2132 + var _time = _dereq_(30);
2133 +
2134 + var _dom = _dereq_(26);
2135 +
2136 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2137 +
2138 + Object.assign(_player.config, {
2139 + duration: 0,
2140 +
2141 + timeAndDurationSeparator: '<span> | </span>'
2142 + });
2143 +
2144 + Object.assign(_player2.default.prototype, {
2145 + buildcurrent: function buildcurrent(player, controls, layers, media) {
2146 + var t = this,
2147 + time = _document2.default.createElement('div');
2148 +
2149 + time.className = t.options.classPrefix + 'time';
2150 + time.setAttribute('role', 'timer');
2151 + time.setAttribute('aria-live', 'off');
2152 + time.innerHTML = '<span class="' + t.options.classPrefix + 'currenttime">' + (0, _time.secondsToTimeCode)(0, player.options.alwaysShowHours, player.options.showTimecodeFrameCount, player.options.framesPerSecond, player.options.secondsDecimalLength, player.options.timeFormat) + '</span>';
2153 +
2154 + t.addControlElement(time, 'current');
2155 + player.updateCurrent();
2156 + t.updateTimeCallback = function () {
2157 + if (t.controlsAreVisible) {
2158 + player.updateCurrent();
2159 + }
2160 + };
2161 + media.addEventListener('timeupdate', t.updateTimeCallback);
2162 + },
2163 + cleancurrent: function cleancurrent(player, controls, layers, media) {
2164 + media.removeEventListener('timeupdate', player.updateTimeCallback);
2165 + },
2166 + buildduration: function buildduration(player, controls, layers, media) {
2167 + var t = this,
2168 + currTime = controls.lastChild.querySelector('.' + t.options.classPrefix + 'currenttime');
2169 +
2170 + if (currTime) {
2171 + controls.querySelector('.' + t.options.classPrefix + 'time').innerHTML += t.options.timeAndDurationSeparator + '<span class="' + t.options.classPrefix + 'duration">' + ((0, _time.secondsToTimeCode)(t.options.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat) + '</span>');
2172 + } else {
2173 + if (controls.querySelector('.' + t.options.classPrefix + 'currenttime')) {
2174 + (0, _dom.addClass)(controls.querySelector('.' + t.options.classPrefix + 'currenttime').parentNode, t.options.classPrefix + 'currenttime-container');
2175 + }
2176 +
2177 + var duration = _document2.default.createElement('div');
2178 + duration.className = t.options.classPrefix + 'time ' + t.options.classPrefix + 'duration-container';
2179 + duration.innerHTML = '<span class="' + t.options.classPrefix + 'duration">' + ((0, _time.secondsToTimeCode)(t.options.duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat) + '</span>');
2180 +
2181 + t.addControlElement(duration, 'duration');
2182 + }
2183 +
2184 + t.updateDurationCallback = function () {
2185 + if (t.controlsAreVisible) {
2186 + player.updateDuration();
2187 + }
2188 + };
2189 +
2190 + media.addEventListener('timeupdate', t.updateDurationCallback);
2191 + },
2192 + cleanduration: function cleanduration(player, controls, layers, media) {
2193 + media.removeEventListener('timeupdate', player.updateDurationCallback);
2194 + },
2195 + updateCurrent: function updateCurrent() {
2196 + var t = this;
2197 +
2198 + var currentTime = t.getCurrentTime();
2199 +
2200 + if (isNaN(currentTime)) {
2201 + currentTime = 0;
2202 + }
2203 +
2204 + var timecode = (0, _time.secondsToTimeCode)(currentTime, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat);
2205 +
2206 + if (timecode.length > 5) {
2207 + (0, _dom.addClass)(t.getElement(t.container), t.options.classPrefix + 'long-video');
2208 + } else {
2209 + (0, _dom.removeClass)(t.getElement(t.container), t.options.classPrefix + 'long-video');
2210 + }
2211 +
2212 + if (t.getElement(t.controls).querySelector('.' + t.options.classPrefix + 'currenttime')) {
2213 + t.getElement(t.controls).querySelector('.' + t.options.classPrefix + 'currenttime').innerText = timecode;
2214 + }
2215 + },
2216 + updateDuration: function updateDuration() {
2217 + var t = this;
2218 +
2219 + var duration = t.getDuration();
2220 +
2221 + if (t.media !== undefined && (isNaN(duration) || duration === Infinity || duration < 0)) {
2222 + t.media.duration = t.options.duration = duration = 0;
2223 + }
2224 +
2225 + if (t.options.duration > 0) {
2226 + duration = t.options.duration;
2227 + }
2228 +
2229 + var timecode = (0, _time.secondsToTimeCode)(duration, t.options.alwaysShowHours, t.options.showTimecodeFrameCount, t.options.framesPerSecond, t.options.secondsDecimalLength, t.options.timeFormat);
2230 +
2231 + if (timecode.length > 5) {
2232 + (0, _dom.addClass)(t.getElement(t.container), t.options.classPrefix + 'long-video');
2233 + } else {
2234 + (0, _dom.removeClass)(t.getElement(t.container), t.options.classPrefix + 'long-video');
2235 + }
2236 +
2237 + if (t.getElement(t.controls).querySelector('.' + t.options.classPrefix + 'duration') && duration > 0) {
2238 + t.getElement(t.controls).querySelector('.' + t.options.classPrefix + 'duration').innerHTML = timecode;
2239 + }
2240 + }
2241 + });
2242 +
2243 + },{"16":16,"2":2,"26":26,"30":30}],13:[function(_dereq_,module,exports){
2244 + 'use strict';
2245 +
2246 + var _document = _dereq_(2);
2247 +
2248 + var _document2 = _interopRequireDefault(_document);
2249 +
2250 + var _mejs = _dereq_(7);
2251 +
2252 + var _mejs2 = _interopRequireDefault(_mejs);
2253 +
2254 + var _i18n = _dereq_(5);
2255 +
2256 + var _i18n2 = _interopRequireDefault(_i18n);
2257 +
2258 + var _player = _dereq_(16);
2259 +
2260 + var _player2 = _interopRequireDefault(_player);
2261 +
2262 + var _time = _dereq_(30);
2263 +
2264 + var _general = _dereq_(27);
2265 +
2266 + var _dom = _dereq_(26);
2267 +
2268 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
2269 +
2270 + Object.assign(_player.config, {
2271 + startLanguage: '',
2272 +
2273 + tracksText: null,
2274 +
2275 + chaptersText: null,
2276 +
2277 + tracksAriaLive: false,
2278 +
2279 + hideCaptionsButtonWhenEmpty: true,
2280 +
2281 + toggleCaptionsButtonWhenOnlyOne: false,
2282 +
2283 + slidesSelector: ''
2284 + });
2285 +
2286 + Object.assign(_player2.default.prototype, {
2287 + hasChapters: false,
2288 +
2289 + buildtracks: function buildtracks(player, controls, layers, media) {
2290 +
2291 + this.findTracks();
2292 +
2293 + if (!player.tracks.length && (!player.trackFiles || !player.trackFiles.length === 0)) {
2294 + return;
2295 + }
2296 +
2297 + var t = this,
2298 + attr = t.options.tracksAriaLive ? ' role="log" aria-live="assertive" aria-atomic="false"' : '',
2299 + tracksTitle = (0, _general.isString)(t.options.tracksText) ? t.options.tracksText : _i18n2.default.t('mejs.captions-subtitles'),
2300 + chaptersTitle = (0, _general.isString)(t.options.chaptersText) ? t.options.chaptersText : _i18n2.default.t('mejs.captions-chapters'),
2301 + total = player.trackFiles === null ? player.tracks.length : player.trackFiles.length;
2302 +
2303 + if (t.domNode.textTracks) {
2304 + for (var i = t.domNode.textTracks.length - 1; i >= 0; i--) {
2305 + t.domNode.textTracks[i].mode = 'hidden';
2306 + }
2307 + }
2308 +
2309 + t.cleartracks(player);
2310 +
2311 + player.captions = _document2.default.createElement('div');
2312 + player.captions.className = t.options.classPrefix + 'captions-layer ' + t.options.classPrefix + 'layer';
2313 + player.captions.innerHTML = '<div class="' + t.options.classPrefix + 'captions-position ' + t.options.classPrefix + 'captions-position-hover"' + attr + '>' + ('<span class="' + t.options.classPrefix + 'captions-text"></span>') + '</div>';
2314 + player.captions.style.display = 'none';
2315 + layers.insertBefore(player.captions, layers.firstChild);
2316 +
2317 + player.captionsText = player.captions.querySelector('.' + t.options.classPrefix + 'captions-text');
2318 +
2319 + player.captionsButton = _document2.default.createElement('div');
2320 + player.captionsButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'captions-button';
2321 + player.captionsButton.innerHTML = '<button type="button" aria-controls="' + t.id + '" title="' + tracksTitle + '" aria-label="' + tracksTitle + '" tabindex="0"></button>' + ('<div class="' + t.options.classPrefix + 'captions-selector ' + t.options.classPrefix + 'offscreen">') + ('<ul class="' + t.options.classPrefix + 'captions-selector-list">') + ('<li class="' + t.options.classPrefix + 'captions-selector-list-item">') + ('<input type="radio" class="' + t.options.classPrefix + 'captions-selector-input" ') + ('name="' + player.id + '_captions" id="' + player.id + '_captions_none" ') + 'value="none" checked disabled>' + ('<label class="' + t.options.classPrefix + 'captions-selector-label ') + (t.options.classPrefix + 'captions-selected" ') + ('for="' + player.id + '_captions_none">' + _i18n2.default.t('mejs.none') + '</label>') + '</li>' + '</ul>' + '</div>';
2322 +
2323 + t.addControlElement(player.captionsButton, 'tracks');
2324 +
2325 + player.captionsButton.querySelector('.' + t.options.classPrefix + 'captions-selector-input').disabled = false;
2326 +
2327 + player.chaptersButton = _document2.default.createElement('div');
2328 + player.chaptersButton.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'chapters-button';
2329 + player.chaptersButton.innerHTML = '<button type="button" aria-controls="' + t.id + '" title="' + chaptersTitle + '" aria-label="' + chaptersTitle + '" tabindex="0"></button>' + ('<div class="' + t.options.classPrefix + 'chapters-selector ' + t.options.classPrefix + 'offscreen">') + ('<ul class="' + t.options.classPrefix + 'chapters-selector-list"></ul>') + '</div>';
2330 +
2331 + var subtitleCount = 0;
2332 +
2333 + for (var _i = 0; _i < total; _i++) {
2334 + var kind = player.tracks[_i].kind,
2335 + src = player.tracks[_i].src;
2336 + if (src.trim()) {
2337 + if (kind === 'subtitles' || kind === 'captions') {
2338 + subtitleCount++;
2339 + } else if (kind === 'chapters' && !controls.querySelector('.' + t.options.classPrefix + 'chapter-selector')) {
2340 + player.captionsButton.parentNode.insertBefore(player.chaptersButton, player.captionsButton);
2341 + }
2342 + }
2343 + }
2344 +
2345 + player.trackToLoad = -1;
2346 + player.selectedTrack = null;
2347 + player.isLoadingTrack = false;
2348 +
2349 + for (var _i2 = 0; _i2 < total; _i2++) {
2350 + var _kind = player.tracks[_i2].kind;
2351 + if (player.tracks[_i2].src.trim() && (_kind === 'subtitles' || _kind === 'captions')) {
2352 + player.addTrackButton(player.tracks[_i2].trackId, player.tracks[_i2].srclang, player.tracks[_i2].label);
2353 + }
2354 + }
2355 +
2356 + player.loadNextTrack();
2357 +
2358 + var inEvents = ['mouseenter', 'focusin'],
2359 + outEvents = ['mouseleave', 'focusout'];
2360 +
2361 + if (t.options.toggleCaptionsButtonWhenOnlyOne && subtitleCount === 1) {
2362 + player.captionsButton.addEventListener('click', function (e) {
2363 + var trackId = 'none';
2364 + if (player.selectedTrack === null) {
2365 + trackId = player.tracks[0].trackId;
2366 + }
2367 + var keyboard = e.keyCode || e.which;
2368 + player.setTrack(trackId, typeof keyboard !== 'undefined');
2369 + });
2370 + } else {
2371 + var labels = player.captionsButton.querySelectorAll('.' + t.options.classPrefix + 'captions-selector-label'),
2372 + captions = player.captionsButton.querySelectorAll('input[type=radio]');
2373 +
2374 + for (var _i3 = 0, _total = inEvents.length; _i3 < _total; _i3++) {
2375 + player.captionsButton.addEventListener(inEvents[_i3], function () {
2376 + (0, _dom.removeClass)(this.querySelector('.' + t.options.classPrefix + 'captions-selector'), t.options.classPrefix + 'offscreen');
2377 + });
2378 + }
2379 +
2380 + for (var _i4 = 0, _total2 = outEvents.length; _i4 < _total2; _i4++) {
2381 + player.captionsButton.addEventListener(outEvents[_i4], function () {
2382 + (0, _dom.addClass)(this.querySelector('.' + t.options.classPrefix + 'captions-selector'), t.options.classPrefix + 'offscreen');
2383 + });
2384 + }
2385 +
2386 + for (var _i5 = 0, _total3 = captions.length; _i5 < _total3; _i5++) {
2387 + captions[_i5].addEventListener('click', function (e) {
2388 + var keyboard = e.keyCode || e.which;
2389 + player.setTrack(this.value, typeof keyboard !== 'undefined');
2390 + });
2391 + }
2392 +
2393 + for (var _i6 = 0, _total4 = labels.length; _i6 < _total4; _i6++) {
2394 + labels[_i6].addEventListener('click', function (e) {
2395 + var radio = (0, _dom.siblings)(this, function (el) {
2396 + return el.tagName === 'INPUT';
2397 + })[0],
2398 + event = (0, _general.createEvent)('click', radio);
2399 + radio.dispatchEvent(event);
2400 + e.preventDefault();
2401 + });
2402 + }
2403 +
2404 + player.captionsButton.addEventListener('keydown', function (e) {
2405 + e.stopPropagation();
2406 + });
2407 + }
2408 +
2409 + for (var _i7 = 0, _total5 = inEvents.length; _i7 < _total5; _i7++) {
2410 + player.chaptersButton.addEventListener(inEvents[_i7], function () {
2411 + if (this.querySelector('.' + t.options.classPrefix + 'chapters-selector-list').children.length) {
2412 + (0, _dom.removeClass)(this.querySelector('.' + t.options.classPrefix + 'chapters-selector'), t.options.classPrefix + 'offscreen');
2413 + }
2414 + });
2415 + }
2416 +
2417 + for (var _i8 = 0, _total6 = outEvents.length; _i8 < _total6; _i8++) {
2418 + player.chaptersButton.addEventListener(outEvents[_i8], function () {
2419 + (0, _dom.addClass)(this.querySelector('.' + t.options.classPrefix + 'chapters-selector'), t.options.classPrefix + 'offscreen');
2420 + });
2421 + }
2422 +
2423 + player.chaptersButton.addEventListener('keydown', function (e) {
2424 + e.stopPropagation();
2425 + });
2426 +
2427 + if (!player.options.alwaysShowControls) {
2428 + player.getElement(player.container).addEventListener('controlsshown', function () {
2429 + (0, _dom.addClass)(player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover');
2430 + });
2431 +
2432 + player.getElement(player.container).addEventListener('controlshidden', function () {
2433 + if (!media.paused) {
2434 + (0, _dom.removeClass)(player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover');
2435 + }
2436 + });
2437 + } else {
2438 + (0, _dom.addClass)(player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'captions-position'), t.options.classPrefix + 'captions-position-hover');
2439 + }
2440 +
2441 + media.addEventListener('timeupdate', function () {
2442 + player.displayCaptions();
2443 + });
2444 +
2445 + if (player.options.slidesSelector !== '') {
2446 + player.slidesContainer = _document2.default.querySelectorAll(player.options.slidesSelector);
2447 +
2448 + media.addEventListener('timeupdate', function () {
2449 + player.displaySlides();
2450 + });
2451 + }
2452 + },
2453 + cleartracks: function cleartracks(player) {
2454 + if (player) {
2455 + if (player.captions) {
2456 + player.captions.remove();
2457 + }
2458 + if (player.chapters) {
2459 + player.chapters.remove();
2460 + }
2461 + if (player.captionsText) {
2462 + player.captionsText.remove();
2463 + }
2464 + if (player.captionsButton) {
2465 + player.captionsButton.remove();
2466 + }
2467 + if (player.chaptersButton) {
2468 + player.chaptersButton.remove();
2469 + }
2470 + }
2471 + },
2472 + rebuildtracks: function rebuildtracks() {
2473 + var t = this;
2474 + t.findTracks();
2475 + t.buildtracks(t, t.getElement(t.controls), t.getElement(t.layers), t.media);
2476 + },
2477 + findTracks: function findTracks() {
2478 + var t = this,
2479 + tracktags = t.trackFiles === null ? t.node.querySelectorAll('track') : t.trackFiles,
2480 + total = tracktags.length;
2481 +
2482 + t.tracks = [];
2483 + for (var i = 0; i < total; i++) {
2484 + var track = tracktags[i],
2485 + srclang = track.getAttribute('srclang').toLowerCase() || '',
2486 + trackId = t.id + '_track_' + i + '_' + track.getAttribute('kind') + '_' + srclang;
2487 + t.tracks.push({
2488 + trackId: trackId,
2489 + srclang: srclang,
2490 + src: track.getAttribute('src'),
2491 + kind: track.getAttribute('kind'),
2492 + label: track.getAttribute('label') || '',
2493 + entries: [],
2494 + isLoaded: false
2495 + });
2496 + }
2497 + },
2498 + setTrack: function setTrack(trackId, setByKeyboard) {
2499 +
2500 + var t = this,
2501 + radios = t.captionsButton.querySelectorAll('input[type="radio"]'),
2502 + captions = t.captionsButton.querySelectorAll('.' + t.options.classPrefix + 'captions-selected'),
2503 + track = t.captionsButton.querySelector('input[value="' + trackId + '"]');
2504 +
2505 + for (var i = 0, total = radios.length; i < total; i++) {
2506 + radios[i].checked = false;
2507 + }
2508 +
2509 + for (var _i9 = 0, _total7 = captions.length; _i9 < _total7; _i9++) {
2510 + (0, _dom.removeClass)(captions[_i9], t.options.classPrefix + 'captions-selected');
2511 + }
2512 +
2513 + track.checked = true;
2514 + var labels = (0, _dom.siblings)(track, function (el) {
2515 + return (0, _dom.hasClass)(el, t.options.classPrefix + 'captions-selector-label');
2516 + });
2517 + for (var _i10 = 0, _total8 = labels.length; _i10 < _total8; _i10++) {
2518 + (0, _dom.addClass)(labels[_i10], t.options.classPrefix + 'captions-selected');
2519 + }
2520 +
2521 + if (trackId === 'none') {
2522 + t.selectedTrack = null;
2523 + (0, _dom.removeClass)(t.captionsButton, t.options.classPrefix + 'captions-enabled');
2524 + } else {
2525 + for (var _i11 = 0, _total9 = t.tracks.length; _i11 < _total9; _i11++) {
2526 + var _track = t.tracks[_i11];
2527 + if (_track.trackId === trackId) {
2528 + if (t.selectedTrack === null) {
2529 + (0, _dom.addClass)(t.captionsButton, t.options.classPrefix + 'captions-enabled');
2530 + }
2531 + t.selectedTrack = _track;
2532 + t.captions.setAttribute('lang', t.selectedTrack.srclang);
2533 + t.displayCaptions();
2534 + break;
2535 + }
2536 + }
2537 + }
2538 +
2539 + var event = (0, _general.createEvent)('captionschange', t.media);
2540 + event.detail.caption = t.selectedTrack;
2541 + t.media.dispatchEvent(event);
2542 +
2543 + if (!setByKeyboard) {
2544 + setTimeout(function () {
2545 + t.getElement(t.container).focus();
2546 + }, 500);
2547 + }
2548 + },
2549 + loadNextTrack: function loadNextTrack() {
2550 + var t = this;
2551 +
2552 + t.trackToLoad++;
2553 + if (t.trackToLoad < t.tracks.length) {
2554 + t.isLoadingTrack = true;
2555 + t.loadTrack(t.trackToLoad);
2556 + } else {
2557 + t.isLoadingTrack = false;
2558 + t.checkForTracks();
2559 + }
2560 + },
2561 + loadTrack: function loadTrack(index) {
2562 + var t = this,
2563 + track = t.tracks[index];
2564 +
2565 + if (track !== undefined && (track.src !== undefined || track.src !== "")) {
2566 + (0, _dom.ajax)(track.src, 'text', function (d) {
2567 + track.entries = typeof d === 'string' && /<tt\s+xml/ig.exec(d) ? _mejs2.default.TrackFormatParser.dfxp.parse(d) : _mejs2.default.TrackFormatParser.webvtt.parse(d);
2568 +
2569 + track.isLoaded = true;
2570 + t.enableTrackButton(track);
2571 + t.loadNextTrack();
2572 +
2573 + if (track.kind === 'slides') {
2574 + t.setupSlides(track);
2575 + } else if (track.kind === 'chapters' && !t.hasChapters) {
2576 + t.drawChapters(track);
2577 + t.hasChapters = true;
2578 + }
2579 + }, function () {
2580 + t.removeTrackButton(track.trackId);
2581 + t.loadNextTrack();
2582 + });
2583 + }
2584 + },
2585 + enableTrackButton: function enableTrackButton(track) {
2586 + var t = this,
2587 + lang = track.srclang,
2588 + target = _document2.default.getElementById('' + track.trackId);
2589 +
2590 + if (!target) {
2591 + return;
2592 + }
2593 +
2594 + var label = track.label;
2595 +
2596 + if (label === '') {
2597 + label = _i18n2.default.t(_mejs2.default.language.codes[lang]) || lang;
2598 + }
2599 + target.disabled = false;
2600 + var targetSiblings = (0, _dom.siblings)(target, function (el) {
2601 + return (0, _dom.hasClass)(el, t.options.classPrefix + 'captions-selector-label');
2602 + });
2603 + for (var i = 0, total = targetSiblings.length; i < total; i++) {
2604 + targetSiblings[i].innerHTML = label;
2605 + }
2606 +
2607 + if (t.options.startLanguage === lang) {
2608 + target.checked = true;
2609 + var event = (0, _general.createEvent)('click', target);
2610 + target.dispatchEvent(event);
2611 + }
2612 + },
2613 + removeTrackButton: function removeTrackButton(trackId) {
2614 + var element = _document2.default.getElementById('' + trackId);
2615 + if (element) {
2616 + var button = element.closest('li');
2617 + if (button) {
2618 + button.remove();
2619 + }
2620 + }
2621 + },
2622 + addTrackButton: function addTrackButton(trackId, lang, label) {
2623 + var t = this;
2624 + if (label === '') {
2625 + label = _i18n2.default.t(_mejs2.default.language.codes[lang]) || lang;
2626 + }
2627 +
2628 + t.captionsButton.querySelector('ul').innerHTML += '<li class="' + t.options.classPrefix + 'captions-selector-list-item">' + ('<input type="radio" class="' + t.options.classPrefix + 'captions-selector-input" ') + ('name="' + t.id + '_captions" id="' + trackId + '" value="' + trackId + '" disabled>') + ('<label class="' + t.options.classPrefix + 'captions-selector-label"') + ('for="' + trackId + '">' + label + ' (loading)</label>') + '</li>';
2629 + },
2630 + checkForTracks: function checkForTracks() {
2631 + var t = this;
2632 +
2633 + var hasSubtitles = false;
2634 +
2635 + if (t.options.hideCaptionsButtonWhenEmpty) {
2636 + for (var i = 0, total = t.tracks.length; i < total; i++) {
2637 + var kind = t.tracks[i].kind;
2638 + if ((kind === 'subtitles' || kind === 'captions') && t.tracks[i].isLoaded) {
2639 + hasSubtitles = true;
2640 + break;
2641 + }
2642 + }
2643 +
2644 + t.captionsButton.style.display = hasSubtitles ? '' : 'none';
2645 + t.setControlsSize();
2646 + }
2647 + },
2648 + displayCaptions: function displayCaptions() {
2649 + if (this.tracks === undefined) {
2650 + return;
2651 + }
2652 +
2653 + var t = this,
2654 + track = t.selectedTrack,
2655 + sanitize = function sanitize(html) {
2656 + var div = _document2.default.createElement('div');
2657 + div.innerHTML = html;
2658 +
2659 + var scripts = div.getElementsByTagName('script');
2660 + var i = scripts.length;
2661 + while (i--) {
2662 + scripts[i].remove();
2663 + }
2664 +
2665 + var allElements = div.getElementsByTagName('*');
2666 + for (var _i12 = 0, n = allElements.length; _i12 < n; _i12++) {
2667 + var attributesObj = allElements[_i12].attributes,
2668 + attributes = Array.prototype.slice.call(attributesObj);
2669 +
2670 + for (var j = 0, total = attributes.length; j < total; j++) {
2671 + if (attributes[j].name.startsWith('on') || attributes[j].value.startsWith('javascript')) {
2672 + allElements[_i12].remove();
2673 + } else if (attributes[j].name === 'style') {
2674 + allElements[_i12].removeAttribute(attributes[j].name);
2675 + }
2676 + }
2677 + }
2678 + return div.innerHTML;
2679 + };
2680 +
2681 + if (track !== null && track.isLoaded) {
2682 + var i = t.searchTrackPosition(track.entries, t.media.currentTime);
2683 + if (i > -1) {
2684 + var text = track.entries[i].text;
2685 + if (typeof t.options.captionTextPreprocessor === 'function') text = t.options.captionTextPreprocessor(text);
2686 + t.captionsText.innerHTML = sanitize(text);
2687 + t.captionsText.className = t.options.classPrefix + 'captions-text ' + (track.entries[i].identifier || '');
2688 + t.captions.style.display = '';
2689 + t.captions.style.height = '0px';
2690 + return;
2691 + }
2692 + t.captions.style.display = 'none';
2693 + } else {
2694 + t.captions.style.display = 'none';
2695 + }
2696 + },
2697 + setupSlides: function setupSlides(track) {
2698 + var t = this;
2699 + t.slides = track;
2700 + t.slides.entries.imgs = [t.slides.entries.length];
2701 + t.showSlide(0);
2702 + },
2703 + showSlide: function showSlide(index) {
2704 + var _this = this;
2705 +
2706 + var t = this;
2707 +
2708 + if (t.tracks === undefined || t.slidesContainer === undefined) {
2709 + return;
2710 + }
2711 +
2712 + var url = t.slides.entries[index].text;
2713 +
2714 + var img = t.slides.entries[index].imgs;
2715 +
2716 + if (img === undefined || img.fadeIn === undefined) {
2717 + var image = _document2.default.createElement('img');
2718 + image.src = url;
2719 + image.addEventListener('load', function () {
2720 + var self = _this,
2721 + visible = (0, _dom.siblings)(self, function (el) {
2722 + return visible(el);
2723 + });
2724 + self.style.display = 'none';
2725 + t.slidesContainer.innerHTML += self.innerHTML;
2726 + (0, _dom.fadeIn)(t.slidesContainer.querySelector(image));
2727 + for (var i = 0, total = visible.length; i < total; i++) {
2728 + (0, _dom.fadeOut)(visible[i], 400);
2729 + }
2730 + });
2731 + t.slides.entries[index].imgs = img = image;
2732 + } else if (!(0, _dom.visible)(img)) {
2733 + var _visible = (0, _dom.siblings)(self, function (el) {
2734 + return _visible(el);
2735 + });
2736 + (0, _dom.fadeIn)(t.slidesContainer.querySelector(img));
2737 + for (var i = 0, total = _visible.length; i < total; i++) {
2738 + (0, _dom.fadeOut)(_visible[i]);
2739 + }
2740 + }
2741 + },
2742 + displaySlides: function displaySlides() {
2743 + var t = this;
2744 +
2745 + if (this.slides === undefined) {
2746 + return;
2747 + }
2748 +
2749 + var slides = t.slides,
2750 + i = t.searchTrackPosition(slides.entries, t.media.currentTime);
2751 +
2752 + if (i > -1) {
2753 + t.showSlide(i);
2754 + }
2755 + },
2756 + drawChapters: function drawChapters(chapters) {
2757 + var t = this,
2758 + total = chapters.entries.length;
2759 +
2760 + if (!total) {
2761 + return;
2762 + }
2763 +
2764 + t.chaptersButton.querySelector('ul').innerHTML = '';
2765 +
2766 + for (var i = 0; i < total; i++) {
2767 + t.chaptersButton.querySelector('ul').innerHTML += '<li class="' + t.options.classPrefix + 'chapters-selector-list-item" ' + 'role="menuitemcheckbox" aria-live="polite" aria-disabled="false" aria-checked="false">' + ('<input type="radio" class="' + t.options.classPrefix + 'captions-selector-input" ') + ('name="' + t.id + '_chapters" id="' + t.id + '_chapters_' + i + '" value="' + chapters.entries[i].start + '" disabled>') + ('<label class="' + t.options.classPrefix + 'chapters-selector-label"') + ('for="' + t.id + '_chapters_' + i + '">' + chapters.entries[i].text + '</label>') + '</li>';
2768 + }
2769 +
2770 + var radios = t.chaptersButton.querySelectorAll('input[type="radio"]'),
2771 + labels = t.chaptersButton.querySelectorAll('.' + t.options.classPrefix + 'chapters-selector-label');
2772 +
2773 + for (var _i13 = 0, _total10 = radios.length; _i13 < _total10; _i13++) {
2774 + radios[_i13].disabled = false;
2775 + radios[_i13].checked = false;
2776 + radios[_i13].addEventListener('click', function (e) {
2777 + var self = this,
2778 + listItems = t.chaptersButton.querySelectorAll('li'),
2779 + label = (0, _dom.siblings)(self, function (el) {
2780 + return (0, _dom.hasClass)(el, t.options.classPrefix + 'chapters-selector-label');
2781 + })[0];
2782 +
2783 + self.checked = true;
2784 + self.parentNode.setAttribute('aria-checked', true);
2785 + (0, _dom.addClass)(label, t.options.classPrefix + 'chapters-selected');
2786 + (0, _dom.removeClass)(t.chaptersButton.querySelector('.' + t.options.classPrefix + 'chapters-selected'), t.options.classPrefix + 'chapters-selected');
2787 +
2788 + for (var _i14 = 0, _total11 = listItems.length; _i14 < _total11; _i14++) {
2789 + listItems[_i14].setAttribute('aria-checked', false);
2790 + }
2791 +
2792 + var keyboard = e.keyCode || e.which;
2793 + if (typeof keyboard === 'undefined') {
2794 + setTimeout(function () {
2795 + t.getElement(t.container).focus();
2796 + }, 500);
2797 + }
2798 +
2799 + t.media.setCurrentTime(parseFloat(self.value));
2800 + if (t.media.paused) {
2801 + t.media.play();
2802 + }
2803 + });
2804 + }
2805 +
2806 + for (var _i15 = 0, _total12 = labels.length; _i15 < _total12; _i15++) {
2807 + labels[_i15].addEventListener('click', function (e) {
2808 + var radio = (0, _dom.siblings)(this, function (el) {
2809 + return el.tagName === 'INPUT';
2810 + })[0],
2811 + event = (0, _general.createEvent)('click', radio);
2812 + radio.dispatchEvent(event);
2813 + e.preventDefault();
2814 + });
2815 + }
2816 + },
2817 + searchTrackPosition: function searchTrackPosition(tracks, currentTime) {
2818 + var lo = 0,
2819 + hi = tracks.length - 1,
2820 + mid = void 0,
2821 + start = void 0,
2822 + stop = void 0;
2823 +
2824 + while (lo <= hi) {
2825 + mid = lo + hi >> 1;
2826 + start = tracks[mid].start;
2827 + stop = tracks[mid].stop;
2828 +
2829 + if (currentTime >= start && currentTime < stop) {
2830 + return mid;
2831 + } else if (start < currentTime) {
2832 + lo = mid + 1;
2833 + } else if (start > currentTime) {
2834 + hi = mid - 1;
2835 + }
2836 + }
2837 +
2838 + return -1;
2839 + }
2840 + });
2841 +
2842 + _mejs2.default.language = {
2843 + codes: {
2844 + af: 'mejs.afrikaans',
2845 + sq: 'mejs.albanian',
2846 + ar: 'mejs.arabic',
2847 + be: 'mejs.belarusian',
2848 + bg: 'mejs.bulgarian',
2849 + ca: 'mejs.catalan',
2850 + zh: 'mejs.chinese',
2851 + 'zh-cn': 'mejs.chinese-simplified',
2852 + 'zh-tw': 'mejs.chines-traditional',
2853 + hr: 'mejs.croatian',
2854 + cs: 'mejs.czech',
2855 + da: 'mejs.danish',
2856 + nl: 'mejs.dutch',
2857 + en: 'mejs.english',
2858 + et: 'mejs.estonian',
2859 + fl: 'mejs.filipino',
2860 + fi: 'mejs.finnish',
2861 + fr: 'mejs.french',
2862 + gl: 'mejs.galician',
2863 + de: 'mejs.german',
2864 + el: 'mejs.greek',
2865 + ht: 'mejs.haitian-creole',
2866 + iw: 'mejs.hebrew',
2867 + hi: 'mejs.hindi',
2868 + hu: 'mejs.hungarian',
2869 + is: 'mejs.icelandic',
2870 + id: 'mejs.indonesian',
2871 + ga: 'mejs.irish',
2872 + it: 'mejs.italian',
2873 + ja: 'mejs.japanese',
2874 + ko: 'mejs.korean',
2875 + lv: 'mejs.latvian',
2876 + lt: 'mejs.lithuanian',
2877 + mk: 'mejs.macedonian',
2878 + ms: 'mejs.malay',
2879 + mt: 'mejs.maltese',
2880 + no: 'mejs.norwegian',
2881 + fa: 'mejs.persian',
2882 + pl: 'mejs.polish',
2883 + pt: 'mejs.portuguese',
2884 + ro: 'mejs.romanian',
2885 + ru: 'mejs.russian',
2886 + sr: 'mejs.serbian',
2887 + sk: 'mejs.slovak',
2888 + sl: 'mejs.slovenian',
2889 + es: 'mejs.spanish',
2890 + sw: 'mejs.swahili',
2891 + sv: 'mejs.swedish',
2892 + tl: 'mejs.tagalog',
2893 + th: 'mejs.thai',
2894 + tr: 'mejs.turkish',
2895 + uk: 'mejs.ukrainian',
2896 + vi: 'mejs.vietnamese',
2897 + cy: 'mejs.welsh',
2898 + yi: 'mejs.yiddish'
2899 + }
2900 + };
2901 +
2902 + _mejs2.default.TrackFormatParser = {
2903 + webvtt: {
2904 + pattern: /^((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{1,3})?) --\> ((?:[0-9]{1,2}:)?[0-9]{2}:[0-9]{2}([,.][0-9]{3})?)(.*)$/,
2905 +
2906 + parse: function parse(trackText) {
2907 + var lines = trackText.split(/\r?\n/),
2908 + entries = [];
2909 +
2910 + var timecode = void 0,
2911 + text = void 0,
2912 + identifier = void 0;
2913 +
2914 + for (var i = 0, total = lines.length; i < total; i++) {
2915 + timecode = this.pattern.exec(lines[i]);
2916 +
2917 + if (timecode && i < lines.length) {
2918 + if (i - 1 >= 0 && lines[i - 1] !== '') {
2919 + identifier = lines[i - 1];
2920 + }
2921 + i++;
2922 +
2923 + text = lines[i];
2924 + i++;
2925 + while (lines[i] !== '' && i < lines.length) {
2926 + text = text + '\n' + lines[i];
2927 + i++;
2928 + }
2929 + text = text === null ? '' : text.trim().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
2930 + entries.push({
2931 + identifier: identifier,
2932 + start: (0, _time.convertSMPTEtoSeconds)(timecode[1]) === 0 ? 0.200 : (0, _time.convertSMPTEtoSeconds)(timecode[1]),
2933 + stop: (0, _time.convertSMPTEtoSeconds)(timecode[3]),
2934 + text: text,
2935 + settings: timecode[5]
2936 + });
2937 + }
2938 + identifier = '';
2939 + }
2940 + return entries;
2941 + }
2942 + },
2943 +
2944 + dfxp: {
2945 + parse: function parse(trackText) {
2946 + var trackElem = _document2.default.adoptNode(new DOMParser().parseFromString(trackText, 'application/xml').documentElement),
2947 + container = trackElem.querySelector('div'),
2948 + lines = container.querySelectorAll('p'),
2949 + styleNode = _document2.default.getElementById(container.getAttribute('style')),
2950 + entries = [];
2951 +
2952 + var styles = void 0;
2953 +
2954 + if (styleNode) {
2955 + styleNode.removeAttribute('id');
2956 + var attributes = styleNode.attributes;
2957 + if (attributes.length) {
2958 + styles = {};
2959 + for (var i = 0, total = attributes.length; i < total; i++) {
2960 + styles[attributes[i].name.split(":")[1]] = attributes[i].value;
2961 + }
2962 + }
2963 + }
2964 +
2965 + for (var _i16 = 0, _total13 = lines.length; _i16 < _total13; _i16++) {
2966 + var style = void 0,
2967 + _temp = {
2968 + start: null,
2969 + stop: null,
2970 + style: null,
2971 + text: null
2972 + };
2973 +
2974 + if (lines[_i16].getAttribute('begin')) {
2975 + _temp.start = (0, _time.convertSMPTEtoSeconds)(lines[_i16].getAttribute('begin'));
2976 + }
2977 + if (!_temp.start && lines[_i16 - 1].getAttribute('end')) {
2978 + _temp.start = (0, _time.convertSMPTEtoSeconds)(lines[_i16 - 1].getAttribute('end'));
2979 + }
2980 + if (lines[_i16].getAttribute('end')) {
2981 + _temp.stop = (0, _time.convertSMPTEtoSeconds)(lines[_i16].getAttribute('end'));
2982 + }
2983 + if (!_temp.stop && lines[_i16 + 1].getAttribute('begin')) {
2984 + _temp.stop = (0, _time.convertSMPTEtoSeconds)(lines[_i16 + 1].getAttribute('begin'));
2985 + }
2986 +
2987 + if (styles) {
2988 + style = '';
2989 + for (var _style in styles) {
2990 + style += _style + ': ' + styles[_style] + ';';
2991 + }
2992 + }
2993 + if (style) {
2994 + _temp.style = style;
2995 + }
2996 + if (_temp.start === 0) {
2997 + _temp.start = 0.200;
2998 + }
2999 + _temp.text = lines[_i16].innerHTML.trim().replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_| !:, .; ]*[-A-Z0-9+&@#\/%=~_|])/ig, "<a href='$1' target='_blank'>$1</a>");
3000 + entries.push(_temp);
3001 + }
3002 + return entries;
3003 + }
3004 + }
3005 + };
3006 +
3007 + },{"16":16,"2":2,"26":26,"27":27,"30":30,"5":5,"7":7}],14:[function(_dereq_,module,exports){
3008 + 'use strict';
3009 +
3010 + var _document = _dereq_(2);
3011 +
3012 + var _document2 = _interopRequireDefault(_document);
3013 +
3014 + var _player = _dereq_(16);
3015 +
3016 + var _player2 = _interopRequireDefault(_player);
3017 +
3018 + var _i18n = _dereq_(5);
3019 +
3020 + var _i18n2 = _interopRequireDefault(_i18n);
3021 +
3022 + var _constants = _dereq_(25);
3023 +
3024 + var _general = _dereq_(27);
3025 +
3026 + var _dom = _dereq_(26);
3027 +
3028 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3029 +
3030 + Object.assign(_player.config, {
3031 + muteText: null,
3032 +
3033 + unmuteText: null,
3034 +
3035 + allyVolumeControlText: null,
3036 +
3037 + hideVolumeOnTouchDevices: true,
3038 +
3039 + audioVolume: 'horizontal',
3040 +
3041 + videoVolume: 'vertical',
3042 +
3043 + startVolume: 0.8
3044 + });
3045 +
3046 + Object.assign(_player2.default.prototype, {
3047 + buildvolume: function buildvolume(player, controls, layers, media) {
3048 + if ((_constants.IS_ANDROID || _constants.IS_IOS) && this.options.hideVolumeOnTouchDevices) {
3049 + return;
3050 + }
3051 +
3052 + var t = this,
3053 + mode = t.isVideo ? t.options.videoVolume : t.options.audioVolume,
3054 + muteText = (0, _general.isString)(t.options.muteText) ? t.options.muteText : _i18n2.default.t('mejs.mute'),
3055 + unmuteText = (0, _general.isString)(t.options.unmuteText) ? t.options.unmuteText : _i18n2.default.t('mejs.unmute'),
3056 + volumeControlText = (0, _general.isString)(t.options.allyVolumeControlText) ? t.options.allyVolumeControlText : _i18n2.default.t('mejs.volume-help-text'),
3057 + mute = _document2.default.createElement('div');
3058 +
3059 + mute.className = t.options.classPrefix + 'button ' + t.options.classPrefix + 'volume-button ' + t.options.classPrefix + 'mute';
3060 + mute.innerHTML = mode === 'horizontal' ? '<button type="button" aria-controls="' + t.id + '" title="' + muteText + '" aria-label="' + muteText + '" tabindex="0"></button>' : '<button type="button" aria-controls="' + t.id + '" title="' + muteText + '" aria-label="' + muteText + '" tabindex="0"></button>' + ('<a href="javascript:void(0);" class="' + t.options.classPrefix + 'volume-slider" ') + ('aria-label="' + _i18n2.default.t('mejs.volume-slider') + '" aria-valuemin="0" aria-valuemax="100" role="slider" ') + 'aria-orientation="vertical">' + ('<span class="' + t.options.classPrefix + 'offscreen">' + volumeControlText + '</span>') + ('<div class="' + t.options.classPrefix + 'volume-total">') + ('<div class="' + t.options.classPrefix + 'volume-current"></div>') + ('<div class="' + t.options.classPrefix + 'volume-handle"></div>') + '</div>' + '</a>';
3061 +
3062 + t.addControlElement(mute, 'volume');
3063 +
3064 + t.options.keyActions.push({
3065 + keys: [38],
3066 + action: function action(player) {
3067 + var volumeSlider = player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'volume-slider');
3068 + if (volumeSlider && volumeSlider.matches(':focus')) {
3069 + volumeSlider.style.display = 'block';
3070 + }
3071 + if (player.isVideo) {
3072 + player.showControls();
3073 + player.startControlsTimer();
3074 + }
3075 +
3076 + var newVolume = Math.min(player.volume + 0.1, 1);
3077 + player.setVolume(newVolume);
3078 + if (newVolume > 0) {
3079 + player.setMuted(false);
3080 + }
3081 + }
3082 + }, {
3083 + keys: [40],
3084 + action: function action(player) {
3085 + var volumeSlider = player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'volume-slider');
3086 + if (volumeSlider) {
3087 + volumeSlider.style.display = 'block';
3088 + }
3089 +
3090 + if (player.isVideo) {
3091 + player.showControls();
3092 + player.startControlsTimer();
3093 + }
3094 +
3095 + var newVolume = Math.max(player.volume - 0.1, 0);
3096 + player.setVolume(newVolume);
3097 +
3098 + if (newVolume <= 0.1) {
3099 + player.setMuted(true);
3100 + }
3101 + }
3102 + }, {
3103 + keys: [77],
3104 + action: function action(player) {
3105 + var volumeSlider = player.getElement(player.container).querySelector('.' + t.options.classPrefix + 'volume-slider');
3106 + if (volumeSlider) {
3107 + volumeSlider.style.display = 'block';
3108 + }
3109 +
3110 + if (player.isVideo) {
3111 + player.showControls();
3112 + player.startControlsTimer();
3113 + }
3114 + if (player.media.muted) {
3115 + player.setMuted(false);
3116 + } else {
3117 + player.setMuted(true);
3118 + }
3119 + }
3120 + });
3121 +
3122 + if (mode === 'horizontal') {
3123 + var anchor = _document2.default.createElement('a');
3124 + anchor.className = t.options.classPrefix + 'horizontal-volume-slider';
3125 + anchor.href = 'javascript:void(0);';
3126 + anchor.setAttribute('aria-label', _i18n2.default.t('mejs.volume-slider'));
3127 + anchor.setAttribute('aria-valuemin', 0);
3128 + anchor.setAttribute('aria-valuemax', 100);
3129 + anchor.setAttribute('aria-valuenow', 100);
3130 + anchor.setAttribute('role', 'slider');
3131 + anchor.innerHTML += '<span class="' + t.options.classPrefix + 'offscreen">' + volumeControlText + '</span>' + ('<div class="' + t.options.classPrefix + 'horizontal-volume-total">') + ('<div class="' + t.options.classPrefix + 'horizontal-volume-current"></div>') + ('<div class="' + t.options.classPrefix + 'horizontal-volume-handle"></div>') + '</div>';
3132 + mute.parentNode.insertBefore(anchor, mute.nextSibling);
3133 + }
3134 +
3135 + var mouseIsDown = false,
3136 + mouseIsOver = false,
3137 + modified = false,
3138 + updateVolumeSlider = function updateVolumeSlider() {
3139 + var volume = Math.floor(media.volume * 100);
3140 + volumeSlider.setAttribute('aria-valuenow', volume);
3141 + volumeSlider.setAttribute('aria-valuetext', volume + '%');
3142 + };
3143 +
3144 + var volumeSlider = mode === 'vertical' ? t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'volume-slider') : t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'horizontal-volume-slider'),
3145 + volumeTotal = mode === 'vertical' ? t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'volume-total') : t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'horizontal-volume-total'),
3146 + volumeCurrent = mode === 'vertical' ? t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'volume-current') : t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'horizontal-volume-current'),
3147 + volumeHandle = mode === 'vertical' ? t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'volume-handle') : t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'horizontal-volume-handle'),
3148 + positionVolumeHandle = function positionVolumeHandle(volume) {
3149 +
3150 + if (volume === null || isNaN(volume) || volume === undefined) {
3151 + return;
3152 + }
3153 +
3154 + volume = Math.max(0, volume);
3155 + volume = Math.min(volume, 1);
3156 +
3157 + if (volume === 0) {
3158 + (0, _dom.removeClass)(mute, t.options.classPrefix + 'mute');
3159 + (0, _dom.addClass)(mute, t.options.classPrefix + 'unmute');
3160 + var button = mute.firstElementChild;
3161 + button.setAttribute('title', unmuteText);
3162 + button.setAttribute('aria-label', unmuteText);
3163 + } else {
3164 + (0, _dom.removeClass)(mute, t.options.classPrefix + 'unmute');
3165 + (0, _dom.addClass)(mute, t.options.classPrefix + 'mute');
3166 + var _button = mute.firstElementChild;
3167 + _button.setAttribute('title', muteText);
3168 + _button.setAttribute('aria-label', muteText);
3169 + }
3170 +
3171 + var volumePercentage = volume * 100 + '%',
3172 + volumeStyles = getComputedStyle(volumeHandle);
3173 +
3174 + if (mode === 'vertical') {
3175 + volumeCurrent.style.bottom = 0;
3176 + volumeCurrent.style.height = volumePercentage;
3177 + volumeHandle.style.bottom = volumePercentage;
3178 + volumeHandle.style.marginBottom = -parseFloat(volumeStyles.height) / 2 + 'px';
3179 + } else {
3180 + volumeCurrent.style.left = 0;
3181 + volumeCurrent.style.width = volumePercentage;
3182 + volumeHandle.style.left = volumePercentage;
3183 + volumeHandle.style.marginLeft = -parseFloat(volumeStyles.width) / 2 + 'px';
3184 + }
3185 + },
3186 + handleVolumeMove = function handleVolumeMove(e) {
3187 + var totalOffset = (0, _dom.offset)(volumeTotal),
3188 + volumeStyles = getComputedStyle(volumeTotal);
3189 +
3190 + modified = true;
3191 +
3192 + var volume = null;
3193 +
3194 + if (mode === 'vertical') {
3195 + var railHeight = parseFloat(volumeStyles.height),
3196 + newY = e.pageY - totalOffset.top;
3197 +
3198 + volume = (railHeight - newY) / railHeight;
3199 +
3200 + if (totalOffset.top === 0 || totalOffset.left === 0) {
3201 + return;
3202 + }
3203 + } else {
3204 + var railWidth = parseFloat(volumeStyles.width),
3205 + newX = e.pageX - totalOffset.left;
3206 +
3207 + volume = newX / railWidth;
3208 + }
3209 +
3210 + volume = Math.max(0, volume);
3211 + volume = Math.min(volume, 1);
3212 +
3213 + positionVolumeHandle(volume);
3214 +
3215 + t.setMuted(volume === 0);
3216 + t.setVolume(volume);
3217 +
3218 + e.preventDefault();
3219 + e.stopPropagation();
3220 + },
3221 + toggleMute = function toggleMute() {
3222 + if (t.muted) {
3223 + positionVolumeHandle(0);
3224 + (0, _dom.removeClass)(mute, t.options.classPrefix + 'mute');
3225 + (0, _dom.addClass)(mute, t.options.classPrefix + 'unmute');
3226 + } else {
3227 +
3228 + positionVolumeHandle(media.volume);
3229 + (0, _dom.removeClass)(mute, t.options.classPrefix + 'unmute');
3230 + (0, _dom.addClass)(mute, t.options.classPrefix + 'mute');
3231 + }
3232 + };
3233 +
3234 + player.getElement(player.container).addEventListener('keydown', function (e) {
3235 + var hasFocus = !!e.target.closest('.' + t.options.classPrefix + 'container');
3236 + if (!hasFocus && mode === 'vertical') {
3237 + volumeSlider.style.display = 'none';
3238 + }
3239 + });
3240 +
3241 + mute.addEventListener('mouseenter', function (e) {
3242 + if (e.target === mute) {
3243 + volumeSlider.style.display = 'block';
3244 + mouseIsOver = true;
3245 + e.preventDefault();
3246 + e.stopPropagation();
3247 + }
3248 + });
3249 + mute.addEventListener('focusin', function () {
3250 + volumeSlider.style.display = 'block';
3251 + mouseIsOver = true;
3252 + });
3253 +
3254 + mute.addEventListener('focusout', function (e) {
3255 + if ((!e.relatedTarget || e.relatedTarget && !e.relatedTarget.matches('.' + t.options.classPrefix + 'volume-slider')) && mode === 'vertical') {
3256 + volumeSlider.style.display = 'none';
3257 + }
3258 + });
3259 + mute.addEventListener('mouseleave', function () {
3260 + mouseIsOver = false;
3261 + if (!mouseIsDown && mode === 'vertical') {
3262 + volumeSlider.style.display = 'none';
3263 + }
3264 + });
3265 + mute.addEventListener('focusout', function () {
3266 + mouseIsOver = false;
3267 + });
3268 + mute.addEventListener('keydown', function (e) {
3269 + if (t.options.enableKeyboard && t.options.keyActions.length) {
3270 + var keyCode = e.which || e.keyCode || 0,
3271 + volume = media.volume;
3272 +
3273 + switch (keyCode) {
3274 + case 38:
3275 + volume = Math.min(volume + 0.1, 1);
3276 + break;
3277 + case 40:
3278 + volume = Math.max(0, volume - 0.1);
3279 + break;
3280 + default:
3281 + return true;
3282 + }
3283 +
3284 + mouseIsDown = false;
3285 + positionVolumeHandle(volume);
3286 + media.setVolume(volume);
3287 +
3288 + e.preventDefault();
3289 + e.stopPropagation();
3290 + }
3291 + });
3292 + mute.querySelector('button').addEventListener('click', function () {
3293 + media.setMuted(!media.muted);
3294 + var event = (0, _general.createEvent)('volumechange', media);
3295 + media.dispatchEvent(event);
3296 + });
3297 +
3298 + volumeSlider.addEventListener('dragstart', function () {
3299 + return false;
3300 + });
3301 +
3302 + volumeSlider.addEventListener('mouseover', function () {
3303 + mouseIsOver = true;
3304 + });
3305 + volumeSlider.addEventListener('focusin', function () {
3306 + volumeSlider.style.display = 'block';
3307 + mouseIsOver = true;
3308 + });
3309 + volumeSlider.addEventListener('focusout', function () {
3310 + mouseIsOver = false;
3311 + if (!mouseIsDown && mode === 'vertical') {
3312 + volumeSlider.style.display = 'none';
3313 + }
3314 + });
3315 + volumeSlider.addEventListener('mousedown', function (e) {
3316 + handleVolumeMove(e);
3317 + t.globalBind('mousemove.vol', function (event) {
3318 + var target = event.target;
3319 + if (mouseIsDown && (target === volumeSlider || target.closest(mode === 'vertical' ? '.' + t.options.classPrefix + 'volume-slider' : '.' + t.options.classPrefix + 'horizontal-volume-slider'))) {
3320 + handleVolumeMove(event);
3321 + }
3322 + });
3323 + t.globalBind('mouseup.vol', function () {
3324 + mouseIsDown = false;
3325 + if (!mouseIsOver && mode === 'vertical') {
3326 + volumeSlider.style.display = 'none';
3327 + }
3328 + });
3329 + mouseIsDown = true;
3330 + e.preventDefault();
3331 + e.stopPropagation();
3332 + });
3333 +
3334 + media.addEventListener('volumechange', function (e) {
3335 + if (!mouseIsDown) {
3336 + toggleMute();
3337 + }
3338 + updateVolumeSlider(e);
3339 + });
3340 +
3341 + var rendered = false;
3342 + media.addEventListener('rendererready', function () {
3343 + if (!modified) {
3344 + setTimeout(function () {
3345 + rendered = true;
3346 + if (player.options.startVolume === 0 || media.originalNode.muted) {
3347 + media.setMuted(true);
3348 + }
3349 + media.setVolume(player.options.startVolume);
3350 + t.setControlsSize();
3351 + }, 250);
3352 + }
3353 + });
3354 +
3355 + media.addEventListener('loadedmetadata', function () {
3356 + setTimeout(function () {
3357 + if (!modified && !rendered) {
3358 + if (player.options.startVolume === 0 || media.originalNode.muted) {
3359 + media.setMuted(true);
3360 + }
3361 + if (player.options.startVolume === 0) {
3362 + player.options.startVolume = 0;
3363 + }
3364 + media.setVolume(player.options.startVolume);
3365 + t.setControlsSize();
3366 + }
3367 + rendered = false;
3368 + }, 250);
3369 + });
3370 +
3371 + if (player.options.startVolume === 0 || media.originalNode.muted) {
3372 + media.setMuted(true);
3373 + if (player.options.startVolume === 0) {
3374 + player.options.startVolume = 0;
3375 + }
3376 + toggleMute();
3377 + }
3378 +
3379 + t.getElement(t.container).addEventListener('controlsresize', function () {
3380 + toggleMute();
3381 + });
3382 + }
3383 + });
3384 +
3385 + },{"16":16,"2":2,"25":25,"26":26,"27":27,"5":5}],15:[function(_dereq_,module,exports){
3386 + 'use strict';
3387 +
3388 + Object.defineProperty(exports, "__esModule", {
3389 + value: true
3390 + });
3391 + var EN = exports.EN = {
3392 + 'mejs.plural-form': 1,
3393 +
3394 + 'mejs.download-file': 'Download File',
3395 +
3396 + '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/',
3397 +
3398 + 'mejs.fullscreen': 'Fullscreen',
3399 +
3400 + 'mejs.play': 'Play',
3401 + 'mejs.pause': 'Pause',
3402 +
3403 + 'mejs.time-slider': 'Time Slider',
3404 + 'mejs.time-help-text': 'Use Left/Right Arrow keys to advance one second, Up/Down arrows to advance ten seconds.',
3405 + 'mejs.live-broadcast': 'Live Broadcast',
3406 +
3407 + 'mejs.volume-help-text': 'Use Up/Down Arrow keys to increase or decrease volume.',
3408 + 'mejs.unmute': 'Unmute',
3409 + 'mejs.mute': 'Mute',
3410 + 'mejs.volume-slider': 'Volume Slider',
3411 +
3412 + 'mejs.video-player': 'Video Player',
3413 + 'mejs.audio-player': 'Audio Player',
3414 +
3415 + 'mejs.captions-subtitles': 'Captions/Subtitles',
3416 + 'mejs.captions-chapters': 'Chapters',
3417 + 'mejs.none': 'None',
3418 + 'mejs.afrikaans': 'Afrikaans',
3419 + 'mejs.albanian': 'Albanian',
3420 + 'mejs.arabic': 'Arabic',
3421 + 'mejs.belarusian': 'Belarusian',
3422 + 'mejs.bulgarian': 'Bulgarian',
3423 + 'mejs.catalan': 'Catalan',
3424 + 'mejs.chinese': 'Chinese',
3425 + 'mejs.chinese-simplified': 'Chinese (Simplified)',
3426 + 'mejs.chinese-traditional': 'Chinese (Traditional)',
3427 + 'mejs.croatian': 'Croatian',
3428 + 'mejs.czech': 'Czech',
3429 + 'mejs.danish': 'Danish',
3430 + 'mejs.dutch': 'Dutch',
3431 + 'mejs.english': 'English',
3432 + 'mejs.estonian': 'Estonian',
3433 + 'mejs.filipino': 'Filipino',
3434 + 'mejs.finnish': 'Finnish',
3435 + 'mejs.french': 'French',
3436 + 'mejs.galician': 'Galician',
3437 + 'mejs.german': 'German',
3438 + 'mejs.greek': 'Greek',
3439 + 'mejs.haitian-creole': 'Haitian Creole',
3440 + 'mejs.hebrew': 'Hebrew',
3441 + 'mejs.hindi': 'Hindi',
3442 + 'mejs.hungarian': 'Hungarian',
3443 + 'mejs.icelandic': 'Icelandic',
3444 + 'mejs.indonesian': 'Indonesian',
3445 + 'mejs.irish': 'Irish',
3446 + 'mejs.italian': 'Italian',
3447 + 'mejs.japanese': 'Japanese',
3448 + 'mejs.korean': 'Korean',
3449 + 'mejs.latvian': 'Latvian',
3450 + 'mejs.lithuanian': 'Lithuanian',
3451 + 'mejs.macedonian': 'Macedonian',
3452 + 'mejs.malay': 'Malay',
3453 + 'mejs.maltese': 'Maltese',
3454 + 'mejs.norwegian': 'Norwegian',
3455 + 'mejs.persian': 'Persian',
3456 + 'mejs.polish': 'Polish',
3457 + 'mejs.portuguese': 'Portuguese',
3458 + 'mejs.romanian': 'Romanian',
3459 + 'mejs.russian': 'Russian',
3460 + 'mejs.serbian': 'Serbian',
3461 + 'mejs.slovak': 'Slovak',
3462 + 'mejs.slovenian': 'Slovenian',
3463 + 'mejs.spanish': 'Spanish',
3464 + 'mejs.swahili': 'Swahili',
3465 + 'mejs.swedish': 'Swedish',
3466 + 'mejs.tagalog': 'Tagalog',
3467 + 'mejs.thai': 'Thai',
3468 + 'mejs.turkish': 'Turkish',
3469 + 'mejs.ukrainian': 'Ukrainian',
3470 + 'mejs.vietnamese': 'Vietnamese',
3471 + 'mejs.welsh': 'Welsh',
3472 + 'mejs.yiddish': 'Yiddish'
3473 + };
3474 +
3475 + },{}],16:[function(_dereq_,module,exports){
3476 + 'use strict';
3477 +
3478 + Object.defineProperty(exports, "__esModule", {
3479 + value: true
3480 + });
3481 + exports.config = undefined;
3482 +
3483 + var _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; };
3484 +
3485 + var _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; }; }();
3486 +
3487 + var _window = _dereq_(3);
3488 +
3489 + var _window2 = _interopRequireDefault(_window);
3490 +
3491 + var _document = _dereq_(2);
3492 +
3493 + var _document2 = _interopRequireDefault(_document);
3494 +
3495 + var _mejs = _dereq_(7);
3496 +
3497 + var _mejs2 = _interopRequireDefault(_mejs);
3498 +
3499 + var _mediaelement = _dereq_(6);
3500 +
3501 + var _mediaelement2 = _interopRequireDefault(_mediaelement);
3502 +
3503 + var _default = _dereq_(17);
3504 +
3505 + var _default2 = _interopRequireDefault(_default);
3506 +
3507 + var _i18n = _dereq_(5);
3508 +
3509 + var _i18n2 = _interopRequireDefault(_i18n);
3510 +
3511 + var _constants = _dereq_(25);
3512 +
3513 + var _general = _dereq_(27);
3514 +
3515 + var _time = _dereq_(30);
3516 +
3517 + var _media = _dereq_(28);
3518 +
3519 + var _dom = _dereq_(26);
3520 +
3521 + var dom = _interopRequireWildcard(_dom);
3522 +
3523 + function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
3524 +
3525 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
3526 +
3527 + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
3528 +
3529 + _mejs2.default.mepIndex = 0;
3530 +
3531 + _mejs2.default.players = {};
3532 +
3533 + var config = exports.config = {
3534 + poster: '',
3535 +
3536 + showPosterWhenEnded: false,
3537 +
3538 + showPosterWhenPaused: false,
3539 +
3540 + defaultVideoWidth: 480,
3541 +
3542 + defaultVideoHeight: 270,
3543 +
3544 + videoWidth: -1,
3545 +
3546 + videoHeight: -1,
3547 +
3548 + defaultAudioWidth: 400,
3549 +
3550 + defaultAudioHeight: 40,
3551 +
3552 + defaultSeekBackwardInterval: function defaultSeekBackwardInterval(media) {
3553 + return media.getDuration() * 0.05;
3554 + },
3555 +
3556 + defaultSeekForwardInterval: function defaultSeekForwardInterval(media) {
3557 + return media.getDuration() * 0.05;
3558 + },
3559 +
3560 + setDimensions: true,
3561 +
3562 + audioWidth: -1,
3563 +
3564 + audioHeight: -1,
3565 +
3566 + loop: false,
3567 +
3568 + autoRewind: true,
3569 +
3570 + enableAutosize: true,
3571 +
3572 + timeFormat: '',
3573 +
3574 + alwaysShowHours: false,
3575 +
3576 + showTimecodeFrameCount: false,
3577 +
3578 + framesPerSecond: 25,
3579 +
3580 + alwaysShowControls: false,
3581 +
3582 + hideVideoControlsOnLoad: false,
3583 +
3584 + hideVideoControlsOnPause: false,
3585 +
3586 + clickToPlayPause: true,
3587 +
3588 + controlsTimeoutDefault: 1500,
3589 +
3590 + controlsTimeoutMouseEnter: 2500,
3591 +
3592 + controlsTimeoutMouseLeave: 1000,
3593 +
3594 + iPadUseNativeControls: false,
3595 +
3596 + iPhoneUseNativeControls: false,
3597 +
3598 + AndroidUseNativeControls: false,
3599 +
3600 + features: ['playpause', 'current', 'progress', 'duration', 'tracks', 'volume', 'fullscreen'],
3601 +
3602 + useDefaultControls: false,
3603 +
3604 + isVideo: true,
3605 +
3606 + stretching: 'auto',
3607 +
3608 + classPrefix: 'mejs__',
3609 +
3610 + enableKeyboard: true,
3611 +
3612 + pauseOtherPlayers: true,
3613 +
3614 + secondsDecimalLength: 0,
3615 +
3616 + customError: null,
3617 +
3618 + keyActions: [{
3619 + keys: [32, 179],
3620 + action: function action(player) {
3621 +
3622 + if (!_constants.IS_FIREFOX) {
3623 + if (player.paused || player.ended) {
3624 + player.play();
3625 + } else {
3626 + player.pause();
3627 + }
3628 + }
3629 + }
3630 + }]
3631 + };
3632 +
3633 + _mejs2.default.MepDefaults = config;
3634 +
3635 + var MediaElementPlayer = function () {
3636 + function MediaElementPlayer(node, o) {
3637 + _classCallCheck(this, MediaElementPlayer);
3638 +
3639 + var t = this,
3640 + element = typeof node === 'string' ? _document2.default.getElementById(node) : node;
3641 +
3642 + if (!(t instanceof MediaElementPlayer)) {
3643 + return new MediaElementPlayer(element, o);
3644 + }
3645 +
3646 + t.node = t.media = element;
3647 +
3648 + if (!t.node) {
3649 + return;
3650 + }
3651 +
3652 + if (t.media.player) {
3653 + return t.media.player;
3654 + }
3655 +
3656 + t.hasFocus = false;
3657 +
3658 + t.controlsAreVisible = true;
3659 +
3660 + t.controlsEnabled = true;
3661 +
3662 + t.controlsTimer = null;
3663 +
3664 + t.currentMediaTime = 0;
3665 +
3666 + t.proxy = null;
3667 +
3668 + if (o === undefined) {
3669 + var options = t.node.getAttribute('data-mejsoptions');
3670 + o = options ? JSON.parse(options) : {};
3671 + }
3672 +
3673 + t.options = Object.assign({}, config, o);
3674 +
3675 + if (t.options.loop && !t.media.getAttribute('loop')) {
3676 + t.media.loop = true;
3677 + t.node.loop = true;
3678 + } else if (t.media.loop) {
3679 + t.options.loop = true;
3680 + }
3681 +
3682 + if (!t.options.timeFormat) {
3683 + t.options.timeFormat = 'mm:ss';
3684 + if (t.options.alwaysShowHours) {
3685 + t.options.timeFormat = 'hh:mm:ss';
3686 + }
3687 + if (t.options.showTimecodeFrameCount) {
3688 + t.options.timeFormat += ':ff';
3689 + }
3690 + }
3691 +
3692 + (0, _time.calculateTimeFormat)(0, t.options, t.options.framesPerSecond || 25);
3693 +
3694 + t.id = 'mep_' + _mejs2.default.mepIndex++;
3695 +
3696 + _mejs2.default.players[t.id] = t;
3697 +
3698 + t.init();
3699 +
3700 + return t;
3701 + }
3702 +
3703 + _createClass(MediaElementPlayer, [{
3704 + key: 'getElement',
3705 + value: function getElement(element) {
3706 + return element;
3707 + }
3708 + }, {
3709 + key: 'init',
3710 + value: function init() {
3711 + var t = this,
3712 + playerOptions = Object.assign({}, t.options, {
3713 + success: function success(media, domNode) {
3714 + t._meReady(media, domNode);
3715 + },
3716 + error: function error(e) {
3717 + t._handleError(e);
3718 + }
3719 + }),
3720 + tagName = t.node.tagName.toLowerCase();
3721 +
3722 + t.isDynamic = tagName !== 'audio' && tagName !== 'video' && tagName !== 'iframe';
3723 + t.isVideo = t.isDynamic ? t.options.isVideo : tagName !== 'audio' && t.options.isVideo;
3724 + t.mediaFiles = null;
3725 + t.trackFiles = null;
3726 +
3727 + if (_constants.IS_IPAD && t.options.iPadUseNativeControls || _constants.IS_IPHONE && t.options.iPhoneUseNativeControls) {
3728 + t.node.setAttribute('controls', true);
3729 +
3730 + if (_constants.IS_IPAD && t.node.getAttribute('autoplay')) {
3731 + t.play();
3732 + }
3733 + } else if ((t.isVideo || !t.isVideo && (t.options.features.length || t.options.useDefaultControls)) && !(_constants.IS_ANDROID && t.options.AndroidUseNativeControls)) {
3734 + t.node.removeAttribute('controls');
3735 + var videoPlayerTitle = t.isVideo ? _i18n2.default.t('mejs.video-player') : _i18n2.default.t('mejs.audio-player');
3736 +
3737 + var offscreen = _document2.default.createElement('span');
3738 + offscreen.className = t.options.classPrefix + 'offscreen';
3739 + offscreen.innerText = videoPlayerTitle;
3740 + t.media.parentNode.insertBefore(offscreen, t.media);
3741 +
3742 + t.container = _document2.default.createElement('div');
3743 + t.getElement(t.container).id = t.id;
3744 + t.getElement(t.container).className = t.options.classPrefix + 'container ' + t.options.classPrefix + 'container-keyboard-inactive ' + t.media.className;
3745 + t.getElement(t.container).tabIndex = 0;
3746 + t.getElement(t.container).setAttribute('role', 'application');
3747 + t.getElement(t.container).setAttribute('aria-label', videoPlayerTitle);
3748 + t.getElement(t.container).innerHTML = '<div class="' + t.options.classPrefix + 'inner">' + ('<div class="' + t.options.classPrefix + 'mediaelement"></div>') + ('<div class="' + t.options.classPrefix + 'layers"></div>') + ('<div class="' + t.options.classPrefix + 'controls"></div>') + '</div>';
3749 + t.getElement(t.container).addEventListener('focus', function (e) {
3750 + if (!t.controlsAreVisible && !t.hasFocus && t.controlsEnabled) {
3751 + t.showControls(true);
3752 +
3753 + var btnSelector = (0, _general.isNodeAfter)(e.relatedTarget, t.getElement(t.container)) ? '.' + t.options.classPrefix + 'controls .' + t.options.classPrefix + 'button:last-child > button' : '.' + t.options.classPrefix + 'playpause-button > button',
3754 + button = t.getElement(t.container).querySelector(btnSelector);
3755 +
3756 + button.focus();
3757 + }
3758 + });
3759 + t.node.parentNode.insertBefore(t.getElement(t.container), t.node);
3760 +
3761 + if (!t.options.features.length && !t.options.useDefaultControls) {
3762 + t.getElement(t.container).style.background = 'transparent';
3763 + t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'controls').style.display = 'none';
3764 + }
3765 +
3766 + if (t.isVideo && t.options.stretching === 'fill' && !dom.hasClass(t.getElement(t.container).parentNode, t.options.classPrefix + 'fill-container')) {
3767 + t.outerContainer = t.media.parentNode;
3768 +
3769 + var wrapper = _document2.default.createElement('div');
3770 + wrapper.className = t.options.classPrefix + 'fill-container';
3771 + t.getElement(t.container).parentNode.insertBefore(wrapper, t.getElement(t.container));
3772 + wrapper.appendChild(t.getElement(t.container));
3773 + }
3774 +
3775 + if (_constants.IS_ANDROID) {
3776 + dom.addClass(t.getElement(t.container), t.options.classPrefix + 'android');
3777 + }
3778 + if (_constants.IS_IOS) {
3779 + dom.addClass(t.getElement(t.container), t.options.classPrefix + 'ios');
3780 + }
3781 + if (_constants.IS_IPAD) {
3782 + dom.addClass(t.getElement(t.container), t.options.classPrefix + 'ipad');
3783 + }
3784 + if (_constants.IS_IPHONE) {
3785 + dom.addClass(t.getElement(t.container), t.options.classPrefix + 'iphone');
3786 + }
3787 + dom.addClass(t.getElement(t.container), t.isVideo ? t.options.classPrefix + 'video' : t.options.classPrefix + 'audio');
3788 +
3789 + t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'mediaelement').appendChild(t.node);
3790 +
3791 + t.media.player = t;
3792 +
3793 + t.controls = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'controls');
3794 + t.layers = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'layers');
3795 +
3796 + var tagType = t.isVideo ? 'video' : 'audio',
3797 + capsTagName = tagType.substring(0, 1).toUpperCase() + tagType.substring(1);
3798 +
3799 + if (t.options[tagType + 'Width'] > 0 || t.options[tagType + 'Width'].toString().indexOf('%') > -1) {
3800 + t.width = t.options[tagType + 'Width'];
3801 + } else if (t.node.style.width !== '' && t.node.style.width !== null) {
3802 + t.width = t.node.style.width;
3803 + } else if (t.node.getAttribute('width')) {
3804 + t.width = t.node.getAttribute('width');
3805 + } else {
3806 + t.width = t.options['default' + capsTagName + 'Width'];
3807 + }
3808 +
3809 + if (t.options[tagType + 'Height'] > 0 || t.options[tagType + 'Height'].toString().indexOf('%') > -1) {
3810 + t.height = t.options[tagType + 'Height'];
3811 + } else if (t.node.style.height !== '' && t.node.style.height !== null) {
3812 + t.height = t.node.style.height;
3813 + } else if (t.node.getAttribute('height')) {
3814 + t.height = t.node.getAttribute('height');
3815 + } else {
3816 + t.height = t.options['default' + capsTagName + 'Height'];
3817 + }
3818 +
3819 + t.initialAspectRatio = t.height >= t.width ? t.width / t.height : t.height / t.width;
3820 +
3821 + t.setPlayerSize(t.width, t.height);
3822 +
3823 + playerOptions.pluginWidth = t.width;
3824 + playerOptions.pluginHeight = t.height;
3825 + } else if (!t.isVideo && !t.options.features.length && !t.options.useDefaultControls) {
3826 + t.node.style.display = 'none';
3827 + }
3828 +
3829 + _mejs2.default.MepDefaults = playerOptions;
3830 +
3831 + new _mediaelement2.default(t.media, playerOptions, t.mediaFiles);
3832 +
3833 + if (t.getElement(t.container) !== undefined && t.options.features.length && t.controlsAreVisible && !t.options.hideVideoControlsOnLoad) {
3834 + var event = (0, _general.createEvent)('controlsshown', t.getElement(t.container));
3835 + t.getElement(t.container).dispatchEvent(event);
3836 + }
3837 + }
3838 + }, {
3839 + key: 'showControls',
3840 + value: function showControls(doAnimation) {
3841 + var t = this;
3842 +
3843 + doAnimation = doAnimation === undefined || doAnimation;
3844 +
3845 + if (t.controlsAreVisible || !t.isVideo) {
3846 + return;
3847 + }
3848 +
3849 + if (doAnimation) {
3850 + (function () {
3851 + dom.fadeIn(t.getElement(t.controls), 200, function () {
3852 + dom.removeClass(t.getElement(t.controls), t.options.classPrefix + 'offscreen');
3853 + var event = (0, _general.createEvent)('controlsshown', t.getElement(t.container));
3854 + t.getElement(t.container).dispatchEvent(event);
3855 + });
3856 +
3857 + var controls = t.getElement(t.container).querySelectorAll('.' + t.options.classPrefix + 'control');
3858 +
3859 + var _loop = function _loop(i, total) {
3860 + dom.fadeIn(controls[i], 200, function () {
3861 + dom.removeClass(controls[i], t.options.classPrefix + 'offscreen');
3862 + });
3863 + };
3864 +
3865 + for (var i = 0, total = controls.length; i < total; i++) {
3866 + _loop(i, total);
3867 + }
3868 + })();
3869 + } else {
3870 + dom.removeClass(t.getElement(t.controls), t.options.classPrefix + 'offscreen');
3871 + t.getElement(t.controls).style.display = '';
3872 + t.getElement(t.controls).style.opacity = 1;
3873 +
3874 + var controls = t.getElement(t.container).querySelectorAll('.' + t.options.classPrefix + 'control');
3875 + for (var i = 0, total = controls.length; i < total; i++) {
3876 + dom.removeClass(controls[i], t.options.classPrefix + 'offscreen');
3877 + controls[i].style.display = '';
3878 + }
3879 +
3880 + var event = (0, _general.createEvent)('controlsshown', t.getElement(t.container));
3881 + t.getElement(t.container).dispatchEvent(event);
3882 + }
3883 +
3884 + t.controlsAreVisible = true;
3885 + t.setControlsSize();
3886 + }
3887 + }, {
3888 + key: 'hideControls',
3889 + value: function hideControls(doAnimation, forceHide) {
3890 + var t = this;
3891 +
3892 + doAnimation = doAnimation === undefined || doAnimation;
3893 +
3894 + if (forceHide !== true && (!t.controlsAreVisible || t.options.alwaysShowControls || t.paused && t.readyState === 4 && (!t.options.hideVideoControlsOnLoad && t.currentTime <= 0 || !t.options.hideVideoControlsOnPause && t.currentTime > 0) || t.isVideo && !t.options.hideVideoControlsOnLoad && !t.readyState || t.ended)) {
3895 + return;
3896 + }
3897 +
3898 + if (doAnimation) {
3899 + (function () {
3900 + dom.fadeOut(t.getElement(t.controls), 200, function () {
3901 + dom.addClass(t.getElement(t.controls), t.options.classPrefix + 'offscreen');
3902 + t.getElement(t.controls).style.display = '';
3903 + var event = (0, _general.createEvent)('controlshidden', t.getElement(t.container));
3904 + t.getElement(t.container).dispatchEvent(event);
3905 + });
3906 +
3907 + var controls = t.getElement(t.container).querySelectorAll('.' + t.options.classPrefix + 'control');
3908 +
3909 + var _loop2 = function _loop2(i, total) {
3910 + dom.fadeOut(controls[i], 200, function () {
3911 + dom.addClass(controls[i], t.options.classPrefix + 'offscreen');
3912 + controls[i].style.display = '';
3913 + });
3914 + };
3915 +
3916 + for (var i = 0, total = controls.length; i < total; i++) {
3917 + _loop2(i, total);
3918 + }
3919 + })();
3920 + } else {
3921 + dom.addClass(t.getElement(t.controls), t.options.classPrefix + 'offscreen');
3922 + t.getElement(t.controls).style.display = '';
3923 + t.getElement(t.controls).style.opacity = 0;
3924 +
3925 + var controls = t.getElement(t.container).querySelectorAll('.' + t.options.classPrefix + 'control');
3926 + for (var i = 0, total = controls.length; i < total; i++) {
3927 + dom.addClass(controls[i], t.options.classPrefix + 'offscreen');
3928 + controls[i].style.display = '';
3929 + }
3930 +
3931 + var event = (0, _general.createEvent)('controlshidden', t.getElement(t.container));
3932 + t.getElement(t.container).dispatchEvent(event);
3933 + }
3934 +
3935 + t.controlsAreVisible = false;
3936 + }
3937 + }, {
3938 + key: 'startControlsTimer',
3939 + value: function startControlsTimer(timeout) {
3940 + var t = this;
3941 +
3942 + timeout = typeof timeout !== 'undefined' ? timeout : t.options.controlsTimeoutDefault;
3943 +
3944 + t.killControlsTimer('start');
3945 +
3946 + t.controlsTimer = setTimeout(function () {
3947 + t.hideControls();
3948 + t.killControlsTimer('hide');
3949 + }, timeout);
3950 + }
3951 + }, {
3952 + key: 'killControlsTimer',
3953 + value: function killControlsTimer() {
3954 + var t = this;
3955 +
3956 + if (t.controlsTimer !== null) {
3957 + clearTimeout(t.controlsTimer);
3958 + delete t.controlsTimer;
3959 + t.controlsTimer = null;
3960 + }
3961 + }
3962 + }, {
3963 + key: 'disableControls',
3964 + value: function disableControls() {
3965 + var t = this;
3966 +
3967 + t.killControlsTimer();
3968 + t.controlsEnabled = false;
3969 + t.hideControls(false, true);
3970 + }
3971 + }, {
3972 + key: 'enableControls',
3973 + value: function enableControls() {
3974 + var t = this;
3975 +
3976 + t.controlsEnabled = true;
3977 + t.showControls(false);
3978 + }
3979 + }, {
3980 + key: '_setDefaultPlayer',
3981 + value: function _setDefaultPlayer() {
3982 + var t = this;
3983 + if (t.proxy) {
3984 + t.proxy.pause();
3985 + }
3986 + t.proxy = new _default2.default(t);
3987 + t.media.addEventListener('loadedmetadata', function () {
3988 + if (t.getCurrentTime() > 0 && t.currentMediaTime > 0) {
3989 + t.setCurrentTime(t.currentMediaTime);
3990 + if (!_constants.IS_IOS && !_constants.IS_ANDROID) {
3991 + t.play();
3992 + }
3993 + }
3994 + });
3995 + }
3996 + }, {
3997 + key: '_meReady',
3998 + value: function _meReady(media, domNode) {
3999 + var t = this,
4000 + autoplayAttr = domNode.getAttribute('autoplay'),
4001 + autoplay = !(autoplayAttr === undefined || autoplayAttr === null || autoplayAttr === 'false'),
4002 + isNative = media.rendererName !== null && /(native|html5)/i.test(media.rendererName);
4003 +
4004 + if (t.getElement(t.controls)) {
4005 + t.enableControls();
4006 + }
4007 +
4008 + if (t.getElement(t.container) && t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'overlay-play')) {
4009 + t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'overlay-play').style.display = '';
4010 + }
4011 +
4012 + if (t.created) {
4013 + return;
4014 + }
4015 +
4016 + t.created = true;
4017 + t.media = media;
4018 + t.domNode = domNode;
4019 +
4020 + if (!(_constants.IS_ANDROID && t.options.AndroidUseNativeControls) && !(_constants.IS_IPAD && t.options.iPadUseNativeControls) && !(_constants.IS_IPHONE && t.options.iPhoneUseNativeControls)) {
4021 + if (!t.isVideo && !t.options.features.length && !t.options.useDefaultControls) {
4022 + if (autoplay && isNative) {
4023 + t.play();
4024 + }
4025 +
4026 + if (t.options.success) {
4027 +
4028 + if (typeof t.options.success === 'string') {
4029 + _window2.default[t.options.success](t.media, t.domNode, t);
4030 + } else {
4031 + t.options.success(t.media, t.domNode, t);
4032 + }
4033 + }
4034 +
4035 + return;
4036 + }
4037 +
4038 + t.featurePosition = {};
4039 +
4040 + t._setDefaultPlayer();
4041 +
4042 + t.buildposter(t, t.getElement(t.controls), t.getElement(t.layers), t.media);
4043 + t.buildkeyboard(t, t.getElement(t.controls), t.getElement(t.layers), t.media);
4044 + t.buildoverlays(t, t.getElement(t.controls), t.getElement(t.layers), t.media);
4045 +
4046 + if (t.options.useDefaultControls) {
4047 + var defaultControls = ['playpause', 'current', 'progress', 'duration', 'tracks', 'volume', 'fullscreen'];
4048 + t.options.features = defaultControls.concat(t.options.features.filter(function (item) {
4049 + return defaultControls.indexOf(item) === -1;
4050 + }));
4051 + }
4052 +
4053 + t.buildfeatures(t, t.getElement(t.controls), t.getElement(t.layers), t.media);
4054 +
4055 + var event = (0, _general.createEvent)('controlsready', t.getElement(t.container));
4056 + t.getElement(t.container).dispatchEvent(event);
4057 +
4058 + t.setPlayerSize(t.width, t.height);
4059 + t.setControlsSize();
4060 +
4061 + if (t.isVideo) {
4062 + t.clickToPlayPauseCallback = function () {
4063 +
4064 + if (t.options.clickToPlayPause) {
4065 + var button = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'overlay-button'),
4066 + pressed = button.getAttribute('aria-pressed');
4067 +
4068 + if (t.paused && pressed) {
4069 + t.pause();
4070 + } else if (t.paused) {
4071 + t.play();
4072 + } else {
4073 + t.pause();
4074 + }
4075 +
4076 + button.setAttribute('aria-pressed', !pressed);
4077 + t.getElement(t.container).focus();
4078 + }
4079 + };
4080 +
4081 + t.createIframeLayer();
4082 +
4083 + t.media.addEventListener('click', t.clickToPlayPauseCallback);
4084 +
4085 + if ((_constants.IS_ANDROID || _constants.IS_IOS) && !t.options.alwaysShowControls) {
4086 + t.node.addEventListener('touchstart', function () {
4087 + if (t.controlsAreVisible) {
4088 + t.hideControls(false);
4089 + } else {
4090 + if (t.controlsEnabled) {
4091 + t.showControls(false);
4092 + }
4093 + }
4094 + }, _constants.SUPPORT_PASSIVE_EVENT ? { passive: true } : false);
4095 + } else {
4096 + t.getElement(t.container).addEventListener('mouseenter', function () {
4097 + if (t.controlsEnabled) {
4098 + if (!t.options.alwaysShowControls) {
4099 + t.killControlsTimer('enter');
4100 + t.showControls();
4101 + t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
4102 + }
4103 + }
4104 + });
4105 + t.getElement(t.container).addEventListener('mousemove', function () {
4106 + if (t.controlsEnabled) {
4107 + if (!t.controlsAreVisible) {
4108 + t.showControls();
4109 + }
4110 + if (!t.options.alwaysShowControls) {
4111 + t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
4112 + }
4113 + }
4114 + });
4115 + t.getElement(t.container).addEventListener('mouseleave', function () {
4116 + if (t.controlsEnabled) {
4117 + if (!t.paused && !t.options.alwaysShowControls) {
4118 + t.startControlsTimer(t.options.controlsTimeoutMouseLeave);
4119 + }
4120 + }
4121 + });
4122 + }
4123 +
4124 + if (t.options.hideVideoControlsOnLoad) {
4125 + t.hideControls(false);
4126 + }
4127 +
4128 + if (t.options.enableAutosize) {
4129 + t.media.addEventListener('loadedmetadata', function (e) {
4130 + var target = e !== undefined ? e.detail.target || e.target : t.media;
4131 + if (t.options.videoHeight <= 0 && !t.domNode.getAttribute('height') && !t.domNode.style.height && target !== null && !isNaN(target.videoHeight)) {
4132 + t.setPlayerSize(target.videoWidth, target.videoHeight);
4133 + t.setControlsSize();
4134 + t.media.setSize(target.videoWidth, target.videoHeight);
4135 + }
4136 + });
4137 + }
4138 + }
4139 +
4140 + t.media.addEventListener('play', function () {
4141 + t.hasFocus = true;
4142 +
4143 + for (var playerIndex in _mejs2.default.players) {
4144 + if (_mejs2.default.players.hasOwnProperty(playerIndex)) {
4145 + var p = _mejs2.default.players[playerIndex];
4146 +
4147 + if (p.id !== t.id && t.options.pauseOtherPlayers && !p.paused && !p.ended && p.options.ignorePauseOtherPlayersOption !== true) {
4148 + p.pause();
4149 + p.hasFocus = false;
4150 + }
4151 + }
4152 + }
4153 +
4154 + if (!(_constants.IS_ANDROID || _constants.IS_IOS) && !t.options.alwaysShowControls && t.isVideo) {
4155 + t.hideControls();
4156 + }
4157 + });
4158 +
4159 + t.media.addEventListener('ended', function () {
4160 + if (t.options.autoRewind) {
4161 + try {
4162 + t.setCurrentTime(0);
4163 +
4164 + setTimeout(function () {
4165 + var loadingElement = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'overlay-loading');
4166 + if (loadingElement && loadingElement.parentNode) {
4167 + loadingElement.parentNode.style.display = 'none';
4168 + }
4169 + }, 20);
4170 + } catch (exp) {
4171 +
4172 + }
4173 + }
4174 +
4175 + if (typeof t.media.renderer.stop === 'function') {
4176 + t.media.renderer.stop();
4177 + } else {
4178 + t.pause();
4179 + }
4180 +
4181 + if (t.setProgressRail) {
4182 + t.setProgressRail();
4183 + }
4184 + if (t.setCurrentRail) {
4185 + t.setCurrentRail();
4186 + }
4187 +
4188 + if (t.options.loop) {
4189 + t.play();
4190 + } else if (!t.options.alwaysShowControls && t.controlsEnabled) {
4191 + t.showControls();
4192 + }
4193 + });
4194 +
4195 + t.media.addEventListener('loadedmetadata', function () {
4196 +
4197 + (0, _time.calculateTimeFormat)(t.getDuration(), t.options, t.options.framesPerSecond || 25);
4198 +
4199 + if (t.updateDuration) {
4200 + t.updateDuration();
4201 + }
4202 + if (t.updateCurrent) {
4203 + t.updateCurrent();
4204 + }
4205 +
4206 + if (!t.isFullScreen) {
4207 + t.setPlayerSize(t.width, t.height);
4208 + t.setControlsSize();
4209 + }
4210 + });
4211 +
4212 + var duration = null;
4213 + t.media.addEventListener('timeupdate', function () {
4214 + if (!isNaN(t.getDuration()) && duration !== t.getDuration()) {
4215 + duration = t.getDuration();
4216 + (0, _time.calculateTimeFormat)(duration, t.options, t.options.framesPerSecond || 25);
4217 +
4218 + if (t.updateDuration) {
4219 + t.updateDuration();
4220 + }
4221 + if (t.updateCurrent) {
4222 + t.updateCurrent();
4223 + }
4224 +
4225 + t.setControlsSize();
4226 + }
4227 + });
4228 +
4229 + t.getElement(t.container).addEventListener('click', function (e) {
4230 + dom.addClass(e.currentTarget, t.options.classPrefix + 'container-keyboard-inactive');
4231 + });
4232 +
4233 + t.getElement(t.container).addEventListener('focusin', function (e) {
4234 + dom.removeClass(e.currentTarget, t.options.classPrefix + 'container-keyboard-inactive');
4235 + if (t.isVideo && !_constants.IS_ANDROID && !_constants.IS_IOS && t.controlsEnabled && !t.options.alwaysShowControls) {
4236 + t.killControlsTimer('enter');
4237 + t.showControls();
4238 + t.startControlsTimer(t.options.controlsTimeoutMouseEnter);
4239 + }
4240 + });
4241 +
4242 + t.getElement(t.container).addEventListener('focusout', function (e) {
4243 + setTimeout(function () {
4244 + if (e.relatedTarget) {
4245 + if (t.keyboardAction && !e.relatedTarget.closest('.' + t.options.classPrefix + 'container')) {
4246 + t.keyboardAction = false;
4247 + if (t.isVideo && !t.options.alwaysShowControls && !t.paused) {
4248 + t.startControlsTimer(t.options.controlsTimeoutMouseLeave);
4249 + }
4250 + }
4251 + }
4252 + }, 0);
4253 + });
4254 +
4255 + setTimeout(function () {
4256 + t.setPlayerSize(t.width, t.height);
4257 + t.setControlsSize();
4258 + }, 0);
4259 +
4260 + t.globalResizeCallback = function () {
4261 + if (!(t.isFullScreen || _constants.HAS_TRUE_NATIVE_FULLSCREEN && _document2.default.webkitIsFullScreen)) {
4262 + t.setPlayerSize(t.width, t.height);
4263 + }
4264 +
4265 + t.setControlsSize();
4266 + };
4267 +
4268 + t.globalBind('resize', t.globalResizeCallback);
4269 + }
4270 +
4271 + if (autoplay && isNative) {
4272 + t.play();
4273 + }
4274 +
4275 + if (t.options.success) {
4276 + if (typeof t.options.success === 'string') {
4277 + _window2.default[t.options.success](t.media, t.domNode, t);
4278 + } else {
4279 + t.options.success(t.media, t.domNode, t);
4280 + }
4281 + }
4282 + }
4283 + }, {
4284 + key: '_handleError',
4285 + value: function _handleError(e, media, node) {
4286 + var t = this,
4287 + play = t.getElement(t.layers).querySelector('.' + t.options.classPrefix + 'overlay-play');
4288 +
4289 + if (play) {
4290 + play.style.display = 'none';
4291 + }
4292 +
4293 + if (t.options.error) {
4294 + t.options.error(e, media, node);
4295 + }
4296 +
4297 + if (t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'cannotplay')) {
4298 + t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'cannotplay').remove();
4299 + }
4300 +
4301 + var errorContainer = _document2.default.createElement('div');
4302 + errorContainer.className = t.options.classPrefix + 'cannotplay';
4303 + errorContainer.style.width = '100%';
4304 + errorContainer.style.height = '100%';
4305 +
4306 + var errorContent = typeof t.options.customError === 'function' ? t.options.customError(t.media, t.media.originalNode) : t.options.customError,
4307 + imgError = '';
4308 +
4309 + if (!errorContent) {
4310 + var poster = t.media.originalNode.getAttribute('poster');
4311 + if (poster) {
4312 + imgError = '<img src="' + poster + '" alt="' + _mejs2.default.i18n.t('mejs.download-file') + '">';
4313 + }
4314 +
4315 + if (e.message) {
4316 + errorContent = '<p>' + e.message + '</p>';
4317 + }
4318 +
4319 + if (e.urls) {
4320 + for (var i = 0, total = e.urls.length; i < total; i++) {
4321 + var url = e.urls[i];
4322 + errorContent += '<a href="' + url.src + '" data-type="' + url.type + '"><span>' + _mejs2.default.i18n.t('mejs.download-file') + ': ' + url.src + '</span></a>';
4323 + }
4324 + }
4325 + }
4326 +
4327 + if (errorContent && t.getElement(t.layers).querySelector('.' + t.options.classPrefix + 'overlay-error')) {
4328 + errorContainer.innerHTML = errorContent;
4329 + t.getElement(t.layers).querySelector('.' + t.options.classPrefix + 'overlay-error').innerHTML = '' + imgError + errorContainer.outerHTML;
4330 + t.getElement(t.layers).querySelector('.' + t.options.classPrefix + 'overlay-error').parentNode.style.display = 'block';
4331 + }
4332 +
4333 + if (t.controlsEnabled) {
4334 + t.disableControls();
4335 + }
4336 + }
4337 + }, {
4338 + key: 'setPlayerSize',
4339 + value: function setPlayerSize(width, height) {
4340 + var t = this;
4341 +
4342 + if (!t.options.setDimensions) {
4343 + return false;
4344 + }
4345 +
4346 + if (typeof width !== 'undefined') {
4347 + t.width = width;
4348 + }
4349 +
4350 + if (typeof height !== 'undefined') {
4351 + t.height = height;
4352 + }
4353 +
4354 + switch (t.options.stretching) {
4355 + case 'fill':
4356 + if (t.isVideo) {
4357 + t.setFillMode();
4358 + } else {
4359 + t.setDimensions(t.width, t.height);
4360 + }
4361 + break;
4362 + case 'responsive':
4363 + t.setResponsiveMode();
4364 + break;
4365 + case 'none':
4366 + t.setDimensions(t.width, t.height);
4367 + break;
4368 +
4369 + default:
4370 + if (t.hasFluidMode() === true) {
4371 + t.setResponsiveMode();
4372 + } else {
4373 + t.setDimensions(t.width, t.height);
4374 + }
4375 + break;
4376 + }
4377 + }
4378 + }, {
4379 + key: 'hasFluidMode',
4380 + value: function hasFluidMode() {
4381 + var t = this;
4382 +
4383 + return t.height.toString().indexOf('%') !== -1 || t.node && t.node.style.maxWidth && t.node.style.maxWidth !== 'none' && t.node.style.maxWidth !== t.width || t.node && t.node.currentStyle && t.node.currentStyle.maxWidth === '100%';
4384 + }
4385 + }, {
4386 + key: 'setResponsiveMode',
4387 + value: function setResponsiveMode() {
4388 + var t = this,
4389 + parent = function () {
4390 +
4391 + var parentEl = void 0,
4392 + el = t.getElement(t.container);
4393 +
4394 + while (el) {
4395 + try {
4396 + if (_constants.IS_FIREFOX && el.tagName.toLowerCase() === 'html' && _window2.default.self !== _window2.default.top && _window2.default.frameElement !== null) {
4397 + return _window2.default.frameElement;
4398 + } else {
4399 + parentEl = el.parentElement;
4400 + }
4401 + } catch (e) {
4402 + parentEl = el.parentElement;
4403 + }
4404 +
4405 + if (parentEl && dom.visible(parentEl)) {
4406 + return parentEl;
4407 + }
4408 + el = parentEl;
4409 + }
4410 +
4411 + return null;
4412 + }(),
4413 + parentStyles = parent ? getComputedStyle(parent, null) : getComputedStyle(_document2.default.body, null),
4414 + nativeWidth = function () {
4415 + if (t.isVideo) {
4416 + if (t.node.videoWidth && t.node.videoWidth > 0) {
4417 + return t.node.videoWidth;
4418 + } else if (t.node.getAttribute('width')) {
4419 + return t.node.getAttribute('width');
4420 + } else {
4421 + return t.options.defaultVideoWidth;
4422 + }
4423 + } else {
4424 + return t.options.defaultAudioWidth;
4425 + }
4426 + }(),
4427 + nativeHeight = function () {
4428 + if (t.isVideo) {
4429 + if (t.node.videoHeight && t.node.videoHeight > 0) {
4430 + return t.node.videoHeight;
4431 + } else if (t.node.getAttribute('height')) {
4432 + return t.node.getAttribute('height');
4433 + } else {
4434 + return t.options.defaultVideoHeight;
4435 + }
4436 + } else {
4437 + return t.options.defaultAudioHeight;
4438 + }
4439 + }(),
4440 + aspectRatio = function () {
4441 + if (!t.options.enableAutosize) {
4442 + return t.initialAspectRatio;
4443 + }
4444 + var ratio = 1;
4445 + if (!t.isVideo) {
4446 + return ratio;
4447 + }
4448 +
4449 + if (t.node.videoWidth && t.node.videoWidth > 0 && t.node.videoHeight && t.node.videoHeight > 0) {
4450 + ratio = t.height >= t.width ? t.node.videoWidth / t.node.videoHeight : t.node.videoHeight / t.node.videoWidth;
4451 + } else {
4452 + ratio = t.initialAspectRatio;
4453 + }
4454 +
4455 + if (isNaN(ratio) || ratio < 0.01 || ratio > 100) {
4456 + ratio = 1;
4457 + }
4458 +
4459 + return ratio;
4460 + }(),
4461 + parentHeight = parseFloat(parentStyles.height);
4462 +
4463 + var newHeight = void 0,
4464 + parentWidth = parseFloat(parentStyles.width);
4465 +
4466 + if (t.isVideo) {
4467 + if (t.height === '100%') {
4468 + newHeight = parseFloat(parentWidth * nativeHeight / nativeWidth, 10);
4469 + } else {
4470 + newHeight = t.height >= t.width ? parseFloat(parentWidth / aspectRatio, 10) : parseFloat(parentWidth * aspectRatio, 10);
4471 + }
4472 + } else {
4473 + newHeight = nativeHeight;
4474 + }
4475 +
4476 + if (isNaN(newHeight)) {
4477 + newHeight = parentHeight;
4478 + }
4479 +
4480 + if (t.getElement(t.container).parentNode.length > 0 && t.getElement(t.container).parentNode.tagName.toLowerCase() === 'body') {
4481 + parentWidth = _window2.default.innerWidth || _document2.default.documentElement.clientWidth || _document2.default.body.clientWidth;
4482 + newHeight = _window2.default.innerHeight || _document2.default.documentElement.clientHeight || _document2.default.body.clientHeight;
4483 + }
4484 +
4485 + if (newHeight && parentWidth) {
4486 + t.getElement(t.container).style.width = parentWidth + 'px';
4487 + t.getElement(t.container).style.height = newHeight + 'px';
4488 +
4489 + t.node.style.width = '100%';
4490 + t.node.style.height = '100%';
4491 +
4492 + if (t.isVideo && t.media.setSize) {
4493 + t.media.setSize(parentWidth, newHeight);
4494 + }
4495 +
4496 + var layerChildren = t.getElement(t.layers).children;
4497 + for (var i = 0, total = layerChildren.length; i < total; i++) {
4498 + layerChildren[i].style.width = '100%';
4499 + layerChildren[i].style.height = '100%';
4500 + }
4501 + }
4502 + }
4503 + }, {
4504 + key: 'setFillMode',
4505 + value: function setFillMode() {
4506 + var t = this;
4507 + var isIframe = _window2.default.self !== _window2.default.top && _window2.default.frameElement !== null;
4508 + var parent = function () {
4509 + var parentEl = void 0,
4510 + el = t.getElement(t.container);
4511 +
4512 + while (el) {
4513 + try {
4514 + if (_constants.IS_FIREFOX && el.tagName.toLowerCase() === 'html' && _window2.default.self !== _window2.default.top && _window2.default.frameElement !== null) {
4515 + return _window2.default.frameElement;
4516 + } else {
4517 + parentEl = el.parentElement;
4518 + }
4519 + } catch (e) {
4520 + parentEl = el.parentElement;
4521 + }
4522 +
4523 + if (parentEl && dom.visible(parentEl)) {
4524 + return parentEl;
4525 + }
4526 + el = parentEl;
4527 + }
4528 +
4529 + return null;
4530 + }();
4531 + var parentStyles = parent ? getComputedStyle(parent, null) : getComputedStyle(_document2.default.body, null);
4532 +
4533 + if (t.node.style.height !== 'none' && t.node.style.height !== t.height) {
4534 + t.node.style.height = 'auto';
4535 + }
4536 + if (t.node.style.maxWidth !== 'none' && t.node.style.maxWidth !== t.width) {
4537 + t.node.style.maxWidth = 'none';
4538 + }
4539 +
4540 + if (t.node.style.maxHeight !== 'none' && t.node.style.maxHeight !== t.height) {
4541 + t.node.style.maxHeight = 'none';
4542 + }
4543 +
4544 + if (t.node.currentStyle) {
4545 + if (t.node.currentStyle.height === '100%') {
4546 + t.node.currentStyle.height = 'auto';
4547 + }
4548 + if (t.node.currentStyle.maxWidth === '100%') {
4549 + t.node.currentStyle.maxWidth = 'none';
4550 + }
4551 + if (t.node.currentStyle.maxHeight === '100%') {
4552 + t.node.currentStyle.maxHeight = 'none';
4553 + }
4554 + }
4555 +
4556 + if (!isIframe && !parseFloat(parentStyles.width)) {
4557 + parent.style.width = t.media.offsetWidth + 'px';
4558 + }
4559 +
4560 + if (!isIframe && !parseFloat(parentStyles.height)) {
4561 + parent.style.height = t.media.offsetHeight + 'px';
4562 + }
4563 +
4564 + parentStyles = getComputedStyle(parent);
4565 +
4566 + var parentWidth = parseFloat(parentStyles.width),
4567 + parentHeight = parseFloat(parentStyles.height);
4568 +
4569 + t.setDimensions('100%', '100%');
4570 +
4571 + var poster = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'poster>img');
4572 + if (poster) {
4573 + poster.style.display = '';
4574 + }
4575 +
4576 + var targetElement = t.getElement(t.container).querySelectorAll('object, embed, iframe, video'),
4577 + initHeight = t.height,
4578 + initWidth = t.width,
4579 + scaleX1 = parentWidth,
4580 + scaleY1 = initHeight * parentWidth / initWidth,
4581 + scaleX2 = initWidth * parentHeight / initHeight,
4582 + scaleY2 = parentHeight,
4583 + bScaleOnWidth = scaleX2 > parentWidth === false,
4584 + finalWidth = bScaleOnWidth ? Math.floor(scaleX1) : Math.floor(scaleX2),
4585 + finalHeight = bScaleOnWidth ? Math.floor(scaleY1) : Math.floor(scaleY2),
4586 + width = bScaleOnWidth ? parentWidth + 'px' : finalWidth + 'px',
4587 + height = bScaleOnWidth ? finalHeight + 'px' : parentHeight + 'px';
4588 +
4589 + for (var i = 0, total = targetElement.length; i < total; i++) {
4590 + targetElement[i].style.height = height;
4591 + targetElement[i].style.width = width;
4592 + if (t.media.setSize) {
4593 + t.media.setSize(width, height);
4594 + }
4595 +
4596 + targetElement[i].style.marginLeft = Math.floor((parentWidth - finalWidth) / 2) + 'px';
4597 + targetElement[i].style.marginTop = 0;
4598 + }
4599 + }
4600 + }, {
4601 + key: 'setDimensions',
4602 + value: function setDimensions(width, height) {
4603 + var t = this;
4604 +
4605 + width = (0, _general.isString)(width) && width.indexOf('%') > -1 ? width : parseFloat(width) + 'px';
4606 + height = (0, _general.isString)(height) && height.indexOf('%') > -1 ? height : parseFloat(height) + 'px';
4607 +
4608 + t.getElement(t.container).style.width = width;
4609 + t.getElement(t.container).style.height = height;
4610 +
4611 + var layers = t.getElement(t.layers).children;
4612 + for (var i = 0, total = layers.length; i < total; i++) {
4613 + layers[i].style.width = width;
4614 + layers[i].style.height = height;
4615 + }
4616 + }
4617 + }, {
4618 + key: 'setControlsSize',
4619 + value: function setControlsSize() {
4620 + var t = this;
4621 +
4622 + if (!dom.visible(t.getElement(t.container))) {
4623 + return;
4624 + }
4625 +
4626 + if (t.rail && dom.visible(t.rail)) {
4627 + var totalStyles = t.total ? getComputedStyle(t.total, null) : null,
4628 + totalMargin = totalStyles ? parseFloat(totalStyles.marginLeft) + parseFloat(totalStyles.marginRight) : 0,
4629 + railStyles = getComputedStyle(t.rail),
4630 + railMargin = parseFloat(railStyles.marginLeft) + parseFloat(railStyles.marginRight);
4631 +
4632 + var siblingsWidth = 0;
4633 +
4634 + var siblings = dom.siblings(t.rail, function (el) {
4635 + return el !== t.rail;
4636 + }),
4637 + total = siblings.length;
4638 + for (var i = 0; i < total; i++) {
4639 + siblingsWidth += siblings[i].offsetWidth;
4640 + }
4641 +
4642 + siblingsWidth += totalMargin + (totalMargin === 0 ? railMargin * 2 : railMargin) + 1;
4643 +
4644 + t.getElement(t.container).style.minWidth = siblingsWidth + 'px';
4645 +
4646 + var event = (0, _general.createEvent)('controlsresize', t.getElement(t.container));
4647 + t.getElement(t.container).dispatchEvent(event);
4648 + } else {
4649 + var children = t.getElement(t.controls).children;
4650 + var minWidth = 0;
4651 +
4652 + for (var _i = 0, _total = children.length; _i < _total; _i++) {
4653 + minWidth += children[_i].offsetWidth;
4654 + }
4655 +
4656 + t.getElement(t.container).style.minWidth = minWidth + 'px';
4657 + }
4658 + }
4659 + }, {
4660 + key: 'addControlElement',
4661 + value: function addControlElement(element, key) {
4662 +
4663 + var t = this;
4664 +
4665 + if (t.featurePosition[key] !== undefined) {
4666 + var child = t.getElement(t.controls).children[t.featurePosition[key] - 1];
4667 + child.parentNode.insertBefore(element, child.nextSibling);
4668 + } else {
4669 + t.getElement(t.controls).appendChild(element);
4670 + var children = t.getElement(t.controls).children;
4671 + for (var i = 0, total = children.length; i < total; i++) {
4672 + if (element === children[i]) {
4673 + t.featurePosition[key] = i;
4674 + break;
4675 + }
4676 + }
4677 + }
4678 + }
4679 + }, {
4680 + key: 'createIframeLayer',
4681 + value: function createIframeLayer() {
4682 + var t = this;
4683 +
4684 + if (t.isVideo && t.media.rendererName !== null && t.media.rendererName.indexOf('iframe') > -1 && !_document2.default.getElementById(t.media.id + '-iframe-overlay')) {
4685 +
4686 + var layer = _document2.default.createElement('div'),
4687 + target = _document2.default.getElementById(t.media.id + '_' + t.media.rendererName);
4688 +
4689 + layer.id = t.media.id + '-iframe-overlay';
4690 + layer.className = t.options.classPrefix + 'iframe-overlay';
4691 + layer.addEventListener('click', function (e) {
4692 + if (t.options.clickToPlayPause) {
4693 + if (t.paused) {
4694 + t.play();
4695 + } else {
4696 + t.pause();
4697 + }
4698 +
4699 + e.preventDefault();
4700 + e.stopPropagation();
4701 + }
4702 + });
4703 +
4704 + target.parentNode.insertBefore(layer, target);
4705 + }
4706 + }
4707 + }, {
4708 + key: 'resetSize',
4709 + value: function resetSize() {
4710 + var t = this;
4711 +
4712 + setTimeout(function () {
4713 + t.setPlayerSize(t.width, t.height);
4714 + t.setControlsSize();
4715 + }, 50);
4716 + }
4717 + }, {
4718 + key: 'setPoster',
4719 + value: function setPoster(url) {
4720 + var t = this;
4721 +
4722 + if (t.getElement(t.container)) {
4723 + var posterDiv = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'poster');
4724 +
4725 + if (!posterDiv) {
4726 + posterDiv = _document2.default.createElement('div');
4727 + posterDiv.className = t.options.classPrefix + 'poster ' + t.options.classPrefix + 'layer';
4728 + t.getElement(t.layers).appendChild(posterDiv);
4729 + }
4730 +
4731 + var posterImg = posterDiv.querySelector('img');
4732 +
4733 + if (!posterImg && url) {
4734 + posterImg = _document2.default.createElement('img');
4735 + posterImg.className = t.options.classPrefix + 'poster-img';
4736 + posterImg.width = '100%';
4737 + posterImg.height = '100%';
4738 + posterDiv.style.display = '';
4739 + posterDiv.appendChild(posterImg);
4740 + }
4741 +
4742 + if (url) {
4743 + posterImg.setAttribute('src', url);
4744 + posterDiv.style.backgroundImage = 'url("' + url + '")';
4745 + posterDiv.style.display = '';
4746 + } else if (posterImg) {
4747 + posterDiv.style.backgroundImage = 'none';
4748 + posterDiv.style.display = 'none';
4749 + posterImg.remove();
4750 + } else {
4751 + posterDiv.style.display = 'none';
4752 + }
4753 + } else if (_constants.IS_IPAD && t.options.iPadUseNativeControls || _constants.IS_IPHONE && t.options.iPhoneUseNativeControls || _constants.IS_ANDROID && t.options.AndroidUseNativeControls) {
4754 + t.media.originalNode.poster = url;
4755 + }
4756 + }
4757 + }, {
4758 + key: 'changeSkin',
4759 + value: function changeSkin(className) {
4760 + var t = this;
4761 +
4762 + t.getElement(t.container).className = t.options.classPrefix + 'container ' + className;
4763 + t.setPlayerSize(t.width, t.height);
4764 + t.setControlsSize();
4765 + }
4766 + }, {
4767 + key: 'globalBind',
4768 + value: function globalBind(events, callback) {
4769 + var t = this,
4770 + doc = t.node ? t.node.ownerDocument : _document2.default;
4771 +
4772 + events = (0, _general.splitEvents)(events, t.id);
4773 + if (events.d) {
4774 + var eventList = events.d.split(' ');
4775 + for (var i = 0, total = eventList.length; i < total; i++) {
4776 + eventList[i].split('.').reduce(function (part, e) {
4777 + doc.addEventListener(e, callback, false);
4778 + return e;
4779 + }, '');
4780 + }
4781 + }
4782 + if (events.w) {
4783 + var _eventList = events.w.split(' ');
4784 + for (var _i2 = 0, _total2 = _eventList.length; _i2 < _total2; _i2++) {
4785 + _eventList[_i2].split('.').reduce(function (part, e) {
4786 + _window2.default.addEventListener(e, callback, false);
4787 + return e;
4788 + }, '');
4789 + }
4790 + }
4791 + }
4792 + }, {
4793 + key: 'globalUnbind',
4794 + value: function globalUnbind(events, callback) {
4795 + var t = this,
4796 + doc = t.node ? t.node.ownerDocument : _document2.default;
4797 +
4798 + events = (0, _general.splitEvents)(events, t.id);
4799 + if (events.d) {
4800 + var eventList = events.d.split(' ');
4801 + for (var i = 0, total = eventList.length; i < total; i++) {
4802 + eventList[i].split('.').reduce(function (part, e) {
4803 + doc.removeEventListener(e, callback, false);
4804 + return e;
4805 + }, '');
4806 + }
4807 + }
4808 + if (events.w) {
4809 + var _eventList2 = events.w.split(' ');
4810 + for (var _i3 = 0, _total3 = _eventList2.length; _i3 < _total3; _i3++) {
4811 + _eventList2[_i3].split('.').reduce(function (part, e) {
4812 + _window2.default.removeEventListener(e, callback, false);
4813 + return e;
4814 + }, '');
4815 + }
4816 + }
4817 + }
4818 + }, {
4819 + key: 'buildfeatures',
4820 + value: function buildfeatures(player, controls, layers, media) {
4821 + var t = this;
4822 +
4823 + for (var i = 0, total = t.options.features.length; i < total; i++) {
4824 + var feature = t.options.features[i];
4825 + if (t['build' + feature]) {
4826 + try {
4827 + t['build' + feature](player, controls, layers, media);
4828 + } catch (e) {
4829 + console.error('error building ' + feature, e);
4830 + }
4831 + }
4832 + }
4833 + }
4834 + }, {
4835 + key: 'buildposter',
4836 + value: function buildposter(player, controls, layers, media) {
4837 + var t = this,
4838 + poster = _document2.default.createElement('div');
4839 +
4840 + poster.className = t.options.classPrefix + 'poster ' + t.options.classPrefix + 'layer';
4841 + layers.appendChild(poster);
4842 +
4843 + var posterUrl = media.originalNode.getAttribute('poster');
4844 +
4845 + if (player.options.poster !== '') {
4846 + if (posterUrl && _constants.IS_IOS) {
4847 + media.originalNode.removeAttribute('poster');
4848 + }
4849 + posterUrl = player.options.poster;
4850 + }
4851 +
4852 + if (posterUrl) {
4853 + t.setPoster(posterUrl);
4854 + } else if (t.media.renderer !== null && typeof t.media.renderer.getPosterUrl === 'function') {
4855 + t.setPoster(t.media.renderer.getPosterUrl());
4856 + } else {
4857 + poster.style.display = 'none';
4858 + }
4859 +
4860 + media.addEventListener('play', function () {
4861 + poster.style.display = 'none';
4862 + });
4863 +
4864 + media.addEventListener('playing', function () {
4865 + poster.style.display = 'none';
4866 + });
4867 +
4868 + if (player.options.showPosterWhenEnded && player.options.autoRewind) {
4869 + media.addEventListener('ended', function () {
4870 + poster.style.display = '';
4871 + });
4872 + }
4873 +
4874 + media.addEventListener('error', function () {
4875 + poster.style.display = 'none';
4876 + });
4877 +
4878 + if (player.options.showPosterWhenPaused) {
4879 + media.addEventListener('pause', function () {
4880 + if (!player.ended) {
4881 + poster.style.display = '';
4882 + }
4883 + });
4884 + }
4885 + }
4886 + }, {
4887 + key: 'buildoverlays',
4888 + value: function buildoverlays(player, controls, layers, media) {
4889 +
4890 + if (!player.isVideo) {
4891 + return;
4892 + }
4893 +
4894 + var t = this,
4895 + loading = _document2.default.createElement('div'),
4896 + error = _document2.default.createElement('div'),
4897 + bigPlay = _document2.default.createElement('div');
4898 +
4899 + loading.style.display = 'none';
4900 + loading.className = t.options.classPrefix + 'overlay ' + t.options.classPrefix + 'layer';
4901 + loading.innerHTML = '<div class="' + t.options.classPrefix + 'overlay-loading">' + ('<span class="' + t.options.classPrefix + 'overlay-loading-bg-img"></span>') + '</div>';
4902 + layers.appendChild(loading);
4903 +
4904 + error.style.display = 'none';
4905 + error.className = t.options.classPrefix + 'overlay ' + t.options.classPrefix + 'layer';
4906 + error.innerHTML = '<div class="' + t.options.classPrefix + 'overlay-error"></div>';
4907 + layers.appendChild(error);
4908 +
4909 + bigPlay.className = t.options.classPrefix + 'overlay ' + t.options.classPrefix + 'layer ' + t.options.classPrefix + 'overlay-play';
4910 + bigPlay.innerHTML = '<div class="' + t.options.classPrefix + 'overlay-button" role="button" tabindex="0" ' + ('aria-label="' + _i18n2.default.t('mejs.play') + '" aria-pressed="false"></div>');
4911 + bigPlay.addEventListener('click', function () {
4912 + if (t.options.clickToPlayPause) {
4913 +
4914 + var button = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'overlay-button'),
4915 + pressed = button.getAttribute('aria-pressed');
4916 +
4917 + if (t.paused) {
4918 + t.play();
4919 + } else {
4920 + t.pause();
4921 + }
4922 +
4923 + button.setAttribute('aria-pressed', !!pressed);
4924 + t.getElement(t.container).focus();
4925 + }
4926 + });
4927 +
4928 + bigPlay.addEventListener('keydown', function (e) {
4929 + var keyPressed = e.keyCode || e.which || 0;
4930 +
4931 + if (keyPressed === 13 || _constants.IS_FIREFOX && keyPressed === 32) {
4932 + var event = (0, _general.createEvent)('click', bigPlay);
4933 + bigPlay.dispatchEvent(event);
4934 + return false;
4935 + }
4936 + });
4937 +
4938 + layers.appendChild(bigPlay);
4939 +
4940 + if (t.media.rendererName !== null && (/(youtube|facebook)/i.test(t.media.rendererName) && !(t.media.originalNode.getAttribute('poster') || player.options.poster || typeof t.media.renderer.getPosterUrl === 'function' && t.media.renderer.getPosterUrl()) || _constants.IS_STOCK_ANDROID || t.media.originalNode.getAttribute('autoplay'))) {
4941 + bigPlay.style.display = 'none';
4942 + }
4943 +
4944 + var hasError = false;
4945 +
4946 + media.addEventListener('play', function () {
4947 + bigPlay.style.display = 'none';
4948 + loading.style.display = 'none';
4949 + error.style.display = 'none';
4950 + hasError = false;
4951 + });
4952 + media.addEventListener('playing', function () {
4953 + bigPlay.style.display = 'none';
4954 + loading.style.display = 'none';
4955 + error.style.display = 'none';
4956 + hasError = false;
4957 + });
4958 + media.addEventListener('seeking', function () {
4959 + bigPlay.style.display = 'none';
4960 + loading.style.display = '';
4961 + hasError = false;
4962 + });
4963 + media.addEventListener('seeked', function () {
4964 + bigPlay.style.display = t.paused && !_constants.IS_STOCK_ANDROID ? '' : 'none';
4965 + loading.style.display = 'none';
4966 + hasError = false;
4967 + });
4968 + media.addEventListener('pause', function () {
4969 + loading.style.display = 'none';
4970 + if (!_constants.IS_STOCK_ANDROID && !hasError) {
4971 + bigPlay.style.display = '';
4972 + }
4973 + hasError = false;
4974 + });
4975 + media.addEventListener('waiting', function () {
4976 + loading.style.display = '';
4977 + hasError = false;
4978 + });
4979 +
4980 + media.addEventListener('loadeddata', function () {
4981 + loading.style.display = '';
4982 +
4983 + if (_constants.IS_ANDROID) {
4984 + media.canplayTimeout = setTimeout(function () {
4985 + if (_document2.default.createEvent) {
4986 + var evt = _document2.default.createEvent('HTMLEvents');
4987 + evt.initEvent('canplay', true, true);
4988 + return media.dispatchEvent(evt);
4989 + }
4990 + }, 300);
4991 + }
4992 + hasError = false;
4993 + });
4994 + media.addEventListener('canplay', function () {
4995 + loading.style.display = 'none';
4996 +
4997 + clearTimeout(media.canplayTimeout);
4998 + hasError = false;
4999 + });
5000 +
5001 + media.addEventListener('error', function (e) {
5002 + t._handleError(e, t.media, t.node);
5003 + loading.style.display = 'none';
5004 + bigPlay.style.display = 'none';
5005 + hasError = true;
5006 + });
5007 +
5008 + media.addEventListener('loadedmetadata', function () {
5009 + if (!t.controlsEnabled) {
5010 + t.enableControls();
5011 + }
5012 + });
5013 +
5014 + media.addEventListener('keydown', function (e) {
5015 + t.onkeydown(player, media, e);
5016 + hasError = false;
5017 + });
5018 + }
5019 + }, {
5020 + key: 'buildkeyboard',
5021 + value: function buildkeyboard(player, controls, layers, media) {
5022 +
5023 + var t = this;
5024 +
5025 + t.getElement(t.container).addEventListener('keydown', function () {
5026 + t.keyboardAction = true;
5027 + });
5028 +
5029 + t.globalKeydownCallback = function (event) {
5030 + var container = _document2.default.activeElement.closest('.' + t.options.classPrefix + 'container'),
5031 + target = t.media.closest('.' + t.options.classPrefix + 'container');
5032 + t.hasFocus = !!(container && target && container.id === target.id);
5033 + return t.onkeydown(player, media, event);
5034 + };
5035 +
5036 + t.globalClickCallback = function (event) {
5037 + t.hasFocus = !!event.target.closest('.' + t.options.classPrefix + 'container');
5038 + };
5039 +
5040 + t.globalBind('keydown', t.globalKeydownCallback);
5041 +
5042 + t.globalBind('click', t.globalClickCallback);
5043 + }
5044 + }, {
5045 + key: 'onkeydown',
5046 + value: function onkeydown(player, media, e) {
5047 +
5048 + if (player.hasFocus && player.options.enableKeyboard) {
5049 + for (var i = 0, total = player.options.keyActions.length; i < total; i++) {
5050 + var keyAction = player.options.keyActions[i];
5051 +
5052 + for (var j = 0, jl = keyAction.keys.length; j < jl; j++) {
5053 + if (e.keyCode === keyAction.keys[j]) {
5054 + keyAction.action(player, media, e.keyCode, e);
5055 + e.preventDefault();
5056 + e.stopPropagation();
5057 + return;
5058 + }
5059 + }
5060 + }
5061 + }
5062 +
5063 + return true;
5064 + }
5065 + }, {
5066 + key: 'play',
5067 + value: function play() {
5068 + this.proxy.play();
5069 + }
5070 + }, {
5071 + key: 'pause',
5072 + value: function pause() {
5073 + this.proxy.pause();
5074 + }
5075 + }, {
5076 + key: 'load',
5077 + value: function load() {
5078 + this.proxy.load();
5079 + }
5080 + }, {
5081 + key: 'setCurrentTime',
5082 + value: function setCurrentTime(time) {
5083 + this.proxy.setCurrentTime(time);
5084 + }
5085 + }, {
5086 + key: 'getCurrentTime',
5087 + value: function getCurrentTime() {
5088 + return this.proxy.currentTime;
5089 + }
5090 + }, {
5091 + key: 'getDuration',
5092 + value: function getDuration() {
5093 + return this.proxy.duration;
5094 + }
5095 + }, {
5096 + key: 'setVolume',
5097 + value: function setVolume(volume) {
5098 + this.proxy.volume = volume;
5099 + }
5100 + }, {
5101 + key: 'getVolume',
5102 + value: function getVolume() {
5103 + return this.proxy.getVolume();
5104 + }
5105 + }, {
5106 + key: 'setMuted',
5107 + value: function setMuted(value) {
5108 + this.proxy.setMuted(value);
5109 + }
5110 + }, {
5111 + key: 'setSrc',
5112 + value: function setSrc(src) {
5113 + if (!this.controlsEnabled) {
5114 + this.enableControls();
5115 + }
5116 + this.proxy.setSrc(src);
5117 + }
5118 + }, {
5119 + key: 'getSrc',
5120 + value: function getSrc() {
5121 + return this.proxy.getSrc();
5122 + }
5123 + }, {
5124 + key: 'canPlayType',
5125 + value: function canPlayType(type) {
5126 + return this.proxy.canPlayType(type);
5127 + }
5128 + }, {
5129 + key: 'remove',
5130 + value: function remove() {
5131 + var t = this,
5132 + rendererName = t.media.rendererName,
5133 + src = t.media.originalNode.src;
5134 +
5135 + for (var featureIndex in t.options.features) {
5136 + var feature = t.options.features[featureIndex];
5137 + if (t['clean' + feature]) {
5138 + try {
5139 + t['clean' + feature](t, t.getElement(t.layers), t.getElement(t.controls), t.media);
5140 + } catch (e) {
5141 + console.error('error cleaning ' + feature, e);
5142 + }
5143 + }
5144 + }
5145 +
5146 + var nativeWidth = t.node.getAttribute('width'),
5147 + nativeHeight = t.node.getAttribute('height');
5148 +
5149 + if (nativeWidth) {
5150 + if (nativeWidth.indexOf('%') === -1) {
5151 + nativeWidth = nativeWidth + 'px';
5152 + }
5153 + } else {
5154 + nativeWidth = 'auto';
5155 + }
5156 +
5157 + if (nativeHeight) {
5158 + if (nativeHeight.indexOf('%') === -1) {
5159 + nativeHeight = nativeHeight + 'px';
5160 + }
5161 + } else {
5162 + nativeHeight = 'auto';
5163 + }
5164 +
5165 + t.node.style.width = nativeWidth;
5166 + t.node.style.height = nativeHeight;
5167 +
5168 + t.setPlayerSize(0, 0);
5169 +
5170 + if (!t.isDynamic) {
5171 + (function () {
5172 + t.node.setAttribute('controls', true);
5173 + t.node.setAttribute('id', t.node.getAttribute('id').replace('_' + rendererName, '').replace('_from_mejs', ''));
5174 + var poster = t.getElement(t.container).querySelector('.' + t.options.classPrefix + 'poster>img');
5175 + if (poster) {
5176 + t.node.setAttribute('poster', poster.src);
5177 + }
5178 +
5179 + delete t.node.autoplay;
5180 +
5181 + t.node.setAttribute('src', '');
5182 + if (t.media.canPlayType((0, _media.getTypeFromFile)(src)) !== '') {
5183 + t.node.setAttribute('src', src);
5184 + }
5185 +
5186 + if (rendererName && rendererName.indexOf('iframe') > -1) {
5187 + var layer = _document2.default.getElementById(t.media.id + '-iframe-overlay');
5188 + layer.remove();
5189 + }
5190 +
5191 + var node = t.node.cloneNode();
5192 + node.style.display = '';
5193 + t.getElement(t.container).parentNode.insertBefore(node, t.getElement(t.container));
5194 + t.node.remove();
5195 +
5196 + if (t.mediaFiles) {
5197 + for (var i = 0, total = t.mediaFiles.length; i < total; i++) {
5198 + var source = _document2.default.createElement('source');
5199 + source.setAttribute('src', t.mediaFiles[i].src);
5200 + source.setAttribute('type', t.mediaFiles[i].type);
5201 + node.appendChild(source);
5202 + }
5203 + }
5204 + if (t.trackFiles) {
5205 + var _loop3 = function _loop3(_i4, _total4) {
5206 + var track = t.trackFiles[_i4];
5207 + var newTrack = _document2.default.createElement('track');
5208 + newTrack.kind = track.kind;
5209 + newTrack.label = track.label;
5210 + newTrack.srclang = track.srclang;
5211 + newTrack.src = track.src;
5212 +
5213 + node.appendChild(newTrack);
5214 + newTrack.addEventListener('load', function () {
5215 + this.mode = 'showing';
5216 + node.textTracks[_i4].mode = 'showing';
5217 + });
5218 + };
5219 +
5220 + for (var _i4 = 0, _total4 = t.trackFiles.length; _i4 < _total4; _i4++) {
5221 + _loop3(_i4, _total4);
5222 + }
5223 + }
5224 +
5225 + delete t.node;
5226 + delete t.mediaFiles;
5227 + delete t.trackFiles;
5228 + })();
5229 + } else {
5230 + t.getElement(t.container).parentNode.insertBefore(t.node, t.getElement(t.container));
5231 + }
5232 +
5233 + if (t.media.renderer && typeof t.media.renderer.destroy === 'function') {
5234 + t.media.renderer.destroy();
5235 + }
5236 +
5237 + delete _mejs2.default.players[t.id];
5238 +
5239 + if (_typeof(t.getElement(t.container)) === 'object') {
5240 + var offscreen = t.getElement(t.container).parentNode.querySelector('.' + t.options.classPrefix + 'offscreen');
5241 + if (offscreen) {
5242 + offscreen.remove();
5243 + }
5244 + t.getElement(t.container).remove();
5245 + }
5246 + t.globalUnbind('resize', t.globalResizeCallback);
5247 + t.globalUnbind('keydown', t.globalKeydownCallback);
5248 + t.globalUnbind('click', t.globalClickCallback);
5249 +
5250 + delete t.media.player;
5251 + }
5252 + }, {
5253 + key: 'paused',
5254 + get: function get() {
5255 + return this.proxy.paused;
5256 + }
5257 + }, {
5258 + key: 'muted',
5259 + get: function get() {
5260 + return this.proxy.muted;
5261 + },
5262 + set: function set(muted) {
5263 + this.setMuted(muted);
5264 + }
5265 + }, {
5266 + key: 'ended',
5267 + get: function get() {
5268 + return this.proxy.ended;
5269 + }
5270 + }, {
5271 + key: 'readyState',
5272 + get: function get() {
5273 + return this.proxy.readyState;
5274 + }
5275 + }, {
5276 + key: 'currentTime',
5277 + set: function set(time) {
5278 + this.setCurrentTime(time);
5279 + },
5280 + get: function get() {
5281 + return this.getCurrentTime();
5282 + }
5283 + }, {
5284 + key: 'duration',
5285 + get: function get() {
5286 + return this.getDuration();
5287 + }
5288 + }, {
5289 + key: 'volume',
5290 + set: function set(volume) {
5291 + this.setVolume(volume);
5292 + },
5293 + get: function get() {
5294 + return this.getVolume();
5295 + }
5296 + }, {
5297 + key: 'src',
5298 + set: function set(src) {
5299 + this.setSrc(src);
5300 + },
5301 + get: function get() {
5302 + return this.getSrc();
5303 + }
5304 + }]);
5305 +
5306 + return MediaElementPlayer;
5307 + }();
5308 +
5309 + _window2.default.MediaElementPlayer = MediaElementPlayer;
5310 + _mejs2.default.MediaElementPlayer = MediaElementPlayer;
5311 +
5312 + exports.default = MediaElementPlayer;
5313 +
5314 + },{"17":17,"2":2,"25":25,"26":26,"27":27,"28":28,"3":3,"30":30,"5":5,"6":6,"7":7}],17:[function(_dereq_,module,exports){
5315 + 'use strict';
5316 +
5317 + Object.defineProperty(exports, "__esModule", {
5318 + value: true
5319 + });
5320 +
5321 + var _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; }; }();
5322 +
5323 + var _window = _dereq_(3);
5324 +
5325 + var _window2 = _interopRequireDefault(_window);
5326 +
5327 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5328 +
5329 + function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
5330 +
5331 + var DefaultPlayer = function () {
5332 + function DefaultPlayer(player) {
5333 + _classCallCheck(this, DefaultPlayer);
5334 +
5335 + this.media = player.media;
5336 + this.isVideo = player.isVideo;
5337 + this.classPrefix = player.options.classPrefix;
5338 + this.createIframeLayer = function () {
5339 + return player.createIframeLayer();
5340 + };
5341 + this.setPoster = function (url) {
5342 + return player.setPoster(url);
5343 + };
5344 + return this;
5345 + }
5346 +
5347 + _createClass(DefaultPlayer, [{
5348 + key: 'play',
5349 + value: function play() {
5350 + this.media.play();
5351 + }
5352 + }, {
5353 + key: 'pause',
5354 + value: function pause() {
5355 + this.media.pause();
5356 + }
5357 + }, {
5358 + key: 'load',
5359 + value: function load() {
5360 + var t = this;
5361 +
5362 + if (!t.isLoaded) {
5363 + t.media.load();
5364 + }
5365 +
5366 + t.isLoaded = true;
5367 + }
5368 + }, {
5369 + key: 'setCurrentTime',
5370 + value: function setCurrentTime(time) {
5371 + this.media.setCurrentTime(time);
5372 + }
5373 + }, {
5374 + key: 'getCurrentTime',
5375 + value: function getCurrentTime() {
5376 + return this.media.currentTime;
5377 + }
5378 + }, {
5379 + key: 'getDuration',
5380 + value: function getDuration() {
5381 + var duration = this.media.getDuration();
5382 + if (duration === Infinity && this.media.seekable && this.media.seekable.length) {
5383 + duration = this.media.seekable.end(0);
5384 + }
5385 + return duration;
5386 + }
5387 + }, {
5388 + key: 'setVolume',
5389 + value: function setVolume(volume) {
5390 + this.media.setVolume(volume);
5391 + }
5392 + }, {
5393 + key: 'getVolume',
5394 + value: function getVolume() {
5395 + return this.media.getVolume();
5396 + }
5397 + }, {
5398 + key: 'setMuted',
5399 + value: function setMuted(value) {
5400 + this.media.setMuted(value);
5401 + }
5402 + }, {
5403 + key: 'setSrc',
5404 + value: function setSrc(src) {
5405 + var t = this,
5406 + layer = document.getElementById(t.media.id + '-iframe-overlay');
5407 +
5408 + if (layer) {
5409 + layer.remove();
5410 + }
5411 +
5412 + t.media.setSrc(src);
5413 + t.createIframeLayer();
5414 + if (t.media.renderer !== null && typeof t.media.renderer.getPosterUrl === 'function') {
5415 + t.setPoster(t.media.renderer.getPosterUrl());
5416 + }
5417 + }
5418 + }, {
5419 + key: 'getSrc',
5420 + value: function getSrc() {
5421 + return this.media.getSrc();
5422 + }
5423 + }, {
5424 + key: 'canPlayType',
5425 + value: function canPlayType(type) {
5426 + return this.media.canPlayType(type);
5427 + }
5428 + }, {
5429 + key: 'paused',
5430 + get: function get() {
5431 + return this.media.paused;
5432 + }
5433 + }, {
5434 + key: 'muted',
5435 + set: function set(muted) {
5436 + this.setMuted(muted);
5437 + },
5438 + get: function get() {
5439 + return this.media.muted;
5440 + }
5441 + }, {
5442 + key: 'ended',
5443 + get: function get() {
5444 + return this.media.ended;
5445 + }
5446 + }, {
5447 + key: 'readyState',
5448 + get: function get() {
5449 + return this.media.readyState;
5450 + }
5451 + }, {
5452 + key: 'currentTime',
5453 + set: function set(time) {
5454 + this.setCurrentTime(time);
5455 + },
5456 + get: function get() {
5457 + return this.getCurrentTime();
5458 + }
5459 + }, {
5460 + key: 'duration',
5461 + get: function get() {
5462 + return this.getDuration();
5463 + }
5464 + }, {
5465 + key: 'remainingTime',
5466 + get: function get() {
5467 + return this.getDuration() - this.currentTime();
5468 + }
5469 + }, {
5470 + key: 'volume',
5471 + set: function set(volume) {
5472 + this.setVolume(volume);
5473 + },
5474 + get: function get() {
5475 + return this.getVolume();
5476 + }
5477 + }, {
5478 + key: 'src',
5479 + set: function set(src) {
5480 + this.setSrc(src);
5481 + },
5482 + get: function get() {
5483 + return this.getSrc();
5484 + }
5485 + }]);
5486 +
5487 + return DefaultPlayer;
5488 + }();
5489 +
5490 + exports.default = DefaultPlayer;
5491 +
5492 +
5493 + _window2.default.DefaultPlayer = DefaultPlayer;
5494 +
5495 + },{"3":3}],18:[function(_dereq_,module,exports){
5496 + 'use strict';
5497 +
5498 + var _window = _dereq_(3);
5499 +
5500 + var _window2 = _interopRequireDefault(_window);
5501 +
5502 + var _mejs = _dereq_(7);
5503 +
5504 + var _mejs2 = _interopRequireDefault(_mejs);
5505 +
5506 + var _player = _dereq_(16);
5507 +
5508 + var _player2 = _interopRequireDefault(_player);
5509 +
5510 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5511 +
5512 + if (typeof jQuery !== 'undefined') {
5513 + _mejs2.default.$ = jQuery;
5514 + } else if (typeof Zepto !== 'undefined') {
5515 + _mejs2.default.$ = Zepto;
5516 + } else if (typeof ender !== 'undefined') {
5517 + _mejs2.default.$ = ender;
5518 + }
5519 +
5520 + (function ($) {
5521 + if (typeof $ !== 'undefined') {
5522 + $.fn.mediaelementplayer = function (options) {
5523 + if (options === false) {
5524 + this.each(function () {
5525 + var player = $(this).data('mediaelementplayer');
5526 + if (player) {
5527 + player.remove();
5528 + }
5529 + $(this).removeData('mediaelementplayer');
5530 + });
5531 + } else {
5532 + this.each(function () {
5533 + $(this).data('mediaelementplayer', new _player2.default(this, options));
5534 + });
5535 + }
5536 + return this;
5537 + };
5538 +
5539 + $(document).ready(function () {
5540 + $('.' + _mejs2.default.MepDefaults.classPrefix + 'player').mediaelementplayer();
5541 + });
5542 + }
5543 + })(_mejs2.default.$);
5544 +
5545 + },{"16":16,"3":3,"7":7}],19:[function(_dereq_,module,exports){
5546 + 'use strict';
5547 +
5548 + var _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; };
5549 +
5550 + var _window = _dereq_(3);
5551 +
5552 + var _window2 = _interopRequireDefault(_window);
5553 +
5554 + var _mejs = _dereq_(7);
5555 +
5556 + var _mejs2 = _interopRequireDefault(_mejs);
5557 +
5558 + var _renderer = _dereq_(8);
5559 +
5560 + var _general = _dereq_(27);
5561 +
5562 + var _media = _dereq_(28);
5563 +
5564 + var _constants = _dereq_(25);
5565 +
5566 + var _dom = _dereq_(26);
5567 +
5568 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5569 +
5570 + var NativeDash = {
5571 +
5572 + promise: null,
5573 +
5574 + load: function load(settings) {
5575 + if (typeof dashjs !== 'undefined') {
5576 + NativeDash.promise = new Promise(function (resolve) {
5577 + resolve();
5578 + }).then(function () {
5579 + NativeDash._createPlayer(settings);
5580 + });
5581 + } else {
5582 + settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.dashjs.org/latest/dash.all.min.js';
5583 +
5584 + NativeDash.promise = NativeDash.promise || (0, _dom.loadScript)(settings.options.path);
5585 + NativeDash.promise.then(function () {
5586 + NativeDash._createPlayer(settings);
5587 + });
5588 + }
5589 +
5590 + return NativeDash.promise;
5591 + },
5592 +
5593 + _createPlayer: function _createPlayer(settings) {
5594 + var player = dashjs.MediaPlayer().create();
5595 + _window2.default['__ready__' + settings.id](player);
5596 + return player;
5597 + }
5598 + };
5599 +
5600 + var DashNativeRenderer = {
5601 + name: 'native_dash',
5602 + options: {
5603 + prefix: 'native_dash',
5604 + dash: {
5605 + path: 'https://cdn.dashjs.org/latest/dash.all.min.js',
5606 + debug: false,
5607 + drm: {},
5608 +
5609 + robustnessLevel: ''
5610 + }
5611 + },
5612 +
5613 + canPlayType: function canPlayType(type) {
5614 + return _constants.HAS_MSE && ['application/dash+xml'].indexOf(type.toLowerCase()) > -1;
5615 + },
5616 +
5617 + create: function create(mediaElement, options, mediaFiles) {
5618 +
5619 + var originalNode = mediaElement.originalNode,
5620 + id = mediaElement.id + '_' + options.prefix,
5621 + autoplay = originalNode.autoplay,
5622 + children = originalNode.children;
5623 +
5624 + var node = null,
5625 + dashPlayer = null;
5626 +
5627 + originalNode.removeAttribute('type');
5628 + for (var i = 0, total = children.length; i < total; i++) {
5629 + children[i].removeAttribute('type');
5630 + }
5631 +
5632 + node = originalNode.cloneNode(true);
5633 + options = Object.assign(options, mediaElement.options);
5634 +
5635 + var props = _mejs2.default.html5media.properties,
5636 + events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
5637 + return e !== 'error';
5638 + }),
5639 + attachNativeEvents = function attachNativeEvents(e) {
5640 + var event = (0, _general.createEvent)(e.type, mediaElement);
5641 + mediaElement.dispatchEvent(event);
5642 + },
5643 + assignGettersSetters = function assignGettersSetters(propName) {
5644 + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
5645 +
5646 + node['get' + capName] = function () {
5647 + return dashPlayer !== null ? node[propName] : null;
5648 + };
5649 +
5650 + node['set' + capName] = function (value) {
5651 + if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
5652 + if (propName === 'src') {
5653 + var source = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
5654 + node[propName] = source;
5655 + if (dashPlayer !== null) {
5656 + dashPlayer.reset();
5657 + for (var _i = 0, _total = events.length; _i < _total; _i++) {
5658 + node.removeEventListener(events[_i], attachNativeEvents);
5659 + }
5660 + dashPlayer = NativeDash._createPlayer({
5661 + options: options.dash,
5662 + id: id
5663 + });
5664 +
5665 + if (value && (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && _typeof(value.drm) === 'object') {
5666 + dashPlayer.setProtectionData(value.drm);
5667 + if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) {
5668 + dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel);
5669 + }
5670 + }
5671 + dashPlayer.attachSource(source);
5672 + if (autoplay) {
5673 + dashPlayer.play();
5674 + }
5675 + }
5676 + } else {
5677 + node[propName] = value;
5678 + }
5679 + }
5680 + };
5681 + };
5682 +
5683 + for (var _i2 = 0, _total2 = props.length; _i2 < _total2; _i2++) {
5684 + assignGettersSetters(props[_i2]);
5685 + }
5686 +
5687 + _window2.default['__ready__' + id] = function (_dashPlayer) {
5688 + mediaElement.dashPlayer = dashPlayer = _dashPlayer;
5689 +
5690 + var dashEvents = dashjs.MediaPlayer.events,
5691 + assignEvents = function assignEvents(eventName) {
5692 + if (eventName === 'loadedmetadata') {
5693 + dashPlayer.initialize();
5694 + dashPlayer.attachView(node);
5695 + dashPlayer.setAutoPlay(false);
5696 +
5697 + if (_typeof(options.dash.drm) === 'object' && !_mejs2.default.Utils.isObjectEmpty(options.dash.drm)) {
5698 + dashPlayer.setProtectionData(options.dash.drm);
5699 + if ((0, _general.isString)(options.dash.robustnessLevel) && options.dash.robustnessLevel) {
5700 + dashPlayer.getProtectionController().setRobustnessLevel(options.dash.robustnessLevel);
5701 + }
5702 + }
5703 + dashPlayer.attachSource(node.getSrc());
5704 + }
5705 +
5706 + node.addEventListener(eventName, attachNativeEvents);
5707 + };
5708 +
5709 + for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
5710 + assignEvents(events[_i3]);
5711 + }
5712 +
5713 + var assignMdashEvents = function assignMdashEvents(e) {
5714 + if (e.type.toLowerCase() === 'error') {
5715 + mediaElement.generateError(e.message, node.src);
5716 + console.error(e);
5717 + } else {
5718 + var _event = (0, _general.createEvent)(e.type, mediaElement);
5719 + _event.data = e;
5720 + mediaElement.dispatchEvent(_event);
5721 + }
5722 + };
5723 +
5724 + for (var eventType in dashEvents) {
5725 + if (dashEvents.hasOwnProperty(eventType)) {
5726 + dashPlayer.on(dashEvents[eventType], function (e) {
5727 + return assignMdashEvents(e);
5728 + });
5729 + }
5730 + }
5731 + };
5732 +
5733 + if (mediaFiles && mediaFiles.length > 0) {
5734 + for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) {
5735 + if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) {
5736 + node.setAttribute('src', mediaFiles[_i4].src);
5737 + if (typeof mediaFiles[_i4].drm !== 'undefined') {
5738 + options.dash.drm = mediaFiles[_i4].drm;
5739 + }
5740 + break;
5741 + }
5742 + }
5743 + }
5744 +
5745 + node.setAttribute('id', id);
5746 +
5747 + originalNode.parentNode.insertBefore(node, originalNode);
5748 + originalNode.autoplay = false;
5749 + originalNode.style.display = 'none';
5750 +
5751 + node.setSize = function (width, height) {
5752 + node.style.width = width + 'px';
5753 + node.style.height = height + 'px';
5754 + return node;
5755 + };
5756 +
5757 + node.hide = function () {
5758 + node.pause();
5759 + node.style.display = 'none';
5760 + return node;
5761 + };
5762 +
5763 + node.show = function () {
5764 + node.style.display = '';
5765 + return node;
5766 + };
5767 +
5768 + node.destroy = function () {
5769 + if (dashPlayer !== null) {
5770 + dashPlayer.reset();
5771 + }
5772 + };
5773 +
5774 + var event = (0, _general.createEvent)('rendererready', node);
5775 + mediaElement.dispatchEvent(event);
5776 +
5777 + mediaElement.promises.push(NativeDash.load({
5778 + options: options.dash,
5779 + id: id
5780 + }));
5781 +
5782 + return node;
5783 + }
5784 + };
5785 +
5786 + _media.typeChecks.push(function (url) {
5787 + return ~url.toLowerCase().indexOf('.mpd') ? 'application/dash+xml' : null;
5788 + });
5789 +
5790 + _renderer.renderer.add(DashNativeRenderer);
5791 +
5792 + },{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],20:[function(_dereq_,module,exports){
5793 + 'use strict';
5794 +
5795 + Object.defineProperty(exports, "__esModule", {
5796 + value: true
5797 + });
5798 + exports.PluginDetector = undefined;
5799 +
5800 + var _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; };
5801 +
5802 + var _window = _dereq_(3);
5803 +
5804 + var _window2 = _interopRequireDefault(_window);
5805 +
5806 + var _document = _dereq_(2);
5807 +
5808 + var _document2 = _interopRequireDefault(_document);
5809 +
5810 + var _mejs = _dereq_(7);
5811 +
5812 + var _mejs2 = _interopRequireDefault(_mejs);
5813 +
5814 + var _i18n = _dereq_(5);
5815 +
5816 + var _i18n2 = _interopRequireDefault(_i18n);
5817 +
5818 + var _renderer = _dereq_(8);
5819 +
5820 + var _general = _dereq_(27);
5821 +
5822 + var _constants = _dereq_(25);
5823 +
5824 + var _media = _dereq_(28);
5825 +
5826 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
5827 +
5828 + var PluginDetector = exports.PluginDetector = {
5829 + plugins: [],
5830 +
5831 + hasPluginVersion: function hasPluginVersion(plugin, v) {
5832 + var pv = PluginDetector.plugins[plugin];
5833 + v[1] = v[1] || 0;
5834 + v[2] = v[2] || 0;
5835 + 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];
5836 + },
5837 +
5838 + addPlugin: function addPlugin(p, pluginName, mimeType, activeX, axDetect) {
5839 + PluginDetector.plugins[p] = PluginDetector.detectPlugin(pluginName, mimeType, activeX, axDetect);
5840 + },
5841 +
5842 + detectPlugin: function detectPlugin(pluginName, mimeType, activeX, axDetect) {
5843 +
5844 + var version = [0, 0, 0],
5845 + description = void 0,
5846 + ax = void 0;
5847 +
5848 + if (_constants.NAV.plugins !== null && _constants.NAV.plugins !== undefined && _typeof(_constants.NAV.plugins[pluginName]) === 'object') {
5849 + description = _constants.NAV.plugins[pluginName].description;
5850 + if (description && !(typeof _constants.NAV.mimeTypes !== 'undefined' && _constants.NAV.mimeTypes[mimeType] && !_constants.NAV.mimeTypes[mimeType].enabledPlugin)) {
5851 + version = description.replace(pluginName, '').replace(/^\s+/, '').replace(/\sr/gi, '.').split('.');
5852 + for (var i = 0, total = version.length; i < total; i++) {
5853 + version[i] = parseInt(version[i].match(/\d+/), 10);
5854 + }
5855 + }
5856 + } else if (_window2.default.ActiveXObject !== undefined) {
5857 + try {
5858 + ax = new ActiveXObject(activeX);
5859 + if (ax) {
5860 + version = axDetect(ax);
5861 + }
5862 + } catch (e) {
5863 +
5864 + }
5865 + }
5866 + return version;
5867 + }
5868 + };
5869 +
5870 + PluginDetector.addPlugin('flash', 'Shockwave Flash', 'application/x-shockwave-flash', 'ShockwaveFlash.ShockwaveFlash', function (ax) {
5871 + var version = [],
5872 + d = ax.GetVariable("$version");
5873 +
5874 + if (d) {
5875 + d = d.split(" ")[1].split(",");
5876 + version = [parseInt(d[0], 10), parseInt(d[1], 10), parseInt(d[2], 10)];
5877 + }
5878 + return version;
5879 + });
5880 +
5881 + var FlashMediaElementRenderer = {
5882 + create: function create(mediaElement, options, mediaFiles) {
5883 +
5884 + var flash = {};
5885 + var isActive = false;
5886 +
5887 + flash.options = options;
5888 + flash.id = mediaElement.id + '_' + flash.options.prefix;
5889 + flash.mediaElement = mediaElement;
5890 + flash.flashState = {};
5891 + flash.flashApi = null;
5892 + flash.flashApiStack = [];
5893 +
5894 + var props = _mejs2.default.html5media.properties,
5895 + assignGettersSetters = function assignGettersSetters(propName) {
5896 + flash.flashState[propName] = null;
5897 +
5898 + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
5899 +
5900 + flash['get' + capName] = function () {
5901 + if (flash.flashApi !== null) {
5902 + if (typeof flash.flashApi['get_' + propName] === 'function') {
5903 + var value = flash.flashApi['get_' + propName]();
5904 +
5905 + if (propName === 'buffered') {
5906 + return {
5907 + start: function start() {
5908 + return 0;
5909 + },
5910 + end: function end() {
5911 + return value;
5912 + },
5913 + length: 1
5914 + };
5915 + }
5916 + return value;
5917 + } else {
5918 + return null;
5919 + }
5920 + } else {
5921 + return null;
5922 + }
5923 + };
5924 +
5925 + flash['set' + capName] = function (value) {
5926 + if (propName === 'src') {
5927 + value = (0, _media.absolutizeUrl)(value);
5928 + }
5929 +
5930 + if (flash.flashApi !== null && flash.flashApi['set_' + propName] !== undefined) {
5931 + try {
5932 + flash.flashApi['set_' + propName](value);
5933 + } catch (e) {
5934 +
5935 + }
5936 + } else {
5937 + flash.flashApiStack.push({
5938 + type: 'set',
5939 + propName: propName,
5940 + value: value
5941 + });
5942 + }
5943 + };
5944 + };
5945 +
5946 + for (var i = 0, total = props.length; i < total; i++) {
5947 + assignGettersSetters(props[i]);
5948 + }
5949 +
5950 + var methods = _mejs2.default.html5media.methods,
5951 + assignMethods = function assignMethods(methodName) {
5952 + flash[methodName] = function () {
5953 + if (isActive) {
5954 + if (flash.flashApi !== null) {
5955 + if (flash.flashApi['fire_' + methodName]) {
5956 + try {
5957 + flash.flashApi['fire_' + methodName]();
5958 + } catch (e) {
5959 +
5960 + }
5961 + } else {
5962 +
5963 + }
5964 + } else {
5965 + flash.flashApiStack.push({
5966 + type: 'call',
5967 + methodName: methodName
5968 + });
5969 + }
5970 + }
5971 + };
5972 + };
5973 + methods.push('stop');
5974 + for (var _i = 0, _total = methods.length; _i < _total; _i++) {
5975 + assignMethods(methods[_i]);
5976 + }
5977 +
5978 + var initEvents = ['rendererready'];
5979 +
5980 + for (var _i2 = 0, _total2 = initEvents.length; _i2 < _total2; _i2++) {
5981 + var event = (0, _general.createEvent)(initEvents[_i2], flash);
5982 + mediaElement.dispatchEvent(event);
5983 + }
5984 +
5985 + _window2.default['__ready__' + flash.id] = function () {
5986 +
5987 + flash.flashReady = true;
5988 + flash.flashApi = _document2.default.getElementById('__' + flash.id);
5989 +
5990 + if (flash.flashApiStack.length) {
5991 + for (var _i3 = 0, _total3 = flash.flashApiStack.length; _i3 < _total3; _i3++) {
5992 + var stackItem = flash.flashApiStack[_i3];
5993 +
5994 + if (stackItem.type === 'set') {
5995 + var propName = stackItem.propName,
5996 + capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
5997 +
5998 + flash['set' + capName](stackItem.value);
5999 + } else if (stackItem.type === 'call') {
6000 + flash[stackItem.methodName]();
6001 + }
6002 + }
6003 + }
6004 + };
6005 +
6006 + _window2.default['__event__' + flash.id] = function (eventName, message) {
6007 + var event = (0, _general.createEvent)(eventName, flash);
6008 + if (message) {
6009 + try {
6010 + event.data = JSON.parse(message);
6011 + event.details.data = JSON.parse(message);
6012 + } catch (e) {
6013 + event.message = message;
6014 + }
6015 + }
6016 +
6017 + flash.mediaElement.dispatchEvent(event);
6018 + };
6019 +
6020 + flash.flashWrapper = _document2.default.createElement('div');
6021 +
6022 + if (['always', 'sameDomain'].indexOf(flash.options.shimScriptAccess) === -1) {
6023 + flash.options.shimScriptAccess = 'sameDomain';
6024 + }
6025 +
6026 + var autoplay = mediaElement.originalNode.autoplay,
6027 + flashVars = ['uid=' + flash.id, 'autoplay=' + autoplay, 'allowScriptAccess=' + flash.options.shimScriptAccess, 'preload=' + (mediaElement.originalNode.getAttribute('preload') || '')],
6028 + isVideo = mediaElement.originalNode !== null && mediaElement.originalNode.tagName.toLowerCase() === 'video',
6029 + flashHeight = isVideo ? mediaElement.originalNode.height : 1,
6030 + flashWidth = isVideo ? mediaElement.originalNode.width : 1;
6031 +
6032 + if (mediaElement.originalNode.getAttribute('src')) {
6033 + flashVars.push('src=' + mediaElement.originalNode.getAttribute('src'));
6034 + }
6035 +
6036 + if (flash.options.enablePseudoStreaming === true) {
6037 + flashVars.push('pseudostreamstart=' + flash.options.pseudoStreamingStartQueryParam);
6038 + flashVars.push('pseudostreamtype=' + flash.options.pseudoStreamingType);
6039 + }
6040 +
6041 + if (flash.options.streamDelimiter) {
6042 + flashVars.push('streamdelimiter=' + encodeURIComponent(flash.options.streamDelimiter));
6043 + }
6044 +
6045 + if (flash.options.proxyType) {
6046 + flashVars.push('proxytype=' + flash.options.proxyType);
6047 + }
6048 +
6049 + mediaElement.appendChild(flash.flashWrapper);
6050 + mediaElement.originalNode.style.display = 'none';
6051 +
6052 + var settings = [];
6053 +
6054 + if (_constants.IS_IE || _constants.IS_EDGE) {
6055 + var specialIEContainer = _document2.default.createElement('div');
6056 + flash.flashWrapper.appendChild(specialIEContainer);
6057 +
6058 + if (_constants.IS_EDGE) {
6059 + settings = ['type="application/x-shockwave-flash"', 'data="' + flash.options.pluginPath + flash.options.filename + '"', 'id="__' + flash.id + '"', 'width="' + flashWidth + '"', 'height="' + flashHeight + '\'"'];
6060 + } else {
6061 + 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 + '"'];
6062 + }
6063 +
6064 + if (!isVideo) {
6065 + settings.push('style="clip: rect(0 0 0 0); position: absolute;"');
6066 + }
6067 +
6068 + 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>';
6069 + } else {
6070 +
6071 + 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('&') + '"'];
6072 +
6073 + if (isVideo) {
6074 + settings.push('width="' + flashWidth + '"');
6075 + settings.push('height="' + flashHeight + '"');
6076 + } else {
6077 + settings.push('style="position: fixed; left: -9999em; top: -9999em;"');
6078 + }
6079 +
6080 + flash.flashWrapper.innerHTML = '<embed ' + settings.join(' ') + '>';
6081 + }
6082 +
6083 + flash.flashNode = flash.flashWrapper.lastChild;
6084 +
6085 + flash.hide = function () {
6086 + isActive = false;
6087 + if (isVideo) {
6088 + flash.flashNode.style.display = 'none';
6089 + }
6090 + };
6091 + flash.show = function () {
6092 + isActive = true;
6093 + if (isVideo) {
6094 + flash.flashNode.style.display = '';
6095 + }
6096 + };
6097 + flash.setSize = function (width, height) {
6098 + flash.flashNode.style.width = width + 'px';
6099 + flash.flashNode.style.height = height + 'px';
6100 +
6101 + if (flash.flashApi !== null && typeof flash.flashApi.fire_setSize === 'function') {
6102 + flash.flashApi.fire_setSize(width, height);
6103 + }
6104 + };
6105 +
6106 + flash.destroy = function () {
6107 + flash.flashNode.remove();
6108 + };
6109 +
6110 + if (mediaFiles && mediaFiles.length > 0) {
6111 + for (var _i4 = 0, _total4 = mediaFiles.length; _i4 < _total4; _i4++) {
6112 + if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i4].type)) {
6113 + flash.setSrc(mediaFiles[_i4].src);
6114 + break;
6115 + }
6116 + }
6117 + }
6118 +
6119 + return flash;
6120 + }
6121 + };
6122 +
6123 + var hasFlash = PluginDetector.hasPluginVersion('flash', [10, 0, 0]);
6124 +
6125 + if (hasFlash) {
6126 + _media.typeChecks.push(function (url) {
6127 + url = url.toLowerCase();
6128 +
6129 + if (url.startsWith('rtmp')) {
6130 + if (~url.indexOf('.mp3')) {
6131 + return 'audio/rtmp';
6132 + } else {
6133 + return 'video/rtmp';
6134 + }
6135 + } else if (/\.og(a|g)/i.test(url)) {
6136 + return 'audio/ogg';
6137 + } else if (~url.indexOf('.m3u8')) {
6138 + return 'application/x-mpegURL';
6139 + } else if (~url.indexOf('.mpd')) {
6140 + return 'application/dash+xml';
6141 + } else if (~url.indexOf('.flv')) {
6142 + return 'video/flv';
6143 + } else {
6144 + return null;
6145 + }
6146 + });
6147 +
6148 + var FlashMediaElementVideoRenderer = {
6149 + name: 'flash_video',
6150 + options: {
6151 + prefix: 'flash_video',
6152 + filename: 'mediaelement-flash-video.swf',
6153 + enablePseudoStreaming: false,
6154 +
6155 + pseudoStreamingStartQueryParam: 'start',
6156 +
6157 + pseudoStreamingType: 'byte',
6158 +
6159 + proxyType: '',
6160 +
6161 + streamDelimiter: ''
6162 + },
6163 +
6164 + canPlayType: function canPlayType(type) {
6165 + return ~['video/mp4', 'video/rtmp', 'audio/rtmp', 'rtmp/mp4', 'audio/mp4', 'video/flv', 'video/x-flv'].indexOf(type.toLowerCase());
6166 + },
6167 +
6168 + create: FlashMediaElementRenderer.create
6169 +
6170 + };
6171 + _renderer.renderer.add(FlashMediaElementVideoRenderer);
6172 +
6173 + var FlashMediaElementHlsVideoRenderer = {
6174 + name: 'flash_hls',
6175 + options: {
6176 + prefix: 'flash_hls',
6177 + filename: 'mediaelement-flash-video-hls.swf'
6178 + },
6179 +
6180 + canPlayType: function canPlayType(type) {
6181 + return ~['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase());
6182 + },
6183 +
6184 + create: FlashMediaElementRenderer.create
6185 + };
6186 + _renderer.renderer.add(FlashMediaElementHlsVideoRenderer);
6187 +
6188 + var FlashMediaElementMdashVideoRenderer = {
6189 + name: 'flash_dash',
6190 + options: {
6191 + prefix: 'flash_dash',
6192 + filename: 'mediaelement-flash-video-mdash.swf'
6193 + },
6194 +
6195 + canPlayType: function canPlayType(type) {
6196 + return ~['application/dash+xml'].indexOf(type.toLowerCase());
6197 + },
6198 +
6199 + create: FlashMediaElementRenderer.create
6200 + };
6201 + _renderer.renderer.add(FlashMediaElementMdashVideoRenderer);
6202 +
6203 + var FlashMediaElementAudioRenderer = {
6204 + name: 'flash_audio',
6205 + options: {
6206 + prefix: 'flash_audio',
6207 + filename: 'mediaelement-flash-audio.swf'
6208 + },
6209 +
6210 + canPlayType: function canPlayType(type) {
6211 + return ~['audio/mp3'].indexOf(type.toLowerCase());
6212 + },
6213 +
6214 + create: FlashMediaElementRenderer.create
6215 + };
6216 + _renderer.renderer.add(FlashMediaElementAudioRenderer);
6217 +
6218 + var FlashMediaElementAudioOggRenderer = {
6219 + name: 'flash_audio_ogg',
6220 + options: {
6221 + prefix: 'flash_audio_ogg',
6222 + filename: 'mediaelement-flash-audio-ogg.swf'
6223 + },
6224 +
6225 + canPlayType: function canPlayType(type) {
6226 + return ~['audio/ogg', 'audio/oga', 'audio/ogv'].indexOf(type.toLowerCase());
6227 + },
6228 +
6229 + create: FlashMediaElementRenderer.create
6230 + };
6231 + _renderer.renderer.add(FlashMediaElementAudioOggRenderer);
6232 + }
6233 +
6234 + },{"2":2,"25":25,"27":27,"28":28,"3":3,"5":5,"7":7,"8":8}],21:[function(_dereq_,module,exports){
6235 + 'use strict';
6236 +
6237 + var _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; };
6238 +
6239 + var _window = _dereq_(3);
6240 +
6241 + var _window2 = _interopRequireDefault(_window);
6242 +
6243 + var _mejs = _dereq_(7);
6244 +
6245 + var _mejs2 = _interopRequireDefault(_mejs);
6246 +
6247 + var _renderer = _dereq_(8);
6248 +
6249 + var _general = _dereq_(27);
6250 +
6251 + var _constants = _dereq_(25);
6252 +
6253 + var _media = _dereq_(28);
6254 +
6255 + var _dom = _dereq_(26);
6256 +
6257 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6258 +
6259 + var NativeFlv = {
6260 +
6261 + promise: null,
6262 +
6263 + load: function load(settings) {
6264 + if (typeof flvjs !== 'undefined') {
6265 + NativeFlv.promise = new Promise(function (resolve) {
6266 + resolve();
6267 + }).then(function () {
6268 + NativeFlv._createPlayer(settings);
6269 + });
6270 + } else {
6271 + settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/flv.js@latest';
6272 +
6273 + NativeFlv.promise = NativeFlv.promise || (0, _dom.loadScript)(settings.options.path);
6274 + NativeFlv.promise.then(function () {
6275 + NativeFlv._createPlayer(settings);
6276 + });
6277 + }
6278 +
6279 + return NativeFlv.promise;
6280 + },
6281 +
6282 + _createPlayer: function _createPlayer(settings) {
6283 + flvjs.LoggingControl.enableDebug = settings.options.debug;
6284 + flvjs.LoggingControl.enableVerbose = settings.options.debug;
6285 + var player = flvjs.createPlayer(settings.options, settings.configs);
6286 + _window2.default['__ready__' + settings.id](player);
6287 + return player;
6288 + }
6289 + };
6290 +
6291 + var FlvNativeRenderer = {
6292 + name: 'native_flv',
6293 + options: {
6294 + prefix: 'native_flv',
6295 + flv: {
6296 + path: 'https://cdn.jsdelivr.net/npm/flv.js@latest',
6297 +
6298 + cors: true,
6299 + debug: false
6300 + }
6301 + },
6302 +
6303 + canPlayType: function canPlayType(type) {
6304 + return _constants.HAS_MSE && ['video/x-flv', 'video/flv'].indexOf(type.toLowerCase()) > -1;
6305 + },
6306 +
6307 + create: function create(mediaElement, options, mediaFiles) {
6308 +
6309 + var originalNode = mediaElement.originalNode,
6310 + id = mediaElement.id + '_' + options.prefix;
6311 +
6312 + var node = null,
6313 + flvPlayer = null;
6314 +
6315 + node = originalNode.cloneNode(true);
6316 + options = Object.assign(options, mediaElement.options);
6317 +
6318 + var props = _mejs2.default.html5media.properties,
6319 + events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
6320 + return e !== 'error';
6321 + }),
6322 + attachNativeEvents = function attachNativeEvents(e) {
6323 + var event = (0, _general.createEvent)(e.type, mediaElement);
6324 + mediaElement.dispatchEvent(event);
6325 + },
6326 + assignGettersSetters = function assignGettersSetters(propName) {
6327 + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
6328 +
6329 + node['get' + capName] = function () {
6330 + return flvPlayer !== null ? node[propName] : null;
6331 + };
6332 +
6333 + node['set' + capName] = function (value) {
6334 + if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
6335 + if (propName === 'src') {
6336 + node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
6337 + if (flvPlayer !== null) {
6338 + var _flvOptions = {};
6339 + _flvOptions.type = 'flv';
6340 + _flvOptions.url = value;
6341 + _flvOptions.cors = options.flv.cors;
6342 + _flvOptions.debug = options.flv.debug;
6343 + _flvOptions.path = options.flv.path;
6344 + var _flvConfigs = options.flv.configs;
6345 +
6346 + flvPlayer.destroy();
6347 + for (var i = 0, total = events.length; i < total; i++) {
6348 + node.removeEventListener(events[i], attachNativeEvents);
6349 + }
6350 + flvPlayer = NativeFlv._createPlayer({
6351 + options: _flvOptions,
6352 + configs: _flvConfigs,
6353 + id: id
6354 + });
6355 + flvPlayer.attachMediaElement(node);
6356 + flvPlayer.load();
6357 + }
6358 + } else {
6359 + node[propName] = value;
6360 + }
6361 + }
6362 + };
6363 + };
6364 +
6365 + for (var i = 0, total = props.length; i < total; i++) {
6366 + assignGettersSetters(props[i]);
6367 + }
6368 +
6369 + _window2.default['__ready__' + id] = function (_flvPlayer) {
6370 + mediaElement.flvPlayer = flvPlayer = _flvPlayer;
6371 +
6372 + var flvEvents = flvjs.Events,
6373 + assignEvents = function assignEvents(eventName) {
6374 + if (eventName === 'loadedmetadata') {
6375 + flvPlayer.unload();
6376 + flvPlayer.detachMediaElement();
6377 + flvPlayer.attachMediaElement(node);
6378 + flvPlayer.load();
6379 + }
6380 +
6381 + node.addEventListener(eventName, attachNativeEvents);
6382 + };
6383 +
6384 + for (var _i = 0, _total = events.length; _i < _total; _i++) {
6385 + assignEvents(events[_i]);
6386 + }
6387 +
6388 + var assignFlvEvents = function assignFlvEvents(name, data) {
6389 + if (name === 'error') {
6390 + var message = data[0] + ': ' + data[1] + ' ' + data[2].msg;
6391 + mediaElement.generateError(message, node.src);
6392 + } else {
6393 + var _event = (0, _general.createEvent)(name, mediaElement);
6394 + _event.data = data;
6395 + mediaElement.dispatchEvent(_event);
6396 + }
6397 + };
6398 +
6399 + var _loop = function _loop(eventType) {
6400 + if (flvEvents.hasOwnProperty(eventType)) {
6401 + flvPlayer.on(flvEvents[eventType], function () {
6402 + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
6403 + args[_key] = arguments[_key];
6404 + }
6405 +
6406 + return assignFlvEvents(flvEvents[eventType], args);
6407 + });
6408 + }
6409 + };
6410 +
6411 + for (var eventType in flvEvents) {
6412 + _loop(eventType);
6413 + }
6414 + };
6415 +
6416 + if (mediaFiles && mediaFiles.length > 0) {
6417 + for (var _i2 = 0, _total2 = mediaFiles.length; _i2 < _total2; _i2++) {
6418 + if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[_i2].type)) {
6419 + node.setAttribute('src', mediaFiles[_i2].src);
6420 + break;
6421 + }
6422 + }
6423 + }
6424 +
6425 + node.setAttribute('id', id);
6426 +
6427 + originalNode.parentNode.insertBefore(node, originalNode);
6428 + originalNode.autoplay = false;
6429 + originalNode.style.display = 'none';
6430 +
6431 + var flvOptions = {};
6432 + flvOptions.type = 'flv';
6433 + flvOptions.url = node.src;
6434 + flvOptions.cors = options.flv.cors;
6435 + flvOptions.debug = options.flv.debug;
6436 + flvOptions.path = options.flv.path;
6437 + var flvConfigs = options.flv.configs;
6438 +
6439 + node.setSize = function (width, height) {
6440 + node.style.width = width + 'px';
6441 + node.style.height = height + 'px';
6442 + return node;
6443 + };
6444 +
6445 + node.hide = function () {
6446 + if (flvPlayer !== null) {
6447 + flvPlayer.pause();
6448 + }
6449 + node.style.display = 'none';
6450 + return node;
6451 + };
6452 +
6453 + node.show = function () {
6454 + node.style.display = '';
6455 + return node;
6456 + };
6457 +
6458 + node.destroy = function () {
6459 + if (flvPlayer !== null) {
6460 + flvPlayer.destroy();
6461 + }
6462 + };
6463 +
6464 + var event = (0, _general.createEvent)('rendererready', node);
6465 + mediaElement.dispatchEvent(event);
6466 +
6467 + mediaElement.promises.push(NativeFlv.load({
6468 + options: flvOptions,
6469 + configs: flvConfigs,
6470 + id: id
6471 + }));
6472 +
6473 + return node;
6474 + }
6475 + };
6476 +
6477 + _media.typeChecks.push(function (url) {
6478 + return ~url.toLowerCase().indexOf('.flv') ? 'video/flv' : null;
6479 + });
6480 +
6481 + _renderer.renderer.add(FlvNativeRenderer);
6482 +
6483 + },{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],22:[function(_dereq_,module,exports){
6484 + 'use strict';
6485 +
6486 + var _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; };
6487 +
6488 + var _window = _dereq_(3);
6489 +
6490 + var _window2 = _interopRequireDefault(_window);
6491 +
6492 + var _mejs = _dereq_(7);
6493 +
6494 + var _mejs2 = _interopRequireDefault(_mejs);
6495 +
6496 + var _renderer = _dereq_(8);
6497 +
6498 + var _general = _dereq_(27);
6499 +
6500 + var _constants = _dereq_(25);
6501 +
6502 + var _media = _dereq_(28);
6503 +
6504 + var _dom = _dereq_(26);
6505 +
6506 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6507 +
6508 + var NativeHls = {
6509 +
6510 + promise: null,
6511 +
6512 + load: function load(settings) {
6513 + if (typeof Hls !== 'undefined') {
6514 + NativeHls.promise = new Promise(function (resolve) {
6515 + resolve();
6516 + }).then(function () {
6517 + NativeHls._createPlayer(settings);
6518 + });
6519 + } else {
6520 + settings.options.path = typeof settings.options.path === 'string' ? settings.options.path : 'https://cdn.jsdelivr.net/npm/hls.js@latest';
6521 +
6522 + NativeHls.promise = NativeHls.promise || (0, _dom.loadScript)(settings.options.path);
6523 + NativeHls.promise.then(function () {
6524 + NativeHls._createPlayer(settings);
6525 + });
6526 + }
6527 +
6528 + return NativeHls.promise;
6529 + },
6530 +
6531 + _createPlayer: function _createPlayer(settings) {
6532 + var player = new Hls(settings.options);
6533 + _window2.default['__ready__' + settings.id](player);
6534 + return player;
6535 + }
6536 + };
6537 +
6538 + var HlsNativeRenderer = {
6539 + name: 'native_hls',
6540 + options: {
6541 + prefix: 'native_hls',
6542 + hls: {
6543 + path: 'https://cdn.jsdelivr.net/npm/hls.js@latest',
6544 +
6545 + autoStartLoad: false,
6546 + debug: false
6547 + }
6548 + },
6549 +
6550 + canPlayType: function canPlayType(type) {
6551 + return _constants.HAS_MSE && ['application/x-mpegurl', 'application/vnd.apple.mpegurl', 'audio/mpegurl', 'audio/hls', 'video/hls'].indexOf(type.toLowerCase()) > -1;
6552 + },
6553 +
6554 + create: function create(mediaElement, options, mediaFiles) {
6555 +
6556 + var originalNode = mediaElement.originalNode,
6557 + id = mediaElement.id + '_' + options.prefix,
6558 + preload = originalNode.getAttribute('preload'),
6559 + autoplay = originalNode.autoplay;
6560 +
6561 + var hlsPlayer = null,
6562 + node = null,
6563 + index = 0,
6564 + total = mediaFiles.length;
6565 +
6566 + node = originalNode.cloneNode(true);
6567 + options = Object.assign(options, mediaElement.options);
6568 + options.hls.autoStartLoad = preload && preload !== 'none' || autoplay;
6569 +
6570 + var props = _mejs2.default.html5media.properties,
6571 + events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
6572 + return e !== 'error';
6573 + }),
6574 + attachNativeEvents = function attachNativeEvents(e) {
6575 + var event = (0, _general.createEvent)(e.type, mediaElement);
6576 + mediaElement.dispatchEvent(event);
6577 + },
6578 + assignGettersSetters = function assignGettersSetters(propName) {
6579 + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
6580 +
6581 + node['get' + capName] = function () {
6582 + return hlsPlayer !== null ? node[propName] : null;
6583 + };
6584 +
6585 + node['set' + capName] = function (value) {
6586 + if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
6587 + if (propName === 'src') {
6588 + node[propName] = (typeof value === 'undefined' ? 'undefined' : _typeof(value)) === 'object' && value.src ? value.src : value;
6589 + if (hlsPlayer !== null) {
6590 + hlsPlayer.destroy();
6591 + for (var i = 0, _total = events.length; i < _total; i++) {
6592 + node.removeEventListener(events[i], attachNativeEvents);
6593 + }
6594 + hlsPlayer = NativeHls._createPlayer({
6595 + options: options.hls,
6596 + id: id
6597 + });
6598 + hlsPlayer.loadSource(value);
6599 + hlsPlayer.attachMedia(node);
6600 + }
6601 + } else {
6602 + node[propName] = value;
6603 + }
6604 + }
6605 + };
6606 + };
6607 +
6608 + for (var i = 0, _total2 = props.length; i < _total2; i++) {
6609 + assignGettersSetters(props[i]);
6610 + }
6611 +
6612 + _window2.default['__ready__' + id] = function (_hlsPlayer) {
6613 + mediaElement.hlsPlayer = hlsPlayer = _hlsPlayer;
6614 + var hlsEvents = Hls.Events,
6615 + assignEvents = function assignEvents(eventName) {
6616 + if (eventName === 'loadedmetadata') {
6617 + var url = mediaElement.originalNode.src;
6618 + hlsPlayer.detachMedia();
6619 + hlsPlayer.loadSource(url);
6620 + hlsPlayer.attachMedia(node);
6621 + }
6622 +
6623 + node.addEventListener(eventName, attachNativeEvents);
6624 + };
6625 +
6626 + for (var _i = 0, _total3 = events.length; _i < _total3; _i++) {
6627 + assignEvents(events[_i]);
6628 + }
6629 +
6630 + var recoverDecodingErrorDate = void 0,
6631 + recoverSwapAudioCodecDate = void 0;
6632 + var assignHlsEvents = function assignHlsEvents(name, data) {
6633 + if (name === 'hlsError') {
6634 + console.warn(data);
6635 + data = data[1];
6636 +
6637 + if (data.fatal) {
6638 + switch (data.type) {
6639 + case 'mediaError':
6640 + var now = new Date().getTime();
6641 + if (!recoverDecodingErrorDate || now - recoverDecodingErrorDate > 3000) {
6642 + recoverDecodingErrorDate = new Date().getTime();
6643 + hlsPlayer.recoverMediaError();
6644 + } else if (!recoverSwapAudioCodecDate || now - recoverSwapAudioCodecDate > 3000) {
6645 + recoverSwapAudioCodecDate = new Date().getTime();
6646 + console.warn('Attempting to swap Audio Codec and recover from media error');
6647 + hlsPlayer.swapAudioCodec();
6648 + hlsPlayer.recoverMediaError();
6649 + } else {
6650 + var message = 'Cannot recover, last media error recovery failed';
6651 + mediaElement.generateError(message, node.src);
6652 + console.error(message);
6653 + }
6654 + break;
6655 + case 'networkError':
6656 + if (data.details === 'manifestLoadError') {
6657 + if (index < total && mediaFiles[index + 1] !== undefined) {
6658 + node.setSrc(mediaFiles[index++].src);
6659 + node.load();
6660 + node.play();
6661 + } else {
6662 + var _message = 'Network error';
6663 + mediaElement.generateError(_message, mediaFiles);
6664 + console.error(_message);
6665 + }
6666 + } else {
6667 + var _message2 = 'Network error';
6668 + mediaElement.generateError(_message2, mediaFiles);
6669 + console.error(_message2);
6670 + }
6671 + break;
6672 + default:
6673 + hlsPlayer.destroy();
6674 + break;
6675 + }
6676 + return;
6677 + }
6678 + }
6679 + var event = (0, _general.createEvent)(name, mediaElement);
6680 + event.data = data;
6681 + mediaElement.dispatchEvent(event);
6682 + };
6683 +
6684 + var _loop = function _loop(eventType) {
6685 + if (hlsEvents.hasOwnProperty(eventType)) {
6686 + hlsPlayer.on(hlsEvents[eventType], function () {
6687 + for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) {
6688 + args[_key] = arguments[_key];
6689 + }
6690 +
6691 + return assignHlsEvents(hlsEvents[eventType], args);
6692 + });
6693 + }
6694 + };
6695 +
6696 + for (var eventType in hlsEvents) {
6697 + _loop(eventType);
6698 + }
6699 + };
6700 +
6701 + if (total > 0) {
6702 + for (; index < total; index++) {
6703 + if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) {
6704 + node.setAttribute('src', mediaFiles[index].src);
6705 + break;
6706 + }
6707 + }
6708 + }
6709 +
6710 + if (preload !== 'auto' && !autoplay) {
6711 + node.addEventListener('play', function () {
6712 + if (hlsPlayer !== null) {
6713 + hlsPlayer.startLoad();
6714 + }
6715 + });
6716 +
6717 + node.addEventListener('pause', function () {
6718 + if (hlsPlayer !== null) {
6719 + hlsPlayer.stopLoad();
6720 + }
6721 + });
6722 + }
6723 +
6724 + node.setAttribute('id', id);
6725 +
6726 + originalNode.parentNode.insertBefore(node, originalNode);
6727 + originalNode.autoplay = false;
6728 + originalNode.style.display = 'none';
6729 +
6730 + node.setSize = function (width, height) {
6731 + node.style.width = width + 'px';
6732 + node.style.height = height + 'px';
6733 + return node;
6734 + };
6735 +
6736 + node.hide = function () {
6737 + node.pause();
6738 + node.style.display = 'none';
6739 + return node;
6740 + };
6741 +
6742 + node.show = function () {
6743 + node.style.display = '';
6744 + return node;
6745 + };
6746 +
6747 + node.destroy = function () {
6748 + if (hlsPlayer !== null) {
6749 + hlsPlayer.stopLoad();
6750 + hlsPlayer.destroy();
6751 + }
6752 + };
6753 +
6754 + var event = (0, _general.createEvent)('rendererready', node);
6755 + mediaElement.dispatchEvent(event);
6756 +
6757 + mediaElement.promises.push(NativeHls.load({
6758 + options: options.hls,
6759 + id: id
6760 + }));
6761 +
6762 + return node;
6763 + }
6764 + };
6765 +
6766 + _media.typeChecks.push(function (url) {
6767 + return ~url.toLowerCase().indexOf('.m3u8') ? 'application/x-mpegURL' : null;
6768 + });
6769 +
6770 + _renderer.renderer.add(HlsNativeRenderer);
6771 +
6772 + },{"25":25,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],23:[function(_dereq_,module,exports){
6773 + 'use strict';
6774 +
6775 + var _window = _dereq_(3);
6776 +
6777 + var _window2 = _interopRequireDefault(_window);
6778 +
6779 + var _document = _dereq_(2);
6780 +
6781 + var _document2 = _interopRequireDefault(_document);
6782 +
6783 + var _mejs = _dereq_(7);
6784 +
6785 + var _mejs2 = _interopRequireDefault(_mejs);
6786 +
6787 + var _renderer = _dereq_(8);
6788 +
6789 + var _general = _dereq_(27);
6790 +
6791 + var _constants = _dereq_(25);
6792 +
6793 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6794 +
6795 + var HtmlMediaElement = {
6796 + name: 'html5',
6797 + options: {
6798 + prefix: 'html5'
6799 + },
6800 +
6801 + canPlayType: function canPlayType(type) {
6802 +
6803 + var mediaElement = _document2.default.createElement('video');
6804 +
6805 + 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) {
6806 + return 'yes';
6807 + } else if (mediaElement.canPlayType) {
6808 + return mediaElement.canPlayType(type.toLowerCase()).replace(/no/, '');
6809 + } else {
6810 + return '';
6811 + }
6812 + },
6813 +
6814 + create: function create(mediaElement, options, mediaFiles) {
6815 +
6816 + var id = mediaElement.id + '_' + options.prefix;
6817 + var isActive = false;
6818 +
6819 + var node = null;
6820 +
6821 + if (mediaElement.originalNode === undefined || mediaElement.originalNode === null) {
6822 + node = _document2.default.createElement('audio');
6823 + mediaElement.appendChild(node);
6824 + } else {
6825 + node = mediaElement.originalNode;
6826 + }
6827 +
6828 + node.setAttribute('id', id);
6829 +
6830 + var props = _mejs2.default.html5media.properties,
6831 + assignGettersSetters = function assignGettersSetters(propName) {
6832 + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
6833 +
6834 + node['get' + capName] = function () {
6835 + return node[propName];
6836 + };
6837 +
6838 + node['set' + capName] = function (value) {
6839 + if (_mejs2.default.html5media.readOnlyProperties.indexOf(propName) === -1) {
6840 + node[propName] = value;
6841 + }
6842 + };
6843 + };
6844 +
6845 + for (var i = 0, _total = props.length; i < _total; i++) {
6846 + assignGettersSetters(props[i]);
6847 + }
6848 +
6849 + var events = _mejs2.default.html5media.events.concat(['click', 'mouseover', 'mouseout']).filter(function (e) {
6850 + return e !== 'error';
6851 + }),
6852 + assignEvents = function assignEvents(eventName) {
6853 + node.addEventListener(eventName, function (e) {
6854 + if (isActive) {
6855 + var _event = (0, _general.createEvent)(e.type, e.target);
6856 + mediaElement.dispatchEvent(_event);
6857 + }
6858 + });
6859 + };
6860 +
6861 + for (var _i = 0, _total2 = events.length; _i < _total2; _i++) {
6862 + assignEvents(events[_i]);
6863 + }
6864 +
6865 + node.setSize = function (width, height) {
6866 + node.style.width = width + 'px';
6867 + node.style.height = height + 'px';
6868 + return node;
6869 + };
6870 +
6871 + node.hide = function () {
6872 + isActive = false;
6873 + node.style.display = 'none';
6874 +
6875 + return node;
6876 + };
6877 +
6878 + node.show = function () {
6879 + isActive = true;
6880 + node.style.display = '';
6881 +
6882 + return node;
6883 + };
6884 +
6885 + var index = 0,
6886 + total = mediaFiles.length;
6887 + if (total > 0) {
6888 + for (; index < total; index++) {
6889 + if (_renderer.renderer.renderers[options.prefix].canPlayType(mediaFiles[index].type)) {
6890 + node.setAttribute('src', mediaFiles[index].src);
6891 + break;
6892 + }
6893 + }
6894 + }
6895 +
6896 + node.addEventListener('error', function (e) {
6897 + if (e && e.target && e.target.error && e.target.error.code === 4 && isActive) {
6898 + if (index < total && mediaFiles[index + 1] !== undefined) {
6899 + node.src = mediaFiles[index++].src;
6900 + node.load();
6901 + node.play();
6902 + } else {
6903 + mediaElement.generateError('Media error: Format(s) not supported or source(s) not found', mediaFiles);
6904 + }
6905 + }
6906 + });
6907 +
6908 + var event = (0, _general.createEvent)('rendererready', node);
6909 + mediaElement.dispatchEvent(event);
6910 +
6911 + return node;
6912 + }
6913 + };
6914 +
6915 + _window2.default.HtmlMediaElement = _mejs2.default.HtmlMediaElement = HtmlMediaElement;
6916 +
6917 + _renderer.renderer.add(HtmlMediaElement);
6918 +
6919 + },{"2":2,"25":25,"27":27,"3":3,"7":7,"8":8}],24:[function(_dereq_,module,exports){
6920 + 'use strict';
6921 +
6922 + var _window = _dereq_(3);
6923 +
6924 + var _window2 = _interopRequireDefault(_window);
6925 +
6926 + var _document = _dereq_(2);
6927 +
6928 + var _document2 = _interopRequireDefault(_document);
6929 +
6930 + var _mejs = _dereq_(7);
6931 +
6932 + var _mejs2 = _interopRequireDefault(_mejs);
6933 +
6934 + var _renderer = _dereq_(8);
6935 +
6936 + var _general = _dereq_(27);
6937 +
6938 + var _media = _dereq_(28);
6939 +
6940 + var _dom = _dereq_(26);
6941 +
6942 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
6943 +
6944 + var YouTubeApi = {
6945 + isIframeStarted: false,
6946 +
6947 + isIframeLoaded: false,
6948 +
6949 + iframeQueue: [],
6950 +
6951 + enqueueIframe: function enqueueIframe(settings) {
6952 + YouTubeApi.isLoaded = typeof YT !== 'undefined' && YT.loaded;
6953 +
6954 + if (YouTubeApi.isLoaded) {
6955 + YouTubeApi.createIframe(settings);
6956 + } else {
6957 + YouTubeApi.loadIframeApi();
6958 + YouTubeApi.iframeQueue.push(settings);
6959 + }
6960 + },
6961 +
6962 + loadIframeApi: function loadIframeApi() {
6963 + if (!YouTubeApi.isIframeStarted) {
6964 + (0, _dom.loadScript)('https://www.youtube.com/player_api');
6965 + YouTubeApi.isIframeStarted = true;
6966 + }
6967 + },
6968 +
6969 + iFrameReady: function iFrameReady() {
6970 +
6971 + YouTubeApi.isLoaded = true;
6972 + YouTubeApi.isIframeLoaded = true;
6973 +
6974 + while (YouTubeApi.iframeQueue.length > 0) {
6975 + var settings = YouTubeApi.iframeQueue.pop();
6976 + YouTubeApi.createIframe(settings);
6977 + }
6978 + },
6979 +
6980 + createIframe: function createIframe(settings) {
6981 + return new YT.Player(settings.containerId, settings);
6982 + },
6983 +
6984 + getYouTubeId: function getYouTubeId(url) {
6985 +
6986 + var youTubeId = '';
6987 +
6988 + if (url.indexOf('?') > 0) {
6989 + youTubeId = YouTubeApi.getYouTubeIdFromParam(url);
6990 +
6991 + if (youTubeId === '') {
6992 + youTubeId = YouTubeApi.getYouTubeIdFromUrl(url);
6993 + }
6994 + } else {
6995 + youTubeId = YouTubeApi.getYouTubeIdFromUrl(url);
6996 + }
6997 +
6998 + var id = youTubeId.substring(youTubeId.lastIndexOf('/') + 1);
6999 + youTubeId = id.split('?');
7000 + return youTubeId[0];
7001 + },
7002 +
7003 + getYouTubeIdFromParam: function getYouTubeIdFromParam(url) {
7004 +
7005 + if (url === undefined || url === null || !url.trim().length) {
7006 + return null;
7007 + }
7008 +
7009 + var parts = url.split('?'),
7010 + parameters = parts[1].split('&');
7011 +
7012 + var youTubeId = '';
7013 +
7014 + for (var i = 0, total = parameters.length; i < total; i++) {
7015 + var paramParts = parameters[i].split('=');
7016 + if (paramParts[0] === 'v') {
7017 + youTubeId = paramParts[1];
7018 + break;
7019 + }
7020 + }
7021 +
7022 + return youTubeId;
7023 + },
7024 +
7025 + getYouTubeIdFromUrl: function getYouTubeIdFromUrl(url) {
7026 +
7027 + if (url === undefined || url === null || !url.trim().length) {
7028 + return null;
7029 + }
7030 +
7031 + var parts = url.split('?');
7032 + url = parts[0];
7033 + return url.substring(url.lastIndexOf('/') + 1);
7034 + },
7035 +
7036 + getYouTubeNoCookieUrl: function getYouTubeNoCookieUrl(url) {
7037 + if (url === undefined || url === null || !url.trim().length || url.indexOf('//www.youtube') === -1) {
7038 + return url;
7039 + }
7040 +
7041 + var parts = url.split('/');
7042 + parts[2] = parts[2].replace('.com', '-nocookie.com');
7043 + return parts.join('/');
7044 + }
7045 + };
7046 +
7047 + var YouTubeIframeRenderer = {
7048 + name: 'youtube_iframe',
7049 +
7050 + options: {
7051 + prefix: 'youtube_iframe',
7052 +
7053 + youtube: {
7054 + autoplay: 0,
7055 + controls: 0,
7056 + disablekb: 1,
7057 + end: 0,
7058 + loop: 0,
7059 + modestbranding: 0,
7060 + playsinline: 0,
7061 + rel: 0,
7062 + showinfo: 0,
7063 + start: 0,
7064 + iv_load_policy: 3,
7065 +
7066 + nocookie: false,
7067 +
7068 + imageQuality: null
7069 + }
7070 + },
7071 +
7072 + canPlayType: function canPlayType(type) {
7073 + return ~['video/youtube', 'video/x-youtube'].indexOf(type.toLowerCase());
7074 + },
7075 +
7076 + create: function create(mediaElement, options, mediaFiles) {
7077 +
7078 + var youtube = {},
7079 + apiStack = [],
7080 + readyState = 4;
7081 +
7082 + var youTubeApi = null,
7083 + paused = true,
7084 + ended = false,
7085 + youTubeIframe = null,
7086 + volume = 1;
7087 +
7088 + youtube.options = options;
7089 + youtube.id = mediaElement.id + '_' + options.prefix;
7090 + youtube.mediaElement = mediaElement;
7091 +
7092 + var props = _mejs2.default.html5media.properties,
7093 + assignGettersSetters = function assignGettersSetters(propName) {
7094 +
7095 + var capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
7096 +
7097 + youtube['get' + capName] = function () {
7098 + if (youTubeApi !== null) {
7099 + var value = null;
7100 +
7101 + switch (propName) {
7102 + case 'currentTime':
7103 + return youTubeApi.getCurrentTime();
7104 + case 'duration':
7105 + return youTubeApi.getDuration();
7106 + case 'volume':
7107 + volume = youTubeApi.getVolume() / 100;
7108 + return volume;
7109 + case 'playbackRate':
7110 + return youTubeApi.getPlaybackRate();
7111 + case 'paused':
7112 + return paused;
7113 + case 'ended':
7114 + return ended;
7115 + case 'muted':
7116 + return youTubeApi.isMuted();
7117 + case 'buffered':
7118 + var percentLoaded = youTubeApi.getVideoLoadedFraction(),
7119 + duration = youTubeApi.getDuration();
7120 + return {
7121 + start: function start() {
7122 + return 0;
7123 + },
7124 + end: function end() {
7125 + return percentLoaded * duration;
7126 + },
7127 + length: 1
7128 + };
7129 + case 'src':
7130 + return youTubeApi.getVideoUrl();
7131 + case 'readyState':
7132 + return readyState;
7133 + }
7134 +
7135 + return value;
7136 + } else {
7137 + return null;
7138 + }
7139 + };
7140 +
7141 + youtube['set' + capName] = function (value) {
7142 + if (youTubeApi !== null) {
7143 + switch (propName) {
7144 + case 'src':
7145 + var url = typeof value === 'string' ? value : value[0].src,
7146 + _videoId = YouTubeApi.getYouTubeId(url);
7147 +
7148 + if (mediaElement.originalNode.autoplay) {
7149 + youTubeApi.loadVideoById(_videoId);
7150 + } else {
7151 + youTubeApi.cueVideoById(_videoId);
7152 + }
7153 + break;
7154 + case 'currentTime':
7155 + youTubeApi.seekTo(value);
7156 + break;
7157 + case 'muted':
7158 + if (value) {
7159 + youTubeApi.mute();
7160 + } else {
7161 + youTubeApi.unMute();
7162 + }
7163 + setTimeout(function () {
7164 + var event = (0, _general.createEvent)('volumechange', youtube);
7165 + mediaElement.dispatchEvent(event);
7166 + }, 50);
7167 + break;
7168 + case 'volume':
7169 + volume = value;
7170 + youTubeApi.setVolume(value * 100);
7171 + setTimeout(function () {
7172 + var event = (0, _general.createEvent)('volumechange', youtube);
7173 + mediaElement.dispatchEvent(event);
7174 + }, 50);
7175 + break;
7176 + case 'playbackRate':
7177 + youTubeApi.setPlaybackRate(value);
7178 + setTimeout(function () {
7179 + var event = (0, _general.createEvent)('ratechange', youtube);
7180 + mediaElement.dispatchEvent(event);
7181 + }, 50);
7182 + break;
7183 + case 'readyState':
7184 + var event = (0, _general.createEvent)('canplay', youtube);
7185 + mediaElement.dispatchEvent(event);
7186 + break;
7187 + default:
7188 +
7189 + break;
7190 + }
7191 + } else {
7192 + apiStack.push({ type: 'set', propName: propName, value: value });
7193 + }
7194 + };
7195 + };
7196 +
7197 + for (var i = 0, total = props.length; i < total; i++) {
7198 + assignGettersSetters(props[i]);
7199 + }
7200 +
7201 + var methods = _mejs2.default.html5media.methods,
7202 + assignMethods = function assignMethods(methodName) {
7203 + youtube[methodName] = function () {
7204 + if (youTubeApi !== null) {
7205 + switch (methodName) {
7206 + case 'play':
7207 + paused = false;
7208 + return youTubeApi.playVideo();
7209 + case 'pause':
7210 + paused = true;
7211 + return youTubeApi.pauseVideo();
7212 + case 'load':
7213 + return null;
7214 + }
7215 + } else {
7216 + apiStack.push({ type: 'call', methodName: methodName });
7217 + }
7218 + };
7219 + };
7220 +
7221 + for (var _i = 0, _total = methods.length; _i < _total; _i++) {
7222 + assignMethods(methods[_i]);
7223 + }
7224 +
7225 + var errorHandler = function errorHandler(error) {
7226 + var message = '';
7227 + switch (error.data) {
7228 + case 2:
7229 + 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.';
7230 + break;
7231 + case 5:
7232 + message = 'The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.';
7233 + break;
7234 + case 100:
7235 + message = 'The video requested was not found. Either video has been removed or has been marked as private.';
7236 + break;
7237 + case 101:
7238 + case 105:
7239 + message = 'The owner of the requested video does not allow it to be played in embedded players.';
7240 + break;
7241 + default:
7242 + message = 'Unknown error.';
7243 + break;
7244 + }
7245 + mediaElement.generateError('Code ' + error.data + ': ' + message, mediaFiles);
7246 + };
7247 +
7248 + var youtubeContainer = _document2.default.createElement('div');
7249 + youtubeContainer.id = youtube.id;
7250 +
7251 + if (youtube.options.youtube.nocookie) {
7252 + mediaElement.originalNode.src = YouTubeApi.getYouTubeNoCookieUrl(mediaFiles[0].src);
7253 + }
7254 +
7255 + mediaElement.originalNode.parentNode.insertBefore(youtubeContainer, mediaElement.originalNode);
7256 + mediaElement.originalNode.style.display = 'none';
7257 +
7258 + var isAudio = mediaElement.originalNode.tagName.toLowerCase() === 'audio',
7259 + height = isAudio ? '1' : mediaElement.originalNode.height,
7260 + width = isAudio ? '1' : mediaElement.originalNode.width,
7261 + videoId = YouTubeApi.getYouTubeId(mediaFiles[0].src),
7262 + youtubeSettings = {
7263 + id: youtube.id,
7264 + containerId: youtubeContainer.id,
7265 + videoId: videoId,
7266 + height: height,
7267 + width: width,
7268 + host: youtube.options.youtube && youtube.options.youtube.nocookie ? 'https://www.youtube-nocookie.com' : undefined,
7269 + playerVars: Object.assign({
7270 + controls: 0,
7271 + rel: 0,
7272 + disablekb: 1,
7273 + showinfo: 0,
7274 + modestbranding: 0,
7275 + html5: 1,
7276 + iv_load_policy: 3
7277 + }, youtube.options.youtube),
7278 + origin: _window2.default.location.host,
7279 + events: {
7280 + onReady: function onReady(e) {
7281 + mediaElement.youTubeApi = youTubeApi = e.target;
7282 + mediaElement.youTubeState = {
7283 + paused: true,
7284 + ended: false
7285 + };
7286 +
7287 + if (apiStack.length) {
7288 + for (var _i2 = 0, _total2 = apiStack.length; _i2 < _total2; _i2++) {
7289 +
7290 + var stackItem = apiStack[_i2];
7291 +
7292 + if (stackItem.type === 'set') {
7293 + var propName = stackItem.propName,
7294 + capName = '' + propName.substring(0, 1).toUpperCase() + propName.substring(1);
7295 +
7296 + youtube['set' + capName](stackItem.value);
7297 + } else if (stackItem.type === 'call') {
7298 + youtube[stackItem.methodName]();
7299 + }
7300 + }
7301 + }
7302 +
7303 + youTubeIframe = youTubeApi.getIframe();
7304 +
7305 + if (mediaElement.originalNode.muted) {
7306 + youTubeApi.mute();
7307 + }
7308 +
7309 + var events = ['mouseover', 'mouseout'],
7310 + assignEvents = function assignEvents(e) {
7311 + var newEvent = (0, _general.createEvent)(e.type, youtube);
7312 + mediaElement.dispatchEvent(newEvent);
7313 + };
7314 +
7315 + for (var _i3 = 0, _total3 = events.length; _i3 < _total3; _i3++) {
7316 + youTubeIframe.addEventListener(events[_i3], assignEvents, false);
7317 + }
7318 +
7319 + var initEvents = ['rendererready', 'loadedmetadata', 'loadeddata', 'canplay'];
7320 +
7321 + for (var _i4 = 0, _total4 = initEvents.length; _i4 < _total4; _i4++) {
7322 + var event = (0, _general.createEvent)(initEvents[_i4], youtube);
7323 + mediaElement.dispatchEvent(event);
7324 + }
7325 + },
7326 + onStateChange: function onStateChange(e) {
7327 + var events = [];
7328 +
7329 + switch (e.data) {
7330 + case -1:
7331 + events = ['loadedmetadata'];
7332 + paused = true;
7333 + ended = false;
7334 + break;
7335 + case 0:
7336 + events = ['ended'];
7337 + paused = false;
7338 + ended = !youtube.options.youtube.loop;
7339 + if (!youtube.options.youtube.loop) {
7340 + youtube.stopInterval();
7341 + }
7342 + break;
7343 + case 1:
7344 + events = ['play', 'playing'];
7345 + paused = false;
7346 + ended = false;
7347 + youtube.startInterval();
7348 + break;
7349 + case 2:
7350 + events = ['pause'];
7351 + paused = true;
7352 + ended = false;
7353 + youtube.stopInterval();
7354 + break;
7355 + case 3:
7356 + events = ['progress'];
7357 + ended = false;
7358 + break;
7359 + case 5:
7360 + events = ['loadeddata', 'loadedmetadata', 'canplay'];
7361 + paused = true;
7362 + ended = false;
7363 + break;
7364 + }
7365 +
7366 + for (var _i5 = 0, _total5 = events.length; _i5 < _total5; _i5++) {
7367 + var event = (0, _general.createEvent)(events[_i5], youtube);
7368 + mediaElement.dispatchEvent(event);
7369 + }
7370 + },
7371 + onError: function onError(e) {
7372 + return errorHandler(e);
7373 + }
7374 + }
7375 + };
7376 +
7377 + if (isAudio || mediaElement.originalNode.hasAttribute('playsinline')) {
7378 + youtubeSettings.playerVars.playsinline = 1;
7379 + }
7380 +
7381 + if (mediaElement.originalNode.controls) {
7382 + youtubeSettings.playerVars.controls = 1;
7383 + }
7384 + if (mediaElement.originalNode.autoplay) {
7385 + youtubeSettings.playerVars.autoplay = 1;
7386 + }
7387 + if (mediaElement.originalNode.loop) {
7388 + youtubeSettings.playerVars.loop = 1;
7389 + }
7390 +
7391 + 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) {
7392 + youtubeSettings.playerVars.playlist = YouTubeApi.getYouTubeId(mediaElement.originalNode.src);
7393 + }
7394 +
7395 + YouTubeApi.enqueueIframe(youtubeSettings);
7396 +
7397 + youtube.onEvent = function (eventName, player, _youTubeState) {
7398 + if (_youTubeState !== null && _youTubeState !== undefined) {
7399 + mediaElement.youTubeState = _youTubeState;
7400 + }
7401 + };
7402 +
7403 + youtube.setSize = function (width, height) {
7404 + if (youTubeApi !== null) {
7405 + youTubeApi.setSize(width, height);
7406 + }
7407 + };
7408 + youtube.hide = function () {
7409 + youtube.stopInterval();
7410 + youtube.pause();
7411 + if (youTubeIframe) {
7412 + youTubeIframe.style.display = 'none';
7413 + }
7414 + };
7415 + youtube.show = function () {
7416 + if (youTubeIframe) {
7417 + youTubeIframe.style.display = '';
7418 + }
7419 + };
7420 + youtube.destroy = function () {
7421 + youTubeApi.destroy();
7422 + };
7423 + youtube.interval = null;
7424 +
7425 + youtube.startInterval = function () {
7426 + youtube.interval = setInterval(function () {
7427 + var event = (0, _general.createEvent)('timeupdate', youtube);
7428 + mediaElement.dispatchEvent(event);
7429 + }, 250);
7430 + };
7431 + youtube.stopInterval = function () {
7432 + if (youtube.interval) {
7433 + clearInterval(youtube.interval);
7434 + }
7435 + };
7436 + youtube.getPosterUrl = function () {
7437 + var quality = options.youtube.imageQuality,
7438 + resolutions = ['default', 'hqdefault', 'mqdefault', 'sddefault', 'maxresdefault'],
7439 + id = YouTubeApi.getYouTubeId(mediaElement.originalNode.src);
7440 + return quality && resolutions.indexOf(quality) > -1 && id ? 'https://img.youtube.com/vi/' + id + '/' + quality + '.jpg' : '';
7441 + };
7442 +
7443 + return youtube;
7444 + }
7445 + };
7446 +
7447 + _window2.default.onYouTubePlayerAPIReady = function () {
7448 + YouTubeApi.iFrameReady();
7449 + };
7450 +
7451 + _media.typeChecks.push(function (url) {
7452 + return (/\/\/(www\.youtube|youtu\.?be)/i.test(url) ? 'video/x-youtube' : null
7453 + );
7454 + });
7455 +
7456 + _renderer.renderer.add(YouTubeIframeRenderer);
7457 +
7458 + },{"2":2,"26":26,"27":27,"28":28,"3":3,"7":7,"8":8}],25:[function(_dereq_,module,exports){
7459 + 'use strict';
7460 +
7461 + Object.defineProperty(exports, "__esModule", {
7462 + value: true
7463 + });
7464 + exports.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;
7465 +
7466 + var _window = _dereq_(3);
7467 +
7468 + var _window2 = _interopRequireDefault(_window);
7469 +
7470 + var _document = _dereq_(2);
7471 +
7472 + var _document2 = _interopRequireDefault(_document);
7473 +
7474 + var _mejs = _dereq_(7);
7475 +
7476 + var _mejs2 = _interopRequireDefault(_mejs);
7477 +
7478 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7479 +
7480 + var NAV = exports.NAV = _window2.default.navigator;
7481 + var UA = exports.UA = NAV.userAgent.toLowerCase();
7482 + var IS_IPAD = exports.IS_IPAD = /ipad/i.test(UA) && !_window2.default.MSStream;
7483 + var IS_IPHONE = exports.IS_IPHONE = /iphone/i.test(UA) && !_window2.default.MSStream;
7484 + var IS_IPOD = exports.IS_IPOD = /ipod/i.test(UA) && !_window2.default.MSStream;
7485 + var IS_IOS = exports.IS_IOS = /ipad|iphone|ipod/i.test(UA) && !_window2.default.MSStream;
7486 + var IS_ANDROID = exports.IS_ANDROID = /android/i.test(UA);
7487 + var IS_IE = exports.IS_IE = /(trident|microsoft)/i.test(NAV.appName);
7488 + var IS_EDGE = exports.IS_EDGE = 'msLaunchUri' in NAV && !('documentMode' in _document2.default);
7489 + var IS_CHROME = exports.IS_CHROME = /chrome/i.test(UA);
7490 + var IS_FIREFOX = exports.IS_FIREFOX = /firefox/i.test(UA);
7491 + var IS_SAFARI = exports.IS_SAFARI = /safari/i.test(UA) && !IS_CHROME;
7492 + var IS_STOCK_ANDROID = exports.IS_STOCK_ANDROID = /^mozilla\/\d+\.\d+\s\(linux;\su;/i.test(UA);
7493 + var HAS_MSE = exports.HAS_MSE = 'MediaSource' in _window2.default;
7494 + var SUPPORT_POINTER_EVENTS = exports.SUPPORT_POINTER_EVENTS = function () {
7495 + var element = _document2.default.createElement('x'),
7496 + documentElement = _document2.default.documentElement,
7497 + getComputedStyle = _window2.default.getComputedStyle;
7498 +
7499 + if (!('pointerEvents' in element.style)) {
7500 + return false;
7501 + }
7502 +
7503 + element.style.pointerEvents = 'auto';
7504 + element.style.pointerEvents = 'x';
7505 + documentElement.appendChild(element);
7506 + var supports = getComputedStyle && (getComputedStyle(element, '') || {}).pointerEvents === 'auto';
7507 + element.remove();
7508 + return !!supports;
7509 + }();
7510 +
7511 + var SUPPORT_PASSIVE_EVENT = exports.SUPPORT_PASSIVE_EVENT = function () {
7512 + var supportsPassive = false;
7513 + try {
7514 + var opts = Object.defineProperty({}, 'passive', {
7515 + get: function get() {
7516 + supportsPassive = true;
7517 + }
7518 + });
7519 + _window2.default.addEventListener('test', null, opts);
7520 + } catch (e) {}
7521 +
7522 + return supportsPassive;
7523 + }();
7524 +
7525 + var html5Elements = ['source', 'track', 'audio', 'video'];
7526 + var video = void 0;
7527 +
7528 + for (var i = 0, total = html5Elements.length; i < total; i++) {
7529 + video = _document2.default.createElement(html5Elements[i]);
7530 + }
7531 +
7532 + var SUPPORTS_NATIVE_HLS = exports.SUPPORTS_NATIVE_HLS = IS_SAFARI || IS_IE && /edge/i.test(UA);
7533 +
7534 + var hasiOSFullScreen = video.webkitEnterFullscreen !== undefined;
7535 +
7536 + var hasNativeFullscreen = video.requestFullscreen !== undefined;
7537 +
7538 + if (hasiOSFullScreen && /mac os x 10_5/i.test(UA)) {
7539 + hasNativeFullscreen = false;
7540 + hasiOSFullScreen = false;
7541 + }
7542 +
7543 + var hasWebkitNativeFullScreen = video.webkitRequestFullScreen !== undefined;
7544 + var hasMozNativeFullScreen = video.mozRequestFullScreen !== undefined;
7545 + var hasMsNativeFullScreen = video.msRequestFullscreen !== undefined;
7546 + var hasTrueNativeFullScreen = hasWebkitNativeFullScreen || hasMozNativeFullScreen || hasMsNativeFullScreen;
7547 + var nativeFullScreenEnabled = hasTrueNativeFullScreen;
7548 + var fullScreenEventName = '';
7549 + var isFullScreen = void 0,
7550 + requestFullScreen = void 0,
7551 + cancelFullScreen = void 0;
7552 +
7553 + if (hasMozNativeFullScreen) {
7554 + nativeFullScreenEnabled = _document2.default.mozFullScreenEnabled;
7555 + } else if (hasMsNativeFullScreen) {
7556 + nativeFullScreenEnabled = _document2.default.msFullscreenEnabled;
7557 + }
7558 +
7559 + if (IS_CHROME) {
7560 + hasiOSFullScreen = false;
7561 + }
7562 +
7563 + if (hasTrueNativeFullScreen) {
7564 + if (hasWebkitNativeFullScreen) {
7565 + fullScreenEventName = 'webkitfullscreenchange';
7566 + } else if (hasMozNativeFullScreen) {
7567 + fullScreenEventName = 'fullscreenchange';
7568 + } else if (hasMsNativeFullScreen) {
7569 + fullScreenEventName = 'MSFullscreenChange';
7570 + }
7571 +
7572 + exports.isFullScreen = isFullScreen = function isFullScreen() {
7573 + if (hasMozNativeFullScreen) {
7574 + return _document2.default.mozFullScreen;
7575 + } else if (hasWebkitNativeFullScreen) {
7576 + return _document2.default.webkitIsFullScreen;
7577 + } else if (hasMsNativeFullScreen) {
7578 + return _document2.default.msFullscreenElement !== null;
7579 + }
7580 + };
7581 +
7582 + exports.requestFullScreen = requestFullScreen = function requestFullScreen(el) {
7583 + if (hasWebkitNativeFullScreen) {
7584 + el.webkitRequestFullScreen();
7585 + } else if (hasMozNativeFullScreen) {
7586 + el.mozRequestFullScreen();
7587 + } else if (hasMsNativeFullScreen) {
7588 + el.msRequestFullscreen();
7589 + }
7590 + };
7591 +
7592 + exports.cancelFullScreen = cancelFullScreen = function cancelFullScreen() {
7593 + if (hasWebkitNativeFullScreen) {
7594 + _document2.default.webkitCancelFullScreen();
7595 + } else if (hasMozNativeFullScreen) {
7596 + _document2.default.mozCancelFullScreen();
7597 + } else if (hasMsNativeFullScreen) {
7598 + _document2.default.msExitFullscreen();
7599 + }
7600 + };
7601 + }
7602 +
7603 + var HAS_NATIVE_FULLSCREEN = exports.HAS_NATIVE_FULLSCREEN = hasNativeFullscreen;
7604 + var HAS_WEBKIT_NATIVE_FULLSCREEN = exports.HAS_WEBKIT_NATIVE_FULLSCREEN = hasWebkitNativeFullScreen;
7605 + var HAS_MOZ_NATIVE_FULLSCREEN = exports.HAS_MOZ_NATIVE_FULLSCREEN = hasMozNativeFullScreen;
7606 + var HAS_MS_NATIVE_FULLSCREEN = exports.HAS_MS_NATIVE_FULLSCREEN = hasMsNativeFullScreen;
7607 + var HAS_IOS_FULLSCREEN = exports.HAS_IOS_FULLSCREEN = hasiOSFullScreen;
7608 + var HAS_TRUE_NATIVE_FULLSCREEN = exports.HAS_TRUE_NATIVE_FULLSCREEN = hasTrueNativeFullScreen;
7609 + var HAS_NATIVE_FULLSCREEN_ENABLED = exports.HAS_NATIVE_FULLSCREEN_ENABLED = nativeFullScreenEnabled;
7610 + var FULLSCREEN_EVENT_NAME = exports.FULLSCREEN_EVENT_NAME = fullScreenEventName;
7611 + exports.isFullScreen = isFullScreen;
7612 + exports.requestFullScreen = requestFullScreen;
7613 + exports.cancelFullScreen = cancelFullScreen;
7614 +
7615 +
7616 + _mejs2.default.Features = _mejs2.default.Features || {};
7617 + _mejs2.default.Features.isiPad = IS_IPAD;
7618 + _mejs2.default.Features.isiPod = IS_IPOD;
7619 + _mejs2.default.Features.isiPhone = IS_IPHONE;
7620 + _mejs2.default.Features.isiOS = _mejs2.default.Features.isiPhone || _mejs2.default.Features.isiPad;
7621 + _mejs2.default.Features.isAndroid = IS_ANDROID;
7622 + _mejs2.default.Features.isIE = IS_IE;
7623 + _mejs2.default.Features.isEdge = IS_EDGE;
7624 + _mejs2.default.Features.isChrome = IS_CHROME;
7625 + _mejs2.default.Features.isFirefox = IS_FIREFOX;
7626 + _mejs2.default.Features.isSafari = IS_SAFARI;
7627 + _mejs2.default.Features.isStockAndroid = IS_STOCK_ANDROID;
7628 + _mejs2.default.Features.hasMSE = HAS_MSE;
7629 + _mejs2.default.Features.supportsNativeHLS = SUPPORTS_NATIVE_HLS;
7630 + _mejs2.default.Features.supportsPointerEvents = SUPPORT_POINTER_EVENTS;
7631 + _mejs2.default.Features.supportsPassiveEvent = SUPPORT_PASSIVE_EVENT;
7632 + _mejs2.default.Features.hasiOSFullScreen = HAS_IOS_FULLSCREEN;
7633 + _mejs2.default.Features.hasNativeFullscreen = HAS_NATIVE_FULLSCREEN;
7634 + _mejs2.default.Features.hasWebkitNativeFullScreen = HAS_WEBKIT_NATIVE_FULLSCREEN;
7635 + _mejs2.default.Features.hasMozNativeFullScreen = HAS_MOZ_NATIVE_FULLSCREEN;
7636 + _mejs2.default.Features.hasMsNativeFullScreen = HAS_MS_NATIVE_FULLSCREEN;
7637 + _mejs2.default.Features.hasTrueNativeFullScreen = HAS_TRUE_NATIVE_FULLSCREEN;
7638 + _mejs2.default.Features.nativeFullScreenEnabled = HAS_NATIVE_FULLSCREEN_ENABLED;
7639 + _mejs2.default.Features.fullScreenEventName = FULLSCREEN_EVENT_NAME;
7640 + _mejs2.default.Features.isFullScreen = isFullScreen;
7641 + _mejs2.default.Features.requestFullScreen = requestFullScreen;
7642 + _mejs2.default.Features.cancelFullScreen = cancelFullScreen;
7643 +
7644 + },{"2":2,"3":3,"7":7}],26:[function(_dereq_,module,exports){
7645 + 'use strict';
7646 +
7647 + Object.defineProperty(exports, "__esModule", {
7648 + value: true
7649 + });
7650 + exports.removeClass = exports.addClass = exports.hasClass = undefined;
7651 + exports.loadScript = loadScript;
7652 + exports.offset = offset;
7653 + exports.toggleClass = toggleClass;
7654 + exports.fadeOut = fadeOut;
7655 + exports.fadeIn = fadeIn;
7656 + exports.siblings = siblings;
7657 + exports.visible = visible;
7658 + exports.ajax = ajax;
7659 +
7660 + var _window = _dereq_(3);
7661 +
7662 + var _window2 = _interopRequireDefault(_window);
7663 +
7664 + var _document = _dereq_(2);
7665 +
7666 + var _document2 = _interopRequireDefault(_document);
7667 +
7668 + var _mejs = _dereq_(7);
7669 +
7670 + var _mejs2 = _interopRequireDefault(_mejs);
7671 +
7672 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7673 +
7674 + function loadScript(url) {
7675 + return new Promise(function (resolve, reject) {
7676 + var script = _document2.default.createElement('script');
7677 + script.src = url;
7678 + script.async = true;
7679 + script.onload = function () {
7680 + script.remove();
7681 + resolve();
7682 + };
7683 + script.onerror = function () {
7684 + script.remove();
7685 + reject();
7686 + };
7687 + _document2.default.head.appendChild(script);
7688 + });
7689 + }
7690 +
7691 + function offset(el) {
7692 + var rect = el.getBoundingClientRect(),
7693 + scrollLeft = _window2.default.pageXOffset || _document2.default.documentElement.scrollLeft,
7694 + scrollTop = _window2.default.pageYOffset || _document2.default.documentElement.scrollTop;
7695 + return { top: rect.top + scrollTop, left: rect.left + scrollLeft };
7696 + }
7697 +
7698 + var hasClassMethod = void 0,
7699 + addClassMethod = void 0,
7700 + removeClassMethod = void 0;
7701 +
7702 + if ('classList' in _document2.default.documentElement) {
7703 + hasClassMethod = function hasClassMethod(el, className) {
7704 + return el.classList !== undefined && el.classList.contains(className);
7705 + };
7706 + addClassMethod = function addClassMethod(el, className) {
7707 + return el.classList.add(className);
7708 + };
7709 + removeClassMethod = function removeClassMethod(el, className) {
7710 + return el.classList.remove(className);
7711 + };
7712 + } else {
7713 + hasClassMethod = function hasClassMethod(el, className) {
7714 + return new RegExp('\\b' + className + '\\b').test(el.className);
7715 + };
7716 + addClassMethod = function addClassMethod(el, className) {
7717 + if (!hasClass(el, className)) {
7718 + el.className += ' ' + className;
7719 + }
7720 + };
7721 + removeClassMethod = function removeClassMethod(el, className) {
7722 + el.className = el.className.replace(new RegExp('\\b' + className + '\\b', 'g'), '');
7723 + };
7724 + }
7725 +
7726 + var hasClass = exports.hasClass = hasClassMethod;
7727 + var addClass = exports.addClass = addClassMethod;
7728 + var removeClass = exports.removeClass = removeClassMethod;
7729 +
7730 + function toggleClass(el, className) {
7731 + hasClass(el, className) ? removeClass(el, className) : addClass(el, className);
7732 + }
7733 +
7734 + function fadeOut(el) {
7735 + var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
7736 + var callback = arguments[2];
7737 +
7738 + if (!el.style.opacity) {
7739 + el.style.opacity = 1;
7740 + }
7741 +
7742 + var start = null;
7743 + _window2.default.requestAnimationFrame(function animate(timestamp) {
7744 + start = start || timestamp;
7745 + var progress = timestamp - start;
7746 + var opacity = parseFloat(1 - progress / duration, 2);
7747 + el.style.opacity = opacity < 0 ? 0 : opacity;
7748 + if (progress > duration) {
7749 + if (callback && typeof callback === 'function') {
7750 + callback();
7751 + }
7752 + } else {
7753 + _window2.default.requestAnimationFrame(animate);
7754 + }
7755 + });
7756 + }
7757 +
7758 + function fadeIn(el) {
7759 + var duration = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 400;
7760 + var callback = arguments[2];
7761 +
7762 + if (!el.style.opacity) {
7763 + el.style.opacity = 0;
7764 + }
7765 +
7766 + var start = null;
7767 + _window2.default.requestAnimationFrame(function animate(timestamp) {
7768 + start = start || timestamp;
7769 + var progress = timestamp - start;
7770 + var opacity = parseFloat(progress / duration, 2);
7771 + el.style.opacity = opacity > 1 ? 1 : opacity;
7772 + if (progress > duration) {
7773 + if (callback && typeof callback === 'function') {
7774 + callback();
7775 + }
7776 + } else {
7777 + _window2.default.requestAnimationFrame(animate);
7778 + }
7779 + });
7780 + }
7781 +
7782 + function siblings(el, filter) {
7783 + var siblings = [];
7784 + el = el.parentNode.firstChild;
7785 + do {
7786 + if (!filter || filter(el)) {
7787 + siblings.push(el);
7788 + }
7789 + } while (el = el.nextSibling);
7790 + return siblings;
7791 + }
7792 +
7793 + function visible(elem) {
7794 + if (elem.getClientRects !== undefined && elem.getClientRects === 'function') {
7795 + return !!(elem.offsetWidth || elem.offsetHeight || elem.getClientRects().length);
7796 + }
7797 + return !!(elem.offsetWidth || elem.offsetHeight);
7798 + }
7799 +
7800 + function ajax(url, dataType, success, error) {
7801 + var xhr = _window2.default.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject('Microsoft.XMLHTTP');
7802 +
7803 + var type = 'application/x-www-form-urlencoded; charset=UTF-8',
7804 + completed = false,
7805 + accept = '*/'.concat('*');
7806 +
7807 + switch (dataType) {
7808 + case 'text':
7809 + type = 'text/plain';
7810 + break;
7811 + case 'json':
7812 + type = 'application/json, text/javascript';
7813 + break;
7814 + case 'html':
7815 + type = 'text/html';
7816 + break;
7817 + case 'xml':
7818 + type = 'application/xml, text/xml';
7819 + break;
7820 + }
7821 +
7822 + if (type !== 'application/x-www-form-urlencoded') {
7823 + accept = type + ', */*; q=0.01';
7824 + }
7825 +
7826 + if (xhr) {
7827 + xhr.open('GET', url, true);
7828 + xhr.setRequestHeader('Accept', accept);
7829 + xhr.onreadystatechange = function () {
7830 + if (completed) {
7831 + return;
7832 + }
7833 +
7834 + if (xhr.readyState === 4) {
7835 + if (xhr.status === 200) {
7836 + completed = true;
7837 + var data = void 0;
7838 + switch (dataType) {
7839 + case 'json':
7840 + data = JSON.parse(xhr.responseText);
7841 + break;
7842 + case 'xml':
7843 + data = xhr.responseXML;
7844 + break;
7845 + default:
7846 + data = xhr.responseText;
7847 + break;
7848 + }
7849 + success(data);
7850 + } else if (typeof error === 'function') {
7851 + error(xhr.status);
7852 + }
7853 + }
7854 + };
7855 +
7856 + xhr.send();
7857 + }
7858 + }
7859 +
7860 + _mejs2.default.Utils = _mejs2.default.Utils || {};
7861 + _mejs2.default.Utils.offset = offset;
7862 + _mejs2.default.Utils.hasClass = hasClass;
7863 + _mejs2.default.Utils.addClass = addClass;
7864 + _mejs2.default.Utils.removeClass = removeClass;
7865 + _mejs2.default.Utils.toggleClass = toggleClass;
7866 + _mejs2.default.Utils.fadeIn = fadeIn;
7867 + _mejs2.default.Utils.fadeOut = fadeOut;
7868 + _mejs2.default.Utils.siblings = siblings;
7869 + _mejs2.default.Utils.visible = visible;
7870 + _mejs2.default.Utils.ajax = ajax;
7871 + _mejs2.default.Utils.loadScript = loadScript;
7872 +
7873 + },{"2":2,"3":3,"7":7}],27:[function(_dereq_,module,exports){
7874 + 'use strict';
7875 +
7876 + Object.defineProperty(exports, "__esModule", {
7877 + value: true
7878 + });
7879 + exports.escapeHTML = escapeHTML;
7880 + exports.debounce = debounce;
7881 + exports.isObjectEmpty = isObjectEmpty;
7882 + exports.splitEvents = splitEvents;
7883 + exports.createEvent = createEvent;
7884 + exports.isNodeAfter = isNodeAfter;
7885 + exports.isString = isString;
7886 +
7887 + var _mejs = _dereq_(7);
7888 +
7889 + var _mejs2 = _interopRequireDefault(_mejs);
7890 +
7891 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
7892 +
7893 + function escapeHTML(input) {
7894 +
7895 + if (typeof input !== 'string') {
7896 + throw new Error('Argument passed must be a string');
7897 + }
7898 +
7899 + var map = {
7900 + '&': '&amp;',
7901 + '<': '&lt;',
7902 + '>': '&gt;',
7903 + '"': '&quot;'
7904 + };
7905 +
7906 + return input.replace(/[&<>"]/g, function (c) {
7907 + return map[c];
7908 + });
7909 + }
7910 +
7911 + function debounce(func, wait) {
7912 + var _this = this,
7913 + _arguments = arguments;
7914 +
7915 + var immediate = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
7916 +
7917 +
7918 + if (typeof func !== 'function') {
7919 + throw new Error('First argument must be a function');
7920 + }
7921 +
7922 + if (typeof wait !== 'number') {
7923 + throw new Error('Second argument must be a numeric value');
7924 + }
7925 +
7926 + var timeout = void 0;
7927 + return function () {
7928 + var context = _this,
7929 + args = _arguments;
7930 + var later = function later() {
7931 + timeout = null;
7932 + if (!immediate) {
7933 + func.apply(context, args);
7934 + }
7935 + };
7936 + var callNow = immediate && !timeout;
7937 + clearTimeout(timeout);
7938 + timeout = setTimeout(later, wait);
7939 +
7940 + if (callNow) {
7941 + func.apply(context, args);
7942 + }
7943 + };
7944 + }
7945 +
7946 + function isObjectEmpty(instance) {
7947 + return Object.getOwnPropertyNames(instance).length <= 0;
7948 + }
7949 +
7950 + function splitEvents(events, id) {
7951 + var rwindow = /^((after|before)print|(before)?unload|hashchange|message|o(ff|n)line|page(hide|show)|popstate|resize|storage)\b/;
7952 +
7953 + var ret = { d: [], w: [] };
7954 + (events || '').split(' ').forEach(function (v) {
7955 + var eventName = '' + v + (id ? '.' + id : '');
7956 +
7957 + if (eventName.startsWith('.')) {
7958 + ret.d.push(eventName);
7959 + ret.w.push(eventName);
7960 + } else {
7961 + ret[rwindow.test(v) ? 'w' : 'd'].push(eventName);
7962 + }
7963 + });
7964 +
7965 + ret.d = ret.d.join(' ');
7966 + ret.w = ret.w.join(' ');
7967 + return ret;
7968 + }
7969 +
7970 + function createEvent(eventName, target) {
7971 +
7972 + if (typeof eventName !== 'string') {
7973 + throw new Error('Event name must be a string');
7974 + }
7975 +
7976 + var eventFrags = eventName.match(/([a-z]+\.([a-z]+))/i),
7977 + detail = {
7978 + target: target
7979 + };
7980 +
7981 + if (eventFrags !== null) {
7982 + eventName = eventFrags[1];
7983 + detail.namespace = eventFrags[2];
7984 + }
7985 +
7986 + return new window.CustomEvent(eventName, {
7987 + detail: detail
7988 + });
7989 + }
7990 +
7991 + function isNodeAfter(sourceNode, targetNode) {
7992 +
7993 + return !!(sourceNode && targetNode && sourceNode.compareDocumentPosition(targetNode) & 2);
7994 + }
7995 +
7996 + function isString(value) {
7997 + return typeof value === 'string';
7998 + }
7999 +
8000 + _mejs2.default.Utils = _mejs2.default.Utils || {};
8001 + _mejs2.default.Utils.escapeHTML = escapeHTML;
8002 + _mejs2.default.Utils.debounce = debounce;
8003 + _mejs2.default.Utils.isObjectEmpty = isObjectEmpty;
8004 + _mejs2.default.Utils.splitEvents = splitEvents;
8005 + _mejs2.default.Utils.createEvent = createEvent;
8006 + _mejs2.default.Utils.isNodeAfter = isNodeAfter;
8007 + _mejs2.default.Utils.isString = isString;
8008 +
8009 + },{"7":7}],28:[function(_dereq_,module,exports){
8010 + 'use strict';
8011 +
8012 + Object.defineProperty(exports, "__esModule", {
8013 + value: true
8014 + });
8015 + exports.typeChecks = undefined;
8016 + exports.absolutizeUrl = absolutizeUrl;
8017 + exports.formatType = formatType;
8018 + exports.getMimeFromType = getMimeFromType;
8019 + exports.getTypeFromFile = getTypeFromFile;
8020 + exports.getExtension = getExtension;
8021 + exports.normalizeExtension = normalizeExtension;
8022 +
8023 + var _mejs = _dereq_(7);
8024 +
8025 + var _mejs2 = _interopRequireDefault(_mejs);
8026 +
8027 + var _general = _dereq_(27);
8028 +
8029 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8030 +
8031 + var typeChecks = exports.typeChecks = [];
8032 +
8033 + function absolutizeUrl(url) {
8034 +
8035 + if (typeof url !== 'string') {
8036 + throw new Error('`url` argument must be a string');
8037 + }
8038 +
8039 + var el = document.createElement('div');
8040 + el.innerHTML = '<a href="' + (0, _general.escapeHTML)(url) + '">x</a>';
8041 + return el.firstChild.href;
8042 + }
8043 +
8044 + function formatType(url) {
8045 + var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
8046 +
8047 + return url && !type ? getTypeFromFile(url) : type;
8048 + }
8049 +
8050 + function getMimeFromType(type) {
8051 +
8052 + if (typeof type !== 'string') {
8053 + throw new Error('`type` argument must be a string');
8054 + }
8055 +
8056 + return type && type.indexOf(';') > -1 ? type.substr(0, type.indexOf(';')) : type;
8057 + }
8058 +
8059 + function getTypeFromFile(url) {
8060 +
8061 + if (typeof url !== 'string') {
8062 + throw new Error('`url` argument must be a string');
8063 + }
8064 +
8065 + for (var i = 0, total = typeChecks.length; i < total; i++) {
8066 + var type = typeChecks[i](url);
8067 +
8068 + if (type) {
8069 + return type;
8070 + }
8071 + }
8072 +
8073 + var ext = getExtension(url),
8074 + normalizedExt = normalizeExtension(ext);
8075 +
8076 + var mime = 'video/mp4';
8077 +
8078 + if (normalizedExt) {
8079 + if (~['mp4', 'm4v', 'ogg', 'ogv', 'webm', 'flv', 'mpeg'].indexOf(normalizedExt)) {
8080 + mime = 'video/' + normalizedExt;
8081 + } else if ('mov' === normalizedExt) {
8082 + mime = 'video/quicktime';
8083 + } else if (~['mp3', 'oga', 'wav', 'mid', 'midi'].indexOf(normalizedExt)) {
8084 + mime = 'audio/' + normalizedExt;
8085 + }
8086 + }
8087 +
8088 + return mime;
8089 + }
8090 +
8091 + function getExtension(url) {
8092 +
8093 + if (typeof url !== 'string') {
8094 + throw new Error('`url` argument must be a string');
8095 + }
8096 +
8097 + var baseUrl = url.split('?')[0],
8098 + baseName = baseUrl.split('\\').pop().split('/').pop();
8099 + return ~baseName.indexOf('.') ? baseName.substring(baseName.lastIndexOf('.') + 1) : '';
8100 + }
8101 +
8102 + function normalizeExtension(extension) {
8103 +
8104 + if (typeof extension !== 'string') {
8105 + throw new Error('`extension` argument must be a string');
8106 + }
8107 +
8108 + switch (extension) {
8109 + case 'mp4':
8110 + case 'm4v':
8111 + return 'mp4';
8112 + case 'webm':
8113 + case 'webma':
8114 + case 'webmv':
8115 + return 'webm';
8116 + case 'ogg':
8117 + case 'oga':
8118 + case 'ogv':
8119 + return 'ogg';
8120 + default:
8121 + return extension;
8122 + }
8123 + }
8124 +
8125 + _mejs2.default.Utils = _mejs2.default.Utils || {};
8126 + _mejs2.default.Utils.typeChecks = typeChecks;
8127 + _mejs2.default.Utils.absolutizeUrl = absolutizeUrl;
8128 + _mejs2.default.Utils.formatType = formatType;
8129 + _mejs2.default.Utils.getMimeFromType = getMimeFromType;
8130 + _mejs2.default.Utils.getTypeFromFile = getTypeFromFile;
8131 + _mejs2.default.Utils.getExtension = getExtension;
8132 + _mejs2.default.Utils.normalizeExtension = normalizeExtension;
8133 +
8134 + },{"27":27,"7":7}],29:[function(_dereq_,module,exports){
8135 + 'use strict';
8136 +
8137 + var _document = _dereq_(2);
8138 +
8139 + var _document2 = _interopRequireDefault(_document);
8140 +
8141 + var _promisePolyfill = _dereq_(4);
8142 +
8143 + var _promisePolyfill2 = _interopRequireDefault(_promisePolyfill);
8144 +
8145 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8146 +
8147 + (function (arr) {
8148 + arr.forEach(function (item) {
8149 + if (item.hasOwnProperty('remove')) {
8150 + return;
8151 + }
8152 + Object.defineProperty(item, 'remove', {
8153 + configurable: true,
8154 + enumerable: true,
8155 + writable: true,
8156 + value: function remove() {
8157 + this.parentNode.removeChild(this);
8158 + }
8159 + });
8160 + });
8161 + })([Element.prototype, CharacterData.prototype, DocumentType.prototype]);
8162 +
8163 + (function () {
8164 +
8165 + if (typeof window.CustomEvent === 'function') {
8166 + return false;
8167 + }
8168 +
8169 + function CustomEvent(event, params) {
8170 + params = params || { bubbles: false, cancelable: false, detail: undefined };
8171 + var evt = _document2.default.createEvent('CustomEvent');
8172 + evt.initCustomEvent(event, params.bubbles, params.cancelable, params.detail);
8173 + return evt;
8174 + }
8175 +
8176 + CustomEvent.prototype = window.Event.prototype;
8177 + window.CustomEvent = CustomEvent;
8178 + })();
8179 +
8180 + if (typeof Object.assign !== 'function') {
8181 + Object.assign = function (target) {
8182 +
8183 + if (target === null || target === undefined) {
8184 + throw new TypeError('Cannot convert undefined or null to object');
8185 + }
8186 +
8187 + var to = Object(target);
8188 +
8189 + for (var index = 1, total = arguments.length; index < total; index++) {
8190 + var nextSource = arguments[index];
8191 +
8192 + if (nextSource !== null) {
8193 + for (var nextKey in nextSource) {
8194 + if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {
8195 + to[nextKey] = nextSource[nextKey];
8196 + }
8197 + }
8198 + }
8199 + }
8200 + return to;
8201 + };
8202 + }
8203 +
8204 + if (!String.prototype.startsWith) {
8205 + String.prototype.startsWith = function (searchString, position) {
8206 + position = position || 0;
8207 + return this.substr(position, searchString.length) === searchString;
8208 + };
8209 + }
8210 +
8211 + if (!Element.prototype.matches) {
8212 + Element.prototype.matches = Element.prototype.matchesSelector || Element.prototype.mozMatchesSelector || Element.prototype.msMatchesSelector || Element.prototype.oMatchesSelector || Element.prototype.webkitMatchesSelector || function (s) {
8213 + var matches = (this.document || this.ownerDocument).querySelectorAll(s),
8214 + i = matches.length - 1;
8215 + while (--i >= 0 && matches.item(i) !== this) {}
8216 + return i > -1;
8217 + };
8218 + }
8219 +
8220 + if (window.Element && !Element.prototype.closest) {
8221 + Element.prototype.closest = function (s) {
8222 + var matches = (this.document || this.ownerDocument).querySelectorAll(s),
8223 + i = void 0,
8224 + el = this;
8225 + do {
8226 + i = matches.length;
8227 + while (--i >= 0 && matches.item(i) !== el) {}
8228 + } while (i < 0 && (el = el.parentElement));
8229 + return el;
8230 + };
8231 + }
8232 +
8233 + (function () {
8234 + var lastTime = 0;
8235 + var vendors = ['ms', 'moz', 'webkit', 'o'];
8236 + for (var x = 0; x < vendors.length && !window.requestAnimationFrame; ++x) {
8237 + window.requestAnimationFrame = window[vendors[x] + 'RequestAnimationFrame'];
8238 + window.cancelAnimationFrame = window[vendors[x] + 'CancelAnimationFrame'] || window[vendors[x] + 'CancelRequestAnimationFrame'];
8239 + }
8240 +
8241 + if (!window.requestAnimationFrame) window.requestAnimationFrame = function (callback) {
8242 + var currTime = new Date().getTime();
8243 + var timeToCall = Math.max(0, 16 - (currTime - lastTime));
8244 + var id = window.setTimeout(function () {
8245 + callback(currTime + timeToCall);
8246 + }, timeToCall);
8247 + lastTime = currTime + timeToCall;
8248 + return id;
8249 + };
8250 +
8251 + if (!window.cancelAnimationFrame) window.cancelAnimationFrame = function (id) {
8252 + clearTimeout(id);
8253 + };
8254 + })();
8255 +
8256 + if (/firefox/i.test(navigator.userAgent)) {
8257 + var getComputedStyle = window.getComputedStyle;
8258 + window.getComputedStyle = function (el, pseudoEl) {
8259 + var t = getComputedStyle(el, pseudoEl);
8260 + return t === null ? { getPropertyValue: function getPropertyValue() {} } : t;
8261 + };
8262 + }
8263 +
8264 + if (!window.Promise) {
8265 + window.Promise = _promisePolyfill2.default;
8266 + }
8267 +
8268 + (function (constructor) {
8269 + if (constructor && constructor.prototype && constructor.prototype.children === null) {
8270 + Object.defineProperty(constructor.prototype, 'children', {
8271 + get: function get() {
8272 + var i = 0,
8273 + node = void 0,
8274 + nodes = this.childNodes,
8275 + children = [];
8276 + while (node = nodes[i++]) {
8277 + if (node.nodeType === 1) {
8278 + children.push(node);
8279 + }
8280 + }
8281 + return children;
8282 + }
8283 + });
8284 + }
8285 + })(window.Node || window.Element);
8286 +
8287 + },{"2":2,"4":4}],30:[function(_dereq_,module,exports){
8288 + 'use strict';
8289 +
8290 + Object.defineProperty(exports, "__esModule", {
8291 + value: true
8292 + });
8293 + exports.isDropFrame = isDropFrame;
8294 + exports.secondsToTimeCode = secondsToTimeCode;
8295 + exports.timeCodeToSeconds = timeCodeToSeconds;
8296 + exports.calculateTimeFormat = calculateTimeFormat;
8297 + exports.convertSMPTEtoSeconds = convertSMPTEtoSeconds;
8298 +
8299 + var _mejs = _dereq_(7);
8300 +
8301 + var _mejs2 = _interopRequireDefault(_mejs);
8302 +
8303 + function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
8304 +
8305 + function isDropFrame() {
8306 + var fps = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 25;
8307 +
8308 + return !(fps % 1 === 0);
8309 + }
8310 + function secondsToTimeCode(time) {
8311 + var forceHours = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
8312 + var showFrameCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;
8313 + var fps = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : 25;
8314 + var secondsDecimalLength = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : 0;
8315 + var timeFormat = arguments.length > 5 && arguments[5] !== undefined ? arguments[5] : 'hh:mm:ss';
8316 +
8317 +
8318 + time = !time || typeof time !== 'number' || time < 0 ? 0 : time;
8319 +
8320 + var dropFrames = Math.round(fps * 0.066666),
8321 + timeBase = Math.round(fps),
8322 + framesPer24Hours = Math.round(fps * 3600) * 24,
8323 + framesPer10Minutes = Math.round(fps * 600),
8324 + frameSep = isDropFrame(fps) ? ';' : ':',
8325 + hours = void 0,
8326 + minutes = void 0,
8327 + seconds = void 0,
8328 + frames = void 0,
8329 + f = Math.round(time * fps);
8330 +
8331 + if (isDropFrame(fps)) {
8332 +
8333 + if (f < 0) {
8334 + f = framesPer24Hours + f;
8335 + }
8336 +
8337 + f = f % framesPer24Hours;
8338 +
8339 + var d = Math.floor(f / framesPer10Minutes);
8340 + var m = f % framesPer10Minutes;
8341 + f = f + dropFrames * 9 * d;
8342 + if (m > dropFrames) {
8343 + f = f + dropFrames * Math.floor((m - dropFrames) / Math.round(timeBase * 60 - dropFrames));
8344 + }
8345 +
8346 + var timeBaseDivision = Math.floor(f / timeBase);
8347 +
8348 + hours = Math.floor(Math.floor(timeBaseDivision / 60) / 60);
8349 + minutes = Math.floor(timeBaseDivision / 60) % 60;
8350 +
8351 + if (showFrameCount) {
8352 + seconds = timeBaseDivision % 60;
8353 + } else {
8354 + seconds = Math.floor(f / timeBase % 60).toFixed(secondsDecimalLength);
8355 + }
8356 + } else {
8357 + hours = Math.floor(time / 3600) % 24;
8358 + minutes = Math.floor(time / 60) % 60;
8359 + if (showFrameCount) {
8360 + seconds = Math.floor(time % 60);
8361 + } else {
8362 + seconds = Math.floor(time % 60).toFixed(secondsDecimalLength);
8363 + }
8364 + }
8365 + hours = hours <= 0 ? 0 : hours;
8366 + minutes = minutes <= 0 ? 0 : minutes;
8367 + seconds = seconds <= 0 ? 0 : seconds;
8368 +
8369 + seconds = seconds === 60 ? 0 : seconds;
8370 + minutes = minutes === 60 ? 0 : minutes;
8371 +
8372 + var timeFormatFrags = timeFormat.split(':');
8373 + var timeFormatSettings = {};
8374 + for (var i = 0, total = timeFormatFrags.length; i < total; ++i) {
8375 + var unique = '';
8376 + for (var j = 0, t = timeFormatFrags[i].length; j < t; j++) {
8377 + if (unique.indexOf(timeFormatFrags[i][j]) < 0) {
8378 + unique += timeFormatFrags[i][j];
8379 + }
8380 + }
8381 + if (~['f', 's', 'm', 'h'].indexOf(unique)) {
8382 + timeFormatSettings[unique] = timeFormatFrags[i].length;
8383 + }
8384 + }
8385 +
8386 + var result = forceHours || hours > 0 ? (hours < 10 && timeFormatSettings.h > 1 ? '0' + hours : hours) + ':' : '';
8387 + result += (minutes < 10 && timeFormatSettings.m > 1 ? '0' + minutes : minutes) + ':';
8388 + result += '' + (seconds < 10 && timeFormatSettings.s > 1 ? '0' + seconds : seconds);
8389 +
8390 + if (showFrameCount) {
8391 + frames = (f % timeBase).toFixed(0);
8392 + frames = frames <= 0 ? 0 : frames;
8393 + result += frames < 10 && timeFormatSettings.f ? frameSep + '0' + frames : '' + frameSep + frames;
8394 + }
8395 +
8396 + return result;
8397 + }
8398 +
8399 + function timeCodeToSeconds(time) {
8400 + var fps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 25;
8401 +
8402 +
8403 + if (typeof time !== 'string') {
8404 + throw new TypeError('Time must be a string');
8405 + }
8406 +
8407 + if (time.indexOf(';') > 0) {
8408 + time = time.replace(';', ':');
8409 + }
8410 +
8411 + if (!/\d{2}(\:\d{2}){0,3}/i.test(time)) {
8412 + throw new TypeError('Time code must have the format `00:00:00`');
8413 + }
8414 +
8415 + var parts = time.split(':');
8416 +
8417 + var output = void 0,
8418 + hours = 0,
8419 + minutes = 0,
8420 + seconds = 0,
8421 + frames = 0,
8422 + totalMinutes = 0,
8423 + dropFrames = Math.round(fps * 0.066666),
8424 + timeBase = Math.round(fps),
8425 + hFrames = timeBase * 3600,
8426 + mFrames = timeBase * 60;
8427 +
8428 + switch (parts.length) {
8429 + default:
8430 + case 1:
8431 + seconds = parseInt(parts[0], 10);
8432 + break;
8433 + case 2:
8434 + minutes = parseInt(parts[0], 10);
8435 + seconds = parseInt(parts[1], 10);
8436 + break;
8437 + case 3:
8438 + hours = parseInt(parts[0], 10);
8439 + minutes = parseInt(parts[1], 10);
8440 + seconds = parseInt(parts[2], 10);
8441 + break;
8442 + case 4:
8443 + hours = parseInt(parts[0], 10);
8444 + minutes = parseInt(parts[1], 10);
8445 + seconds = parseInt(parts[2], 10);
8446 + frames = parseInt(parts[3], 10);
8447 + break;
8448 + }
8449 +
8450 + if (isDropFrame(fps)) {
8451 + totalMinutes = 60 * hours + minutes;
8452 + output = hFrames * hours + mFrames * minutes + timeBase * seconds + frames - dropFrames * (totalMinutes - Math.floor(totalMinutes / 10));
8453 + } else {
8454 + output = (hFrames * hours + mFrames * minutes + fps * seconds + frames) / fps;
8455 + }
8456 +
8457 + return parseFloat(output.toFixed(3));
8458 + }
8459 +
8460 + function calculateTimeFormat(time, options) {
8461 + var fps = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 25;
8462 +
8463 +
8464 + time = !time || typeof time !== 'number' || time < 0 ? 0 : time;
8465 +
8466 + var hours = Math.floor(time / 3600) % 24,
8467 + minutes = Math.floor(time / 60) % 60,
8468 + seconds = Math.floor(time % 60),
8469 + frames = Math.floor((time % 1 * fps).toFixed(3)),
8470 + lis = [[frames, 'f'], [seconds, 's'], [minutes, 'm'], [hours, 'h']];
8471 +
8472 + var format = options.timeFormat,
8473 + firstTwoPlaces = format[1] === format[0],
8474 + separatorIndex = firstTwoPlaces ? 2 : 1,
8475 + separator = format.length < separatorIndex ? format[separatorIndex] : ':',
8476 + firstChar = format[0],
8477 + required = false;
8478 +
8479 + for (var i = 0, len = lis.length; i < len; i++) {
8480 + if (~format.indexOf(lis[i][1])) {
8481 + required = true;
8482 + } else if (required) {
8483 + var hasNextValue = false;
8484 + for (var j = i; j < len; j++) {
8485 + if (lis[j][0] > 0) {
8486 + hasNextValue = true;
8487 + break;
8488 + }
8489 + }
8490 +
8491 + if (!hasNextValue) {
8492 + break;
8493 + }
8494 +
8495 + if (!firstTwoPlaces) {
8496 + format = firstChar + format;
8497 + }
8498 + format = lis[i][1] + separator + format;
8499 + if (firstTwoPlaces) {
8500 + format = lis[i][1] + format;
8501 + }
8502 + firstChar = lis[i][1];
8503 + }
8504 + }
8505 +
8506 + options.timeFormat = format;
8507 + }
8508 +
8509 + function convertSMPTEtoSeconds(SMPTE) {
8510 +
8511 + if (typeof SMPTE !== 'string') {
8512 + throw new TypeError('Argument must be a string value');
8513 + }
8514 +
8515 + SMPTE = SMPTE.replace(',', '.');
8516 +
8517 + var decimalLen = ~SMPTE.indexOf('.') ? SMPTE.split('.')[1].length : 0;
8518 +
8519 + var secs = 0,
8520 + multiplier = 1;
8521 +
8522 + SMPTE = SMPTE.split(':').reverse();
8523 +
8524 + for (var i = 0, total = SMPTE.length; i < total; i++) {
8525 + multiplier = 1;
8526 + if (i > 0) {
8527 + multiplier = Math.pow(60, i);
8528 + }
8529 + secs += Number(SMPTE[i]) * multiplier;
8530 + }
8531 + return Number(secs.toFixed(decimalLen));
8532 + }
8533 +
8534 + _mejs2.default.Utils = _mejs2.default.Utils || {};
8535 + _mejs2.default.Utils.secondsToTimeCode = secondsToTimeCode;
8536 + _mejs2.default.Utils.timeCodeToSeconds = timeCodeToSeconds;
8537 + _mejs2.default.Utils.calculateTimeFormat = calculateTimeFormat;
8538 + _mejs2.default.Utils.convertSMPTEtoSeconds = convertSMPTEtoSeconds;
8539 +
8540 + },{"7":7}]},{},[29,6,5,15,23,20,19,21,22,24,16,18,17,9,10,11,12,13,14]);
8541 +