Diff: STRATO-apps/wordpress_03/app/wp-includes/js/mediaelement/mediaelement-and-player.js
Keine Baseline-Datei – Diff nur gegen leer.
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('&') + '" />') + '<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
+
'&': '&',
7901
+
'<': '<',
7902
+
'>': '>',
7903
+
'"': '"'
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
+