aboutsummaryrefslogtreecommitdiffstats
path: root/dist/plyr.polyfilled.js
diff options
context:
space:
mode:
Diffstat (limited to 'dist/plyr.polyfilled.js')
-rw-r--r--dist/plyr.polyfilled.js6709
1 files changed, 2967 insertions, 3742 deletions
diff --git a/dist/plyr.polyfilled.js b/dist/plyr.polyfilled.js
index 1a143ecc..b3c11364 100644
--- a/dist/plyr.polyfilled.js
+++ b/dist/plyr.polyfilled.js
@@ -19,48 +19,21 @@ var global = module.exports = typeof window != 'undefined' && window.Math == Mat
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
});
-
-var _global$1 = Object.freeze({
- default: _global,
- __moduleExports: _global
-});
-
var _core = createCommonjsModule(function (module) {
var core = module.exports = { version: '2.5.3' };
if (typeof __e == 'number') __e = core; // eslint-disable-line no-undef
});
var _core_1 = _core.version;
-
-var _core$1 = Object.freeze({
- default: _core,
- __moduleExports: _core,
- version: _core_1
-});
-
var _isObject = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
-
-var _isObject$1 = Object.freeze({
- default: _isObject,
- __moduleExports: _isObject
-});
-
-var isObject = ( _isObject$1 && _isObject ) || _isObject$1;
-
var _anObject = function (it) {
- if (!isObject(it)) throw TypeError(it + ' is not an object!');
+ if (!_isObject(it)) throw TypeError(it + ' is not an object!');
return it;
};
-
-var _anObject$1 = Object.freeze({
- default: _anObject,
- __moduleExports: _anObject
-});
-
var _fails = function (exec) {
try {
return !!exec();
@@ -69,52 +42,20 @@ var _fails = function (exec) {
}
};
-
-var _fails$1 = Object.freeze({
- default: _fails,
- __moduleExports: _fails
-});
-
-var require$$0 = ( _fails$1 && _fails ) || _fails$1;
-
// Thank's IE8 for his funny defineProperty
-var _descriptors = !require$$0(function () {
+var _descriptors = !_fails(function () {
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});
-
-var _descriptors$1 = Object.freeze({
- default: _descriptors,
- __moduleExports: _descriptors
-});
-
-var global$1 = ( _global$1 && _global ) || _global$1;
-
-var document$1 = global$1.document;
+var document$1 = _global.document;
// typeof document.createElement is 'object' in old IE
-var is = isObject(document$1) && isObject(document$1.createElement);
+var is = _isObject(document$1) && _isObject(document$1.createElement);
var _domCreate = function (it) {
return is ? document$1.createElement(it) : {};
};
-
-var _domCreate$1 = Object.freeze({
- default: _domCreate,
- __moduleExports: _domCreate
-});
-
-var require$$0$1 = ( _descriptors$1 && _descriptors ) || _descriptors$1;
-
-var cel = ( _domCreate$1 && _domCreate ) || _domCreate$1;
-
-var _ie8DomDefine = !require$$0$1 && !require$$0(function () {
- return Object.defineProperty(cel('div'), 'a', { get: function () { return 7; } }).a != 7;
-});
-
-
-var _ie8DomDefine$1 = Object.freeze({
- default: _ie8DomDefine,
- __moduleExports: _ie8DomDefine
+var _ie8DomDefine = !_descriptors && !_fails(function () {
+ return Object.defineProperty(_domCreate('div'), 'a', { get: function () { return 7; } }).a != 7;
});
// 7.1.1 ToPrimitive(input [, PreferredType])
@@ -122,33 +63,21 @@ var _ie8DomDefine$1 = Object.freeze({
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
var _toPrimitive = function (it, S) {
- if (!isObject(it)) return it;
+ if (!_isObject(it)) return it;
var fn, val;
- if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
- if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
- if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
+ if (S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (typeof (fn = it.valueOf) == 'function' && !_isObject(val = fn.call(it))) return val;
+ if (!S && typeof (fn = it.toString) == 'function' && !_isObject(val = fn.call(it))) return val;
throw TypeError("Can't convert object to primitive value");
};
-
-var _toPrimitive$1 = Object.freeze({
- default: _toPrimitive,
- __moduleExports: _toPrimitive
-});
-
-var anObject = ( _anObject$1 && _anObject ) || _anObject$1;
-
-var IE8_DOM_DEFINE = ( _ie8DomDefine$1 && _ie8DomDefine ) || _ie8DomDefine$1;
-
-var toPrimitive = ( _toPrimitive$1 && _toPrimitive ) || _toPrimitive$1;
-
var dP = Object.defineProperty;
-var f = require$$0$1 ? Object.defineProperty : function defineProperty(O, P, Attributes) {
- anObject(O);
- P = toPrimitive(P, true);
- anObject(Attributes);
- if (IE8_DOM_DEFINE) try {
+var f = _descriptors ? Object.defineProperty : function defineProperty(O, P, Attributes) {
+ _anObject(O);
+ P = _toPrimitive(P, true);
+ _anObject(Attributes);
+ if (_ie8DomDefine) try {
return dP(O, P, Attributes);
} catch (e) { /* empty */ }
if ('get' in Attributes || 'set' in Attributes) throw TypeError('Accessors not supported!');
@@ -160,13 +89,6 @@ var _objectDp = {
f: f
};
-
-var _objectDp$1 = Object.freeze({
- default: _objectDp,
- __moduleExports: _objectDp,
- f: f
-});
-
var _propertyDesc = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
@@ -176,84 +98,48 @@ var _propertyDesc = function (bitmap, value) {
};
};
-
-var _propertyDesc$1 = Object.freeze({
- default: _propertyDesc,
- __moduleExports: _propertyDesc
-});
-
-var $defineProperty = ( _objectDp$1 && _objectDp ) || _objectDp$1;
-
-var createDesc = ( _propertyDesc$1 && _propertyDesc ) || _propertyDesc$1;
-
-var _hide = require$$0$1 ? function (object, key, value) {
- return $defineProperty.f(object, key, createDesc(1, value));
+var _hide = _descriptors ? function (object, key, value) {
+ return _objectDp.f(object, key, _propertyDesc(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
-
-var _hide$1 = Object.freeze({
- default: _hide,
- __moduleExports: _hide
-});
-
var hasOwnProperty = {}.hasOwnProperty;
var _has = function (it, key) {
return hasOwnProperty.call(it, key);
};
-
-var _has$1 = Object.freeze({
- default: _has,
- __moduleExports: _has
-});
-
var id = 0;
var px = Math.random();
var _uid = function (key) {
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};
-
-var _uid$1 = Object.freeze({
- default: _uid,
- __moduleExports: _uid
-});
-
-var hide = ( _hide$1 && _hide ) || _hide$1;
-
-var has = ( _has$1 && _has ) || _has$1;
-
-var uid = ( _uid$1 && _uid ) || _uid$1;
-
-var core = ( _core$1 && _core ) || _core$1;
-
var _redefine = createCommonjsModule(function (module) {
-var SRC = uid('src');
+var SRC = _uid('src');
var TO_STRING = 'toString';
var $toString = Function[TO_STRING];
var TPL = ('' + $toString).split(TO_STRING);
-core.inspectSource = function (it) {
+_core.inspectSource = function (it) {
return $toString.call(it);
};
(module.exports = function (O, key, val, safe) {
var isFunction = typeof val == 'function';
- if (isFunction) has(val, 'name') || hide(val, 'name', key);
+ if (isFunction) _has(val, 'name') || _hide(val, 'name', key);
if (O[key] === val) return;
- if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
- if (O === global$1) {
+ if (isFunction) _has(val, SRC) || _hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key)));
+ if (O === _global) {
O[key] = val;
} else if (!safe) {
delete O[key];
- hide(O, key, val);
+ _hide(O, key, val);
} else if (O[key]) {
O[key] = val;
} else {
- hide(O, key, val);
+ _hide(O, key, val);
}
// add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative
})(Function.prototype, TO_STRING, function toString() {
@@ -261,29 +147,15 @@ core.inspectSource = function (it) {
});
});
-
-var _redefine$1 = Object.freeze({
- default: _redefine,
- __moduleExports: _redefine
-});
-
var _aFunction = function (it) {
if (typeof it != 'function') throw TypeError(it + ' is not a function!');
return it;
};
-
-var _aFunction$1 = Object.freeze({
- default: _aFunction,
- __moduleExports: _aFunction
-});
-
-var aFunction = ( _aFunction$1 && _aFunction ) || _aFunction$1;
-
// optional / simple context binding
var _ctx = function (fn, that, length) {
- aFunction(fn);
+ _aFunction(fn);
if (that === undefined) return fn;
switch (length) {
case 1: return function (a) {
@@ -301,16 +173,6 @@ var _ctx = function (fn, that, length) {
};
};
-
-var _ctx$1 = Object.freeze({
- default: _ctx,
- __moduleExports: _ctx
-});
-
-var redefine = ( _redefine$1 && _redefine ) || _redefine$1;
-
-var ctx = ( _ctx$1 && _ctx ) || _ctx$1;
-
var PROTOTYPE = 'prototype';
var $export = function (type, name, source) {
@@ -319,8 +181,8 @@ var $export = function (type, name, source) {
var IS_STATIC = type & $export.S;
var IS_PROTO = type & $export.P;
var IS_BIND = type & $export.B;
- var target = IS_GLOBAL ? global$1 : IS_STATIC ? global$1[name] || (global$1[name] = {}) : (global$1[name] || {})[PROTOTYPE];
- var exports = IS_GLOBAL ? core : core[name] || (core[name] = {});
+ var target = IS_GLOBAL ? _global : IS_STATIC ? _global[name] || (_global[name] = {}) : (_global[name] || {})[PROTOTYPE];
+ var exports = IS_GLOBAL ? _core : _core[name] || (_core[name] = {});
var expProto = exports[PROTOTYPE] || (exports[PROTOTYPE] = {});
var key, own, out, exp;
if (IS_GLOBAL) source = name;
@@ -330,15 +192,15 @@ var $export = function (type, name, source) {
// export native or passed
out = (own ? target : source)[key];
// bind timers to global for call from export context
- exp = IS_BIND && own ? ctx(out, global$1) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;
+ exp = IS_BIND && own ? _ctx(out, _global) : IS_PROTO && typeof out == 'function' ? _ctx(Function.call, out) : out;
// extend global
- if (target) redefine(target, key, out, type & $export.U);
+ if (target) _redefine(target, key, out, type & $export.U);
// export
- if (exports[key] != out) hide(exports, key, exp);
+ if (exports[key] != out) _hide(exports, key, exp);
if (IS_PROTO && expProto[key] != out) expProto[key] = out;
}
};
-global$1.core = core;
+_global.core = _core;
// type bitmap
$export.F = 1; // forced
$export.G = 2; // global
@@ -350,15 +212,9 @@ $export.U = 64; // safe
$export.R = 128; // real proto method for `library`
var _export = $export;
-
-var _export$1 = Object.freeze({
- default: _export,
- __moduleExports: _export
-});
-
-var TYPED = uid('typed_array');
-var VIEW = uid('view');
-var ABV = !!(global$1.ArrayBuffer && global$1.DataView);
+var TYPED = _uid('typed_array');
+var VIEW = _uid('view');
+var ABV = !!(_global.ArrayBuffer && _global.DataView);
var CONSTR = ABV;
var i = 0;
var l = 9;
@@ -369,9 +225,9 @@ var TypedArrayConstructors = (
).split(',');
while (i < l) {
- if (Typed = global$1[TypedArrayConstructors[i++]]) {
- hide(Typed.prototype, TYPED, true);
- hide(Typed.prototype, VIEW, true);
+ if (Typed = _global[TypedArrayConstructors[i++]]) {
+ _hide(Typed.prototype, TYPED, true);
+ _hide(Typed.prototype, VIEW, true);
} else CONSTR = false;
}
@@ -381,52 +237,20 @@ var _typed = {
TYPED: TYPED,
VIEW: VIEW
};
-var _typed_1 = _typed.ABV;
-var _typed_2 = _typed.CONSTR;
-var _typed_3 = _typed.TYPED;
-var _typed_4 = _typed.VIEW;
-
-
-var _typed$1 = Object.freeze({
- default: _typed,
- __moduleExports: _typed,
- ABV: _typed_1,
- CONSTR: _typed_2,
- TYPED: _typed_3,
- VIEW: _typed_4
-});
var _library = false;
-
-var _library$1 = Object.freeze({
- default: _library,
- __moduleExports: _library
-});
-
var _redefineAll = function (target, src, safe) {
- for (var key in src) redefine(target, key, src[key], safe);
+ for (var key in src) _redefine(target, key, src[key], safe);
return target;
};
-
-var _redefineAll$1 = Object.freeze({
- default: _redefineAll,
- __moduleExports: _redefineAll
-});
-
var _anInstance = function (it, Constructor, name, forbiddenField) {
if (!(it instanceof Constructor) || (forbiddenField !== undefined && forbiddenField in it)) {
throw TypeError(name + ': incorrect invocation!');
} return it;
};
-
-var _anInstance$1 = Object.freeze({
- default: _anInstance,
- __moduleExports: _anInstance
-});
-
// 7.1.4 ToInteger
var ceil = Math.ceil;
var floor = Math.floor;
@@ -434,119 +258,57 @@ var _toInteger = function (it) {
return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);
};
-
-var _toInteger$1 = Object.freeze({
- default: _toInteger,
- __moduleExports: _toInteger
-});
-
-var toInteger = ( _toInteger$1 && _toInteger ) || _toInteger$1;
-
// 7.1.15 ToLength
var min = Math.min;
var _toLength = function (it) {
- return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
+ return it > 0 ? min(_toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};
-
-var _toLength$1 = Object.freeze({
- default: _toLength,
- __moduleExports: _toLength
-});
-
-var toLength = ( _toLength$1 && _toLength ) || _toLength$1;
-
// https://tc39.github.io/ecma262/#sec-toindex
var _toIndex = function (it) {
if (it === undefined) return 0;
- var number = toInteger(it);
- var length = toLength(number);
+ var number = _toInteger(it);
+ var length = _toLength(number);
if (number !== length) throw RangeError('Wrong length!');
return length;
};
-
-var _toIndex$1 = Object.freeze({
- default: _toIndex,
- __moduleExports: _toIndex
-});
-
var toString = {}.toString;
var _cof = function (it) {
return toString.call(it).slice(8, -1);
};
-
-var _cof$1 = Object.freeze({
- default: _cof,
- __moduleExports: _cof
-});
-
-var cof = ( _cof$1 && _cof ) || _cof$1;
-
// fallback for non-array-like ES3 and non-enumerable old V8 strings
// eslint-disable-next-line no-prototype-builtins
var _iobject = Object('z').propertyIsEnumerable(0) ? Object : function (it) {
- return cof(it) == 'String' ? it.split('') : Object(it);
+ return _cof(it) == 'String' ? it.split('') : Object(it);
};
-
-var _iobject$1 = Object.freeze({
- default: _iobject,
- __moduleExports: _iobject
-});
-
// 7.2.1 RequireObjectCoercible(argument)
var _defined = function (it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
-
-var _defined$1 = Object.freeze({
- default: _defined,
- __moduleExports: _defined
-});
-
-var IObject = ( _iobject$1 && _iobject ) || _iobject$1;
-
-var defined = ( _defined$1 && _defined ) || _defined$1;
-
// to indexed object, toObject with fallback for non-array-like ES3 strings
var _toIobject = function (it) {
- return IObject(defined(it));
+ return _iobject(_defined(it));
};
-
-var _toIobject$1 = Object.freeze({
- default: _toIobject,
- __moduleExports: _toIobject
-});
-
var max = Math.max;
var min$1 = Math.min;
var _toAbsoluteIndex = function (index, length) {
- index = toInteger(index);
+ index = _toInteger(index);
return index < 0 ? max(index + length, 0) : min$1(index, length);
};
-
-var _toAbsoluteIndex$1 = Object.freeze({
- default: _toAbsoluteIndex,
- __moduleExports: _toAbsoluteIndex
-});
-
-var toIObject = ( _toIobject$1 && _toIobject ) || _toIobject$1;
-
-var toAbsoluteIndex = ( _toAbsoluteIndex$1 && _toAbsoluteIndex ) || _toAbsoluteIndex$1;
-
// false -> Array#indexOf
// true -> Array#includes
@@ -554,9 +316,9 @@ var toAbsoluteIndex = ( _toAbsoluteIndex$1 && _toAbsoluteIndex ) || _toAbsoluteI
var _arrayIncludes = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
- var O = toIObject($this);
- var length = toLength(O.length);
- var index = toAbsoluteIndex(fromIndex, length);
+ var O = _toIobject($this);
+ var length = _toLength(O.length);
+ var index = _toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare
@@ -571,181 +333,90 @@ var _arrayIncludes = function (IS_INCLUDES) {
};
};
-
-var _arrayIncludes$1 = Object.freeze({
- default: _arrayIncludes,
- __moduleExports: _arrayIncludes
-});
-
var SHARED = '__core-js_shared__';
-var store = global$1[SHARED] || (global$1[SHARED] = {});
+var store = _global[SHARED] || (_global[SHARED] = {});
var _shared = function (key) {
return store[key] || (store[key] = {});
};
-
-var _shared$1 = Object.freeze({
- default: _shared,
- __moduleExports: _shared
-});
-
-var shared = ( _shared$1 && _shared ) || _shared$1;
-
-var shared$1 = shared('keys');
+var shared = _shared('keys');
var _sharedKey = function (key) {
- return shared$1[key] || (shared$1[key] = uid(key));
+ return shared[key] || (shared[key] = _uid(key));
};
-
-var _sharedKey$1 = Object.freeze({
- default: _sharedKey,
- __moduleExports: _sharedKey
-});
-
-var require$$0$2 = ( _arrayIncludes$1 && _arrayIncludes ) || _arrayIncludes$1;
-
-var require$$0$3 = ( _sharedKey$1 && _sharedKey ) || _sharedKey$1;
-
-var arrayIndexOf = require$$0$2(false);
-var IE_PROTO = require$$0$3('IE_PROTO');
+var arrayIndexOf = _arrayIncludes(false);
+var IE_PROTO = _sharedKey('IE_PROTO');
var _objectKeysInternal = function (object, names) {
- var O = toIObject(object);
+ var O = _toIobject(object);
var i = 0;
var result = [];
var key;
- for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
+ for (key in O) if (key != IE_PROTO) _has(O, key) && result.push(key);
// Don't enum bug & hidden keys
- while (names.length > i) if (has(O, key = names[i++])) {
+ while (names.length > i) if (_has(O, key = names[i++])) {
~arrayIndexOf(result, key) || result.push(key);
}
return result;
};
-
-var _objectKeysInternal$1 = Object.freeze({
- default: _objectKeysInternal,
- __moduleExports: _objectKeysInternal
-});
-
// IE 8- don't enum bug keys
var _enumBugKeys = (
'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');
-
-var _enumBugKeys$1 = Object.freeze({
- default: _enumBugKeys,
- __moduleExports: _enumBugKeys
-});
-
-var $keys = ( _objectKeysInternal$1 && _objectKeysInternal ) || _objectKeysInternal$1;
-
-var enumBugKeys = ( _enumBugKeys$1 && _enumBugKeys ) || _enumBugKeys$1;
-
// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
-var hiddenKeys = enumBugKeys.concat('length', 'prototype');
+var hiddenKeys = _enumBugKeys.concat('length', 'prototype');
var f$1 = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
- return $keys(O, hiddenKeys);
+ return _objectKeysInternal(O, hiddenKeys);
};
var _objectGopn = {
f: f$1
};
-
-var _objectGopn$1 = Object.freeze({
- default: _objectGopn,
- __moduleExports: _objectGopn,
- f: f$1
-});
-
// 7.1.13 ToObject(argument)
var _toObject = function (it) {
- return Object(defined(it));
+ return Object(_defined(it));
};
-
-var _toObject$1 = Object.freeze({
- default: _toObject,
- __moduleExports: _toObject
-});
-
-var toObject = ( _toObject$1 && _toObject ) || _toObject$1;
-
var _arrayFill = function fill(value /* , start = 0, end = @length */) {
- var O = toObject(this);
- var length = toLength(O.length);
+ var O = _toObject(this);
+ var length = _toLength(O.length);
var aLen = arguments.length;
- var index = toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);
+ var index = _toAbsoluteIndex(aLen > 1 ? arguments[1] : undefined, length);
var end = aLen > 2 ? arguments[2] : undefined;
- var endPos = end === undefined ? length : toAbsoluteIndex(end, length);
+ var endPos = end === undefined ? length : _toAbsoluteIndex(end, length);
while (endPos > index) O[index++] = value;
return O;
};
-
-var _arrayFill$1 = Object.freeze({
- default: _arrayFill,
- __moduleExports: _arrayFill
-});
-
var _wks = createCommonjsModule(function (module) {
-var store = shared('wks');
+var store = _shared('wks');
-var Symbol = global$1.Symbol;
+var Symbol = _global.Symbol;
var USE_SYMBOL = typeof Symbol == 'function';
var $exports = module.exports = function (name) {
return store[name] || (store[name] =
- USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));
+ USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : _uid)('Symbol.' + name));
};
$exports.store = store;
});
+var def = _objectDp.f;
-var _wks$1 = Object.freeze({
- default: _wks,
- __moduleExports: _wks
-});
-
-var wks = ( _wks$1 && _wks ) || _wks$1;
-
-var def = $defineProperty.f;
-
-var TAG = wks('toStringTag');
+var TAG = _wks('toStringTag');
var _setToStringTag = function (it, tag, stat) {
- if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
+ if (it && !_has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};
-
-var _setToStringTag$1 = Object.freeze({
- default: _setToStringTag,
- __moduleExports: _setToStringTag
-});
-
-var LIBRARY = ( _library$1 && _library ) || _library$1;
-
-var require$$5 = ( _typed$1 && _typed ) || _typed$1;
-
-var require$$3 = ( _redefineAll$1 && _redefineAll ) || _redefineAll$1;
-
-var anInstance = ( _anInstance$1 && _anInstance ) || _anInstance$1;
-
-var require$$14 = ( _toIndex$1 && _toIndex ) || _toIndex$1;
-
-var require$$0$4 = ( _objectGopn$1 && _objectGopn ) || _objectGopn$1;
-
-var require$$0$5 = ( _arrayFill$1 && _arrayFill ) || _arrayFill$1;
-
-var setToStringTag = ( _setToStringTag$1 && _setToStringTag ) || _setToStringTag$1;
-
var _typedBuffer = createCommonjsModule(function (module, exports) {
@@ -758,8 +429,8 @@ var _typedBuffer = createCommonjsModule(function (module, exports) {
-var gOPN = require$$0$4.f;
-var dP = $defineProperty.f;
+var gOPN = _objectGopn.f;
+var dP = _objectDp.f;
var ARRAY_BUFFER = 'ArrayBuffer';
@@ -767,12 +438,12 @@ var DATA_VIEW = 'DataView';
var PROTOTYPE = 'prototype';
var WRONG_LENGTH = 'Wrong length!';
var WRONG_INDEX = 'Wrong index!';
-var $ArrayBuffer = global$1[ARRAY_BUFFER];
-var $DataView = global$1[DATA_VIEW];
-var Math = global$1.Math;
-var RangeError = global$1.RangeError;
+var $ArrayBuffer = _global[ARRAY_BUFFER];
+var $DataView = _global[DATA_VIEW];
+var Math = _global.Math;
+var RangeError = _global.RangeError;
// eslint-disable-next-line no-shadow-restricted-names
-var Infinity = global$1.Infinity;
+var Infinity = _global.Infinity;
var BaseBuffer = $ArrayBuffer;
var abs = Math.abs;
var pow = Math.pow;
@@ -782,9 +453,9 @@ var LN2 = Math.LN2;
var BUFFER = 'buffer';
var BYTE_LENGTH = 'byteLength';
var BYTE_OFFSET = 'byteOffset';
-var $BUFFER = require$$0$1 ? '_b' : BUFFER;
-var $LENGTH = require$$0$1 ? '_l' : BYTE_LENGTH;
-var $OFFSET = require$$0$1 ? '_o' : BYTE_OFFSET;
+var $BUFFER = _descriptors ? '_b' : BUFFER;
+var $LENGTH = _descriptors ? '_l' : BYTE_LENGTH;
+var $OFFSET = _descriptors ? '_o' : BYTE_OFFSET;
// IEEE754 conversions based on https://github.com/feross/ieee754
function packIEEE754(value, mLen, nBytes) {
@@ -885,7 +556,7 @@ function addGetter(C, key, internal) {
function get(view, bytes, index, isLittleEndian) {
var numIndex = +index;
- var intIndex = require$$14(numIndex);
+ var intIndex = _toIndex(numIndex);
if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
var store = view[$BUFFER]._b;
var start = intIndex + view[$OFFSET];
@@ -894,7 +565,7 @@ function get(view, bytes, index, isLittleEndian) {
}
function set(view, bytes, index, conversion, value, isLittleEndian) {
var numIndex = +index;
- var intIndex = require$$14(numIndex);
+ var intIndex = _toIndex(numIndex);
if (intIndex + bytes > view[$LENGTH]) throw RangeError(WRONG_INDEX);
var store = view[$BUFFER]._b;
var start = intIndex + view[$OFFSET];
@@ -902,35 +573,35 @@ function set(view, bytes, index, conversion, value, isLittleEndian) {
for (var i = 0; i < bytes; i++) store[start + i] = pack[isLittleEndian ? i : bytes - i - 1];
}
-if (!require$$5.ABV) {
+if (!_typed.ABV) {
$ArrayBuffer = function ArrayBuffer(length) {
- anInstance(this, $ArrayBuffer, ARRAY_BUFFER);
- var byteLength = require$$14(length);
- this._b = require$$0$5.call(new Array(byteLength), 0);
+ _anInstance(this, $ArrayBuffer, ARRAY_BUFFER);
+ var byteLength = _toIndex(length);
+ this._b = _arrayFill.call(new Array(byteLength), 0);
this[$LENGTH] = byteLength;
};
$DataView = function DataView(buffer, byteOffset, byteLength) {
- anInstance(this, $DataView, DATA_VIEW);
- anInstance(buffer, $ArrayBuffer, DATA_VIEW);
+ _anInstance(this, $DataView, DATA_VIEW);
+ _anInstance(buffer, $ArrayBuffer, DATA_VIEW);
var bufferLength = buffer[$LENGTH];
- var offset = toInteger(byteOffset);
+ var offset = _toInteger(byteOffset);
if (offset < 0 || offset > bufferLength) throw RangeError('Wrong offset!');
- byteLength = byteLength === undefined ? bufferLength - offset : toLength(byteLength);
+ byteLength = byteLength === undefined ? bufferLength - offset : _toLength(byteLength);
if (offset + byteLength > bufferLength) throw RangeError(WRONG_LENGTH);
this[$BUFFER] = buffer;
this[$OFFSET] = offset;
this[$LENGTH] = byteLength;
};
- if (require$$0$1) {
+ if (_descriptors) {
addGetter($ArrayBuffer, BYTE_LENGTH, '_l');
addGetter($DataView, BUFFER, '_b');
addGetter($DataView, BYTE_LENGTH, '_l');
addGetter($DataView, BYTE_OFFSET, '_o');
}
- require$$3($DataView[PROTOTYPE], {
+ _redefineAll($DataView[PROTOTYPE], {
getInt8: function getInt8(byteOffset) {
return get(this, 1, byteOffset)[0] << 24 >> 24;
},
@@ -983,32 +654,32 @@ if (!require$$5.ABV) {
}
});
} else {
- if (!require$$0(function () {
+ if (!_fails(function () {
$ArrayBuffer(1);
- }) || !require$$0(function () {
+ }) || !_fails(function () {
new $ArrayBuffer(-1); // eslint-disable-line no-new
- }) || require$$0(function () {
+ }) || _fails(function () {
new $ArrayBuffer(); // eslint-disable-line no-new
new $ArrayBuffer(1.5); // eslint-disable-line no-new
new $ArrayBuffer(NaN); // eslint-disable-line no-new
return $ArrayBuffer.name != ARRAY_BUFFER;
})) {
$ArrayBuffer = function ArrayBuffer(length) {
- anInstance(this, $ArrayBuffer);
- return new BaseBuffer(require$$14(length));
+ _anInstance(this, $ArrayBuffer);
+ return new BaseBuffer(_toIndex(length));
};
var ArrayBufferProto = $ArrayBuffer[PROTOTYPE] = BaseBuffer[PROTOTYPE];
for (var keys = gOPN(BaseBuffer), j = 0, key; keys.length > j;) {
- if (!((key = keys[j++]) in $ArrayBuffer)) hide($ArrayBuffer, key, BaseBuffer[key]);
+ if (!((key = keys[j++]) in $ArrayBuffer)) _hide($ArrayBuffer, key, BaseBuffer[key]);
}
- if (!LIBRARY) ArrayBufferProto.constructor = $ArrayBuffer;
+ if (!_library) ArrayBufferProto.constructor = $ArrayBuffer;
}
// iOS Safari 7.x bug
var view = new $DataView(new $ArrayBuffer(2));
var $setInt8 = $DataView[PROTOTYPE].setInt8;
view.setInt8(0, 2147483648);
view.setInt8(1, 2147483649);
- if (view.getInt8(0) || !view.getInt8(1)) require$$3($DataView[PROTOTYPE], {
+ if (view.getInt8(0) || !view.getInt8(1)) _redefineAll($DataView[PROTOTYPE], {
setInt8: function setInt8(byteOffset, value) {
$setInt8.call(this, byteOffset, value << 24 >> 24);
},
@@ -1017,87 +688,61 @@ if (!require$$5.ABV) {
}
}, true);
}
-setToStringTag($ArrayBuffer, ARRAY_BUFFER);
-setToStringTag($DataView, DATA_VIEW);
-hide($DataView[PROTOTYPE], require$$5.VIEW, true);
+_setToStringTag($ArrayBuffer, ARRAY_BUFFER);
+_setToStringTag($DataView, DATA_VIEW);
+_hide($DataView[PROTOTYPE], _typed.VIEW, true);
exports[ARRAY_BUFFER] = $ArrayBuffer;
exports[DATA_VIEW] = $DataView;
});
-
-var _typedBuffer$1 = Object.freeze({
- default: _typedBuffer,
- __moduleExports: _typedBuffer
-});
-
// 7.3.20 SpeciesConstructor(O, defaultConstructor)
-var SPECIES = wks('species');
+var SPECIES = _wks('species');
var _speciesConstructor = function (O, D) {
- var C = anObject(O).constructor;
+ var C = _anObject(O).constructor;
var S;
- return C === undefined || (S = anObject(C)[SPECIES]) == undefined ? D : aFunction(S);
+ return C === undefined || (S = _anObject(C)[SPECIES]) == undefined ? D : _aFunction(S);
};
-
-var _speciesConstructor$1 = Object.freeze({
- default: _speciesConstructor,
- __moduleExports: _speciesConstructor
-});
-
-var SPECIES$1 = wks('species');
+var SPECIES$1 = _wks('species');
var _setSpecies = function (KEY) {
- var C = global$1[KEY];
- if (require$$0$1 && C && !C[SPECIES$1]) $defineProperty.f(C, SPECIES$1, {
+ var C = _global[KEY];
+ if (_descriptors && C && !C[SPECIES$1]) _objectDp.f(C, SPECIES$1, {
configurable: true,
get: function () { return this; }
});
};
+var ArrayBuffer = _global.ArrayBuffer;
-var _setSpecies$1 = Object.freeze({
- default: _setSpecies,
- __moduleExports: _setSpecies
-});
-
-var $export$1 = ( _export$1 && _export ) || _export$1;
-
-var require$$6 = ( _typedBuffer$1 && _typedBuffer ) || _typedBuffer$1;
-
-var speciesConstructor = ( _speciesConstructor$1 && _speciesConstructor ) || _speciesConstructor$1;
-
-var require$$5$1 = ( _setSpecies$1 && _setSpecies ) || _setSpecies$1;
-
-var ArrayBuffer = global$1.ArrayBuffer;
-
-var $ArrayBuffer = require$$6.ArrayBuffer;
-var $DataView = require$$6.DataView;
-var $isView = require$$5.ABV && ArrayBuffer.isView;
+var $ArrayBuffer = _typedBuffer.ArrayBuffer;
+var $DataView = _typedBuffer.DataView;
+var $isView = _typed.ABV && ArrayBuffer.isView;
var $slice = $ArrayBuffer.prototype.slice;
-var VIEW$1 = require$$5.VIEW;
+var VIEW$1 = _typed.VIEW;
var ARRAY_BUFFER = 'ArrayBuffer';
-$export$1($export$1.G + $export$1.W + $export$1.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });
+_export(_export.G + _export.W + _export.F * (ArrayBuffer !== $ArrayBuffer), { ArrayBuffer: $ArrayBuffer });
-$export$1($export$1.S + $export$1.F * !require$$5.CONSTR, ARRAY_BUFFER, {
+_export(_export.S + _export.F * !_typed.CONSTR, ARRAY_BUFFER, {
// 24.1.3.1 ArrayBuffer.isView(arg)
isView: function isView(it) {
- return $isView && $isView(it) || isObject(it) && VIEW$1 in it;
+ return $isView && $isView(it) || _isObject(it) && VIEW$1 in it;
}
});
-$export$1($export$1.P + $export$1.U + $export$1.F * require$$0(function () {
+_export(_export.P + _export.U + _export.F * _fails(function () {
return !new $ArrayBuffer(2).slice(1, undefined).byteLength;
}), ARRAY_BUFFER, {
// 24.1.4.3 ArrayBuffer.prototype.slice(start, end)
slice: function slice(start, end) {
- if ($slice !== undefined && end === undefined) return $slice.call(anObject(this), start); // FF fix
- var len = anObject(this).byteLength;
- var first = toAbsoluteIndex(start, len);
- var final = toAbsoluteIndex(end === undefined ? len : end, len);
- var result = new (speciesConstructor(this, $ArrayBuffer))(toLength(final - first));
+ if ($slice !== undefined && end === undefined) return $slice.call(_anObject(this), start); // FF fix
+ var len = _anObject(this).byteLength;
+ var first = _toAbsoluteIndex(start, len);
+ var final = _toAbsoluteIndex(end === undefined ? len : end, len);
+ var result = new (_speciesConstructor(this, $ArrayBuffer))(_toLength(final - first));
var viewS = new $DataView(this);
var viewT = new $DataView(result);
var index = 0;
@@ -1107,13 +752,13 @@ $export$1($export$1.P + $export$1.U + $export$1.F * require$$0(function () {
}
});
-require$$5$1(ARRAY_BUFFER);
+_setSpecies(ARRAY_BUFFER);
// getting tag from 19.1.3.6 Object.prototype.toString()
-var TAG$1 = wks('toStringTag');
+var TAG$1 = _wks('toStringTag');
// ES3 wrong here
-var ARG = cof(function () { return arguments; }()) == 'Arguments';
+var ARG = _cof(function () { return arguments; }()) == 'Arguments';
// fallback for IE11 Script Access Denied error
var tryGet = function (it, key) {
@@ -1128,105 +773,61 @@ var _classof = function (it) {
// @@toStringTag case
: typeof (T = tryGet(O = Object(it), TAG$1)) == 'string' ? T
// builtinTag case
- : ARG ? cof(O)
+ : ARG ? _cof(O)
// ES3 arguments fallback
- : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
+ : (B = _cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;
};
-
-var _classof$1 = Object.freeze({
- default: _classof,
- __moduleExports: _classof
-});
-
var _iterators = {};
-
-var _iterators$1 = Object.freeze({
- default: _iterators,
- __moduleExports: _iterators
-});
-
-var Iterators = ( _iterators$1 && _iterators ) || _iterators$1;
-
// check on default Array iterator
-var ITERATOR = wks('iterator');
+var ITERATOR = _wks('iterator');
var ArrayProto = Array.prototype;
var _isArrayIter = function (it) {
- return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);
+ return it !== undefined && (_iterators.Array === it || ArrayProto[ITERATOR] === it);
};
-
-var _isArrayIter$1 = Object.freeze({
- default: _isArrayIter,
- __moduleExports: _isArrayIter
-});
-
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var _objectKeys = Object.keys || function keys(O) {
- return $keys(O, enumBugKeys);
+ return _objectKeysInternal(O, _enumBugKeys);
};
-
-var _objectKeys$1 = Object.freeze({
- default: _objectKeys,
- __moduleExports: _objectKeys
-});
-
-var getKeys = ( _objectKeys$1 && _objectKeys ) || _objectKeys$1;
-
-var _objectDps = require$$0$1 ? Object.defineProperties : function defineProperties(O, Properties) {
- anObject(O);
- var keys = getKeys(Properties);
+var _objectDps = _descriptors ? Object.defineProperties : function defineProperties(O, Properties) {
+ _anObject(O);
+ var keys = _objectKeys(Properties);
var length = keys.length;
var i = 0;
var P;
- while (length > i) $defineProperty.f(O, P = keys[i++], Properties[P]);
+ while (length > i) _objectDp.f(O, P = keys[i++], Properties[P]);
return O;
};
-
-var _objectDps$1 = Object.freeze({
- default: _objectDps,
- __moduleExports: _objectDps
-});
-
-var document$2 = global$1.document;
+var document$2 = _global.document;
var _html = document$2 && document$2.documentElement;
-
-var _html$1 = Object.freeze({
- default: _html,
- __moduleExports: _html
-});
-
-var dPs = ( _objectDps$1 && _objectDps ) || _objectDps$1;
-
-var html = ( _html$1 && _html ) || _html$1;
-
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
-var IE_PROTO$1 = require$$0$3('IE_PROTO');
+var IE_PROTO$1 = _sharedKey('IE_PROTO');
var Empty = function () { /* empty */ };
var PROTOTYPE$1 = 'prototype';
// Create object with fake `null` prototype: use iframe Object with cleared prototype
var createDict = function () {
// Thrash, waste and sodomy: IE GC bug
- var iframe = cel('iframe');
- var i = enumBugKeys.length;
+ var iframe = _domCreate('iframe');
+ var i = _enumBugKeys.length;
var lt = '<';
var gt = '>';
var iframeDocument;
iframe.style.display = 'none';
- html.appendChild(iframe);
+ _html.appendChild(iframe);
iframe.src = 'javascript:'; // eslint-disable-line no-script-url
// createDict = iframe.contentWindow.Object;
// html.removeChild(iframe);
@@ -1235,116 +836,72 @@ var createDict = function () {
iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);
iframeDocument.close();
createDict = iframeDocument.F;
- while (i--) delete createDict[PROTOTYPE$1][enumBugKeys[i]];
+ while (i--) delete createDict[PROTOTYPE$1][_enumBugKeys[i]];
return createDict();
};
var _objectCreate = Object.create || function create(O, Properties) {
var result;
if (O !== null) {
- Empty[PROTOTYPE$1] = anObject(O);
+ Empty[PROTOTYPE$1] = _anObject(O);
result = new Empty();
Empty[PROTOTYPE$1] = null;
// add "__proto__" for Object.getPrototypeOf polyfill
result[IE_PROTO$1] = O;
} else result = createDict();
- return Properties === undefined ? result : dPs(result, Properties);
+ return Properties === undefined ? result : _objectDps(result, Properties);
};
-
-var _objectCreate$1 = Object.freeze({
- default: _objectCreate,
- __moduleExports: _objectCreate
-});
-
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
-var IE_PROTO$2 = require$$0$3('IE_PROTO');
+var IE_PROTO$2 = _sharedKey('IE_PROTO');
var ObjectProto = Object.prototype;
var _objectGpo = Object.getPrototypeOf || function (O) {
- O = toObject(O);
- if (has(O, IE_PROTO$2)) return O[IE_PROTO$2];
+ O = _toObject(O);
+ if (_has(O, IE_PROTO$2)) return O[IE_PROTO$2];
if (typeof O.constructor == 'function' && O instanceof O.constructor) {
return O.constructor.prototype;
} return O instanceof Object ? ObjectProto : null;
};
+var ITERATOR$1 = _wks('iterator');
-var _objectGpo$1 = Object.freeze({
- default: _objectGpo,
- __moduleExports: _objectGpo
-});
-
-var classof = ( _classof$1 && _classof ) || _classof$1;
-
-var ITERATOR$1 = wks('iterator');
-
-var core_getIteratorMethod = core.getIteratorMethod = function (it) {
+var core_getIteratorMethod = _core.getIteratorMethod = function (it) {
if (it != undefined) return it[ITERATOR$1]
|| it['@@iterator']
- || Iterators[classof(it)];
+ || _iterators[_classof(it)];
};
-
-var core_getIteratorMethod$1 = Object.freeze({
- default: core_getIteratorMethod,
- __moduleExports: core_getIteratorMethod
-});
-
// 7.2.2 IsArray(argument)
var _isArray = Array.isArray || function isArray(arg) {
- return cof(arg) == 'Array';
+ return _cof(arg) == 'Array';
};
-
-var _isArray$1 = Object.freeze({
- default: _isArray,
- __moduleExports: _isArray
-});
-
-var isArray = ( _isArray$1 && _isArray ) || _isArray$1;
-
-var SPECIES$2 = wks('species');
+var SPECIES$2 = _wks('species');
var _arraySpeciesConstructor = function (original) {
var C;
- if (isArray(original)) {
+ if (_isArray(original)) {
C = original.constructor;
// cross-realm fallback
- if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
- if (isObject(C)) {
+ if (typeof C == 'function' && (C === Array || _isArray(C.prototype))) C = undefined;
+ if (_isObject(C)) {
C = C[SPECIES$2];
if (C === null) C = undefined;
}
} return C === undefined ? Array : C;
};
-
-var _arraySpeciesConstructor$1 = Object.freeze({
- default: _arraySpeciesConstructor,
- __moduleExports: _arraySpeciesConstructor
-});
-
-var speciesConstructor$1 = ( _arraySpeciesConstructor$1 && _arraySpeciesConstructor ) || _arraySpeciesConstructor$1;
-
// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var _arraySpeciesCreate = function (original, length) {
- return new (speciesConstructor$1(original))(length);
+ return new (_arraySpeciesConstructor(original))(length);
};
-
-var _arraySpeciesCreate$1 = Object.freeze({
- default: _arraySpeciesCreate,
- __moduleExports: _arraySpeciesCreate
-});
-
-var asc = ( _arraySpeciesCreate$1 && _arraySpeciesCreate ) || _arraySpeciesCreate$1;
-
// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
@@ -1364,12 +921,12 @@ var _arrayMethods = function (TYPE, $create) {
var IS_EVERY = TYPE == 4;
var IS_FIND_INDEX = TYPE == 6;
var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
- var create = $create || asc;
+ var create = $create || _arraySpeciesCreate;
return function ($this, callbackfn, that) {
- var O = toObject($this);
- var self = IObject(O);
- var f = ctx(callbackfn, that, 3);
- var length = toLength(self.length);
+ var O = _toObject($this);
+ var self = _iobject(O);
+ var f = _ctx(callbackfn, that, 3);
+ var length = _toLength(self.length);
var index = 0;
var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
var val, res;
@@ -1390,59 +947,29 @@ var _arrayMethods = function (TYPE, $create) {
};
};
-
-var _arrayMethods$1 = Object.freeze({
- default: _arrayMethods,
- __moduleExports: _arrayMethods
-});
-
// 22.1.3.31 Array.prototype[@@unscopables]
-var UNSCOPABLES = wks('unscopables');
+var UNSCOPABLES = _wks('unscopables');
var ArrayProto$1 = Array.prototype;
-if (ArrayProto$1[UNSCOPABLES] == undefined) hide(ArrayProto$1, UNSCOPABLES, {});
+if (ArrayProto$1[UNSCOPABLES] == undefined) _hide(ArrayProto$1, UNSCOPABLES, {});
var _addToUnscopables = function (key) {
ArrayProto$1[UNSCOPABLES][key] = true;
};
-
-var _addToUnscopables$1 = Object.freeze({
- default: _addToUnscopables,
- __moduleExports: _addToUnscopables
-});
-
var _iterStep = function (done, value) {
return { value: value, done: !!done };
};
-
-var _iterStep$1 = Object.freeze({
- default: _iterStep,
- __moduleExports: _iterStep
-});
-
-var _create = ( _objectCreate$1 && _objectCreate ) || _objectCreate$1;
-
var IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
-hide(IteratorPrototype, wks('iterator'), function () { return this; });
+_hide(IteratorPrototype, _wks('iterator'), function () { return this; });
var _iterCreate = function (Constructor, NAME, next) {
- Constructor.prototype = _create(IteratorPrototype, { next: createDesc(1, next) });
- setToStringTag(Constructor, NAME + ' Iterator');
+ Constructor.prototype = _objectCreate(IteratorPrototype, { next: _propertyDesc(1, next) });
+ _setToStringTag(Constructor, NAME + ' Iterator');
};
-
-var _iterCreate$1 = Object.freeze({
- default: _iterCreate,
- __moduleExports: _iterCreate
-});
-
-var $iterCreate = ( _iterCreate$1 && _iterCreate ) || _iterCreate$1;
-
-var $getPrototypeOf = ( _objectGpo$1 && _objectGpo ) || _objectGpo$1;
-
-var ITERATOR$2 = wks('iterator');
+var ITERATOR$2 = _wks('iterator');
var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next`
var FF_ITERATOR = '@@iterator';
var KEYS = 'keys';
@@ -1451,7 +978,7 @@ var VALUES = 'values';
var returnThis = function () { return this; };
var _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) {
- $iterCreate(Constructor, NAME, next);
+ _iterCreate(Constructor, NAME, next);
var getMethod = function (kind) {
if (!BUGGY && kind in proto) return proto[kind];
switch (kind) {
@@ -1470,12 +997,12 @@ var _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORC
var methods, key, IteratorPrototype;
// Fix native
if ($anyNative) {
- IteratorPrototype = $getPrototypeOf($anyNative.call(new Base()));
+ IteratorPrototype = _objectGpo($anyNative.call(new Base()));
if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) {
// Set @@toStringTag to native iterators
- setToStringTag(IteratorPrototype, TAG, true);
+ _setToStringTag(IteratorPrototype, TAG, true);
// fix for some old engines
- if (!LIBRARY && !has(IteratorPrototype, ITERATOR$2)) hide(IteratorPrototype, ITERATOR$2, returnThis);
+ if (!_library && !_has(IteratorPrototype, ITERATOR$2)) _hide(IteratorPrototype, ITERATOR$2, returnThis);
}
}
// fix Array#{values, @@iterator}.name in V8 / FF
@@ -1484,12 +1011,12 @@ var _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORC
$default = function values() { return $native.call(this); };
}
// Define iterator
- if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR$2])) {
- hide(proto, ITERATOR$2, $default);
+ if ((!_library || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR$2])) {
+ _hide(proto, ITERATOR$2, $default);
}
// Plug for library
- Iterators[NAME] = $default;
- Iterators[TAG] = returnThis;
+ _iterators[NAME] = $default;
+ _iterators[TAG] = returnThis;
if (DEFAULT) {
methods = {
values: DEF_VALUES ? $default : getMethod(VALUES),
@@ -1497,30 +1024,18 @@ var _iterDefine = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORC
entries: $entries
};
if (FORCED) for (key in methods) {
- if (!(key in proto)) redefine(proto, key, methods[key]);
- } else $export$1($export$1.P + $export$1.F * (BUGGY || VALUES_BUG), NAME, methods);
+ if (!(key in proto)) _redefine(proto, key, methods[key]);
+ } else _export(_export.P + _export.F * (BUGGY || VALUES_BUG), NAME, methods);
}
return methods;
};
-
-var _iterDefine$1 = Object.freeze({
- default: _iterDefine,
- __moduleExports: _iterDefine
-});
-
-var require$$1 = ( _addToUnscopables$1 && _addToUnscopables ) || _addToUnscopables$1;
-
-var step = ( _iterStep$1 && _iterStep ) || _iterStep$1;
-
-var $iterDefine = ( _iterDefine$1 && _iterDefine ) || _iterDefine$1;
-
// 22.1.3.4 Array.prototype.entries()
// 22.1.3.13 Array.prototype.keys()
// 22.1.3.29 Array.prototype.values()
// 22.1.3.30 Array.prototype[@@iterator]()
-var es6_array_iterator = $iterDefine(Array, 'Array', function (iterated, kind) {
- this._t = toIObject(iterated); // target
+var es6_array_iterator = _iterDefine(Array, 'Array', function (iterated, kind) {
+ this._t = _toIobject(iterated); // target
this._i = 0; // next index
this._k = kind; // kind
// 22.1.5.2.1 %ArrayIteratorPrototype%.next()
@@ -1530,27 +1045,21 @@ var es6_array_iterator = $iterDefine(Array, 'Array', function (iterated, kind) {
var index = this._i++;
if (!O || index >= O.length) {
this._t = undefined;
- return step(1);
+ return _iterStep(1);
}
- if (kind == 'keys') return step(0, index);
- if (kind == 'values') return step(0, O[index]);
- return step(0, [index, O[index]]);
+ if (kind == 'keys') return _iterStep(0, index);
+ if (kind == 'values') return _iterStep(0, O[index]);
+ return _iterStep(0, [index, O[index]]);
}, 'values');
// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)
-Iterators.Arguments = Iterators.Array;
+_iterators.Arguments = _iterators.Array;
-require$$1('keys');
-require$$1('values');
-require$$1('entries');
+_addToUnscopables('keys');
+_addToUnscopables('values');
+_addToUnscopables('entries');
-
-var es6_array_iterator$1 = Object.freeze({
- default: es6_array_iterator,
- __moduleExports: es6_array_iterator
-});
-
-var ITERATOR$3 = wks('iterator');
+var ITERATOR$3 = _wks('iterator');
var SAFE_CLOSING = false;
try {
@@ -1571,19 +1080,13 @@ var _iterDetect = function (exec, skipClosing) {
return safe;
};
-
-var _iterDetect$1 = Object.freeze({
- default: _iterDetect,
- __moduleExports: _iterDetect
-});
-
var _arrayCopyWithin = [].copyWithin || function copyWithin(target /* = 0 */, start /* = 0, end = @length */) {
- var O = toObject(this);
- var len = toLength(O.length);
- var to = toAbsoluteIndex(target, len);
- var from = toAbsoluteIndex(start, len);
+ var O = _toObject(this);
+ var len = _toLength(O.length);
+ var to = _toAbsoluteIndex(target, len);
+ var from = _toAbsoluteIndex(start, len);
var end = arguments.length > 2 ? arguments[2] : undefined;
- var count = Math.min((end === undefined ? len : toAbsoluteIndex(end, len)) - from, len - to);
+ var count = Math.min((end === undefined ? len : _toAbsoluteIndex(end, len)) - from, len - to);
var inc = 1;
if (from < to && to < from + count) {
inc = -1;
@@ -1598,103 +1101,67 @@ var _arrayCopyWithin = [].copyWithin || function copyWithin(target /* = 0 */, st
} return O;
};
-
-var _arrayCopyWithin$1 = Object.freeze({
- default: _arrayCopyWithin,
- __moduleExports: _arrayCopyWithin
-});
-
var f$2 = {}.propertyIsEnumerable;
var _objectPie = {
f: f$2
};
-
-var _objectPie$1 = Object.freeze({
- default: _objectPie,
- __moduleExports: _objectPie,
- f: f$2
-});
-
-var require$$0$6 = ( _objectPie$1 && _objectPie ) || _objectPie$1;
-
var gOPD = Object.getOwnPropertyDescriptor;
-var f$3 = require$$0$1 ? gOPD : function getOwnPropertyDescriptor(O, P) {
- O = toIObject(O);
- P = toPrimitive(P, true);
- if (IE8_DOM_DEFINE) try {
+var f$3 = _descriptors ? gOPD : function getOwnPropertyDescriptor(O, P) {
+ O = _toIobject(O);
+ P = _toPrimitive(P, true);
+ if (_ie8DomDefine) try {
return gOPD(O, P);
} catch (e) { /* empty */ }
- if (has(O, P)) return createDesc(!require$$0$6.f.call(O, P), O[P]);
+ if (_has(O, P)) return _propertyDesc(!_objectPie.f.call(O, P), O[P]);
};
var _objectGopd = {
f: f$3
};
-
-var _objectGopd$1 = Object.freeze({
- default: _objectGopd,
- __moduleExports: _objectGopd,
- f: f$3
-});
-
-var isArrayIter = ( _isArrayIter$1 && _isArrayIter ) || _isArrayIter$1;
-
-var getIterFn = ( core_getIteratorMethod$1 && core_getIteratorMethod ) || core_getIteratorMethod$1;
-
-var require$$0$7 = ( _arrayMethods$1 && _arrayMethods ) || _arrayMethods$1;
-
-var $iterators = ( es6_array_iterator$1 && es6_array_iterator ) || es6_array_iterator$1;
-
-var require$$0$8 = ( _iterDetect$1 && _iterDetect ) || _iterDetect$1;
-
-var require$$0$9 = ( _arrayCopyWithin$1 && _arrayCopyWithin ) || _arrayCopyWithin$1;
-
-var gOPD$1 = ( _objectGopd$1 && _objectGopd ) || _objectGopd$1;
-
var _typedArray = createCommonjsModule(function (module) {
-if (require$$0$1) {
- var LIBRARY$$1 = LIBRARY;
- var global = global$1;
- var fails = require$$0;
- var $export = $export$1;
- var $typed = require$$5;
- var $buffer = require$$6;
- var ctx$$1 = ctx;
- var anInstance$$1 = anInstance;
- var propertyDesc = createDesc;
- var hide$$1 = hide;
- var redefineAll = require$$3;
- var toInteger$$1 = toInteger;
- var toLength$$1 = toLength;
- var toIndex = require$$14;
- var toAbsoluteIndex$$1 = toAbsoluteIndex;
- var toPrimitive$$1 = toPrimitive;
- var has$$1 = has;
- var classof$$1 = classof;
- var isObject$$1 = isObject;
- var toObject$$1 = toObject;
- var isArrayIter$$1 = isArrayIter;
- var create = _create;
- var getPrototypeOf = $getPrototypeOf;
- var gOPN = require$$0$4.f;
- var getIterFn$$1 = getIterFn;
- var uid$$1 = uid;
- var wks$$1 = wks;
- var createArrayMethod = require$$0$7;
- var createArrayIncludes = require$$0$2;
- var speciesConstructor$$1 = speciesConstructor;
- var ArrayIterators = $iterators;
- var Iterators$$1 = Iterators;
- var $iterDetect = require$$0$8;
- var setSpecies = require$$5$1;
- var arrayFill = require$$0$5;
- var arrayCopyWithin = require$$0$9;
- var $DP = $defineProperty;
- var $GOPD = gOPD$1;
+if (_descriptors) {
+ var LIBRARY = _library;
+ var global = _global;
+ var fails = _fails;
+ var $export = _export;
+ var $typed = _typed;
+ var $buffer = _typedBuffer;
+ var ctx = _ctx;
+ var anInstance = _anInstance;
+ var propertyDesc = _propertyDesc;
+ var hide = _hide;
+ var redefineAll = _redefineAll;
+ var toInteger = _toInteger;
+ var toLength = _toLength;
+ var toIndex = _toIndex;
+ var toAbsoluteIndex = _toAbsoluteIndex;
+ var toPrimitive = _toPrimitive;
+ var has = _has;
+ var classof = _classof;
+ var isObject = _isObject;
+ var toObject = _toObject;
+ var isArrayIter = _isArrayIter;
+ var create = _objectCreate;
+ var getPrototypeOf = _objectGpo;
+ var gOPN = _objectGopn.f;
+ var getIterFn = core_getIteratorMethod;
+ var uid = _uid;
+ var wks = _wks;
+ var createArrayMethod = _arrayMethods;
+ var createArrayIncludes = _arrayIncludes;
+ var speciesConstructor = _speciesConstructor;
+ var ArrayIterators = es6_array_iterator;
+ var Iterators = _iterators;
+ var $iterDetect = _iterDetect;
+ var setSpecies = _setSpecies;
+ var arrayFill = _arrayFill;
+ var arrayCopyWithin = _arrayCopyWithin;
+ var $DP = _objectDp;
+ var $GOPD = _objectGopd;
var dP = $DP.f;
var gOPD = $GOPD.f;
var RangeError = global.RangeError;
@@ -1726,17 +1193,17 @@ if (require$$0$1) {
var arraySlice = ArrayProto.slice;
var arrayToString = ArrayProto.toString;
var arrayToLocaleString = ArrayProto.toLocaleString;
- var ITERATOR = wks$$1('iterator');
- var TAG = wks$$1('toStringTag');
- var TYPED_CONSTRUCTOR = uid$$1('typed_constructor');
- var DEF_CONSTRUCTOR = uid$$1('def_constructor');
+ var ITERATOR = wks('iterator');
+ var TAG = wks('toStringTag');
+ var TYPED_CONSTRUCTOR = uid('typed_constructor');
+ var DEF_CONSTRUCTOR = uid('def_constructor');
var ALL_CONSTRUCTORS = $typed.CONSTR;
var TYPED_ARRAY = $typed.TYPED;
var VIEW = $typed.VIEW;
var WRONG_LENGTH = 'Wrong length!';
var $map = createArrayMethod(1, function (O, length) {
- return allocate(speciesConstructor$$1(O, O[DEF_CONSTRUCTOR]), length);
+ return allocate(speciesConstructor(O, O[DEF_CONSTRUCTOR]), length);
});
var LITTLE_ENDIAN = fails(function () {
@@ -1749,24 +1216,24 @@ if (require$$0$1) {
});
var toOffset = function (it, BYTES) {
- var offset = toInteger$$1(it);
+ var offset = toInteger(it);
if (offset < 0 || offset % BYTES) throw RangeError('Wrong offset!');
return offset;
};
var validate = function (it) {
- if (isObject$$1(it) && TYPED_ARRAY in it) return it;
+ if (isObject(it) && TYPED_ARRAY in it) return it;
throw TypeError(it + ' is not a typed array!');
};
var allocate = function (C, length) {
- if (!(isObject$$1(C) && TYPED_CONSTRUCTOR in C)) {
+ if (!(isObject(C) && TYPED_CONSTRUCTOR in C)) {
throw TypeError('It is not a typed array constructor!');
} return new C(length);
};
var speciesFromList = function (O, list) {
- return fromList(speciesConstructor$$1(O, O[DEF_CONSTRUCTOR]), list);
+ return fromList(speciesConstructor(O, O[DEF_CONSTRUCTOR]), list);
};
var fromList = function (C, list) {
@@ -1782,19 +1249,19 @@ if (require$$0$1) {
};
var $from = function from(source /* , mapfn, thisArg */) {
- var O = toObject$$1(source);
+ var O = toObject(source);
var aLen = arguments.length;
var mapfn = aLen > 1 ? arguments[1] : undefined;
var mapping = mapfn !== undefined;
- var iterFn = getIterFn$$1(O);
+ var iterFn = getIterFn(O);
var i, length, values, result, step, iterator;
- if (iterFn != undefined && !isArrayIter$$1(iterFn)) {
+ if (iterFn != undefined && !isArrayIter(iterFn)) {
for (iterator = iterFn.call(O), values = [], i = 0; !(step = iterator.next()).done; i++) {
values.push(step.value);
} O = values;
}
- if (mapping && aLen > 2) mapfn = ctx$$1(mapfn, arguments[2], 2);
- for (i = 0, length = toLength$$1(O.length), result = allocate(this, length); length > i; i++) {
+ if (mapping && aLen > 2) mapfn = ctx(mapfn, arguments[2], 2);
+ for (i = 0, length = toLength(O.length), result = allocate(this, length); length > i; i++) {
result[i] = mapping ? mapfn(O[i], i) : O[i];
}
return result;
@@ -1880,11 +1347,11 @@ if (require$$0$1) {
subarray: function subarray(begin, end) {
var O = validate(this);
var length = O.length;
- var $begin = toAbsoluteIndex$$1(begin, length);
- return new (speciesConstructor$$1(O, O[DEF_CONSTRUCTOR]))(
+ var $begin = toAbsoluteIndex(begin, length);
+ return new (speciesConstructor(O, O[DEF_CONSTRUCTOR]))(
O.buffer,
O.byteOffset + $begin * O.BYTES_PER_ELEMENT,
- toLength$$1((end === undefined ? length : toAbsoluteIndex$$1(end, length)) - $begin)
+ toLength((end === undefined ? length : toAbsoluteIndex(end, length)) - $begin)
);
}
};
@@ -1897,14 +1364,14 @@ if (require$$0$1) {
validate(this);
var offset = toOffset(arguments[1], 1);
var length = this.length;
- var src = toObject$$1(arrayLike);
- var len = toLength$$1(src.length);
+ var src = toObject(arrayLike);
+ var len = toLength(src.length);
var index = 0;
if (len + offset > length) throw RangeError(WRONG_LENGTH);
while (index < len) this[offset + index] = src[index++];
};
- var $iterators$$1 = {
+ var $iterators = {
entries: function entries() {
return arrayEntries.call(validate(this));
},
@@ -1917,27 +1384,27 @@ if (require$$0$1) {
};
var isTAIndex = function (target, key) {
- return isObject$$1(target)
+ return isObject(target)
&& target[TYPED_ARRAY]
&& typeof key != 'symbol'
&& key in target
&& String(+key) == String(key);
};
var $getDesc = function getOwnPropertyDescriptor(target, key) {
- return isTAIndex(target, key = toPrimitive$$1(key, true))
+ return isTAIndex(target, key = toPrimitive(key, true))
? propertyDesc(2, target[key])
: gOPD(target, key);
};
var $setDesc = function defineProperty(target, key, desc) {
- if (isTAIndex(target, key = toPrimitive$$1(key, true))
- && isObject$$1(desc)
- && has$$1(desc, 'value')
- && !has$$1(desc, 'get')
- && !has$$1(desc, 'set')
+ if (isTAIndex(target, key = toPrimitive(key, true))
+ && isObject(desc)
+ && has(desc, 'value')
+ && !has(desc, 'get')
+ && !has(desc, 'set')
// TODO: add validation descriptor w/o calling accessors
&& !desc.configurable
- && (!has$$1(desc, 'writable') || desc.writable)
- && (!has$$1(desc, 'enumerable') || desc.enumerable)
+ && (!has(desc, 'writable') || desc.writable)
+ && (!has(desc, 'enumerable') || desc.enumerable)
) {
target[key] = desc.value;
return target;
@@ -1961,8 +1428,8 @@ if (require$$0$1) {
}
var $TypedArrayPrototype$ = redefineAll({}, proto);
- redefineAll($TypedArrayPrototype$, $iterators$$1);
- hide$$1($TypedArrayPrototype$, ITERATOR, $iterators$$1.values);
+ redefineAll($TypedArrayPrototype$, $iterators);
+ hide($TypedArrayPrototype$, ITERATOR, $iterators.values);
redefineAll($TypedArrayPrototype$, {
slice: $slice,
set: $set,
@@ -2012,15 +1479,15 @@ if (require$$0$1) {
};
if (FORCED) {
TypedArray = wrapper(function (that, data, $offset, $length) {
- anInstance$$1(that, TypedArray, NAME, '_d');
+ anInstance(that, TypedArray, NAME, '_d');
var index = 0;
var offset = 0;
var buffer, byteLength, length, klass;
- if (!isObject$$1(data)) {
+ if (!isObject(data)) {
length = toIndex(data);
byteLength = length * BYTES;
buffer = new $ArrayBuffer(byteLength);
- } else if (data instanceof $ArrayBuffer || (klass = classof$$1(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
+ } else if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
buffer = data;
offset = toOffset($offset, BYTES);
var $len = data.byteLength;
@@ -2029,7 +1496,7 @@ if (require$$0$1) {
byteLength = $len - offset;
if (byteLength < 0) throw RangeError(WRONG_LENGTH);
} else {
- byteLength = toLength$$1($length) * BYTES;
+ byteLength = toLength($length) * BYTES;
if (byteLength + offset > $len) throw RangeError(WRONG_LENGTH);
}
length = byteLength / BYTES;
@@ -2038,7 +1505,7 @@ if (require$$0$1) {
} else {
return $from.call(TypedArray, data);
}
- hide$$1(that, '_d', {
+ hide(that, '_d', {
b: buffer,
o: offset,
l: byteLength,
@@ -2048,7 +1515,7 @@ if (require$$0$1) {
while (index < length) addElement(that, index++);
});
TypedArrayPrototype = TypedArray[PROTOTYPE] = create($TypedArrayPrototype$);
- hide$$1(TypedArrayPrototype, 'constructor', TypedArray);
+ hide(TypedArrayPrototype, 'constructor', TypedArray);
} else if (!fails(function () {
TypedArray(1);
}) || !fails(function () {
@@ -2060,12 +1527,12 @@ if (require$$0$1) {
new TypedArray(iter); // eslint-disable-line no-new
}, true)) {
TypedArray = wrapper(function (that, data, $offset, $length) {
- anInstance$$1(that, TypedArray, NAME);
+ anInstance(that, TypedArray, NAME);
var klass;
// `ws` module bug, temporarily remove validation length for Uint8Array
// https://github.com/websockets/ws/pull/645
- if (!isObject$$1(data)) return new Base(toIndex(data));
- if (data instanceof $ArrayBuffer || (klass = classof$$1(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
+ if (!isObject(data)) return new Base(toIndex(data));
+ if (data instanceof $ArrayBuffer || (klass = classof(data)) == ARRAY_BUFFER || klass == SHARED_BUFFER) {
return $length !== undefined
? new Base(data, toOffset($offset, BYTES), $length)
: $offset !== undefined
@@ -2076,19 +1543,19 @@ if (require$$0$1) {
return $from.call(TypedArray, data);
});
arrayForEach(TAC !== Function.prototype ? gOPN(Base).concat(gOPN(TAC)) : gOPN(Base), function (key) {
- if (!(key in TypedArray)) hide$$1(TypedArray, key, Base[key]);
+ if (!(key in TypedArray)) hide(TypedArray, key, Base[key]);
});
TypedArray[PROTOTYPE] = TypedArrayPrototype;
- if (!LIBRARY$$1) TypedArrayPrototype.constructor = TypedArray;
+ if (!LIBRARY) TypedArrayPrototype.constructor = TypedArray;
}
var $nativeIterator = TypedArrayPrototype[ITERATOR];
var CORRECT_ITER_NAME = !!$nativeIterator
&& ($nativeIterator.name == 'values' || $nativeIterator.name == undefined);
- var $iterator = $iterators$$1.values;
- hide$$1(TypedArray, TYPED_CONSTRUCTOR, true);
- hide$$1(TypedArrayPrototype, TYPED_ARRAY, NAME);
- hide$$1(TypedArrayPrototype, VIEW, true);
- hide$$1(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
+ var $iterator = $iterators.values;
+ hide(TypedArray, TYPED_CONSTRUCTOR, true);
+ hide(TypedArrayPrototype, TYPED_ARRAY, NAME);
+ hide(TypedArrayPrototype, VIEW, true);
+ hide(TypedArrayPrototype, DEF_CONSTRUCTOR, TypedArray);
if (CLAMPED ? new TypedArray(1)[TAG] != NAME : !(TAG in TypedArrayPrototype)) {
dP(TypedArrayPrototype, TAG, {
@@ -2109,7 +1576,7 @@ if (require$$0$1) {
of: $of
});
- if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide$$1(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
+ if (!(BYTES_PER_ELEMENT in TypedArrayPrototype)) hide(TypedArrayPrototype, BYTES_PER_ELEMENT, BYTES);
$export($export.P, NAME, proto);
@@ -2117,9 +1584,9 @@ if (require$$0$1) {
$export($export.P + $export.F * FORCED_SET, NAME, { set: $set });
- $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators$$1);
+ $export($export.P + $export.F * !CORRECT_ITER_NAME, NAME, $iterators);
- if (!LIBRARY$$1 && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;
+ if (!LIBRARY && TypedArrayPrototype.toString != arrayToString) TypedArrayPrototype.toString = arrayToString;
$export($export.P + $export.F * fails(function () {
new TypedArray(1).slice();
@@ -2131,69 +1598,61 @@ if (require$$0$1) {
TypedArrayPrototype.toLocaleString.call([1, 2]);
})), NAME, { toLocaleString: $toLocaleString });
- Iterators$$1[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
- if (!LIBRARY$$1 && !CORRECT_ITER_NAME) hide$$1(TypedArrayPrototype, ITERATOR, $iterator);
+ Iterators[NAME] = CORRECT_ITER_NAME ? $nativeIterator : $iterator;
+ if (!LIBRARY && !CORRECT_ITER_NAME) hide(TypedArrayPrototype, ITERATOR, $iterator);
};
} else module.exports = function () { /* empty */ };
});
-
-var _typedArray$1 = Object.freeze({
- default: _typedArray,
- __moduleExports: _typedArray
-});
-
-var require$$0$10 = ( _typedArray$1 && _typedArray ) || _typedArray$1;
-
-require$$0$10('Int8', 1, function (init) {
+_typedArray('Int8', 1, function (init) {
return function Int8Array(data, byteOffset, length) {
return init(this, data, byteOffset, length);
};
});
-require$$0$10('Uint8', 1, function (init) {
+_typedArray('Uint8', 1, function (init) {
return function Uint8Array(data, byteOffset, length) {
return init(this, data, byteOffset, length);
};
});
-require$$0$10('Uint8', 1, function (init) {
+_typedArray('Uint8', 1, function (init) {
return function Uint8ClampedArray(data, byteOffset, length) {
return init(this, data, byteOffset, length);
};
}, true);
-require$$0$10('Int16', 2, function (init) {
+_typedArray('Int16', 2, function (init) {
return function Int16Array(data, byteOffset, length) {
return init(this, data, byteOffset, length);
};
});
-require$$0$10('Uint16', 2, function (init) {
+_typedArray('Uint16', 2, function (init) {
return function Uint16Array(data, byteOffset, length) {
return init(this, data, byteOffset, length);
};
});
-require$$0$10('Int32', 4, function (init) {
+_typedArray('Int32', 4, function (init) {
return function Int32Array(data, byteOffset, length) {
return init(this, data, byteOffset, length);
};
});
-require$$0$10('Uint32', 4, function (init) {
+_typedArray('Uint32', 4, function (init) {
return function Uint32Array(data, byteOffset, length) {
return init(this, data, byteOffset, length);
};
});
-require$$0$10('Float32', 4, function (init) {
+_typedArray('Float32', 4, function (init) {
return function Float32Array(data, byteOffset, length) {
return init(this, data, byteOffset, length);
};
});
-require$$0$10('Float64', 8, function (init) {
+_typedArray('Float64', 8, function (init) {
return function Float64Array(data, byteOffset, length) {
return init(this, data, byteOffset, length);
};
@@ -2203,38 +1662,30 @@ require$$0$10('Float64', 8, function (init) {
var _iterCall = function (iterator, fn, value, entries) {
try {
- return entries ? fn(anObject(value)[0], value[1]) : fn(value);
+ return entries ? fn(_anObject(value)[0], value[1]) : fn(value);
// 7.4.6 IteratorClose(iterator, completion)
} catch (e) {
var ret = iterator['return'];
- if (ret !== undefined) anObject(ret.call(iterator));
+ if (ret !== undefined) _anObject(ret.call(iterator));
throw e;
}
};
-
-var _iterCall$1 = Object.freeze({
- default: _iterCall,
- __moduleExports: _iterCall
-});
-
-var call = ( _iterCall$1 && _iterCall ) || _iterCall$1;
-
var _forOf = createCommonjsModule(function (module) {
var BREAK = {};
var RETURN = {};
var exports = module.exports = function (iterable, entries, fn, that, ITERATOR) {
- var iterFn = ITERATOR ? function () { return iterable; } : getIterFn(iterable);
- var f = ctx(fn, that, entries ? 2 : 1);
+ var iterFn = ITERATOR ? function () { return iterable; } : core_getIteratorMethod(iterable);
+ var f = _ctx(fn, that, entries ? 2 : 1);
var index = 0;
var length, step, iterator, result;
if (typeof iterFn != 'function') throw TypeError(iterable + ' is not iterable!');
// fast case for arrays with default iterator
- if (isArrayIter(iterFn)) for (length = toLength(iterable.length); length > index; index++) {
- result = entries ? f(anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
+ if (_isArrayIter(iterFn)) for (length = _toLength(iterable.length); length > index; index++) {
+ result = entries ? f(_anObject(step = iterable[index])[0], step[1]) : f(iterable[index]);
if (result === BREAK || result === RETURN) return result;
} else for (iterator = iterFn.call(iterable); !(step = iterator.next()).done;) {
- result = call(iterator, f, step.value, entries);
+ result = _iterCall(iterator, f, step.value, entries);
if (result === BREAK || result === RETURN) return result;
}
};
@@ -2242,22 +1693,16 @@ exports.BREAK = BREAK;
exports.RETURN = RETURN;
});
-
-var _forOf$1 = Object.freeze({
- default: _forOf,
- __moduleExports: _forOf
-});
-
var _meta = createCommonjsModule(function (module) {
-var META = uid('meta');
+var META = _uid('meta');
-var setDesc = $defineProperty.f;
+var setDesc = _objectDp.f;
var id = 0;
var isExtensible = Object.isExtensible || function () {
return true;
};
-var FREEZE = !require$$0(function () {
+var FREEZE = !_fails(function () {
return isExtensible(Object.preventExtensions({}));
});
var setMeta = function (it) {
@@ -2268,8 +1713,8 @@ var setMeta = function (it) {
};
var fastKey = function (it, create) {
// return primitive with prefix
- if (!isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
- if (!has(it, META)) {
+ if (!_isObject(it)) return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;
+ if (!_has(it, META)) {
// can't set metadata to uncaught frozen object
if (!isExtensible(it)) return 'F';
// not necessary to add metadata
@@ -2280,7 +1725,7 @@ var fastKey = function (it, create) {
} return it[META].i;
};
var getWeak = function (it, create) {
- if (!has(it, META)) {
+ if (!_has(it, META)) {
// can't set metadata to uncaught frozen object
if (!isExtensible(it)) return true;
// not necessary to add metadata
@@ -2292,7 +1737,7 @@ var getWeak = function (it, create) {
};
// add metadata on freeze-family methods calling
var onFreeze = function (it) {
- if (FREEZE && meta.NEED && isExtensible(it) && !has(it, META)) setMeta(it);
+ if (FREEZE && meta.NEED && isExtensible(it) && !_has(it, META)) setMeta(it);
return it;
};
var meta = module.exports = {
@@ -2309,47 +1754,24 @@ var _meta_3 = _meta.fastKey;
var _meta_4 = _meta.getWeak;
var _meta_5 = _meta.onFreeze;
-
-var _meta$1 = Object.freeze({
- default: _meta,
- __moduleExports: _meta,
- KEY: _meta_1,
- NEED: _meta_2,
- fastKey: _meta_3,
- getWeak: _meta_4,
- onFreeze: _meta_5
-});
-
var _validateCollection = function (it, TYPE) {
- if (!isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
+ if (!_isObject(it) || it._t !== TYPE) throw TypeError('Incompatible receiver, ' + TYPE + ' required!');
return it;
};
+var dP$1 = _objectDp.f;
-var _validateCollection$1 = Object.freeze({
- default: _validateCollection,
- __moduleExports: _validateCollection
-});
-
-var forOf = ( _forOf$1 && _forOf ) || _forOf$1;
-
-var require$$0$11 = ( _meta$1 && _meta ) || _meta$1;
-var validate = ( _validateCollection$1 && _validateCollection ) || _validateCollection$1;
-var dP$1 = $defineProperty.f;
+var fastKey = _meta.fastKey;
-
-
-var fastKey = require$$0$11.fastKey;
-
-var SIZE = require$$0$1 ? '_s' : 'size';
+var SIZE = _descriptors ? '_s' : 'size';
var getEntry = function (that, key) {
// fast case
@@ -2365,19 +1787,19 @@ var getEntry = function (that, key) {
var _collectionStrong = {
getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
var C = wrapper(function (that, iterable) {
- anInstance(that, C, NAME, '_i');
+ _anInstance(that, C, NAME, '_i');
that._t = NAME; // collection type
- that._i = _create(null); // index
+ that._i = _objectCreate(null); // index
that._f = undefined; // first entry
that._l = undefined; // last entry
that[SIZE] = 0; // size
- if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
});
- require$$3(C.prototype, {
+ _redefineAll(C.prototype, {
// 23.1.3.1 Map.prototype.clear()
// 23.2.3.2 Set.prototype.clear()
clear: function clear() {
- for (var that = validate(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
+ for (var that = _validateCollection(this, NAME), data = that._i, entry = that._f; entry; entry = entry.n) {
entry.r = true;
if (entry.p) entry.p = entry.p.n = undefined;
delete data[entry.i];
@@ -2388,7 +1810,7 @@ var _collectionStrong = {
// 23.1.3.3 Map.prototype.delete(key)
// 23.2.3.4 Set.prototype.delete(value)
'delete': function (key) {
- var that = validate(this, NAME);
+ var that = _validateCollection(this, NAME);
var entry = getEntry(that, key);
if (entry) {
var next = entry.n;
@@ -2405,8 +1827,8 @@ var _collectionStrong = {
// 23.2.3.6 Set.prototype.forEach(callbackfn, thisArg = undefined)
// 23.1.3.5 Map.prototype.forEach(callbackfn, thisArg = undefined)
forEach: function forEach(callbackfn /* , that = undefined */) {
- validate(this, NAME);
- var f = ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
+ _validateCollection(this, NAME);
+ var f = _ctx(callbackfn, arguments.length > 1 ? arguments[1] : undefined, 3);
var entry;
while (entry = entry ? entry.n : this._f) {
f(entry.v, entry.k, this);
@@ -2417,12 +1839,12 @@ var _collectionStrong = {
// 23.1.3.7 Map.prototype.has(key)
// 23.2.3.7 Set.prototype.has(value)
has: function has(key) {
- return !!getEntry(validate(this, NAME), key);
+ return !!getEntry(_validateCollection(this, NAME), key);
}
});
- if (require$$0$1) dP$1(C.prototype, 'size', {
+ if (_descriptors) dP$1(C.prototype, 'size', {
get: function () {
- return validate(this, NAME)[SIZE];
+ return _validateCollection(this, NAME)[SIZE];
}
});
return C;
@@ -2454,8 +1876,8 @@ var _collectionStrong = {
setStrong: function (C, NAME, IS_MAP) {
// add .keys, .values, .entries, [@@iterator]
// 23.1.3.4, 23.1.3.8, 23.1.3.11, 23.1.3.12, 23.2.3.5, 23.2.3.8, 23.2.3.10, 23.2.3.11
- $iterDefine(C, NAME, function (iterated, kind) {
- this._t = validate(iterated, NAME); // target
+ _iterDefine(C, NAME, function (iterated, kind) {
+ this._t = _validateCollection(iterated, NAME); // target
this._k = kind; // kind
this._l = undefined; // previous
}, function () {
@@ -2468,46 +1890,32 @@ var _collectionStrong = {
if (!that._t || !(that._l = entry = entry ? entry.n : that._t._f)) {
// or finish the iteration
that._t = undefined;
- return step(1);
+ return _iterStep(1);
}
// return step by kind
- if (kind == 'keys') return step(0, entry.k);
- if (kind == 'values') return step(0, entry.v);
- return step(0, [entry.k, entry.v]);
+ if (kind == 'keys') return _iterStep(0, entry.k);
+ if (kind == 'values') return _iterStep(0, entry.v);
+ return _iterStep(0, [entry.k, entry.v]);
}, IS_MAP ? 'entries' : 'values', !IS_MAP, true);
// add [@@species], 23.1.2.2, 23.2.2.2
- require$$5$1(NAME);
+ _setSpecies(NAME);
}
};
-var _collectionStrong_1 = _collectionStrong.getConstructor;
-var _collectionStrong_2 = _collectionStrong.def;
-var _collectionStrong_3 = _collectionStrong.getEntry;
-var _collectionStrong_4 = _collectionStrong.setStrong;
-
-
-var _collectionStrong$1 = Object.freeze({
- default: _collectionStrong,
- __moduleExports: _collectionStrong,
- getConstructor: _collectionStrong_1,
- def: _collectionStrong_2,
- getEntry: _collectionStrong_3,
- setStrong: _collectionStrong_4
-});
// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var check = function (O, proto) {
- anObject(O);
- if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
+ _anObject(O);
+ if (!_isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
var _setProto = {
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
function (test, buggy, set) {
try {
- set = ctx(Function.call, gOPD$1.f(Object.prototype, '__proto__').set, 2);
+ set = _ctx(Function.call, _objectGopd.f(Object.prototype, '__proto__').set, 2);
set(test, []);
buggy = !(test instanceof Array);
} catch (e) { buggy = true; }
@@ -2520,72 +1928,52 @@ var _setProto = {
}({}, false) : undefined),
check: check
};
-var _setProto_1 = _setProto.set;
-var _setProto_2 = _setProto.check;
-
-
-var _setProto$1 = Object.freeze({
- default: _setProto,
- __moduleExports: _setProto,
- set: _setProto_1,
- check: _setProto_2
-});
-var setProto = ( _setProto$1 && _setProto ) || _setProto$1;
-
-var setPrototypeOf = setProto.set;
+var setPrototypeOf = _setProto.set;
var _inheritIfRequired = function (that, target, C) {
var S = target.constructor;
var P;
- if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
+ if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && _isObject(P) && setPrototypeOf) {
setPrototypeOf(that, P);
} return that;
};
-
-var _inheritIfRequired$1 = Object.freeze({
- default: _inheritIfRequired,
- __moduleExports: _inheritIfRequired
-});
-
-var inheritIfRequired = ( _inheritIfRequired$1 && _inheritIfRequired ) || _inheritIfRequired$1;
-
var _collection = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
- var Base = global$1[NAME];
+ var Base = _global[NAME];
var C = Base;
var ADDER = IS_MAP ? 'set' : 'add';
var proto = C && C.prototype;
var O = {};
var fixMethod = function (KEY) {
var fn = proto[KEY];
- redefine(proto, KEY,
+ _redefine(proto, KEY,
KEY == 'delete' ? function (a) {
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
} : KEY == 'has' ? function has(a) {
- return IS_WEAK && !isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
+ return IS_WEAK && !_isObject(a) ? false : fn.call(this, a === 0 ? 0 : a);
} : KEY == 'get' ? function get(a) {
- return IS_WEAK && !isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
+ return IS_WEAK && !_isObject(a) ? undefined : fn.call(this, a === 0 ? 0 : a);
} : KEY == 'add' ? function add(a) { fn.call(this, a === 0 ? 0 : a); return this; }
: function set(a, b) { fn.call(this, a === 0 ? 0 : a, b); return this; }
);
};
- if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !require$$0(function () {
+ if (typeof C != 'function' || !(IS_WEAK || proto.forEach && !_fails(function () {
new C().entries().next();
}))) {
// create collection constructor
C = common.getConstructor(wrapper, NAME, IS_MAP, ADDER);
- require$$3(C.prototype, methods);
- require$$0$11.NEED = true;
+ _redefineAll(C.prototype, methods);
+ _meta.NEED = true;
} else {
var instance = new C();
// early implementations not supports chaining
var HASNT_CHAINING = instance[ADDER](IS_WEAK ? {} : -0, 1) != instance;
// V8 ~ Chromium 40- weak-collections throws on primitives, but should return false
- var THROWS_ON_PRIMITIVES = require$$0(function () { instance.has(1); });
+ var THROWS_ON_PRIMITIVES = _fails(function () { instance.has(1); });
// most early implementations doesn't supports iterables, most modern - not close it correctly
- var ACCEPT_ITERABLES = require$$0$8(function (iter) { new C(iter); }); // eslint-disable-line no-new
+ var ACCEPT_ITERABLES = _iterDetect(function (iter) { new C(iter); }); // eslint-disable-line no-new
// for early implementations -0 and +0 not the same
- var BUGGY_ZERO = !IS_WEAK && require$$0(function () {
+ var BUGGY_ZERO = !IS_WEAK && _fails(function () {
// V8 ~ Chromium 42- fails only with 5+ elements
var $instance = new C();
var index = 5;
@@ -2594,9 +1982,9 @@ var _collection = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
});
if (!ACCEPT_ITERABLES) {
C = wrapper(function (target, iterable) {
- anInstance(target, C, NAME);
- var that = inheritIfRequired(new Base(), target, C);
- if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+ _anInstance(target, C, NAME);
+ var that = _inheritIfRequired(new Base(), target, C);
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
return that;
});
C.prototype = proto;
@@ -2612,54 +2000,44 @@ var _collection = function (NAME, wrapper, methods, common, IS_MAP, IS_WEAK) {
if (IS_WEAK && proto.clear) delete proto.clear;
}
- setToStringTag(C, NAME);
+ _setToStringTag(C, NAME);
O[NAME] = C;
- $export$1($export$1.G + $export$1.W + $export$1.F * (C != Base), O);
+ _export(_export.G + _export.W + _export.F * (C != Base), O);
if (!IS_WEAK) common.setStrong(C, NAME, IS_MAP);
return C;
};
-
-var _collection$1 = Object.freeze({
- default: _collection,
- __moduleExports: _collection
-});
-
-var strong = ( _collectionStrong$1 && _collectionStrong ) || _collectionStrong$1;
-
-var require$$0$12 = ( _collection$1 && _collection ) || _collection$1;
-
var MAP = 'Map';
// 23.1 Map Objects
-var es6_map = require$$0$12(MAP, function (get) {
+var es6_map = _collection(MAP, function (get) {
return function Map() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.1.3.6 Map.prototype.get(key)
get: function get(key) {
- var entry = strong.getEntry(validate(this, MAP), key);
+ var entry = _collectionStrong.getEntry(_validateCollection(this, MAP), key);
return entry && entry.v;
},
// 23.1.3.9 Map.prototype.set(key, value)
set: function set(key, value) {
- return strong.def(validate(this, MAP), key === 0 ? 0 : key, value);
+ return _collectionStrong.def(_validateCollection(this, MAP), key === 0 ? 0 : key, value);
}
-}, strong, true);
+}, _collectionStrong, true);
var SET = 'Set';
// 23.2 Set Objects
-var es6_set = require$$0$12(SET, function (get) {
+var es6_set = _collection(SET, function (get) {
return function Set() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.2.3.1 Set.prototype.add(value)
add: function add(value) {
- return strong.def(validate(this, SET), value = value === 0 ? 0 : value, value);
+ return _collectionStrong.def(_validateCollection(this, SET), value = value === 0 ? 0 : value, value);
}
-}, strong);
+}, _collectionStrong);
var f$4 = Object.getOwnPropertySymbols;
@@ -2667,15 +2045,6 @@ var _objectGops = {
f: f$4
};
-
-var _objectGops$1 = Object.freeze({
- default: _objectGops,
- __moduleExports: _objectGops,
- f: f$4
-});
-
-var gOPS = ( _objectGops$1 && _objectGops ) || _objectGops$1;
-
// 19.1.2.1 Object.assign(target, source, ...)
@@ -2685,7 +2054,7 @@ var gOPS = ( _objectGops$1 && _objectGops ) || _objectGops$1;
var $assign = Object.assign;
// should work with symbols and should have deterministic property order (V8 bug)
-var _objectAssign = !$assign || require$$0(function () {
+var _objectAssign = !$assign || _fails(function () {
var A = {};
var B = {};
// eslint-disable-next-line no-undef
@@ -2695,14 +2064,14 @@ var _objectAssign = !$assign || require$$0(function () {
K.split('').forEach(function (k) { B[k] = k; });
return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;
}) ? function assign(target, source) { // eslint-disable-line no-unused-vars
- var T = toObject(target);
+ var T = _toObject(target);
var aLen = arguments.length;
var index = 1;
- var getSymbols = gOPS.f;
- var isEnum = require$$0$6.f;
+ var getSymbols = _objectGops.f;
+ var isEnum = _objectPie.f;
while (aLen > index) {
- var S = IObject(arguments[index++]);
- var keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S);
+ var S = _iobject(arguments[index++]);
+ var keys = getSymbols ? _objectKeys(S).concat(getSymbols(S)) : _objectKeys(S);
var length = keys.length;
var j = 0;
var key;
@@ -2710,13 +2079,7 @@ var _objectAssign = !$assign || require$$0(function () {
} return T;
} : $assign;
-
-var _objectAssign$1 = Object.freeze({
- default: _objectAssign,
- __moduleExports: _objectAssign
-});
-
-var getWeak = require$$0$11.getWeak;
+var getWeak = _meta.getWeak;
@@ -2724,8 +2087,8 @@ var getWeak = require$$0$11.getWeak;
-var arrayFind = require$$0$7(5);
-var arrayFindIndex = require$$0$7(6);
+var arrayFind = _arrayMethods(5);
+var arrayFindIndex = _arrayMethods(6);
var id$1 = 0;
// fallback for uncaught frozen keys
@@ -2765,59 +2128,43 @@ UncaughtFrozenStore.prototype = {
var _collectionWeak = {
getConstructor: function (wrapper, NAME, IS_MAP, ADDER) {
var C = wrapper(function (that, iterable) {
- anInstance(that, C, NAME, '_i');
+ _anInstance(that, C, NAME, '_i');
that._t = NAME; // collection type
that._i = id$1++; // collection id
that._l = undefined; // leak store for uncaught frozen objects
- if (iterable != undefined) forOf(iterable, IS_MAP, that[ADDER], that);
+ if (iterable != undefined) _forOf(iterable, IS_MAP, that[ADDER], that);
});
- require$$3(C.prototype, {
+ _redefineAll(C.prototype, {
// 23.3.3.2 WeakMap.prototype.delete(key)
// 23.4.3.3 WeakSet.prototype.delete(value)
'delete': function (key) {
- if (!isObject(key)) return false;
+ if (!_isObject(key)) return false;
var data = getWeak(key);
- if (data === true) return uncaughtFrozenStore(validate(this, NAME))['delete'](key);
- return data && has(data, this._i) && delete data[this._i];
+ if (data === true) return uncaughtFrozenStore(_validateCollection(this, NAME))['delete'](key);
+ return data && _has(data, this._i) && delete data[this._i];
},
// 23.3.3.4 WeakMap.prototype.has(key)
// 23.4.3.4 WeakSet.prototype.has(value)
- has: function has$$1(key) {
- if (!isObject(key)) return false;
+ has: function has(key) {
+ if (!_isObject(key)) return false;
var data = getWeak(key);
- if (data === true) return uncaughtFrozenStore(validate(this, NAME)).has(key);
- return data && has(data, this._i);
+ if (data === true) return uncaughtFrozenStore(_validateCollection(this, NAME)).has(key);
+ return data && _has(data, this._i);
}
});
return C;
},
def: function (that, key, value) {
- var data = getWeak(anObject(key), true);
+ var data = getWeak(_anObject(key), true);
if (data === true) uncaughtFrozenStore(that).set(key, value);
else data[that._i] = value;
return that;
},
ufstore: uncaughtFrozenStore
};
-var _collectionWeak_1 = _collectionWeak.getConstructor;
-var _collectionWeak_2 = _collectionWeak.def;
-var _collectionWeak_3 = _collectionWeak.ufstore;
-
-
-var _collectionWeak$1 = Object.freeze({
- default: _collectionWeak,
- __moduleExports: _collectionWeak,
- getConstructor: _collectionWeak_1,
- def: _collectionWeak_2,
- ufstore: _collectionWeak_3
-});
-
-var require$$0$13 = ( _objectAssign$1 && _objectAssign ) || _objectAssign$1;
-
-var weak = ( _collectionWeak$1 && _collectionWeak ) || _collectionWeak$1;
var es6_weakMap = createCommonjsModule(function (module) {
-var each = require$$0$7(0);
+var each = _arrayMethods(0);
@@ -2826,9 +2173,9 @@ var each = require$$0$7(0);
var WEAK_MAP = 'WeakMap';
-var getWeak = require$$0$11.getWeak;
+var getWeak = _meta.getWeak;
var isExtensible = Object.isExtensible;
-var uncaughtFrozenStore = weak.ufstore;
+var uncaughtFrozenStore = _collectionWeak.ufstore;
var tmp = {};
var InternalMap;
@@ -2841,32 +2188,32 @@ var wrapper = function (get) {
var methods = {
// 23.3.3.3 WeakMap.prototype.get(key)
get: function get(key) {
- if (isObject(key)) {
+ if (_isObject(key)) {
var data = getWeak(key);
- if (data === true) return uncaughtFrozenStore(validate(this, WEAK_MAP)).get(key);
+ if (data === true) return uncaughtFrozenStore(_validateCollection(this, WEAK_MAP)).get(key);
return data ? data[this._i] : undefined;
}
},
// 23.3.3.5 WeakMap.prototype.set(key, value)
set: function set(key, value) {
- return weak.def(validate(this, WEAK_MAP), key, value);
+ return _collectionWeak.def(_validateCollection(this, WEAK_MAP), key, value);
}
};
// 23.3 WeakMap Objects
-var $WeakMap = module.exports = require$$0$12(WEAK_MAP, wrapper, methods, weak, true, true);
+var $WeakMap = module.exports = _collection(WEAK_MAP, wrapper, methods, _collectionWeak, true, true);
// IE11 WeakMap frozen keys fix
-if (require$$0(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {
- InternalMap = weak.getConstructor(wrapper, WEAK_MAP);
- require$$0$13(InternalMap.prototype, methods);
- require$$0$11.NEED = true;
+if (_fails(function () { return new $WeakMap().set((Object.freeze || Object)(tmp), 7).get(tmp) != 7; })) {
+ InternalMap = _collectionWeak.getConstructor(wrapper, WEAK_MAP);
+ _objectAssign(InternalMap.prototype, methods);
+ _meta.NEED = true;
each(['delete', 'has', 'get', 'set'], function (key) {
var proto = $WeakMap.prototype;
var method = proto[key];
- redefine(proto, key, function (a, b) {
+ _redefine(proto, key, function (a, b) {
// store frozen objects on internal weakmap shim
- if (isObject(a) && !isExtensible(a)) {
+ if (_isObject(a) && !isExtensible(a)) {
if (!this._f) this._f = new InternalMap();
var result = this._f[key](a, b);
return key == 'set' ? this : result;
@@ -2880,28 +2227,28 @@ if (require$$0(function () { return new $WeakMap().set((Object.freeze || Object)
var WEAK_SET = 'WeakSet';
// 23.4 WeakSet Objects
-require$$0$12(WEAK_SET, function (get) {
+_collection(WEAK_SET, function (get) {
return function WeakSet() { return get(this, arguments.length > 0 ? arguments[0] : undefined); };
}, {
// 23.4.3.1 WeakSet.prototype.add(value)
add: function add(value) {
- return weak.def(validate(this, WEAK_SET), value, true);
+ return _collectionWeak.def(_validateCollection(this, WEAK_SET), value, true);
}
-}, weak, false, true);
+}, _collectionWeak, false, true);
// 26.1.1 Reflect.apply(target, thisArgument, argumentsList)
-var rApply = (global$1.Reflect || {}).apply;
+var rApply = (_global.Reflect || {}).apply;
var fApply = Function.apply;
// MS Edge argumentsList argument is optional
-$export$1($export$1.S + $export$1.F * !require$$0(function () {
+_export(_export.S + _export.F * !_fails(function () {
rApply(function () { /* empty */ });
}), 'Reflect', {
apply: function apply(target, thisArgument, argumentsList) {
- var T = aFunction(target);
- var L = anObject(argumentsList);
+ var T = _aFunction(target);
+ var L = _anObject(argumentsList);
return rApply ? rApply(T, thisArgument, L) : fApply.call(T, thisArgument, L);
}
});
@@ -2923,14 +2270,6 @@ var _invoke = function (fn, args, that) {
} return fn.apply(that, args);
};
-
-var _invoke$1 = Object.freeze({
- default: _invoke,
- __moduleExports: _invoke
-});
-
-var invoke = ( _invoke$1 && _invoke ) || _invoke$1;
-
var arraySlice = [].slice;
var factories = {};
@@ -2943,24 +2282,16 @@ var construct = function (F, len, args) {
};
var _bind = Function.bind || function bind(that /* , ...args */) {
- var fn = aFunction(this);
+ var fn = _aFunction(this);
var partArgs = arraySlice.call(arguments, 1);
var bound = function (/* args... */) {
var args = partArgs.concat(arraySlice.call(arguments));
- return this instanceof bound ? construct(fn, args.length, args) : invoke(fn, args, that);
+ return this instanceof bound ? construct(fn, args.length, args) : _invoke(fn, args, that);
};
- if (isObject(fn.prototype)) bound.prototype = fn.prototype;
+ if (_isObject(fn.prototype)) bound.prototype = fn.prototype;
return bound;
};
-
-var _bind$1 = Object.freeze({
- default: _bind,
- __moduleExports: _bind
-});
-
-var bind = ( _bind$1 && _bind ) || _bind$1;
-
// 26.1.2 Reflect.construct(target, argumentsList [, newTarget])
@@ -2969,23 +2300,23 @@ var bind = ( _bind$1 && _bind ) || _bind$1;
-var rConstruct = (global$1.Reflect || {}).construct;
+var rConstruct = (_global.Reflect || {}).construct;
// MS Edge supports only 2 arguments and argumentsList argument is optional
// FF Nightly sets third argument as `new.target`, but does not create `this` from it
-var NEW_TARGET_BUG = require$$0(function () {
+var NEW_TARGET_BUG = _fails(function () {
function F() { /* empty */ }
return !(rConstruct(function () { /* empty */ }, [], F) instanceof F);
});
-var ARGS_BUG = !require$$0(function () {
+var ARGS_BUG = !_fails(function () {
rConstruct(function () { /* empty */ });
});
-$export$1($export$1.S + $export$1.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
+_export(_export.S + _export.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
construct: function construct(Target, args /* , newTarget */) {
- aFunction(Target);
- anObject(args);
- var newTarget = arguments.length < 3 ? Target : aFunction(arguments[2]);
+ _aFunction(Target);
+ _anObject(args);
+ var newTarget = arguments.length < 3 ? Target : _aFunction(arguments[2]);
if (ARGS_BUG && !NEW_TARGET_BUG) return rConstruct(Target, args, newTarget);
if (Target == newTarget) {
// w/o altered newTarget, optimization for 0-4 arguments
@@ -2999,13 +2330,13 @@ $export$1($export$1.S + $export$1.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
// w/o altered newTarget, lot of arguments case
var $args = [null];
$args.push.apply($args, args);
- return new (bind.apply(Target, $args))();
+ return new (_bind.apply(Target, $args))();
}
// with altered newTarget, not support built-in constructors
var proto = newTarget.prototype;
- var instance = _create(isObject(proto) ? proto : Object.prototype);
+ var instance = _objectCreate(_isObject(proto) ? proto : Object.prototype);
var result = Function.apply.call(Target, instance, args);
- return isObject(result) ? result : instance;
+ return _isObject(result) ? result : instance;
}
});
@@ -3016,16 +2347,16 @@ $export$1($export$1.S + $export$1.F * (NEW_TARGET_BUG || ARGS_BUG), 'Reflect', {
// MS Edge has broken Reflect.defineProperty - throwing instead of returning false
-$export$1($export$1.S + $export$1.F * require$$0(function () {
+_export(_export.S + _export.F * _fails(function () {
// eslint-disable-next-line no-undef
- Reflect.defineProperty($defineProperty.f({}, 1, { value: 1 }), 1, { value: 2 });
+ Reflect.defineProperty(_objectDp.f({}, 1, { value: 1 }), 1, { value: 2 });
}), 'Reflect', {
defineProperty: function defineProperty(target, propertyKey, attributes) {
- anObject(target);
- propertyKey = toPrimitive(propertyKey, true);
- anObject(attributes);
+ _anObject(target);
+ propertyKey = _toPrimitive(propertyKey, true);
+ _anObject(attributes);
try {
- $defineProperty.f(target, propertyKey, attributes);
+ _objectDp.f(target, propertyKey, attributes);
return true;
} catch (e) {
return false;
@@ -3035,12 +2366,12 @@ $export$1($export$1.S + $export$1.F * require$$0(function () {
// 26.1.4 Reflect.deleteProperty(target, propertyKey)
-var gOPD$2 = gOPD$1.f;
+var gOPD$1 = _objectGopd.f;
-$export$1($export$1.S, 'Reflect', {
+_export(_export.S, 'Reflect', {
deleteProperty: function deleteProperty(target, propertyKey) {
- var desc = gOPD$2(anObject(target), propertyKey);
+ var desc = gOPD$1(_anObject(target), propertyKey);
return desc && !desc.configurable ? false : delete target[propertyKey];
}
});
@@ -3056,25 +2387,25 @@ $export$1($export$1.S, 'Reflect', {
function get(target, propertyKey /* , receiver */) {
var receiver = arguments.length < 3 ? target : arguments[2];
var desc, proto;
- if (anObject(target) === receiver) return target[propertyKey];
- if (desc = gOPD$1.f(target, propertyKey)) return has(desc, 'value')
+ if (_anObject(target) === receiver) return target[propertyKey];
+ if (desc = _objectGopd.f(target, propertyKey)) return _has(desc, 'value')
? desc.value
: desc.get !== undefined
? desc.get.call(receiver)
: undefined;
- if (isObject(proto = $getPrototypeOf(target))) return get(proto, propertyKey, receiver);
+ if (_isObject(proto = _objectGpo(target))) return get(proto, propertyKey, receiver);
}
-$export$1($export$1.S, 'Reflect', { get: get });
+_export(_export.S, 'Reflect', { get: get });
// 26.1.7 Reflect.getOwnPropertyDescriptor(target, propertyKey)
-$export$1($export$1.S, 'Reflect', {
+_export(_export.S, 'Reflect', {
getOwnPropertyDescriptor: function getOwnPropertyDescriptor(target, propertyKey) {
- return gOPD$1.f(anObject(target), propertyKey);
+ return _objectGopd.f(_anObject(target), propertyKey);
}
});
@@ -3083,16 +2414,16 @@ $export$1($export$1.S, 'Reflect', {
-$export$1($export$1.S, 'Reflect', {
+_export(_export.S, 'Reflect', {
getPrototypeOf: function getPrototypeOf(target) {
- return $getPrototypeOf(anObject(target));
+ return _objectGpo(_anObject(target));
}
});
// 26.1.9 Reflect.has(target, propertyKey)
-$export$1($export$1.S, 'Reflect', {
+_export(_export.S, 'Reflect', {
has: function has(target, propertyKey) {
return propertyKey in target;
}
@@ -3103,9 +2434,9 @@ $export$1($export$1.S, 'Reflect', {
var $isExtensible = Object.isExtensible;
-$export$1($export$1.S, 'Reflect', {
+_export(_export.S, 'Reflect', {
isExtensible: function isExtensible(target) {
- anObject(target);
+ _anObject(target);
return $isExtensible ? $isExtensible(target) : true;
}
});
@@ -3114,34 +2445,26 @@ $export$1($export$1.S, 'Reflect', {
-var Reflect$1 = global$1.Reflect;
+var Reflect$1 = _global.Reflect;
var _ownKeys = Reflect$1 && Reflect$1.ownKeys || function ownKeys(it) {
- var keys = require$$0$4.f(anObject(it));
- var getSymbols = gOPS.f;
+ var keys = _objectGopn.f(_anObject(it));
+ var getSymbols = _objectGops.f;
return getSymbols ? keys.concat(getSymbols(it)) : keys;
};
-
-var _ownKeys$1 = Object.freeze({
- default: _ownKeys,
- __moduleExports: _ownKeys
-});
-
-var ownKeys = ( _ownKeys$1 && _ownKeys ) || _ownKeys$1;
-
// 26.1.11 Reflect.ownKeys(target)
-$export$1($export$1.S, 'Reflect', { ownKeys: ownKeys });
+_export(_export.S, 'Reflect', { ownKeys: _ownKeys });
// 26.1.12 Reflect.preventExtensions(target)
var $preventExtensions = Object.preventExtensions;
-$export$1($export$1.S, 'Reflect', {
+_export(_export.S, 'Reflect', {
preventExtensions: function preventExtensions(target) {
- anObject(target);
+ _anObject(target);
try {
if ($preventExtensions) $preventExtensions(target);
return true;
@@ -3163,35 +2486,35 @@ $export$1($export$1.S, 'Reflect', {
function set(target, propertyKey, V /* , receiver */) {
var receiver = arguments.length < 4 ? target : arguments[3];
- var ownDesc = gOPD$1.f(anObject(target), propertyKey);
+ var ownDesc = _objectGopd.f(_anObject(target), propertyKey);
var existingDescriptor, proto;
if (!ownDesc) {
- if (isObject(proto = $getPrototypeOf(target))) {
+ if (_isObject(proto = _objectGpo(target))) {
return set(proto, propertyKey, V, receiver);
}
- ownDesc = createDesc(0);
+ ownDesc = _propertyDesc(0);
}
- if (has(ownDesc, 'value')) {
- if (ownDesc.writable === false || !isObject(receiver)) return false;
- existingDescriptor = gOPD$1.f(receiver, propertyKey) || createDesc(0);
+ if (_has(ownDesc, 'value')) {
+ if (ownDesc.writable === false || !_isObject(receiver)) return false;
+ existingDescriptor = _objectGopd.f(receiver, propertyKey) || _propertyDesc(0);
existingDescriptor.value = V;
- $defineProperty.f(receiver, propertyKey, existingDescriptor);
+ _objectDp.f(receiver, propertyKey, existingDescriptor);
return true;
}
return ownDesc.set === undefined ? false : (ownDesc.set.call(receiver, V), true);
}
-$export$1($export$1.S, 'Reflect', { set: set });
+_export(_export.S, 'Reflect', { set: set });
// 26.1.14 Reflect.setPrototypeOf(target, proto)
-if (setProto) $export$1($export$1.S, 'Reflect', {
+if (_setProto) _export(_export.S, 'Reflect', {
setPrototypeOf: function setPrototypeOf(target, proto) {
- setProto.check(target, proto);
+ _setProto.check(target, proto);
try {
- setProto.set(target, proto);
+ _setProto.set(target, proto);
return true;
} catch (e) {
return false;
@@ -3199,11 +2522,11 @@ if (setProto) $export$1($export$1.S, 'Reflect', {
}
});
-var process = global$1.process;
-var setTask = global$1.setImmediate;
-var clearTask = global$1.clearImmediate;
-var MessageChannel = global$1.MessageChannel;
-var Dispatch = global$1.Dispatch;
+var process = _global.process;
+var setTask = _global.setImmediate;
+var clearTask = _global.clearImmediate;
+var MessageChannel = _global.MessageChannel;
+var Dispatch = _global.Dispatch;
var counter = 0;
var queue = {};
var ONREADYSTATECHANGE = 'onreadystatechange';
@@ -3228,7 +2551,7 @@ if (!setTask || !clearTask) {
while (arguments.length > i) args.push(arguments[i++]);
queue[++counter] = function () {
// eslint-disable-next-line no-new-func
- invoke(typeof fn == 'function' ? fn : Function(fn), args);
+ _invoke(typeof fn == 'function' ? fn : Function(fn), args);
};
defer(counter);
return counter;
@@ -3237,40 +2560,40 @@ if (!setTask || !clearTask) {
delete queue[id];
};
// Node.js 0.8-
- if (cof(process) == 'process') {
+ if (_cof(process) == 'process') {
defer = function (id) {
- process.nextTick(ctx(run, id, 1));
+ process.nextTick(_ctx(run, id, 1));
};
// Sphere (JS game engine) Dispatch API
} else if (Dispatch && Dispatch.now) {
defer = function (id) {
- Dispatch.now(ctx(run, id, 1));
+ Dispatch.now(_ctx(run, id, 1));
};
// Browsers with MessageChannel, includes WebWorkers
} else if (MessageChannel) {
channel = new MessageChannel();
port = channel.port2;
channel.port1.onmessage = listener;
- defer = ctx(port.postMessage, port, 1);
+ defer = _ctx(port.postMessage, port, 1);
// Browsers with postMessage, skip WebWorkers
// IE8 has postMessage, but it's sync & typeof its postMessage is 'object'
- } else if (global$1.addEventListener && typeof postMessage == 'function' && !global$1.importScripts) {
+ } else if (_global.addEventListener && typeof postMessage == 'function' && !_global.importScripts) {
defer = function (id) {
- global$1.postMessage(id + '', '*');
+ _global.postMessage(id + '', '*');
};
- global$1.addEventListener('message', listener, false);
+ _global.addEventListener('message', listener, false);
// IE8-
- } else if (ONREADYSTATECHANGE in cel('script')) {
+ } else if (ONREADYSTATECHANGE in _domCreate('script')) {
defer = function (id) {
- html.appendChild(cel('script'))[ONREADYSTATECHANGE] = function () {
- html.removeChild(this);
+ _html.appendChild(_domCreate('script'))[ONREADYSTATECHANGE] = function () {
+ _html.removeChild(this);
run.call(id);
};
};
// Rest old browsers
} else {
defer = function (id) {
- setTimeout(ctx(run, id, 1), 0);
+ setTimeout(_ctx(run, id, 1), 0);
};
}
}
@@ -3278,24 +2601,12 @@ var _task = {
set: setTask,
clear: clearTask
};
-var _task_1 = _task.set;
-var _task_2 = _task.clear;
-
-var _task$1 = Object.freeze({
- default: _task,
- __moduleExports: _task,
- set: _task_1,
- clear: _task_2
-});
-
-var $task = ( _task$1 && _task ) || _task$1;
-
-var macrotask = $task.set;
-var Observer = global$1.MutationObserver || global$1.WebKitMutationObserver;
-var process$1 = global$1.process;
-var Promise$1 = global$1.Promise;
-var isNode = cof(process$1) == 'process';
+var macrotask = _task.set;
+var Observer = _global.MutationObserver || _global.WebKitMutationObserver;
+var process$1 = _global.process;
+var Promise$1 = _global.Promise;
+var isNode = _cof(process$1) == 'process';
var _microtask = function () {
var head, last, notify;
@@ -3323,7 +2634,7 @@ var _microtask = function () {
process$1.nextTick(flush);
};
// browsers with MutationObserver, except iOS Safari - https://github.com/zloirock/core-js/issues/339
- } else if (Observer && !(global$1.navigator && global$1.navigator.standalone)) {
+ } else if (Observer && !(_global.navigator && _global.navigator.standalone)) {
var toggle = true;
var node = document.createTextNode('');
new Observer(flush).observe(node, { characterData: true }); // eslint-disable-line no-new
@@ -3345,7 +2656,7 @@ var _microtask = function () {
} else {
notify = function () {
// strange IE + webpack dev server bug - use .call(global)
- macrotask.call(global$1, flush);
+ macrotask.call(_global, flush);
};
}
@@ -3359,12 +2670,6 @@ var _microtask = function () {
};
};
-
-var _microtask$1 = Object.freeze({
- default: _microtask,
- __moduleExports: _microtask
-});
-
// 25.4.1.5 NewPromiseCapability(C)
@@ -3375,8 +2680,8 @@ function PromiseCapability(C) {
resolve = $$resolve;
reject = $$reject;
});
- this.resolve = aFunction(resolve);
- this.reject = aFunction(reject);
+ this.resolve = _aFunction(resolve);
+ this.reject = _aFunction(reject);
}
var f$5 = function (C) {
@@ -3387,13 +2692,6 @@ var _newPromiseCapability = {
f: f$5
};
-
-var _newPromiseCapability$1 = Object.freeze({
- default: _newPromiseCapability,
- __moduleExports: _newPromiseCapability,
- f: f$5
-});
-
var _perform = function (exec) {
try {
return { e: false, v: exec() };
@@ -3402,54 +2700,34 @@ var _perform = function (exec) {
}
};
-
-var _perform$1 = Object.freeze({
- default: _perform,
- __moduleExports: _perform
-});
-
-var newPromiseCapability = ( _newPromiseCapability$1 && _newPromiseCapability ) || _newPromiseCapability$1;
-
var _promiseResolve = function (C, x) {
- anObject(C);
- if (isObject(x) && x.constructor === C) return x;
- var promiseCapability = newPromiseCapability.f(C);
+ _anObject(C);
+ if (_isObject(x) && x.constructor === C) return x;
+ var promiseCapability = _newPromiseCapability.f(C);
var resolve = promiseCapability.resolve;
resolve(x);
return promiseCapability.promise;
};
-
-var _promiseResolve$1 = Object.freeze({
- default: _promiseResolve,
- __moduleExports: _promiseResolve
-});
-
-var require$$1$1 = ( _microtask$1 && _microtask ) || _microtask$1;
-
-var perform = ( _perform$1 && _perform ) || _perform$1;
-
-var promiseResolve = ( _promiseResolve$1 && _promiseResolve ) || _promiseResolve$1;
-
-var task = $task.set;
-var microtask = require$$1$1();
+var task = _task.set;
+var microtask = _microtask();
var PROMISE = 'Promise';
-var TypeError$1 = global$1.TypeError;
-var process$2 = global$1.process;
-var $Promise = global$1[PROMISE];
-var isNode$1 = classof(process$2) == 'process';
+var TypeError$1 = _global.TypeError;
+var process$2 = _global.process;
+var $Promise = _global[PROMISE];
+var isNode$1 = _classof(process$2) == 'process';
var empty = function () { /* empty */ };
var Internal, newGenericPromiseCapability, OwnPromiseCapability, Wrapper;
-var newPromiseCapability$1 = newGenericPromiseCapability = newPromiseCapability.f;
+var newPromiseCapability = newGenericPromiseCapability = _newPromiseCapability.f;
var USE_NATIVE = !!function () {
try {
// correct subclassing with @@species support
var promise = $Promise.resolve(1);
- var FakePromise = (promise.constructor = {})[wks('species')] = function (exec) {
+ var FakePromise = (promise.constructor = {})[_wks('species')] = function (exec) {
exec(empty, empty);
};
// unhandled rejections tracking support, NodeJS Promise without it fails @@species test
@@ -3460,7 +2738,7 @@ var USE_NATIVE = !!function () {
// helpers
var isThenable = function (it) {
var then;
- return isObject(it) && typeof (then = it.then) == 'function' ? then : false;
+ return _isObject(it) && typeof (then = it.then) == 'function' ? then : false;
};
var notify = function (promise, isReject) {
if (promise._n) return;
@@ -3505,17 +2783,17 @@ var notify = function (promise, isReject) {
});
};
var onUnhandled = function (promise) {
- task.call(global$1, function () {
+ task.call(_global, function () {
var value = promise._v;
var unhandled = isUnhandled(promise);
var result, handler, console;
if (unhandled) {
- result = perform(function () {
+ result = _perform(function () {
if (isNode$1) {
process$2.emit('unhandledRejection', value, promise);
- } else if (handler = global$1.onunhandledrejection) {
+ } else if (handler = _global.onunhandledrejection) {
handler({ promise: promise, reason: value });
- } else if ((console = global$1.console) && console.error) {
+ } else if ((console = _global.console) && console.error) {
console.error('Unhandled promise rejection', value);
}
});
@@ -3529,11 +2807,11 @@ var isUnhandled = function (promise) {
return promise._h !== 1 && (promise._a || promise._c).length === 0;
};
var onHandleUnhandled = function (promise) {
- task.call(global$1, function () {
+ task.call(_global, function () {
var handler;
if (isNode$1) {
process$2.emit('rejectionHandled', promise);
- } else if (handler = global$1.onrejectionhandled) {
+ } else if (handler = _global.onrejectionhandled) {
handler({ promise: promise, reason: promise._v });
}
});
@@ -3560,7 +2838,7 @@ var $resolve = function (value) {
microtask(function () {
var wrapper = { _w: promise, _d: false }; // wrap
try {
- then.call(value, ctx($resolve, wrapper, 1), ctx($reject, wrapper, 1));
+ then.call(value, _ctx($resolve, wrapper, 1), _ctx($reject, wrapper, 1));
} catch (e) {
$reject.call(wrapper, e);
}
@@ -3579,11 +2857,11 @@ var $resolve = function (value) {
if (!USE_NATIVE) {
// 25.4.3.1 Promise(executor)
$Promise = function Promise(executor) {
- anInstance(this, $Promise, PROMISE, '_h');
- aFunction(executor);
+ _anInstance(this, $Promise, PROMISE, '_h');
+ _aFunction(executor);
Internal.call(this);
try {
- executor(ctx($resolve, this, 1), ctx($reject, this, 1));
+ executor(_ctx($resolve, this, 1), _ctx($reject, this, 1));
} catch (err) {
$reject.call(this, err);
}
@@ -3598,10 +2876,10 @@ if (!USE_NATIVE) {
this._h = 0; // <- rejection state, 0 - default, 1 - handled, 2 - unhandled
this._n = false; // <- notify
};
- Internal.prototype = require$$3($Promise.prototype, {
+ Internal.prototype = _redefineAll($Promise.prototype, {
// 25.4.5.3 Promise.prototype.then(onFulfilled, onRejected)
then: function then(onFulfilled, onRejected) {
- var reaction = newPromiseCapability$1(speciesConstructor(this, $Promise));
+ var reaction = newPromiseCapability(_speciesConstructor(this, $Promise));
reaction.ok = typeof onFulfilled == 'function' ? onFulfilled : true;
reaction.fail = typeof onRejected == 'function' && onRejected;
reaction.domain = isNode$1 ? process$2.domain : undefined;
@@ -3618,51 +2896,51 @@ if (!USE_NATIVE) {
OwnPromiseCapability = function () {
var promise = new Internal();
this.promise = promise;
- this.resolve = ctx($resolve, promise, 1);
- this.reject = ctx($reject, promise, 1);
+ this.resolve = _ctx($resolve, promise, 1);
+ this.reject = _ctx($reject, promise, 1);
};
- newPromiseCapability.f = newPromiseCapability$1 = function (C) {
+ _newPromiseCapability.f = newPromiseCapability = function (C) {
return C === $Promise || C === Wrapper
? new OwnPromiseCapability(C)
: newGenericPromiseCapability(C);
};
}
-$export$1($export$1.G + $export$1.W + $export$1.F * !USE_NATIVE, { Promise: $Promise });
-setToStringTag($Promise, PROMISE);
-require$$5$1(PROMISE);
-Wrapper = core[PROMISE];
+_export(_export.G + _export.W + _export.F * !USE_NATIVE, { Promise: $Promise });
+_setToStringTag($Promise, PROMISE);
+_setSpecies(PROMISE);
+Wrapper = _core[PROMISE];
// statics
-$export$1($export$1.S + $export$1.F * !USE_NATIVE, PROMISE, {
+_export(_export.S + _export.F * !USE_NATIVE, PROMISE, {
// 25.4.4.5 Promise.reject(r)
reject: function reject(r) {
- var capability = newPromiseCapability$1(this);
+ var capability = newPromiseCapability(this);
var $$reject = capability.reject;
$$reject(r);
return capability.promise;
}
});
-$export$1($export$1.S + $export$1.F * (LIBRARY || !USE_NATIVE), PROMISE, {
+_export(_export.S + _export.F * (_library || !USE_NATIVE), PROMISE, {
// 25.4.4.6 Promise.resolve(x)
resolve: function resolve(x) {
- return promiseResolve(LIBRARY && this === Wrapper ? $Promise : this, x);
+ return _promiseResolve(_library && this === Wrapper ? $Promise : this, x);
}
});
-$export$1($export$1.S + $export$1.F * !(USE_NATIVE && require$$0$8(function (iter) {
+_export(_export.S + _export.F * !(USE_NATIVE && _iterDetect(function (iter) {
$Promise.all(iter)['catch'](empty);
})), PROMISE, {
// 25.4.4.1 Promise.all(iterable)
all: function all(iterable) {
var C = this;
- var capability = newPromiseCapability$1(C);
+ var capability = newPromiseCapability(C);
var resolve = capability.resolve;
var reject = capability.reject;
- var result = perform(function () {
+ var result = _perform(function () {
var values = [];
var index = 0;
var remaining = 1;
- forOf(iterable, false, function (promise) {
+ _forOf(iterable, false, function (promise) {
var $index = index++;
var alreadyCalled = false;
values.push(undefined);
@@ -3682,10 +2960,10 @@ $export$1($export$1.S + $export$1.F * !(USE_NATIVE && require$$0$8(function (ite
// 25.4.4.4 Promise.race(iterable)
race: function race(iterable) {
var C = this;
- var capability = newPromiseCapability$1(C);
+ var capability = newPromiseCapability(C);
var reject = capability.reject;
- var result = perform(function () {
- forOf(iterable, false, function (promise) {
+ var result = _perform(function () {
+ _forOf(iterable, false, function (promise) {
C.resolve(promise).then(capability.resolve, reject);
});
});
@@ -3694,58 +2972,37 @@ $export$1($export$1.S + $export$1.F * !(USE_NATIVE && require$$0$8(function (ite
}
});
-var f$6 = wks;
+var f$6 = _wks;
var _wksExt = {
f: f$6
};
-
-var _wksExt$1 = Object.freeze({
- default: _wksExt,
- __moduleExports: _wksExt,
- f: f$6
-});
-
-var wksExt = ( _wksExt$1 && _wksExt ) || _wksExt$1;
-
-var defineProperty = $defineProperty.f;
+var defineProperty = _objectDp.f;
var _wksDefine = function (name) {
- var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global$1.Symbol || {});
- if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: wksExt.f(name) });
+ var $Symbol = _core.Symbol || (_core.Symbol = _library ? {} : _global.Symbol || {});
+ if (name.charAt(0) != '_' && !(name in $Symbol)) defineProperty($Symbol, name, { value: _wksExt.f(name) });
};
-
-var _wksDefine$1 = Object.freeze({
- default: _wksDefine,
- __moduleExports: _wksDefine
-});
-
// all enumerable object keys, includes symbols
var _enumKeys = function (it) {
- var result = getKeys(it);
- var getSymbols = gOPS.f;
+ var result = _objectKeys(it);
+ var getSymbols = _objectGops.f;
if (getSymbols) {
var symbols = getSymbols(it);
- var isEnum = require$$0$6.f;
+ var isEnum = _objectPie.f;
var i = 0;
var key;
while (symbols.length > i) if (isEnum.call(it, key = symbols[i++])) result.push(key);
} return result;
};
-
-var _enumKeys$1 = Object.freeze({
- default: _enumKeys,
- __moduleExports: _enumKeys
-});
-
// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window
-var gOPN = require$$0$4.f;
+var gOPN = _objectGopn.f;
var toString$1 = {}.toString;
var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames
@@ -3760,33 +3017,20 @@ var getWindowNames = function (it) {
};
var f$7 = function getOwnPropertyNames(it) {
- return windowNames && toString$1.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));
+ return windowNames && toString$1.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(_toIobject(it));
};
var _objectGopnExt = {
f: f$7
};
-
-var _objectGopnExt$1 = Object.freeze({
- default: _objectGopnExt,
- __moduleExports: _objectGopnExt,
- f: f$7
-});
-
-var wksDefine = ( _wksDefine$1 && _wksDefine ) || _wksDefine$1;
-
-var enumKeys = ( _enumKeys$1 && _enumKeys ) || _enumKeys$1;
-
-var require$$1$2 = ( _objectGopnExt$1 && _objectGopnExt ) || _objectGopnExt$1;
-
// ECMAScript 6 symbols shim
-var META = require$$0$11.KEY;
+var META = _meta.KEY;
@@ -3806,39 +3050,39 @@ var META = require$$0$11.KEY;
-var gOPD$3 = gOPD$1.f;
-var dP$2 = $defineProperty.f;
-var gOPN$1 = require$$1$2.f;
-var $Symbol = global$1.Symbol;
-var $JSON = global$1.JSON;
+var gOPD$2 = _objectGopd.f;
+var dP$2 = _objectDp.f;
+var gOPN$1 = _objectGopnExt.f;
+var $Symbol = _global.Symbol;
+var $JSON = _global.JSON;
var _stringify = $JSON && $JSON.stringify;
var PROTOTYPE$2 = 'prototype';
-var HIDDEN = wks('_hidden');
-var TO_PRIMITIVE = wks('toPrimitive');
+var HIDDEN = _wks('_hidden');
+var TO_PRIMITIVE = _wks('toPrimitive');
var isEnum = {}.propertyIsEnumerable;
-var SymbolRegistry = shared('symbol-registry');
-var AllSymbols = shared('symbols');
-var OPSymbols = shared('op-symbols');
+var SymbolRegistry = _shared('symbol-registry');
+var AllSymbols = _shared('symbols');
+var OPSymbols = _shared('op-symbols');
var ObjectProto$1 = Object[PROTOTYPE$2];
var USE_NATIVE$1 = typeof $Symbol == 'function';
-var QObject = global$1.QObject;
+var QObject = _global.QObject;
// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173
var setter = !QObject || !QObject[PROTOTYPE$2] || !QObject[PROTOTYPE$2].findChild;
// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687
-var setSymbolDesc = require$$0$1 && require$$0(function () {
- return _create(dP$2({}, 'a', {
+var setSymbolDesc = _descriptors && _fails(function () {
+ return _objectCreate(dP$2({}, 'a', {
get: function () { return dP$2(this, 'a', { value: 7 }).a; }
})).a != 7;
}) ? function (it, key, D) {
- var protoDesc = gOPD$3(ObjectProto$1, key);
+ var protoDesc = gOPD$2(ObjectProto$1, key);
if (protoDesc) delete ObjectProto$1[key];
dP$2(it, key, D);
if (protoDesc && it !== ObjectProto$1) dP$2(ObjectProto$1, key, protoDesc);
} : dP$2;
var wrap = function (tag) {
- var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE$2]);
+ var sym = AllSymbols[tag] = _objectCreate($Symbol[PROTOTYPE$2]);
sym._k = tag;
return sym;
};
@@ -3849,63 +3093,63 @@ var isSymbol = USE_NATIVE$1 && typeof $Symbol.iterator == 'symbol' ? function (i
return it instanceof $Symbol;
};
-var $defineProperty$1 = function defineProperty(it, key, D) {
- if (it === ObjectProto$1) $defineProperty$1(OPSymbols, key, D);
- anObject(it);
- key = toPrimitive(key, true);
- anObject(D);
- if (has(AllSymbols, key)) {
+var $defineProperty = function defineProperty(it, key, D) {
+ if (it === ObjectProto$1) $defineProperty(OPSymbols, key, D);
+ _anObject(it);
+ key = _toPrimitive(key, true);
+ _anObject(D);
+ if (_has(AllSymbols, key)) {
if (!D.enumerable) {
- if (!has(it, HIDDEN)) dP$2(it, HIDDEN, createDesc(1, {}));
+ if (!_has(it, HIDDEN)) dP$2(it, HIDDEN, _propertyDesc(1, {}));
it[HIDDEN][key] = true;
} else {
- if (has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
- D = _create(D, { enumerable: createDesc(0, false) });
+ if (_has(it, HIDDEN) && it[HIDDEN][key]) it[HIDDEN][key] = false;
+ D = _objectCreate(D, { enumerable: _propertyDesc(0, false) });
} return setSymbolDesc(it, key, D);
} return dP$2(it, key, D);
};
var $defineProperties = function defineProperties(it, P) {
- anObject(it);
- var keys = enumKeys(P = toIObject(P));
+ _anObject(it);
+ var keys = _enumKeys(P = _toIobject(P));
var i = 0;
var l = keys.length;
var key;
- while (l > i) $defineProperty$1(it, key = keys[i++], P[key]);
+ while (l > i) $defineProperty(it, key = keys[i++], P[key]);
return it;
};
var $create = function create(it, P) {
- return P === undefined ? _create(it) : $defineProperties(_create(it), P);
+ return P === undefined ? _objectCreate(it) : $defineProperties(_objectCreate(it), P);
};
var $propertyIsEnumerable = function propertyIsEnumerable(key) {
- var E = isEnum.call(this, key = toPrimitive(key, true));
- if (this === ObjectProto$1 && has(AllSymbols, key) && !has(OPSymbols, key)) return false;
- return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
+ var E = isEnum.call(this, key = _toPrimitive(key, true));
+ if (this === ObjectProto$1 && _has(AllSymbols, key) && !_has(OPSymbols, key)) return false;
+ return E || !_has(this, key) || !_has(AllSymbols, key) || _has(this, HIDDEN) && this[HIDDEN][key] ? E : true;
};
var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key) {
- it = toIObject(it);
- key = toPrimitive(key, true);
- if (it === ObjectProto$1 && has(AllSymbols, key) && !has(OPSymbols, key)) return;
- var D = gOPD$3(it, key);
- if (D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
+ it = _toIobject(it);
+ key = _toPrimitive(key, true);
+ if (it === ObjectProto$1 && _has(AllSymbols, key) && !_has(OPSymbols, key)) return;
+ var D = gOPD$2(it, key);
+ if (D && _has(AllSymbols, key) && !(_has(it, HIDDEN) && it[HIDDEN][key])) D.enumerable = true;
return D;
};
var $getOwnPropertyNames = function getOwnPropertyNames(it) {
- var names = gOPN$1(toIObject(it));
+ var names = gOPN$1(_toIobject(it));
var result = [];
var i = 0;
var key;
while (names.length > i) {
- if (!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
+ if (!_has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META) result.push(key);
} return result;
};
var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
var IS_OP = it === ObjectProto$1;
- var names = gOPN$1(IS_OP ? OPSymbols : toIObject(it));
+ var names = gOPN$1(IS_OP ? OPSymbols : _toIobject(it));
var result = [];
var i = 0;
var key;
while (names.length > i) {
- if (has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto$1, key) : true)) result.push(AllSymbols[key]);
+ if (_has(AllSymbols, key = names[i++]) && (IS_OP ? _has(ObjectProto$1, key) : true)) result.push(AllSymbols[key]);
} return result;
};
@@ -3913,47 +3157,47 @@ var $getOwnPropertySymbols = function getOwnPropertySymbols(it) {
if (!USE_NATIVE$1) {
$Symbol = function Symbol() {
if (this instanceof $Symbol) throw TypeError('Symbol is not a constructor!');
- var tag = uid(arguments.length > 0 ? arguments[0] : undefined);
+ var tag = _uid(arguments.length > 0 ? arguments[0] : undefined);
var $set = function (value) {
if (this === ObjectProto$1) $set.call(OPSymbols, value);
- if (has(this, HIDDEN) && has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
- setSymbolDesc(this, tag, createDesc(1, value));
+ if (_has(this, HIDDEN) && _has(this[HIDDEN], tag)) this[HIDDEN][tag] = false;
+ setSymbolDesc(this, tag, _propertyDesc(1, value));
};
- if (require$$0$1 && setter) setSymbolDesc(ObjectProto$1, tag, { configurable: true, set: $set });
+ if (_descriptors && setter) setSymbolDesc(ObjectProto$1, tag, { configurable: true, set: $set });
return wrap(tag);
};
- redefine($Symbol[PROTOTYPE$2], 'toString', function toString() {
+ _redefine($Symbol[PROTOTYPE$2], 'toString', function toString() {
return this._k;
});
- gOPD$1.f = $getOwnPropertyDescriptor;
- $defineProperty.f = $defineProperty$1;
- require$$0$4.f = require$$1$2.f = $getOwnPropertyNames;
- require$$0$6.f = $propertyIsEnumerable;
- gOPS.f = $getOwnPropertySymbols;
+ _objectGopd.f = $getOwnPropertyDescriptor;
+ _objectDp.f = $defineProperty;
+ _objectGopn.f = _objectGopnExt.f = $getOwnPropertyNames;
+ _objectPie.f = $propertyIsEnumerable;
+ _objectGops.f = $getOwnPropertySymbols;
- if (require$$0$1 && !LIBRARY) {
- redefine(ObjectProto$1, 'propertyIsEnumerable', $propertyIsEnumerable, true);
+ if (_descriptors && !_library) {
+ _redefine(ObjectProto$1, 'propertyIsEnumerable', $propertyIsEnumerable, true);
}
- wksExt.f = function (name) {
- return wrap(wks(name));
+ _wksExt.f = function (name) {
+ return wrap(_wks(name));
};
}
-$export$1($export$1.G + $export$1.W + $export$1.F * !USE_NATIVE$1, { Symbol: $Symbol });
+_export(_export.G + _export.W + _export.F * !USE_NATIVE$1, { Symbol: $Symbol });
for (var es6Symbols = (
// 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14
'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'
-).split(','), j = 0; es6Symbols.length > j;)wks(es6Symbols[j++]);
+).split(','), j = 0; es6Symbols.length > j;)_wks(es6Symbols[j++]);
-for (var wellKnownSymbols = getKeys(wks.store), k = 0; wellKnownSymbols.length > k;) wksDefine(wellKnownSymbols[k++]);
+for (var wellKnownSymbols = _objectKeys(_wks.store), k = 0; wellKnownSymbols.length > k;) _wksDefine(wellKnownSymbols[k++]);
-$export$1($export$1.S + $export$1.F * !USE_NATIVE$1, 'Symbol', {
+_export(_export.S + _export.F * !USE_NATIVE$1, 'Symbol', {
// 19.4.2.1 Symbol.for(key)
'for': function (key) {
- return has(SymbolRegistry, key += '')
+ return _has(SymbolRegistry, key += '')
? SymbolRegistry[key]
: SymbolRegistry[key] = $Symbol(key);
},
@@ -3966,11 +3210,11 @@ $export$1($export$1.S + $export$1.F * !USE_NATIVE$1, 'Symbol', {
useSimple: function () { setter = false; }
});
-$export$1($export$1.S + $export$1.F * !USE_NATIVE$1, 'Object', {
+_export(_export.S + _export.F * !USE_NATIVE$1, 'Object', {
// 19.1.2.2 Object.create(O [, Properties])
create: $create,
// 19.1.2.4 Object.defineProperty(O, P, Attributes)
- defineProperty: $defineProperty$1,
+ defineProperty: $defineProperty,
// 19.1.2.3 Object.defineProperties(O, Properties)
defineProperties: $defineProperties,
// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
@@ -3982,7 +3226,7 @@ $export$1($export$1.S + $export$1.F * !USE_NATIVE$1, 'Object', {
});
// 24.3.2 JSON.stringify(value [, replacer [, space]])
-$JSON && $export$1($export$1.S + $export$1.F * (!USE_NATIVE$1 || require$$0(function () {
+$JSON && _export(_export.S + _export.F * (!USE_NATIVE$1 || _fails(function () {
var S = $Symbol();
// MS Edge converts symbol values to JSON as {}
// WebKit converts symbol values to JSON as null
@@ -3995,8 +3239,8 @@ $JSON && $export$1($export$1.S + $export$1.F * (!USE_NATIVE$1 || require$$0(func
var replacer, $replacer;
while (arguments.length > i) args.push(arguments[i++]);
$replacer = replacer = args[1];
- if (!isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
- if (!isArray(replacer)) replacer = function (key, value) {
+ if (!_isObject(replacer) && it === undefined || isSymbol(it)) return; // IE8 returns string on undefined
+ if (!_isArray(replacer)) replacer = function (key, value) {
if (typeof $replacer == 'function') value = $replacer.call(this, key, value);
if (!isSymbol(value)) return value;
};
@@ -4006,97 +3250,89 @@ $JSON && $export$1($export$1.S + $export$1.F * (!USE_NATIVE$1 || require$$0(func
});
// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)
-$Symbol[PROTOTYPE$2][TO_PRIMITIVE] || hide($Symbol[PROTOTYPE$2], TO_PRIMITIVE, $Symbol[PROTOTYPE$2].valueOf);
+$Symbol[PROTOTYPE$2][TO_PRIMITIVE] || _hide($Symbol[PROTOTYPE$2], TO_PRIMITIVE, $Symbol[PROTOTYPE$2].valueOf);
// 19.4.3.5 Symbol.prototype[@@toStringTag]
-setToStringTag($Symbol, 'Symbol');
+_setToStringTag($Symbol, 'Symbol');
// 20.2.1.9 Math[@@toStringTag]
-setToStringTag(Math, 'Math', true);
+_setToStringTag(Math, 'Math', true);
// 24.3.3 JSON[@@toStringTag]
-setToStringTag(global$1.JSON, 'JSON', true);
+_setToStringTag(_global.JSON, 'JSON', true);
// most Object methods by ES6 should accept primitives
var _objectSap = function (KEY, exec) {
- var fn = (core.Object || {})[KEY] || Object[KEY];
+ var fn = (_core.Object || {})[KEY] || Object[KEY];
var exp = {};
exp[KEY] = exec(fn);
- $export$1($export$1.S + $export$1.F * require$$0(function () { fn(1); }), 'Object', exp);
+ _export(_export.S + _export.F * _fails(function () { fn(1); }), 'Object', exp);
};
-
-var _objectSap$1 = Object.freeze({
- default: _objectSap,
- __moduleExports: _objectSap
-});
-
-var require$$0$14 = ( _objectSap$1 && _objectSap ) || _objectSap$1;
-
// 19.1.2.5 Object.freeze(O)
-var meta = require$$0$11.onFreeze;
+var meta = _meta.onFreeze;
-require$$0$14('freeze', function ($freeze) {
+_objectSap('freeze', function ($freeze) {
return function freeze(it) {
- return $freeze && isObject(it) ? $freeze(meta(it)) : it;
+ return $freeze && _isObject(it) ? $freeze(meta(it)) : it;
};
});
// 19.1.2.17 Object.seal(O)
-var meta$1 = require$$0$11.onFreeze;
+var meta$1 = _meta.onFreeze;
-require$$0$14('seal', function ($seal) {
+_objectSap('seal', function ($seal) {
return function seal(it) {
- return $seal && isObject(it) ? $seal(meta$1(it)) : it;
+ return $seal && _isObject(it) ? $seal(meta$1(it)) : it;
};
});
// 19.1.2.15 Object.preventExtensions(O)
-var meta$2 = require$$0$11.onFreeze;
+var meta$2 = _meta.onFreeze;
-require$$0$14('preventExtensions', function ($preventExtensions) {
+_objectSap('preventExtensions', function ($preventExtensions) {
return function preventExtensions(it) {
- return $preventExtensions && isObject(it) ? $preventExtensions(meta$2(it)) : it;
+ return $preventExtensions && _isObject(it) ? $preventExtensions(meta$2(it)) : it;
};
});
// 19.1.2.12 Object.isFrozen(O)
-require$$0$14('isFrozen', function ($isFrozen) {
+_objectSap('isFrozen', function ($isFrozen) {
return function isFrozen(it) {
- return isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
+ return _isObject(it) ? $isFrozen ? $isFrozen(it) : false : true;
};
});
// 19.1.2.13 Object.isSealed(O)
-require$$0$14('isSealed', function ($isSealed) {
+_objectSap('isSealed', function ($isSealed) {
return function isSealed(it) {
- return isObject(it) ? $isSealed ? $isSealed(it) : false : true;
+ return _isObject(it) ? $isSealed ? $isSealed(it) : false : true;
};
});
// 19.1.2.11 Object.isExtensible(O)
-require$$0$14('isExtensible', function ($isExtensible) {
+_objectSap('isExtensible', function ($isExtensible) {
return function isExtensible(it) {
- return isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
+ return _isObject(it) ? $isExtensible ? $isExtensible(it) : true : false;
};
});
// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)
-var $getOwnPropertyDescriptor$1 = gOPD$1.f;
+var $getOwnPropertyDescriptor$1 = _objectGopd.f;
-require$$0$14('getOwnPropertyDescriptor', function () {
+_objectSap('getOwnPropertyDescriptor', function () {
return function getOwnPropertyDescriptor(it, key) {
- return $getOwnPropertyDescriptor$1(toIObject(it), key);
+ return $getOwnPropertyDescriptor$1(_toIobject(it), key);
};
});
@@ -4104,9 +3340,9 @@ require$$0$14('getOwnPropertyDescriptor', function () {
-require$$0$14('getPrototypeOf', function () {
+_objectSap('getPrototypeOf', function () {
return function getPrototypeOf(it) {
- return $getPrototypeOf(toObject(it));
+ return _objectGpo(_toObject(it));
};
});
@@ -4114,21 +3350,21 @@ require$$0$14('getPrototypeOf', function () {
-require$$0$14('keys', function () {
+_objectSap('keys', function () {
return function keys(it) {
- return getKeys(toObject(it));
+ return _objectKeys(_toObject(it));
};
});
// 19.1.2.7 Object.getOwnPropertyNames(O)
-require$$0$14('getOwnPropertyNames', function () {
- return require$$1$2.f;
+_objectSap('getOwnPropertyNames', function () {
+ return _objectGopnExt.f;
});
// 19.1.3.1 Object.assign(target, source)
-$export$1($export$1.S + $export$1.F, 'Object', { assign: require$$0$13 });
+_export(_export.S + _export.F, 'Object', { assign: _objectAssign });
// 7.2.9 SameValue(x, y)
var _sameValue = Object.is || function is(x, y) {
@@ -4136,25 +3372,17 @@ var _sameValue = Object.is || function is(x, y) {
return x === y ? x !== 0 || 1 / x === 1 / y : x != x && y != y;
};
-
-var _sameValue$1 = Object.freeze({
- default: _sameValue,
- __moduleExports: _sameValue
-});
-
-var require$$0$15 = ( _sameValue$1 && _sameValue ) || _sameValue$1;
-
// 19.1.3.10 Object.is(value1, value2)
-$export$1($export$1.S, 'Object', { is: require$$0$15 });
+_export(_export.S, 'Object', { is: _sameValue });
-var dP$3 = $defineProperty.f;
+var dP$3 = _objectDp.f;
var FProto = Function.prototype;
var nameRE = /^\s*function ([^ (]*)/;
var NAME = 'name';
// 19.2.4.2 name
-NAME in FProto || require$$0$1 && dP$3(FProto, NAME, {
+NAME in FProto || _descriptors && dP$3(FProto, NAME, {
configurable: true,
get: function () {
try {
@@ -4165,11 +3393,11 @@ NAME in FProto || require$$0$1 && dP$3(FProto, NAME, {
}
});
-$export$1($export$1.S, 'String', {
+_export(_export.S, 'String', {
// 21.1.2.4 String.raw(callSite, ...substitutions)
raw: function raw(callSite) {
- var tpl = toIObject(callSite.raw);
- var len = toLength(tpl.length);
+ var tpl = _toIobject(callSite.raw);
+ var len = _toLength(tpl.length);
var aLen = arguments.length;
var res = [];
var i = 0;
@@ -4184,7 +3412,7 @@ var fromCharCode = String.fromCharCode;
var $fromCodePoint = String.fromCodePoint;
// length should be 1, old FF problem
-$export$1($export$1.S + $export$1.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
+_export(_export.S + _export.F * (!!$fromCodePoint && $fromCodePoint.length != 1), 'String', {
// 21.1.2.2 String.fromCodePoint(...codePoints)
fromCodePoint: function fromCodePoint(x) { // eslint-disable-line no-unused-vars
var res = [];
@@ -4193,7 +3421,7 @@ $export$1($export$1.S + $export$1.F * (!!$fromCodePoint && $fromCodePoint.length
var code;
while (aLen > i) {
code = +arguments[i++];
- if (toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
+ if (_toAbsoluteIndex(code, 0x10ffff) !== code) throw RangeError(code + ' is not a valid code point');
res.push(code < 0x10000
? fromCharCode(code)
: fromCharCode(((code -= 0x10000) >> 10) + 0xd800, code % 0x400 + 0xdc00)
@@ -4206,8 +3434,8 @@ $export$1($export$1.S + $export$1.F * (!!$fromCodePoint && $fromCodePoint.length
// false -> String#codePointAt
var _stringAt = function (TO_STRING) {
return function (that, pos) {
- var s = String(defined(that));
- var i = toInteger(pos);
+ var s = String(_defined(that));
+ var i = _toInteger(pos);
var l = s.length;
var a, b;
if (i < 0 || i >= l) return TO_STRING ? '' : undefined;
@@ -4218,16 +3446,8 @@ var _stringAt = function (TO_STRING) {
};
};
-
-var _stringAt$1 = Object.freeze({
- default: _stringAt,
- __moduleExports: _stringAt
-});
-
-var require$$0$16 = ( _stringAt$1 && _stringAt ) || _stringAt$1;
-
-var $at = require$$0$16(false);
-$export$1($export$1.P, 'String', {
+var $at = _stringAt(false);
+_export(_export.P, 'String', {
// 21.1.3.3 String.prototype.codePointAt(pos)
codePointAt: function codePointAt(pos) {
return $at(this, pos);
@@ -4235,60 +3455,38 @@ $export$1($export$1.P, 'String', {
});
var _stringRepeat = function repeat(count) {
- var str = String(defined(this));
+ var str = String(_defined(this));
var res = '';
- var n = toInteger(count);
+ var n = _toInteger(count);
if (n < 0 || n == Infinity) throw RangeError("Count can't be negative");
for (;n > 0; (n >>>= 1) && (str += str)) if (n & 1) res += str;
return res;
};
-
-var _stringRepeat$1 = Object.freeze({
- default: _stringRepeat,
- __moduleExports: _stringRepeat
-});
-
-var repeat = ( _stringRepeat$1 && _stringRepeat ) || _stringRepeat$1;
-
-$export$1($export$1.P, 'String', {
+_export(_export.P, 'String', {
// 21.1.3.13 String.prototype.repeat(count)
- repeat: repeat
+ repeat: _stringRepeat
});
// 7.2.8 IsRegExp(argument)
-var MATCH = wks('match');
+var MATCH = _wks('match');
var _isRegexp = function (it) {
var isRegExp;
- return isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : cof(it) == 'RegExp');
+ return _isObject(it) && ((isRegExp = it[MATCH]) !== undefined ? !!isRegExp : _cof(it) == 'RegExp');
};
-
-var _isRegexp$1 = Object.freeze({
- default: _isRegexp,
- __moduleExports: _isRegexp
-});
-
-var require$$1$3 = ( _isRegexp$1 && _isRegexp ) || _isRegexp$1;
-
// helper for String#{startsWith, endsWith, includes}
var _stringContext = function (that, searchString, NAME) {
- if (require$$1$3(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
- return String(defined(that));
+ if (_isRegexp(searchString)) throw TypeError('String#' + NAME + " doesn't accept regex!");
+ return String(_defined(that));
};
-
-var _stringContext$1 = Object.freeze({
- default: _stringContext,
- __moduleExports: _stringContext
-});
-
-var MATCH$1 = wks('match');
+var MATCH$1 = _wks('match');
var _failsIsRegexp = function (KEY) {
var re = /./;
try {
@@ -4301,23 +3499,13 @@ var _failsIsRegexp = function (KEY) {
} return true;
};
-
-var _failsIsRegexp$1 = Object.freeze({
- default: _failsIsRegexp,
- __moduleExports: _failsIsRegexp
-});
-
-var context = ( _stringContext$1 && _stringContext ) || _stringContext$1;
-
-var require$$0$17 = ( _failsIsRegexp$1 && _failsIsRegexp ) || _failsIsRegexp$1;
-
var STARTS_WITH = 'startsWith';
var $startsWith = ''[STARTS_WITH];
-$export$1($export$1.P + $export$1.F * require$$0$17(STARTS_WITH), 'String', {
+_export(_export.P + _export.F * _failsIsRegexp(STARTS_WITH), 'String', {
startsWith: function startsWith(searchString /* , position = 0 */) {
- var that = context(this, searchString, STARTS_WITH);
- var index = toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
+ var that = _stringContext(this, searchString, STARTS_WITH);
+ var index = _toLength(Math.min(arguments.length > 1 ? arguments[1] : undefined, that.length));
var search = String(searchString);
return $startsWith
? $startsWith.call(that, search, index)
@@ -4328,12 +3516,12 @@ $export$1($export$1.P + $export$1.F * require$$0$17(STARTS_WITH), 'String', {
var ENDS_WITH = 'endsWith';
var $endsWith = ''[ENDS_WITH];
-$export$1($export$1.P + $export$1.F * require$$0$17(ENDS_WITH), 'String', {
+_export(_export.P + _export.F * _failsIsRegexp(ENDS_WITH), 'String', {
endsWith: function endsWith(searchString /* , endPosition = @length */) {
- var that = context(this, searchString, ENDS_WITH);
+ var that = _stringContext(this, searchString, ENDS_WITH);
var endPosition = arguments.length > 1 ? arguments[1] : undefined;
- var len = toLength(that.length);
- var end = endPosition === undefined ? len : Math.min(toLength(endPosition), len);
+ var len = _toLength(that.length);
+ var end = endPosition === undefined ? len : Math.min(_toLength(endPosition), len);
var search = String(searchString);
return $endsWith
? $endsWith.call(that, search, end)
@@ -4343,9 +3531,9 @@ $export$1($export$1.P + $export$1.F * require$$0$17(ENDS_WITH), 'String', {
var INCLUDES = 'includes';
-$export$1($export$1.P + $export$1.F * require$$0$17(INCLUDES), 'String', {
+_export(_export.P + _export.F * _failsIsRegexp(INCLUDES), 'String', {
includes: function includes(searchString /* , position = 0 */) {
- return !!~context(this, searchString, INCLUDES)
+ return !!~_stringContext(this, searchString, INCLUDES)
.indexOf(searchString, arguments.length > 1 ? arguments[1] : undefined);
}
});
@@ -4353,7 +3541,7 @@ $export$1($export$1.P + $export$1.F * require$$0$17(INCLUDES), 'String', {
// 21.2.5.3 get RegExp.prototype.flags
var _flags = function () {
- var that = anObject(this);
+ var that = _anObject(this);
var result = '';
if (that.global) result += 'g';
if (that.ignoreCase) result += 'i';
@@ -4363,32 +3551,24 @@ var _flags = function () {
return result;
};
-
-var _flags$1 = Object.freeze({
- default: _flags,
- __moduleExports: _flags
-});
-
-var require$$2 = ( _flags$1 && _flags ) || _flags$1;
-
// 21.2.5.3 get RegExp.prototype.flags()
-if (require$$0$1 && /./g.flags != 'g') $defineProperty.f(RegExp.prototype, 'flags', {
+if (_descriptors && /./g.flags != 'g') _objectDp.f(RegExp.prototype, 'flags', {
configurable: true,
- get: require$$2
+ get: _flags
});
var _fixReWks = function (KEY, length, exec) {
- var SYMBOL = wks(KEY);
- var fns = exec(defined, SYMBOL, ''[KEY]);
+ var SYMBOL = _wks(KEY);
+ var fns = exec(_defined, SYMBOL, ''[KEY]);
var strfn = fns[0];
var rxfn = fns[1];
- if (require$$0(function () {
+ if (_fails(function () {
var O = {};
O[SYMBOL] = function () { return 7; };
return ''[KEY](O) != 7;
})) {
- redefine(String.prototype, KEY, strfn);
- hide(RegExp.prototype, SYMBOL, length == 2
+ _redefine(String.prototype, KEY, strfn);
+ _hide(RegExp.prototype, SYMBOL, length == 2
// 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue)
// 21.2.5.11 RegExp.prototype[@@split](string, limit)
? function (string, arg) { return rxfn.call(string, this, arg); }
@@ -4399,16 +3579,8 @@ var _fixReWks = function (KEY, length, exec) {
}
};
-
-var _fixReWks$1 = Object.freeze({
- default: _fixReWks,
- __moduleExports: _fixReWks
-});
-
-var require$$0$18 = ( _fixReWks$1 && _fixReWks ) || _fixReWks$1;
-
// @@match logic
-require$$0$18('match', 1, function (defined, MATCH, $match) {
+_fixReWks('match', 1, function (defined, MATCH, $match) {
// 21.1.3.11 String.prototype.match(regexp)
return [function match(regexp) {
var O = defined(this);
@@ -4418,7 +3590,7 @@ require$$0$18('match', 1, function (defined, MATCH, $match) {
});
// @@replace logic
-require$$0$18('replace', 2, function (defined, REPLACE, $replace) {
+_fixReWks('replace', 2, function (defined, REPLACE, $replace) {
// 21.1.3.14 String.prototype.replace(searchValue, replaceValue)
return [function replace(searchValue, replaceValue) {
var O = defined(this);
@@ -4430,8 +3602,8 @@ require$$0$18('replace', 2, function (defined, REPLACE, $replace) {
});
// @@split logic
-require$$0$18('split', 2, function (defined, SPLIT, $split) {
- var isRegExp = require$$1$3;
+_fixReWks('split', 2, function (defined, SPLIT, $split) {
+ var isRegExp = _isRegexp;
var _split = $split;
var $push = [].push;
var $SPLIT = 'split';
@@ -4501,7 +3673,7 @@ require$$0$18('split', 2, function (defined, SPLIT, $split) {
});
// @@search logic
-require$$0$18('search', 1, function (defined, SEARCH, $search) {
+_fixReWks('search', 1, function (defined, SEARCH, $search) {
// 21.1.3.15 String.prototype.search(regexp)
return [function search(regexp) {
var O = defined(this);
@@ -4511,39 +3683,31 @@ require$$0$18('search', 1, function (defined, SEARCH, $search) {
});
var _createProperty = function (object, index, value) {
- if (index in object) $defineProperty.f(object, index, createDesc(0, value));
+ if (index in object) _objectDp.f(object, index, _propertyDesc(0, value));
else object[index] = value;
};
-
-var _createProperty$1 = Object.freeze({
- default: _createProperty,
- __moduleExports: _createProperty
-});
-
-var createProperty = ( _createProperty$1 && _createProperty ) || _createProperty$1;
-
-$export$1($export$1.S + $export$1.F * !require$$0$8(function (iter) { }), 'Array', {
+_export(_export.S + _export.F * !_iterDetect(function (iter) { }), 'Array', {
// 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)
from: function from(arrayLike /* , mapfn = undefined, thisArg = undefined */) {
- var O = toObject(arrayLike);
+ var O = _toObject(arrayLike);
var C = typeof this == 'function' ? this : Array;
var aLen = arguments.length;
var mapfn = aLen > 1 ? arguments[1] : undefined;
var mapping = mapfn !== undefined;
var index = 0;
- var iterFn = getIterFn(O);
+ var iterFn = core_getIteratorMethod(O);
var length, result, step, iterator;
- if (mapping) mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
+ if (mapping) mapfn = _ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);
// if object isn't iterable or it's array with default iterator - use simple case
- if (iterFn != undefined && !(C == Array && isArrayIter(iterFn))) {
+ if (iterFn != undefined && !(C == Array && _isArrayIter(iterFn))) {
for (iterator = iterFn.call(O), result = new C(); !(step = iterator.next()).done; index++) {
- createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);
+ _createProperty(result, index, mapping ? _iterCall(iterator, mapfn, [step.value, index], true) : step.value);
}
} else {
- length = toLength(O.length);
+ length = _toLength(O.length);
for (result = new C(length); length > index; index++) {
- createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
+ _createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);
}
}
result.length = index;
@@ -4552,7 +3716,7 @@ $export$1($export$1.S + $export$1.F * !require$$0$8(function (iter) { }), 'Array
});
// WebKit Array.of isn't generic
-$export$1($export$1.S + $export$1.F * require$$0(function () {
+_export(_export.S + _export.F * _fails(function () {
function F() { /* empty */ }
return !(Array.of.call(F) instanceof F);
}), 'Array', {
@@ -4561,7 +3725,7 @@ $export$1($export$1.S + $export$1.F * require$$0(function () {
var index = 0;
var aLen = arguments.length;
var result = new (typeof this == 'function' ? this : Array)(aLen);
- while (aLen > index) createProperty(result, index, arguments[index++]);
+ while (aLen > index) _createProperty(result, index, arguments[index++]);
result.length = aLen;
return result;
}
@@ -4570,50 +3734,50 @@ $export$1($export$1.S + $export$1.F * require$$0(function () {
// 22.1.3.3 Array.prototype.copyWithin(target, start, end = this.length)
-$export$1($export$1.P, 'Array', { copyWithin: require$$0$9 });
+_export(_export.P, 'Array', { copyWithin: _arrayCopyWithin });
-require$$1('copyWithin');
+_addToUnscopables('copyWithin');
// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
-var $find = require$$0$7(5);
+var $find = _arrayMethods(5);
var KEY = 'find';
var forced = true;
// Shouldn't skip holes
if (KEY in []) Array(1)[KEY](function () { forced = false; });
-$export$1($export$1.P + $export$1.F * forced, 'Array', {
+_export(_export.P + _export.F * forced, 'Array', {
find: function find(callbackfn /* , that = undefined */) {
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
-require$$1(KEY);
+_addToUnscopables(KEY);
// 22.1.3.9 Array.prototype.findIndex(predicate, thisArg = undefined)
-var $find$1 = require$$0$7(6);
+var $find$1 = _arrayMethods(6);
var KEY$1 = 'findIndex';
var forced$1 = true;
// Shouldn't skip holes
if (KEY$1 in []) Array(1)[KEY$1](function () { forced$1 = false; });
-$export$1($export$1.P + $export$1.F * forced$1, 'Array', {
+_export(_export.P + _export.F * forced$1, 'Array', {
findIndex: function findIndex(callbackfn /* , that = undefined */) {
return $find$1(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
-require$$1(KEY$1);
+_addToUnscopables(KEY$1);
// 22.1.3.6 Array.prototype.fill(value, start = 0, end = this.length)
-$export$1($export$1.P, 'Array', { fill: require$$0$5 });
+_export(_export.P, 'Array', { fill: _arrayFill });
-require$$1('fill');
+_addToUnscopables('fill');
// 20.1.2.2 Number.isFinite(number)
-var _isFinite = global$1.isFinite;
+var _isFinite = _global.isFinite;
-$export$1($export$1.S, 'Number', {
+_export(_export.S, 'Number', {
isFinite: function isFinite(it) {
return typeof it == 'number' && _isFinite(it);
}
@@ -4623,37 +3787,29 @@ $export$1($export$1.S, 'Number', {
var floor$1 = Math.floor;
var _isInteger = function isInteger(it) {
- return !isObject(it) && isFinite(it) && floor$1(it) === it;
+ return !_isObject(it) && isFinite(it) && floor$1(it) === it;
};
-
-var _isInteger$1 = Object.freeze({
- default: _isInteger,
- __moduleExports: _isInteger
-});
-
-var isInteger = ( _isInteger$1 && _isInteger ) || _isInteger$1;
-
// 20.1.2.3 Number.isInteger(number)
-$export$1($export$1.S, 'Number', { isInteger: isInteger });
+_export(_export.S, 'Number', { isInteger: _isInteger });
// 20.1.2.5 Number.isSafeInteger(number)
var abs = Math.abs;
-$export$1($export$1.S, 'Number', {
+_export(_export.S, 'Number', {
isSafeInteger: function isSafeInteger(number) {
- return isInteger(number) && abs(number) <= 0x1fffffffffffff;
+ return _isInteger(number) && abs(number) <= 0x1fffffffffffff;
}
});
// 20.1.2.4 Number.isNaN(number)
-$export$1($export$1.S, 'Number', {
+_export(_export.S, 'Number', {
isNaN: function isNaN(number) {
// eslint-disable-next-line no-self-compare
return number != number;
@@ -4663,38 +3819,30 @@ $export$1($export$1.S, 'Number', {
// 20.1.2.1 Number.EPSILON
-$export$1($export$1.S, 'Number', { EPSILON: Math.pow(2, -52) });
+_export(_export.S, 'Number', { EPSILON: Math.pow(2, -52) });
// 20.1.2.10 Number.MIN_SAFE_INTEGER
-$export$1($export$1.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });
+_export(_export.S, 'Number', { MIN_SAFE_INTEGER: -0x1fffffffffffff });
// 20.1.2.6 Number.MAX_SAFE_INTEGER
-$export$1($export$1.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });
+_export(_export.S, 'Number', { MAX_SAFE_INTEGER: 0x1fffffffffffff });
// 20.2.2.20 Math.log1p(x)
var _mathLog1p = Math.log1p || function log1p(x) {
return (x = +x) > -1e-8 && x < 1e-8 ? x - x * x / 2 : Math.log(1 + x);
};
-
-var _mathLog1p$1 = Object.freeze({
- default: _mathLog1p,
- __moduleExports: _mathLog1p
-});
-
-var require$$0$19 = ( _mathLog1p$1 && _mathLog1p ) || _mathLog1p$1;
-
// 20.2.2.3 Math.acosh(x)
var sqrt = Math.sqrt;
var $acosh = Math.acosh;
-$export$1($export$1.S + $export$1.F * !($acosh
+_export(_export.S + _export.F * !($acosh
// V8 bug: https://code.google.com/p/v8/issues/detail?id=3509
&& Math.floor($acosh(Number.MAX_VALUE)) == 710
// Tor Browser bug: Math.acosh(Infinity) -> NaN
@@ -4703,7 +3851,7 @@ $export$1($export$1.S + $export$1.F * !($acosh
acosh: function acosh(x) {
return (x = +x) < 1 ? NaN : x > 94906265.62425156
? Math.log(x) + Math.LN2
- : require$$0$19(x - 1 + sqrt(x - 1) * sqrt(x + 1));
+ : _mathLog1p(x - 1 + sqrt(x - 1) * sqrt(x + 1));
}
});
@@ -4716,14 +3864,14 @@ function asinh(x) {
}
// Tor Browser bug: Math.asinh(0) -> -0
-$export$1($export$1.S + $export$1.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });
+_export(_export.S + _export.F * !($asinh && 1 / $asinh(0) > 0), 'Math', { asinh: asinh });
// 20.2.2.7 Math.atanh(x)
var $atanh = Math.atanh;
// Tor Browser bug: Math.atanh(-0) -> 0
-$export$1($export$1.S + $export$1.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
+_export(_export.S + _export.F * !($atanh && 1 / $atanh(-0) < 0), 'Math', {
atanh: function atanh(x) {
return (x = +x) == 0 ? x : Math.log((1 + x) / (1 - x)) / 2;
}
@@ -4735,28 +3883,20 @@ var _mathSign = Math.sign || function sign(x) {
return (x = +x) == 0 || x != x ? x : x < 0 ? -1 : 1;
};
-
-var _mathSign$1 = Object.freeze({
- default: _mathSign,
- __moduleExports: _mathSign
-});
-
-var require$$0$20 = ( _mathSign$1 && _mathSign ) || _mathSign$1;
-
// 20.2.2.9 Math.cbrt(x)
-$export$1($export$1.S, 'Math', {
+_export(_export.S, 'Math', {
cbrt: function cbrt(x) {
- return require$$0$20(x = +x) * Math.pow(Math.abs(x), 1 / 3);
+ return _mathSign(x = +x) * Math.pow(Math.abs(x), 1 / 3);
}
});
// 20.2.2.11 Math.clz32(x)
-$export$1($export$1.S, 'Math', {
+_export(_export.S, 'Math', {
clz32: function clz32(x) {
return (x >>>= 0) ? 31 - Math.floor(Math.log(x + 0.5) * Math.LOG2E) : 32;
}
@@ -4766,7 +3906,7 @@ $export$1($export$1.S, 'Math', {
var exp = Math.exp;
-$export$1($export$1.S, 'Math', {
+_export(_export.S, 'Math', {
cosh: function cosh(x) {
return (exp(x = +x) + exp(-x)) / 2;
}
@@ -4783,19 +3923,11 @@ var _mathExpm1 = (!$expm1
return (x = +x) == 0 ? x : x > -1e-6 && x < 1e-6 ? x + x * x / 2 : Math.exp(x) - 1;
} : $expm1;
-
-var _mathExpm1$1 = Object.freeze({
- default: _mathExpm1,
- __moduleExports: _mathExpm1
-});
-
-var expm1 = ( _mathExpm1$1 && _mathExpm1 ) || _mathExpm1$1;
-
// 20.2.2.14 Math.expm1(x)
-$export$1($export$1.S + $export$1.F * (expm1 != Math.expm1), 'Math', { expm1: expm1 });
+_export(_export.S + _export.F * (_mathExpm1 != Math.expm1), 'Math', { expm1: _mathExpm1 });
// 20.2.2.16 Math.fround(x)
@@ -4811,7 +3943,7 @@ var roundTiesToEven = function (n) {
var _mathFround = Math.fround || function fround(x) {
var $abs = Math.abs(x);
- var $sign = require$$0$20(x);
+ var $sign = _mathSign(x);
var a, result;
if ($abs < MIN32) return $sign * roundTiesToEven($abs / MIN32 / EPSILON32) * MIN32 * EPSILON32;
a = (1 + EPSILON32 / EPSILON) * $abs;
@@ -4821,24 +3953,16 @@ var _mathFround = Math.fround || function fround(x) {
return $sign * result;
};
-
-var _mathFround$1 = Object.freeze({
- default: _mathFround,
- __moduleExports: _mathFround
-});
-
-var require$$0$21 = ( _mathFround$1 && _mathFround ) || _mathFround$1;
-
// 20.2.2.16 Math.fround(x)
-$export$1($export$1.S, 'Math', { fround: require$$0$21 });
+_export(_export.S, 'Math', { fround: _mathFround });
// 20.2.2.17 Math.hypot([value1[, value2[, … ]]])
var abs$1 = Math.abs;
-$export$1($export$1.S, 'Math', {
+_export(_export.S, 'Math', {
hypot: function hypot(value1, value2) { // eslint-disable-line no-unused-vars
var sum = 0;
var i = 0;
@@ -4865,7 +3989,7 @@ $export$1($export$1.S, 'Math', {
var $imul = Math.imul;
// some WebKit versions fails with big numbers, some has wrong arity
-$export$1($export$1.S + $export$1.F * require$$0(function () {
+_export(_export.S + _export.F * _fails(function () {
return $imul(0xffffffff, 5) != -5 || $imul.length != 2;
}), 'Math', {
imul: function imul(x, y) {
@@ -4881,12 +4005,12 @@ $export$1($export$1.S + $export$1.F * require$$0(function () {
// 20.2.2.20 Math.log1p(x)
-$export$1($export$1.S, 'Math', { log1p: require$$0$19 });
+_export(_export.S, 'Math', { log1p: _mathLog1p });
// 20.2.2.21 Math.log10(x)
-$export$1($export$1.S, 'Math', {
+_export(_export.S, 'Math', {
log10: function log10(x) {
return Math.log(x) * Math.LOG10E;
}
@@ -4895,7 +4019,7 @@ $export$1($export$1.S, 'Math', {
// 20.2.2.22 Math.log2(x)
-$export$1($export$1.S, 'Math', {
+_export(_export.S, 'Math', {
log2: function log2(x) {
return Math.log(x) / Math.LN2;
}
@@ -4904,7 +4028,7 @@ $export$1($export$1.S, 'Math', {
// 20.2.2.28 Math.sign(x)
-$export$1($export$1.S, 'Math', { sign: require$$0$20 });
+_export(_export.S, 'Math', { sign: _mathSign });
// 20.2.2.30 Math.sinh(x)
@@ -4912,12 +4036,12 @@ $export$1($export$1.S, 'Math', { sign: require$$0$20 });
var exp$1 = Math.exp;
// V8 near Chromium 38 has a problem with very small numbers
-$export$1($export$1.S + $export$1.F * require$$0(function () {
+_export(_export.S + _export.F * _fails(function () {
return !Math.sinh(-2e-17) != -2e-17;
}), 'Math', {
sinh: function sinh(x) {
return Math.abs(x = +x) < 1
- ? (expm1(x) - expm1(-x)) / 2
+ ? (_mathExpm1(x) - _mathExpm1(-x)) / 2
: (exp$1(x - 1) - exp$1(-x - 1)) * (Math.E / 2);
}
});
@@ -4927,10 +4051,10 @@ $export$1($export$1.S + $export$1.F * require$$0(function () {
var exp$2 = Math.exp;
-$export$1($export$1.S, 'Math', {
+_export(_export.S, 'Math', {
tanh: function tanh(x) {
- var a = expm1(x = +x);
- var b = expm1(-x);
+ var a = _mathExpm1(x = +x);
+ var b = _mathExpm1(-x);
return a == Infinity ? 1 : b == Infinity ? -1 : (a - b) / (exp$2(x) + exp$2(-x));
}
});
@@ -4938,7 +4062,7 @@ $export$1($export$1.S, 'Math', {
// 20.2.2.34 Math.trunc(x)
-$export$1($export$1.S, 'Math', {
+_export(_export.S, 'Math', {
trunc: function trunc(it) {
return (it > 0 ? Math.floor : Math.ceil)(it);
}
@@ -4946,21 +4070,21 @@ $export$1($export$1.S, 'Math', {
// https://github.com/tc39/Array.prototype.includes
-var $includes = require$$0$2(true);
+var $includes = _arrayIncludes(true);
-$export$1($export$1.P, 'Array', {
+_export(_export.P, 'Array', {
includes: function includes(el /* , fromIndex = 0 */) {
return $includes(this, el, arguments.length > 1 ? arguments[1] : undefined);
}
});
-require$$1('includes');
+_addToUnscopables('includes');
-var isEnum$1 = require$$0$6.f;
+var isEnum$1 = _objectPie.f;
var _objectToArray = function (isEntries) {
return function (it) {
- var O = toIObject(it);
- var keys = getKeys(O);
+ var O = _toIobject(it);
+ var keys = _objectKeys(O);
var length = keys.length;
var i = 0;
var result = [];
@@ -4971,19 +4095,11 @@ var _objectToArray = function (isEntries) {
};
};
-
-var _objectToArray$1 = Object.freeze({
- default: _objectToArray,
- __moduleExports: _objectToArray
-});
-
-var require$$0$22 = ( _objectToArray$1 && _objectToArray ) || _objectToArray$1;
-
// https://github.com/tc39/proposal-object-values-entries
-var $values = require$$0$22(false);
+var $values = _objectToArray(false);
-$export$1($export$1.S, 'Object', {
+_export(_export.S, 'Object', {
values: function values(it) {
return $values(it);
}
@@ -4991,9 +4107,9 @@ $export$1($export$1.S, 'Object', {
// https://github.com/tc39/proposal-object-values-entries
-var $entries = require$$0$22(true);
+var $entries = _objectToArray(true);
-$export$1($export$1.S, 'Object', {
+_export(_export.S, 'Object', {
entries: function entries(it) {
return $entries(it);
}
@@ -5006,17 +4122,17 @@ $export$1($export$1.S, 'Object', {
-$export$1($export$1.S, 'Object', {
+_export(_export.S, 'Object', {
getOwnPropertyDescriptors: function getOwnPropertyDescriptors(object) {
- var O = toIObject(object);
- var getDesc = gOPD$1.f;
- var keys = ownKeys(O);
+ var O = _toIobject(object);
+ var getDesc = _objectGopd.f;
+ var keys = _ownKeys(O);
var result = {};
var i = 0;
var key, desc;
while (keys.length > i) {
desc = getDesc(O, key = keys[i++]);
- if (desc !== undefined) createProperty(result, key, desc);
+ if (desc !== undefined) _createProperty(result, key, desc);
}
return result;
}
@@ -5028,46 +4144,30 @@ $export$1($export$1.S, 'Object', {
var _stringPad = function (that, maxLength, fillString, left) {
- var S = String(defined(that));
+ var S = String(_defined(that));
var stringLength = S.length;
var fillStr = fillString === undefined ? ' ' : String(fillString);
- var intMaxLength = toLength(maxLength);
+ var intMaxLength = _toLength(maxLength);
if (intMaxLength <= stringLength || fillStr == '') return S;
var fillLen = intMaxLength - stringLength;
- var stringFiller = repeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
+ var stringFiller = _stringRepeat.call(fillStr, Math.ceil(fillLen / fillStr.length));
if (stringFiller.length > fillLen) stringFiller = stringFiller.slice(0, fillLen);
return left ? stringFiller + S : S + stringFiller;
};
-
-var _stringPad$1 = Object.freeze({
- default: _stringPad,
- __moduleExports: _stringPad
-});
-
-var navigator$1 = global$1.navigator;
+var navigator$1 = _global.navigator;
var _userAgent = navigator$1 && navigator$1.userAgent || '';
-
-var _userAgent$1 = Object.freeze({
- default: _userAgent,
- __moduleExports: _userAgent
-});
-
-var $pad = ( _stringPad$1 && _stringPad ) || _stringPad$1;
-
-var userAgent = ( _userAgent$1 && _userAgent ) || _userAgent$1;
-
// https://github.com/tc39/proposal-string-pad-start-end
// https://github.com/zloirock/core-js/issues/280
-$export$1($export$1.P + $export$1.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
+_export(_export.P + _export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(_userAgent), 'String', {
padStart: function padStart(maxLength /* , fillString = ' ' */) {
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
+ return _stringPad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, true);
}
});
@@ -5077,9 +4177,9 @@ $export$1($export$1.P + $export$1.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(u
// https://github.com/zloirock/core-js/issues/280
-$export$1($export$1.P + $export$1.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(userAgent), 'String', {
+_export(_export.P + _export.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(_userAgent), 'String', {
padEnd: function padEnd(maxLength /* , fillString = ' ' */) {
- return $pad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
+ return _stringPad(this, maxLength, arguments.length > 1 ? arguments[1] : undefined, false);
}
});
@@ -5088,7 +4188,7 @@ $export$1($export$1.P + $export$1.F * /Version\/10\.\d+(\.\d+)? Safari\//.test(u
var slice = [].slice;
-var MSIE = /MSIE .\./.test(userAgent); // <- dirty ie9- check
+var MSIE = /MSIE .\./.test(_userAgent); // <- dirty ie9- check
var wrap$1 = function (set) {
return function (fn, time /* , ...args */) {
var boundArgs = arguments.length > 2;
@@ -5099,19 +4199,19 @@ var wrap$1 = function (set) {
} : fn, time);
};
};
-$export$1($export$1.G + $export$1.B + $export$1.F * MSIE, {
- setTimeout: wrap$1(global$1.setTimeout),
- setInterval: wrap$1(global$1.setInterval)
+_export(_export.G + _export.B + _export.F * MSIE, {
+ setTimeout: wrap$1(_global.setTimeout),
+ setInterval: wrap$1(_global.setInterval)
});
-$export$1($export$1.G + $export$1.B, {
- setImmediate: $task.set,
- clearImmediate: $task.clear
+_export(_export.G + _export.B, {
+ setImmediate: _task.set,
+ clearImmediate: _task.clear
});
-var ITERATOR$4 = wks('iterator');
-var TO_STRING_TAG = wks('toStringTag');
-var ArrayValues = Iterators.Array;
+var ITERATOR$4 = _wks('iterator');
+var TO_STRING_TAG = _wks('toStringTag');
+var ArrayValues = _iterators.Array;
var DOMIterables = {
CSSRuleList: true, // TODO: Not spec compliant, should be false.
@@ -5147,17 +4247,17 @@ var DOMIterables = {
TouchList: false
};
-for (var collections = getKeys(DOMIterables), i$1 = 0; i$1 < collections.length; i$1++) {
+for (var collections = _objectKeys(DOMIterables), i$1 = 0; i$1 < collections.length; i$1++) {
var NAME$1 = collections[i$1];
var explicit = DOMIterables[NAME$1];
- var Collection = global$1[NAME$1];
+ var Collection = _global[NAME$1];
var proto = Collection && Collection.prototype;
var key;
if (proto) {
- if (!proto[ITERATOR$4]) hide(proto, ITERATOR$4, ArrayValues);
- if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME$1);
- Iterators[NAME$1] = ArrayValues;
- if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
+ if (!proto[ITERATOR$4]) _hide(proto, ITERATOR$4, ArrayValues);
+ if (!proto[TO_STRING_TAG]) _hide(proto, TO_STRING_TAG, NAME$1);
+ _iterators[NAME$1] = ArrayValues;
+ if (explicit) for (key in es6_array_iterator) if (!proto[key]) _redefine(proto, key, es6_array_iterator[key], true);
}
}
@@ -5944,338 +5044,6 @@ try {
window.CustomEvent = CustomEvent$1; // expose definition to window
}
-// ==========================================================================
-// Plyr supported types and providers
-// ==========================================================================
-
-var providers = {
- html5: 'html5',
- youtube: 'youtube',
- vimeo: 'vimeo'
-};
-
-var types = {
- audio: 'audio',
- video: 'video'
-};
-
-// ==========================================================================
-// Plyr default config
-// ==========================================================================
-
-var defaults = {
- // Disable
- enabled: true,
-
- // Custom media title
- title: '',
-
- // Logging to console
- debug: false,
-
- // Auto play (if supported)
- autoplay: false,
-
- // Only allow one media playing at once (vimeo only)
- autopause: true,
-
- // Default time to skip when rewind/fast forward
- seekTime: 10,
-
- // Default volume
- volume: 1,
- muted: false,
-
- // Pass a custom duration
- duration: null,
-
- // Display the media duration on load in the current time position
- // If you have opted to display both duration and currentTime, this is ignored
- displayDuration: true,
-
- // Invert the current time to be a countdown
- invertTime: true,
-
- // Clicking the currentTime inverts it's value to show time left rather than elapsed
- toggleInvert: true,
-
- // Aspect ratio (for embeds)
- ratio: '16:9',
-
- // Click video container to play/pause
- clickToPlay: true,
-
- // Auto hide the controls
- hideControls: true,
-
- // Revert to poster on finish (HTML5 - will cause reload)
- showPosterOnEnd: false,
-
- // Disable the standard context menu
- disableContextMenu: true,
-
- // Sprite (for icons)
- loadSprite: true,
- iconPrefix: 'plyr',
- iconUrl: 'https://cdn.plyr.io/3.2.4/plyr.svg',
-
- // Blank video (used to prevent errors on source change)
- blankVideo: 'https://cdn.plyr.io/static/blank.mp4',
-
- // Quality default
- quality: {
- default: 576,
- options: [4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240, 'default']
- },
-
- // Set loops
- loop: {
- active: false
- // start: null,
- // end: null,
- },
-
- // Speed default and options to display
- speed: {
- selected: 1,
- options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]
- },
-
- // Keyboard shortcut settings
- keyboard: {
- focused: true,
- global: false
- },
-
- // Display tooltips
- tooltips: {
- controls: false,
- seek: true
- },
-
- // Captions settings
- captions: {
- active: false,
- language: (navigator.language || navigator.userLanguage).split('-')[0]
- },
-
- // Fullscreen settings
- fullscreen: {
- enabled: true, // Allow fullscreen?
- fallback: true, // Fallback for vintage browsers
- iosNative: false // Use the native fullscreen in iOS (disables custom controls)
- },
-
- // Local storage
- storage: {
- enabled: true,
- key: 'plyr'
- },
-
- // Default controls
- controls: ['play-large',
- // 'restart',
- // 'rewind',
- 'play',
- // 'fast-forward',
- 'progress', 'current-time', 'mute', 'volume', 'captions', 'settings', 'pip', 'airplay', 'fullscreen'],
- settings: ['captions', 'quality', 'speed'],
-
- // Localisation
- i18n: {
- restart: 'Restart',
- rewind: 'Rewind {seektime} secs',
- play: 'Play',
- pause: 'Pause',
- fastForward: 'Forward {seektime} secs',
- seek: 'Seek',
- played: 'Played',
- buffered: 'Buffered',
- currentTime: 'Current time',
- duration: 'Duration',
- volume: 'Volume',
- mute: 'Mute',
- unmute: 'Unmute',
- enableCaptions: 'Enable captions',
- disableCaptions: 'Disable captions',
- enterFullscreen: 'Enter fullscreen',
- exitFullscreen: 'Exit fullscreen',
- frameTitle: 'Player for {title}',
- captions: 'Captions',
- settings: 'Settings',
- speed: 'Speed',
- normal: 'Normal',
- quality: 'Quality',
- loop: 'Loop',
- start: 'Start',
- end: 'End',
- all: 'All',
- reset: 'Reset',
- disabled: 'Disabled',
- enabled: 'Enabled',
- advertisement: 'Ad'
- },
-
- // URLs
- urls: {
- vimeo: {
- api: 'https://player.vimeo.com/api/player.js'
- },
- youtube: {
- api: 'https://www.youtube.com/iframe_api'
- },
- googleIMA: {
- api: 'https://imasdk.googleapis.com/js/sdkloader/ima3.js'
- }
- },
-
- // Custom control listeners
- listeners: {
- seek: null,
- play: null,
- pause: null,
- restart: null,
- rewind: null,
- fastForward: null,
- mute: null,
- volume: null,
- captions: null,
- fullscreen: null,
- pip: null,
- airplay: null,
- speed: null,
- quality: null,
- loop: null,
- language: null
- },
-
- // Events to watch and bubble
- events: [
- // Events to watch on HTML5 media elements and bubble
- // https://developer.mozilla.org/en/docs/Web/Guide/Events/Media_events
- 'ended', 'progress', 'stalled', 'playing', 'waiting', 'canplay', 'canplaythrough', 'loadstart', 'loadeddata', 'loadedmetadata', 'timeupdate', 'volumechange', 'play', 'pause', 'error', 'seeking', 'seeked', 'emptied', 'ratechange', 'cuechange',
-
- // Custom events
- 'enterfullscreen', 'exitfullscreen', 'captionsenabled', 'captionsdisabled', 'languagechange', 'controlshidden', 'controlsshown', 'ready',
-
- // YouTube
- 'statechange', 'qualitychange', 'qualityrequested',
-
- // Ads
- 'adsloaded', 'adscontentpause', 'adscontentresume', 'adstarted', 'adsmidpoint', 'adscomplete', 'adsallcomplete', 'adsimpression', 'adsclick'],
-
- // Selectors
- // Change these to match your template if using custom HTML
- selectors: {
- editable: 'input, textarea, select, [contenteditable]',
- container: '.plyr',
- controls: {
- container: null,
- wrapper: '.plyr__controls'
- },
- labels: '[data-plyr]',
- buttons: {
- play: '[data-plyr="play"]',
- pause: '[data-plyr="pause"]',
- restart: '[data-plyr="restart"]',
- rewind: '[data-plyr="rewind"]',
- fastForward: '[data-plyr="fast-forward"]',
- mute: '[data-plyr="mute"]',
- captions: '[data-plyr="captions"]',
- fullscreen: '[data-plyr="fullscreen"]',
- pip: '[data-plyr="pip"]',
- airplay: '[data-plyr="airplay"]',
- settings: '[data-plyr="settings"]',
- loop: '[data-plyr="loop"]'
- },
- inputs: {
- seek: '[data-plyr="seek"]',
- volume: '[data-plyr="volume"]',
- speed: '[data-plyr="speed"]',
- language: '[data-plyr="language"]',
- quality: '[data-plyr="quality"]'
- },
- display: {
- currentTime: '.plyr__time--current',
- duration: '.plyr__time--duration',
- buffer: '.plyr__progress--buffer',
- played: '.plyr__progress--played',
- loop: '.plyr__progress--loop',
- volume: '.plyr__volume--display'
- },
- progress: '.plyr__progress',
- captions: '.plyr__captions',
- menu: {
- quality: '.js-plyr__menu__list--quality'
- }
- },
-
- // Class hooks added to the player in different states
- classNames: {
- video: 'plyr__video-wrapper',
- embed: 'plyr__video-embed',
- ads: 'plyr__ads',
- control: 'plyr__control',
- type: 'plyr--{0}',
- provider: 'plyr--{0}',
- stopped: 'plyr--stopped',
- playing: 'plyr--playing',
- loading: 'plyr--loading',
- error: 'plyr--has-error',
- hover: 'plyr--hover',
- tooltip: 'plyr__tooltip',
- cues: 'plyr__cues',
- hidden: 'plyr__sr-only',
- hideControls: 'plyr--hide-controls',
- isIos: 'plyr--is-ios',
- isTouch: 'plyr--is-touch',
- uiSupported: 'plyr--full-ui',
- noTransition: 'plyr--no-transition',
- menu: {
- value: 'plyr__menu__value',
- badge: 'plyr__badge',
- open: 'plyr--menu-open'
- },
- captions: {
- enabled: 'plyr--captions-enabled',
- active: 'plyr--captions-active'
- },
- fullscreen: {
- enabled: 'plyr--fullscreen-enabled',
- fallback: 'plyr--fullscreen-fallback'
- },
- pip: {
- supported: 'plyr--pip-supported',
- active: 'plyr--pip-active'
- },
- airplay: {
- supported: 'plyr--airplay-supported',
- active: 'plyr--airplay-active'
- },
- tabFocus: 'plyr__tab-focus'
- },
-
- // Embed attributes
- attributes: {
- embed: {
- provider: 'data-plyr-provider',
- id: 'data-plyr-embed-id'
- }
- },
-
- // API keys
- keys: {
- google: null
- },
-
- // Advertisements plugin
- // Register for an account here: http://vi.ai/publisher-video-monetization/?aid=plyrio
- ads: {
- enabled: false,
- publisherId: ''
- }
-};
-
var loadjs_umd = createCommonjsModule(function (module, exports) {
(function(root, factory) {
if (typeof undefined === 'function' && undefined.amd) {
@@ -6570,6 +5338,21 @@ return loadjs;
}));
});
+// ==========================================================================
+// Plyr supported types and providers
+// ==========================================================================
+
+var providers = {
+ html5: 'html5',
+ youtube: 'youtube',
+ vimeo: 'vimeo'
+};
+
+var types = {
+ audio: 'audio',
+ video: 'video'
+};
+
var classCallCheck = function (instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
@@ -6922,14 +5705,14 @@ var utils = {
},
- // Remove an element
+ // Remove element(s)
removeElement: function removeElement(element) {
- if (!utils.is.element(element) || !utils.is.element(element.parentNode)) {
+ if (utils.is.nodeList(element) || utils.is.array(element)) {
+ Array.from(element).forEach(utils.removeElement);
return;
}
- if (utils.is.nodeList(element) || utils.is.array(element)) {
- Array.from(element).forEach(utils.removeElement);
+ if (!utils.is.element(element) || !utils.is.element(element.parentNode)) {
return;
}
@@ -7101,61 +5884,6 @@ var utils = {
},
- // Find the UI controls and store references in custom controls
- // TODO: Allow settings menus with custom controls
- findElements: function findElements() {
- try {
- this.elements.controls = utils.getElement.call(this, this.config.selectors.controls.wrapper);
-
- // Buttons
- this.elements.buttons = {
- play: utils.getElements.call(this, this.config.selectors.buttons.play),
- pause: utils.getElement.call(this, this.config.selectors.buttons.pause),
- restart: utils.getElement.call(this, this.config.selectors.buttons.restart),
- rewind: utils.getElement.call(this, this.config.selectors.buttons.rewind),
- fastForward: utils.getElement.call(this, this.config.selectors.buttons.fastForward),
- mute: utils.getElement.call(this, this.config.selectors.buttons.mute),
- pip: utils.getElement.call(this, this.config.selectors.buttons.pip),
- airplay: utils.getElement.call(this, this.config.selectors.buttons.airplay),
- settings: utils.getElement.call(this, this.config.selectors.buttons.settings),
- captions: utils.getElement.call(this, this.config.selectors.buttons.captions),
- fullscreen: utils.getElement.call(this, this.config.selectors.buttons.fullscreen)
- };
-
- // Progress
- this.elements.progress = utils.getElement.call(this, this.config.selectors.progress);
-
- // Inputs
- this.elements.inputs = {
- seek: utils.getElement.call(this, this.config.selectors.inputs.seek),
- volume: utils.getElement.call(this, this.config.selectors.inputs.volume)
- };
-
- // Display
- this.elements.display = {
- buffer: utils.getElement.call(this, this.config.selectors.display.buffer),
- currentTime: utils.getElement.call(this, this.config.selectors.display.currentTime),
- duration: utils.getElement.call(this, this.config.selectors.display.duration)
- };
-
- // Seek tooltip
- if (utils.is.element(this.elements.progress)) {
- this.elements.display.seekTooltip = this.elements.progress.querySelector('.' + this.config.classNames.tooltip);
- }
-
- return true;
- } catch (error) {
- // Log it
- this.debug.warn('It looks like there is a problem with your custom controls HTML', error);
-
- // Restore native video controls
- this.toggleNativeControls(true);
-
- return false;
- }
- },
-
-
// Get the focused element
getFocusElement: function getFocusElement() {
var focused = document.activeElement;
@@ -7329,6 +6057,22 @@ var utils = {
},
+ // Format string
+ format: function format(input) {
+ for (var _len = arguments.length, args = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
+ args[_key - 1] = arguments[_key];
+ }
+
+ if (utils.is.empty(input)) {
+ return input;
+ }
+
+ return input.toString().replace(/{(\d+)}/g, function (match, i) {
+ return utils.is.string(args[i]) ? args[i] : '';
+ });
+ },
+
+
// Get percentage
getPercentage: function getPercentage(current, max) {
if (current === 0 || max === 0 || Number.isNaN(current) || Number.isNaN(max)) {
@@ -7442,8 +6186,8 @@ var utils = {
extend: function extend() {
var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
- for (var _len = arguments.length, sources = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
- sources[_key - 1] = arguments[_key];
+ for (var _len2 = arguments.length, sources = Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {
+ sources[_key2 - 1] = arguments[_key2];
}
if (!sources.length) {
@@ -7504,7 +6248,7 @@ var utils = {
}
// Vimeo
- if (/^https?:\/\/player.vimeo.com\/video\/\d{8,}(?=\b|\/)/.test(url)) {
+ if (/^https?:\/\/player.vimeo.com\/video\/\d{0,9}(?=\b|\/)/.test(url)) {
return providers.vimeo;
}
@@ -7795,279 +6539,157 @@ var support = {
};
// ==========================================================================
-// Console wrapper
-// ==========================================================================
-
-var noop = function noop() {};
-
-var Console = function () {
- function Console() {
- var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
- classCallCheck(this, Console);
-
- this.enabled = window.console && enabled;
-
- if (this.enabled) {
- this.log('Debugging enabled');
- }
- }
- createClass(Console, [{
- key: 'log',
- get: function get() {
- // eslint-disable-next-line no-console
- return this.enabled ? Function.prototype.bind.call(console.log, console) : noop;
- }
- }, {
- key: 'warn',
- get: function get() {
- // eslint-disable-next-line no-console
- return this.enabled ? Function.prototype.bind.call(console.warn, console) : noop;
- }
- }, {
- key: 'error',
- get: function get() {
- // eslint-disable-next-line no-console
- return this.enabled ? Function.prototype.bind.call(console.error, console) : noop;
+var html5 = {
+ getSources: function getSources() {
+ if (!this.isHTML5) {
+ return null;
}
- }]);
- return Console;
-}();
-
-// ==========================================================================
-
-var browser = utils.getBrowser();
-function onChange() {
- if (!this.enabled) {
- return;
- }
-
- // Update toggle button
- var button = this.player.elements.buttons.fullscreen;
- if (utils.is.element(button)) {
- utils.toggleState(button, this.active);
- }
-
- // Trigger an event
- utils.dispatchEvent(this.target, this.active ? 'enterfullscreen' : 'exitfullscreen', true);
-
- // Trap focus in container
- if (!browser.isIos) {
- utils.trapFocus.call(this.player, this.target, this.active);
- }
-}
-
-function toggleFallback() {
- var toggle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
-
- // Store or restore scroll position
- if (toggle) {
- this.scrollPosition = {
- x: window.scrollX || 0,
- y: window.scrollY || 0
- };
- } else {
- window.scrollTo(this.scrollPosition.x, this.scrollPosition.y);
- }
-
- // Toggle scroll
- document.body.style.overflow = toggle ? 'hidden' : '';
-
- // Toggle class hook
- utils.toggleClass(this.target, this.player.config.classNames.fullscreen.fallback, toggle);
-
- // Toggle button and fire events
- onChange.call(this);
-}
-
-var Fullscreen = function () {
- function Fullscreen(player) {
- var _this = this;
+ return this.media.querySelectorAll('source');
+ },
- classCallCheck(this, Fullscreen);
- // Keep reference to parent
- this.player = player;
+ // Get quality levels
+ getQualityOptions: function getQualityOptions() {
+ if (!this.isHTML5) {
+ return null;
+ }
- // Get prefix
- this.prefix = Fullscreen.prefix;
- this.property = Fullscreen.property;
+ // Get sources
+ var sources = html5.getSources.call(this);
- // Scroll position
- this.scrollPosition = { x: 0, y: 0 };
+ if (utils.is.empty(sources)) {
+ return null;
+ }
- // Register event listeners
- // Handle event (incase user presses escape etc)
- utils.on(document, this.prefix === 'ms' ? 'MSFullscreenChange' : this.prefix + 'fullscreenchange', function () {
- // TODO: Filter for target??
- onChange.call(_this);
+ // Get <source> with size attribute
+ var sizes = Array.from(sources).filter(function (source) {
+ return !utils.is.empty(source.getAttribute('size'));
});
- // Fullscreen toggle on double click
- utils.on(this.player.elements.container, 'dblclick', function (event) {
- // Ignore double click in controls
- if (utils.is.element(_this.player.elements.controls) && _this.player.elements.controls.contains(event.target)) {
- return;
- }
-
- _this.toggle();
- });
+ // If none, bail
+ if (utils.is.empty(sizes)) {
+ return null;
+ }
- // Update the UI
- this.update();
- }
+ // Reduce to unique list
+ return utils.dedupe(sizes.map(function (source) {
+ return Number(source.getAttribute('size'));
+ }));
+ },
+ extend: function extend() {
+ if (!this.isHTML5) {
+ return;
+ }
- // Determine if native supported
+ var player = this;
+ // Quality
+ Object.defineProperty(player.media, 'quality', {
+ get: function get() {
+ // Get sources
+ var sources = html5.getSources.call(player);
- createClass(Fullscreen, [{
- key: 'update',
+ if (utils.is.empty(sources)) {
+ return null;
+ }
+ var matches = Array.from(sources).filter(function (source) {
+ return source.getAttribute('src') === player.source;
+ });
- // Update UI
- value: function update() {
- if (this.enabled) {
- this.player.debug.log((Fullscreen.native ? 'Native' : 'Fallback') + ' fullscreen enabled');
- } else {
- this.player.debug.log('Fullscreen not supported and fallback disabled');
- }
+ if (utils.is.empty(matches)) {
+ return null;
+ }
- // Add styling hook to show button
- utils.toggleClass(this.player.elements.container, this.player.config.classNames.fullscreen.enabled, this.enabled);
- }
+ return Number(matches[0].getAttribute('size'));
+ },
+ set: function set(input) {
+ // Get sources
+ var sources = html5.getSources.call(player);
- // Make an element fullscreen
+ if (utils.is.empty(sources)) {
+ return;
+ }
- }, {
- key: 'enter',
- value: function enter() {
- if (!this.enabled) {
- return;
- }
+ // Get matches for requested size
+ var matches = Array.from(sources).filter(function (source) {
+ return Number(source.getAttribute('size')) === input;
+ });
- // iOS native fullscreen doesn't need the request step
- if (browser.isIos && this.player.config.fullscreen.iosNative) {
- if (this.player.playing) {
- this.target.webkitEnterFullscreen();
+ // No matches for requested size
+ if (utils.is.empty(matches)) {
+ return;
}
- } else if (!Fullscreen.native) {
- toggleFallback.call(this, true);
- } else if (!this.prefix) {
- this.target.requestFullscreen();
- } else if (!utils.is.empty(this.prefix)) {
- this.target[this.prefix + 'Request' + this.property]();
- }
- }
- // Bail from fullscreen
+ // Get supported sources
+ var supported = matches.filter(function (source) {
+ return support.mime.call(player, source.getAttribute('type'));
+ });
- }, {
- key: 'exit',
- value: function exit() {
- if (!this.enabled) {
- return;
- }
+ // No supported sources
+ if (utils.is.empty(supported)) {
+ return;
+ }
- // iOS native fullscreen
- if (browser.isIos && this.player.config.fullscreen.iosNative) {
- this.target.webkitExitFullscreen();
- this.player.play();
- } else if (!Fullscreen.native) {
- toggleFallback.call(this, false);
- } else if (!this.prefix) {
- (document.cancelFullScreen || document.exitFullscreen).call(document);
- } else if (!utils.is.empty(this.prefix)) {
- var action = this.prefix === 'moz' ? 'Cancel' : 'Exit';
- document['' + this.prefix + action + this.property]();
- }
- }
+ // Trigger change event
+ utils.dispatchEvent.call(player, player.media, 'qualityrequested', false, {
+ quality: input
+ });
- // Toggle state
+ // Get current state
+ var currentTime = player.currentTime,
+ playing = player.playing;
- }, {
- key: 'toggle',
- value: function toggle() {
- if (!this.active) {
- this.enter();
- } else {
- this.exit();
- }
- }
- }, {
- key: 'enabled',
+ // Set new source
+ player.media.src = supported[0].getAttribute('src');
- // Determine if fullscreen is enabled
- get: function get() {
- return (Fullscreen.native || this.player.config.fullscreen.fallback) && this.player.config.fullscreen.enabled && this.player.supported.ui && this.player.isVideo;
- }
+ // Load new source
+ player.media.load();
- // Get active state
+ // Resume playing
+ if (playing) {
+ player.play();
+ }
- }, {
- key: 'active',
- get: function get() {
- if (!this.enabled) {
- return false;
- }
+ // Restore time
+ player.currentTime = currentTime;
- // Fallback using classname
- if (!Fullscreen.native) {
- return utils.hasClass(this.target, this.player.config.classNames.fullscreen.fallback);
+ // Trigger change event
+ utils.dispatchEvent.call(player, player.media, 'qualitychange', false, {
+ quality: input
+ });
}
+ });
+ },
- var element = !this.prefix ? document.fullscreenElement : document['' + this.prefix + this.property + 'Element'];
-
- return element === this.target;
- }
- // Get target element
-
- }, {
- key: 'target',
- get: function get() {
- return browser.isIos && this.player.config.fullscreen.iosNative ? this.player.media : this.player.elements.container;
- }
- }], [{
- key: 'native',
- get: function get() {
- return !!(document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled);
+ // Cancel current network requests
+ // See https://github.com/sampotts/plyr/issues/174
+ cancelRequests: function cancelRequests() {
+ if (!this.isHTML5) {
+ return;
}
- // Get the prefix for handlers
-
- }, {
- key: 'prefix',
- get: function get() {
- // No prefix
- if (utils.is.function(document.exitFullscreen)) {
- return '';
- }
-
- // Check for fullscreen support by vendor prefix
- var value = '';
- var prefixes = ['webkit', 'moz', 'ms'];
+ // Remove child sources
+ utils.removeElement(html5.getSources());
- prefixes.some(function (pre) {
- if (utils.is.function(document[pre + 'ExitFullscreen']) || utils.is.function(document[pre + 'CancelFullScreen'])) {
- value = pre;
- return true;
- }
+ // Set blank video src attribute
+ // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error
+ // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection
+ this.media.setAttribute('src', this.config.blankVideo);
- return false;
- });
+ // Load the new empty source
+ // This will cancel existing requests
+ // See https://github.com/sampotts/plyr/issues/174
+ this.media.load();
- return value;
- }
- }, {
- key: 'property',
- get: function get() {
- return this.prefix === 'moz' ? 'FullScreen' : 'Fullscreen';
- }
- }]);
- return Fullscreen;
-}();
+ // Debugging
+ this.debug.log('Cancelled network requests');
+ }
+};
// ==========================================================================
@@ -8101,277 +6723,8 @@ var i18n = {
// ==========================================================================
-var captions = {
- // Setup captions
- setup: function setup() {
- // Requires UI support
- if (!this.supported.ui) {
- return;
- }
-
- // Set default language if not set
- var stored = this.storage.get('language');
-
- if (!utils.is.empty(stored)) {
- this.captions.language = stored;
- }
-
- if (utils.is.empty(this.captions.language)) {
- this.captions.language = this.config.captions.language.toLowerCase();
- }
-
- // Set captions enabled state if not set
- if (!utils.is.boolean(this.captions.active)) {
- var active = this.storage.get('captions');
-
- if (utils.is.boolean(active)) {
- this.captions.active = active;
- } else {
- this.captions.active = this.config.captions.active;
- }
- }
-
- // Only Vimeo and HTML5 video supported at this point
- if (!this.isVideo || this.isYouTube || this.isHTML5 && !support.textTracks) {
- // Clear menu and hide
- if (utils.is.array(this.config.controls) && this.config.controls.includes('settings') && this.config.settings.includes('captions')) {
- controls.setCaptionsMenu.call(this);
- }
-
- return;
- }
-
- // Inject the container
- if (!utils.is.element(this.elements.captions)) {
- this.elements.captions = utils.createElement('div', utils.getAttributesFromSelector(this.config.selectors.captions));
-
- utils.insertAfter(this.elements.captions, this.elements.wrapper);
- }
-
- // Set the class hook
- utils.toggleClass(this.elements.container, this.config.classNames.captions.enabled, !utils.is.empty(captions.getTracks.call(this)));
-
- // Get tracks
- var tracks = captions.getTracks.call(this);
-
- // If no caption file exists, hide container for caption text
- if (utils.is.empty(tracks)) {
- return;
- }
-
- // Get browser info
- var browser = utils.getBrowser();
-
- // Fix IE captions if CORS is used
- // Fetch captions and inject as blobs instead (data URIs not supported!)
- if (browser.isIE && window.URL) {
- var elements = this.media.querySelectorAll('track');
-
- Array.from(elements).forEach(function (track) {
- var src = track.getAttribute('src');
- var href = utils.parseUrl(src);
-
- if (href.hostname !== window.location.href.hostname && ['http:', 'https:'].includes(href.protocol)) {
- utils.fetch(src, 'blob').then(function (blob) {
- track.setAttribute('src', window.URL.createObjectURL(blob));
- }).catch(function () {
- utils.removeElement(track);
- });
- }
- });
- }
-
- // Set language
- captions.setLanguage.call(this);
-
- // Enable UI
- captions.show.call(this);
-
- // Set available languages in list
- if (utils.is.array(this.config.controls) && this.config.controls.includes('settings') && this.config.settings.includes('captions')) {
- controls.setCaptionsMenu.call(this);
- }
- },
-
-
- // Set the captions language
- setLanguage: function setLanguage() {
- var _this = this;
-
- // Setup HTML5 track rendering
- if (this.isHTML5 && this.isVideo) {
- captions.getTracks.call(this).forEach(function (track) {
- // Show track
- utils.on(track, 'cuechange', function (event) {
- return captions.setCue.call(_this, event);
- });
-
- // Turn off native caption rendering to avoid double captions
- // eslint-disable-next-line
- track.mode = 'hidden';
- });
-
- // Get current track
- var currentTrack = captions.getCurrentTrack.call(this);
-
- // Check if suported kind
- if (utils.is.track(currentTrack)) {
- // If we change the active track while a cue is already displayed we need to update it
- if (Array.from(currentTrack.activeCues || []).length) {
- captions.setCue.call(this, currentTrack);
- }
- }
- } else if (this.isVimeo && this.captions.active) {
- this.embed.enableTextTrack(this.language);
- }
- },
-
-
- // Get the tracks
- getTracks: function getTracks() {
- // Return empty array at least
- if (utils.is.nullOrUndefined(this.media)) {
- return [];
- }
-
- // Only get accepted kinds
- return Array.from(this.media.textTracks || []).filter(function (track) {
- return ['captions', 'subtitles'].includes(track.kind);
- });
- },
-
-
- // Get the current track for the current language
- getCurrentTrack: function getCurrentTrack() {
- var _this2 = this;
-
- var tracks = captions.getTracks.call(this);
-
- if (!tracks.length) {
- return null;
- }
-
- // Get track based on current language
- var track = tracks.find(function (track) {
- return track.language.toLowerCase() === _this2.language;
- });
-
- // Get the <track> with default attribute
- if (!track) {
- track = utils.getElement.call(this, 'track[default]');
- }
-
- // Get the first track
- if (!track) {
- var _tracks = slicedToArray(tracks, 1);
-
- track = _tracks[0];
- }
-
- return track;
- },
-
-
- // Get UI label for track
- getLabel: function getLabel(track) {
- var currentTrack = track;
-
- if (!utils.is.track(currentTrack) && support.textTracks && this.captions.active) {
- currentTrack = captions.getCurrentTrack.call(this);
- }
-
- if (utils.is.track(currentTrack)) {
- if (!utils.is.empty(currentTrack.label)) {
- return currentTrack.label;
- }
-
- if (!utils.is.empty(currentTrack.language)) {
- return track.language.toUpperCase();
- }
-
- return i18n.get('enabled', this.config);
- }
-
- return i18n.get('disabled', this.config);
- },
-
-
- // Display active caption if it contains text
- setCue: function setCue(input) {
- // Get the track from the event if needed
- var track = utils.is.event(input) ? input.target : input;
- var activeCues = track.activeCues;
-
- var active = activeCues.length && activeCues[0];
- var currentTrack = captions.getCurrentTrack.call(this);
-
- // Only display current track
- if (track !== currentTrack) {
- return;
- }
-
- // Display a cue, if there is one
- if (utils.is.cue(active)) {
- captions.setText.call(this, active.getCueAsHTML());
- } else {
- captions.setText.call(this, null);
- }
-
- utils.dispatchEvent.call(this, this.media, 'cuechange');
- },
-
-
- // Set the current caption
- setText: function setText(input) {
- // Requires UI
- if (!this.supported.ui) {
- return;
- }
-
- if (utils.is.element(this.elements.captions)) {
- var content = utils.createElement('span');
-
- // Empty the container
- utils.emptyElement(this.elements.captions);
-
- // Default to empty
- var caption = !utils.is.nullOrUndefined(input) ? input : '';
-
- // Set the span content
- if (utils.is.string(caption)) {
- content.textContent = caption.trim();
- } else {
- content.appendChild(caption);
- }
-
- // Set new caption text
- this.elements.captions.appendChild(content);
- } else {
- this.debug.warn('No captions element to render to');
- }
- },
-
-
- // Display captions container and button (for initialization)
- show: function show() {
- // Try to load the value from storage
- var active = this.storage.get('captions');
-
- // Otherwise fall back to the default config
- if (!utils.is.boolean(active)) {
- active = this.config.captions.active;
- } else {
- this.captions.active = active;
- }
-
- if (active) {
- utils.toggleClass(this.elements.container, this.config.classNames.captions.active, true);
- utils.toggleState(this.elements.buttons.captions, true);
- }
- }
-};
-
-// ==========================================================================
+// Sniff out the browser
+var browser = utils.getBrowser();
var ui = {
addStyleHook: function addStyleHook() {
@@ -8450,6 +6803,18 @@ var ui = {
// Update the UI
ui.checkPlaying.call(this);
+ // Check for picture-in-picture support
+ utils.toggleClass(this.elements.container, this.config.classNames.pip.supported, support.pip && this.isHTML5 && this.isVideo);
+
+ // Check for airplay support
+ utils.toggleClass(this.elements.container, this.config.classNames.airplay.supported, support.airplay && this.isHTML5);
+
+ // Add iOS class
+ utils.toggleClass(this.elements.container, this.config.classNames.isIos, browser.isIos);
+
+ // Add touch class
+ utils.toggleClass(this.elements.container, this.config.classNames.isTouch, this.touch);
+
// Ready for API calls
this.ready = true;
@@ -8460,6 +6825,9 @@ var ui = {
// Set the title
ui.setTitle.call(this);
+
+ // Set the poster image
+ ui.setPoster.call(this);
},
@@ -8494,21 +6862,42 @@ var ui = {
// Default to media type
var title = !utils.is.empty(this.config.title) ? this.config.title : 'video';
+ var format = i18n.get('frameTitle', this.config);
- iframe.setAttribute('title', i18n.get('frameTitle', this.config));
+ iframe.setAttribute('title', format.replace('{title}', title));
}
},
+ // Set the poster image
+ setPoster: function setPoster() {
+ if (!utils.is.element(this.elements.poster) || utils.is.empty(this.poster)) {
+ return;
+ }
+
+ // Set the inline style
+ var posters = this.poster.split(',');
+ this.elements.poster.style.backgroundImage = posters.map(function (p) {
+ return 'url(\'' + p + '\')';
+ }).join(',');
+ },
+
+
// Check playing state
- checkPlaying: function checkPlaying() {
+ checkPlaying: function checkPlaying(event) {
// Class hooks
utils.toggleClass(this.elements.container, this.config.classNames.playing, this.playing);
- utils.toggleClass(this.elements.container, this.config.classNames.stopped, this.paused);
+ utils.toggleClass(this.elements.container, this.config.classNames.paused, this.paused);
+ utils.toggleClass(this.elements.container, this.config.classNames.stopped, this.stopped);
// Set ARIA state
utils.toggleState(this.elements.buttons.play, this.playing);
+ // Only update controls on non timeupdate events
+ if (utils.is.event(event) && event.type === 'timeupdate') {
+ return;
+ }
+
// Toggle controls
this.toggleControls(!this.playing);
},
@@ -8711,159 +7100,6 @@ var ui = {
// ==========================================================================
-var html5 = {
- getSources: function getSources() {
- if (!this.isHTML5) {
- return null;
- }
-
- return this.media.querySelectorAll('source');
- },
-
-
- // Get quality levels
- getQualityOptions: function getQualityOptions() {
- if (!this.isHTML5) {
- return null;
- }
-
- // Get sources
- var sources = html5.getSources.call(this);
-
- if (utils.is.empty(sources)) {
- return null;
- }
-
- // Get <source> with size attribute
- var sizes = Array.from(sources).filter(function (source) {
- return !utils.is.empty(source.getAttribute('size'));
- });
-
- // If none, bail
- if (utils.is.empty(sizes)) {
- return null;
- }
-
- // Reduce to unique list
- return utils.dedupe(sizes.map(function (source) {
- return Number(source.getAttribute('size'));
- }));
- },
- extend: function extend() {
- if (!this.isHTML5) {
- return;
- }
-
- var player = this;
-
- // Quality
- Object.defineProperty(player.media, 'quality', {
- get: function get() {
- // Get sources
- var sources = html5.getSources.call(player);
-
- if (utils.is.empty(sources)) {
- return null;
- }
-
- var matches = Array.from(sources).filter(function (source) {
- return source.getAttribute('src') === player.source;
- });
-
- if (utils.is.empty(matches)) {
- return null;
- }
-
- return Number(matches[0].getAttribute('size'));
- },
- set: function set(input) {
- // Get sources
- var sources = html5.getSources.call(player);
-
- if (utils.is.empty(sources)) {
- return;
- }
-
- // Get matches for requested size
- var matches = Array.from(sources).filter(function (source) {
- return Number(source.getAttribute('size')) === input;
- });
-
- // No matches for requested size
- if (utils.is.empty(matches)) {
- return;
- }
-
- // Get supported sources
- var supported = matches.filter(function (source) {
- return support.mime.call(player, source.getAttribute('type'));
- });
-
- // No supported sources
- if (utils.is.empty(supported)) {
- return;
- }
-
- // Trigger change event
- utils.dispatchEvent.call(player, player.media, 'qualityrequested', false, {
- quality: input
- });
-
- // Get current state
- var currentTime = player.currentTime,
- playing = player.playing;
-
- // Set new source
-
- player.media.src = supported[0].getAttribute('src');
-
- // Load new source
- player.media.load();
-
- // Resume playing
- if (playing) {
- player.play();
- }
-
- // Restore time
- player.currentTime = currentTime;
-
- // Trigger change event
- utils.dispatchEvent.call(player, player.media, 'qualitychange', false, {
- quality: input
- });
- }
- });
- },
-
-
- // Cancel current network requests
- // See https://github.com/sampotts/plyr/issues/174
- cancelRequests: function cancelRequests() {
- if (!this.isHTML5) {
- return;
- }
-
- // Remove child sources
- utils.removeElement(html5.getSources());
-
- // Set blank video src attribute
- // This is to prevent a MEDIA_ERR_SRC_NOT_SUPPORTED error
- // Info: http://stackoverflow.com/questions/32231579/how-to-properly-dispose-of-an-html5-video-and-close-socket-or-connection
- this.media.setAttribute('src', this.config.blankVideo);
-
- // Load the new empty source
- // This will cancel existing requests
- // See https://github.com/sampotts/plyr/issues/174
- this.media.load();
-
- // Debugging
- this.debug.log('Cancelled network requests');
- }
-};
-
-// ==========================================================================
-
// Sniff out the browser
var browser$1 = utils.getBrowser();
@@ -8893,18 +7129,76 @@ var controls = {
// Get icon URL
getIconUrl: function getIconUrl() {
+ var url = new URL(this.config.iconUrl, window.location);
+ var cors = url.host !== window.location.host || browser$1.isIE && !window.svg4everybody;
+
return {
url: this.config.iconUrl,
- absolute: this.config.iconUrl.indexOf('http') === 0 || browser$1.isIE && !window.svg4everybody
+ cors: cors
};
},
+ // Find the UI controls and store references in custom controls
+ // TODO: Allow settings menus with custom controls
+ findElements: function findElements() {
+ try {
+ this.elements.controls = utils.getElement.call(this, this.config.selectors.controls.wrapper);
+
+ // Buttons
+ this.elements.buttons = {
+ play: utils.getElements.call(this, this.config.selectors.buttons.play),
+ pause: utils.getElement.call(this, this.config.selectors.buttons.pause),
+ restart: utils.getElement.call(this, this.config.selectors.buttons.restart),
+ rewind: utils.getElement.call(this, this.config.selectors.buttons.rewind),
+ fastForward: utils.getElement.call(this, this.config.selectors.buttons.fastForward),
+ mute: utils.getElement.call(this, this.config.selectors.buttons.mute),
+ pip: utils.getElement.call(this, this.config.selectors.buttons.pip),
+ airplay: utils.getElement.call(this, this.config.selectors.buttons.airplay),
+ settings: utils.getElement.call(this, this.config.selectors.buttons.settings),
+ captions: utils.getElement.call(this, this.config.selectors.buttons.captions),
+ fullscreen: utils.getElement.call(this, this.config.selectors.buttons.fullscreen)
+ };
+
+ // Progress
+ this.elements.progress = utils.getElement.call(this, this.config.selectors.progress);
+
+ // Inputs
+ this.elements.inputs = {
+ seek: utils.getElement.call(this, this.config.selectors.inputs.seek),
+ volume: utils.getElement.call(this, this.config.selectors.inputs.volume)
+ };
+
+ // Display
+ this.elements.display = {
+ buffer: utils.getElement.call(this, this.config.selectors.display.buffer),
+ currentTime: utils.getElement.call(this, this.config.selectors.display.currentTime),
+ duration: utils.getElement.call(this, this.config.selectors.display.duration)
+ };
+
+ // Seek tooltip
+ if (utils.is.element(this.elements.progress)) {
+ this.elements.display.seekTooltip = this.elements.progress.querySelector('.' + this.config.classNames.tooltip);
+ }
+
+ return true;
+ } catch (error) {
+ // Log it
+ this.debug.warn('It looks like there is a problem with your custom controls HTML', error);
+
+ // Restore native video controls
+ this.toggleNativeControls(true);
+
+ return false;
+ }
+ },
+
+
// Create <svg> icon
createIcon: function createIcon(type, attributes) {
var namespace = 'http://www.w3.org/2000/svg';
var iconUrl = controls.getIconUrl.call(this);
- var iconPath = (!iconUrl.absolute ? iconUrl.url : '') + '#' + this.config.iconPrefix;
+ var iconPath = (!iconUrl.cors ? iconUrl.url : '') + '#' + this.config.iconPrefix;
// Create <svg>
var icon = document.createElementNS(namespace, 'svg');
@@ -9321,6 +7615,7 @@ var controls = {
break;
case 576:
+ case 480:
label = 'SD';
break;
@@ -9676,12 +7971,11 @@ var controls = {
// Toggle Menu
- showTab: function showTab(event) {
+ showTab: function showTab() {
+ var target = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
var menu = this.elements.settings.menu;
- var tab = event.target;
- var show = tab.getAttribute('aria-expanded') === 'false';
- var pane = document.getElementById(tab.getAttribute('aria-controls'));
+ var pane = document.getElementById(target);
// Nothing to show, bail
if (!utils.is.element(pane)) {
@@ -9741,8 +8035,12 @@ var controls = {
current.setAttribute('tabindex', -1);
// Set attributes on target
- utils.toggleHidden(pane, !show);
- tab.setAttribute('aria-expanded', show);
+ utils.toggleHidden(pane, false);
+
+ var tabs = utils.getElements.call(this, '[aria-controls="' + target + '"]');
+ Array.from(tabs).forEach(function (tab) {
+ tab.setAttribute('aria-expanded', true);
+ });
pane.removeAttribute('tabindex');
// Focus the first item
@@ -10005,7 +8303,7 @@ var controls = {
var icon = controls.getIconUrl.call(this);
// Only load external sprite using AJAX
- if (icon.absolute) {
+ if (icon.cors) {
utils.loadSprite(icon.url, 'sprite-plyr');
}
}
@@ -10092,7 +8390,7 @@ var controls = {
// Find the elements if need be
if (!utils.is.element(this.elements.controls)) {
- utils.findElements.call(this);
+ controls.findElements.call(this);
}
// Edge sometimes doesn't finish the paint so force a redraw
@@ -10115,9 +8413,880 @@ var controls = {
// ==========================================================================
-// Sniff out the browser
+var captions = {
+ // Setup captions
+ setup: function setup() {
+ // Requires UI support
+ if (!this.supported.ui) {
+ return;
+ }
+
+ // Set default language if not set
+ var stored = this.storage.get('language');
+
+ if (!utils.is.empty(stored)) {
+ this.captions.language = stored;
+ }
+
+ if (utils.is.empty(this.captions.language)) {
+ this.captions.language = this.config.captions.language.toLowerCase();
+ }
+
+ // Set captions enabled state if not set
+ if (!utils.is.boolean(this.captions.active)) {
+ var active = this.storage.get('captions');
+
+ if (utils.is.boolean(active)) {
+ this.captions.active = active;
+ } else {
+ this.captions.active = this.config.captions.active;
+ }
+ }
+
+ // Only Vimeo and HTML5 video supported at this point
+ if (!this.isVideo || this.isYouTube || this.isHTML5 && !support.textTracks) {
+ // Clear menu and hide
+ if (utils.is.array(this.config.controls) && this.config.controls.includes('settings') && this.config.settings.includes('captions')) {
+ controls.setCaptionsMenu.call(this);
+ }
+
+ return;
+ }
+
+ // Inject the container
+ if (!utils.is.element(this.elements.captions)) {
+ this.elements.captions = utils.createElement('div', utils.getAttributesFromSelector(this.config.selectors.captions));
+
+ utils.insertAfter(this.elements.captions, this.elements.wrapper);
+ }
+
+ // Set the class hook
+ utils.toggleClass(this.elements.container, this.config.classNames.captions.enabled, !utils.is.empty(captions.getTracks.call(this)));
+
+ // Get tracks
+ var tracks = captions.getTracks.call(this);
+
+ // If no caption file exists, hide container for caption text
+ if (utils.is.empty(tracks)) {
+ return;
+ }
+
+ // Get browser info
+ var browser = utils.getBrowser();
+
+ // Fix IE captions if CORS is used
+ // Fetch captions and inject as blobs instead (data URIs not supported!)
+ if (browser.isIE && window.URL) {
+ var elements = this.media.querySelectorAll('track');
+
+ Array.from(elements).forEach(function (track) {
+ var src = track.getAttribute('src');
+ var href = utils.parseUrl(src);
+
+ if (href.hostname !== window.location.href.hostname && ['http:', 'https:'].includes(href.protocol)) {
+ utils.fetch(src, 'blob').then(function (blob) {
+ track.setAttribute('src', window.URL.createObjectURL(blob));
+ }).catch(function () {
+ utils.removeElement(track);
+ });
+ }
+ });
+ }
+
+ // Set language
+ captions.setLanguage.call(this);
+
+ // Enable UI
+ captions.show.call(this);
+
+ // Set available languages in list
+ if (utils.is.array(this.config.controls) && this.config.controls.includes('settings') && this.config.settings.includes('captions')) {
+ controls.setCaptionsMenu.call(this);
+ }
+ },
+
+
+ // Set the captions language
+ setLanguage: function setLanguage() {
+ var _this = this;
+
+ // Setup HTML5 track rendering
+ if (this.isHTML5 && this.isVideo) {
+ captions.getTracks.call(this).forEach(function (track) {
+ // Show track
+ utils.on(track, 'cuechange', function (event) {
+ return captions.setCue.call(_this, event);
+ });
+
+ // Turn off native caption rendering to avoid double captions
+ // eslint-disable-next-line
+ track.mode = 'hidden';
+ });
+
+ // Get current track
+ var currentTrack = captions.getCurrentTrack.call(this);
+
+ // Check if suported kind
+ if (utils.is.track(currentTrack)) {
+ // If we change the active track while a cue is already displayed we need to update it
+ if (Array.from(currentTrack.activeCues || []).length) {
+ captions.setCue.call(this, currentTrack);
+ }
+ }
+ } else if (this.isVimeo && this.captions.active) {
+ this.embed.enableTextTrack(this.language);
+ }
+ },
+
+
+ // Get the tracks
+ getTracks: function getTracks() {
+ // Return empty array at least
+ if (utils.is.nullOrUndefined(this.media)) {
+ return [];
+ }
+
+ // Only get accepted kinds
+ return Array.from(this.media.textTracks || []).filter(function (track) {
+ return ['captions', 'subtitles'].includes(track.kind);
+ });
+ },
+
+
+ // Get the current track for the current language
+ getCurrentTrack: function getCurrentTrack() {
+ var _this2 = this;
+
+ var tracks = captions.getTracks.call(this);
+
+ if (!tracks.length) {
+ return null;
+ }
+
+ // Get track based on current language
+ var track = tracks.find(function (track) {
+ return track.language.toLowerCase() === _this2.language;
+ });
+
+ // Get the <track> with default attribute
+ if (!track) {
+ track = utils.getElement.call(this, 'track[default]');
+ }
+
+ // Get the first track
+ if (!track) {
+ var _tracks = slicedToArray(tracks, 1);
+
+ track = _tracks[0];
+ }
+
+ return track;
+ },
+
+
+ // Get UI label for track
+ getLabel: function getLabel(track) {
+ var currentTrack = track;
+
+ if (!utils.is.track(currentTrack) && support.textTracks && this.captions.active) {
+ currentTrack = captions.getCurrentTrack.call(this);
+ }
+
+ if (utils.is.track(currentTrack)) {
+ if (!utils.is.empty(currentTrack.label)) {
+ return currentTrack.label;
+ }
+
+ if (!utils.is.empty(currentTrack.language)) {
+ return track.language.toUpperCase();
+ }
+
+ return i18n.get('enabled', this.config);
+ }
+
+ return i18n.get('disabled', this.config);
+ },
+
+
+ // Display active caption if it contains text
+ setCue: function setCue(input) {
+ // Get the track from the event if needed
+ var track = utils.is.event(input) ? input.target : input;
+ var activeCues = track.activeCues;
+
+ var active = activeCues.length && activeCues[0];
+ var currentTrack = captions.getCurrentTrack.call(this);
+
+ // Only display current track
+ if (track !== currentTrack) {
+ return;
+ }
+
+ // Display a cue, if there is one
+ if (utils.is.cue(active)) {
+ captions.setText.call(this, active.getCueAsHTML());
+ } else {
+ captions.setText.call(this, null);
+ }
+
+ utils.dispatchEvent.call(this, this.media, 'cuechange');
+ },
+
+
+ // Set the current caption
+ setText: function setText(input) {
+ // Requires UI
+ if (!this.supported.ui) {
+ return;
+ }
+
+ if (utils.is.element(this.elements.captions)) {
+ var content = utils.createElement('span');
+
+ // Empty the container
+ utils.emptyElement(this.elements.captions);
+
+ // Default to empty
+ var caption = !utils.is.nullOrUndefined(input) ? input : '';
+
+ // Set the span content
+ if (utils.is.string(caption)) {
+ content.textContent = caption.trim();
+ } else {
+ content.appendChild(caption);
+ }
+
+ // Set new caption text
+ this.elements.captions.appendChild(content);
+ } else {
+ this.debug.warn('No captions element to render to');
+ }
+ },
+
+
+ // Display captions container and button (for initialization)
+ show: function show() {
+ // Try to load the value from storage
+ var active = this.storage.get('captions');
+
+ // Otherwise fall back to the default config
+ if (!utils.is.boolean(active)) {
+ active = this.config.captions.active;
+ } else {
+ this.captions.active = active;
+ }
+
+ if (active) {
+ utils.toggleClass(this.elements.container, this.config.classNames.captions.active, true);
+ utils.toggleState(this.elements.buttons.captions, true);
+ }
+ }
+};
+
+// ==========================================================================
+// Console wrapper
+// ==========================================================================
+
+var noop = function noop() {};
+
+var Console = function () {
+ function Console() {
+ var enabled = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+ classCallCheck(this, Console);
+
+ this.enabled = window.console && enabled;
+
+ if (this.enabled) {
+ this.log('Debugging enabled');
+ }
+ }
+
+ createClass(Console, [{
+ key: 'log',
+ get: function get() {
+ // eslint-disable-next-line no-console
+ return this.enabled ? Function.prototype.bind.call(console.log, console) : noop;
+ }
+ }, {
+ key: 'warn',
+ get: function get() {
+ // eslint-disable-next-line no-console
+ return this.enabled ? Function.prototype.bind.call(console.warn, console) : noop;
+ }
+ }, {
+ key: 'error',
+ get: function get() {
+ // eslint-disable-next-line no-console
+ return this.enabled ? Function.prototype.bind.call(console.error, console) : noop;
+ }
+ }]);
+ return Console;
+}();
+
+// ==========================================================================
+// Plyr default config
+// ==========================================================================
+
+var defaults$1 = {
+ // Disable
+ enabled: true,
+
+ // Custom media title
+ title: '',
+
+ // Logging to console
+ debug: false,
+
+ // Auto play (if supported)
+ autoplay: false,
+
+ // Only allow one media playing at once (vimeo only)
+ autopause: true,
+
+ // Default time to skip when rewind/fast forward
+ seekTime: 10,
+
+ // Default volume
+ volume: 1,
+ muted: false,
+
+ // Pass a custom duration
+ duration: null,
+
+ // Display the media duration on load in the current time position
+ // If you have opted to display both duration and currentTime, this is ignored
+ displayDuration: true,
+
+ // Invert the current time to be a countdown
+ invertTime: true,
+
+ // Clicking the currentTime inverts it's value to show time left rather than elapsed
+ toggleInvert: true,
+
+ // Aspect ratio (for embeds)
+ ratio: '16:9',
+
+ // Click video container to play/pause
+ clickToPlay: true,
+
+ // Auto hide the controls
+ hideControls: true,
+
+ // Reset to start when playback ended
+ resetOnEnd: false,
+
+ // Disable the standard context menu
+ disableContextMenu: true,
+
+ // Sprite (for icons)
+ loadSprite: true,
+ iconPrefix: 'plyr',
+ iconUrl: 'https://cdn.plyr.io/3.3.6/plyr.svg',
+
+ // Blank video (used to prevent errors on source change)
+ blankVideo: 'https://cdn.plyr.io/static/blank.mp4',
+
+ // Quality default
+ quality: {
+ default: 576,
+ options: [4320, 2880, 2160, 1440, 1080, 720, 576, 480, 360, 240, 'default']
+ },
+
+ // Set loops
+ loop: {
+ active: false
+ // start: null,
+ // end: null,
+ },
+
+ // Speed default and options to display
+ speed: {
+ selected: 1,
+ options: [0.5, 0.75, 1, 1.25, 1.5, 1.75, 2]
+ },
+
+ // Keyboard shortcut settings
+ keyboard: {
+ focused: true,
+ global: false
+ },
+
+ // Display tooltips
+ tooltips: {
+ controls: false,
+ seek: true
+ },
+
+ // Captions settings
+ captions: {
+ active: false,
+ language: (navigator.language || navigator.userLanguage).split('-')[0]
+ },
+
+ // Fullscreen settings
+ fullscreen: {
+ enabled: true, // Allow fullscreen?
+ fallback: true, // Fallback for vintage browsers
+ iosNative: false // Use the native fullscreen in iOS (disables custom controls)
+ },
+
+ // Local storage
+ storage: {
+ enabled: true,
+ key: 'plyr'
+ },
+
+ // Default controls
+ controls: ['play-large',
+ // 'restart',
+ // 'rewind',
+ 'play',
+ // 'fast-forward',
+ 'progress', 'current-time', 'mute', 'volume', 'captions', 'settings', 'pip', 'airplay', 'fullscreen'],
+ settings: ['captions', 'quality', 'speed'],
+
+ // Localisation
+ i18n: {
+ restart: 'Restart',
+ rewind: 'Rewind {seektime}s',
+ play: 'Play',
+ pause: 'Pause',
+ fastForward: 'Forward {seektime}s',
+ seek: 'Seek',
+ played: 'Played',
+ buffered: 'Buffered',
+ currentTime: 'Current time',
+ duration: 'Duration',
+ volume: 'Volume',
+ mute: 'Mute',
+ unmute: 'Unmute',
+ enableCaptions: 'Enable captions',
+ disableCaptions: 'Disable captions',
+ enterFullscreen: 'Enter fullscreen',
+ exitFullscreen: 'Exit fullscreen',
+ frameTitle: 'Player for {title}',
+ captions: 'Captions',
+ settings: 'Settings',
+ speed: 'Speed',
+ normal: 'Normal',
+ quality: 'Quality',
+ loop: 'Loop',
+ start: 'Start',
+ end: 'End',
+ all: 'All',
+ reset: 'Reset',
+ disabled: 'Disabled',
+ enabled: 'Enabled',
+ advertisement: 'Ad'
+ },
+
+ // URLs
+ urls: {
+ vimeo: {
+ sdk: 'https://player.vimeo.com/api/player.js',
+ iframe: 'https://player.vimeo.com/video/{0}?{1}',
+ api: 'https://vimeo.com/api/v2/video/{0}.json'
+ },
+ youtube: {
+ sdk: 'https://www.youtube.com/iframe_api',
+ api: 'https://www.googleapis.com/youtube/v3/videos?id={0}&key={1}&fields=items(snippet(title))&part=snippet',
+ poster: 'https://img.youtube.com/vi/{0}/maxresdefault.jpg,https://img.youtube.com/vi/{0}/hqdefault.jpg'
+ },
+ googleIMA: {
+ sdk: 'https://imasdk.googleapis.com/js/sdkloader/ima3.js'
+ }
+ },
+
+ // Custom control listeners
+ listeners: {
+ seek: null,
+ play: null,
+ pause: null,
+ restart: null,
+ rewind: null,
+ fastForward: null,
+ mute: null,
+ volume: null,
+ captions: null,
+ fullscreen: null,
+ pip: null,
+ airplay: null,
+ speed: null,
+ quality: null,
+ loop: null,
+ language: null
+ },
+
+ // Events to watch and bubble
+ events: [
+ // Events to watch on HTML5 media elements and bubble
+ // https://developer.mozilla.org/en/docs/Web/Guide/Events/Media_events
+ 'ended', 'progress', 'stalled', 'playing', 'waiting', 'canplay', 'canplaythrough', 'loadstart', 'loadeddata', 'loadedmetadata', 'timeupdate', 'volumechange', 'play', 'pause', 'error', 'seeking', 'seeked', 'emptied', 'ratechange', 'cuechange',
+
+ // Custom events
+ 'enterfullscreen', 'exitfullscreen', 'captionsenabled', 'captionsdisabled', 'languagechange', 'controlshidden', 'controlsshown', 'ready',
+
+ // YouTube
+ 'statechange', 'qualitychange', 'qualityrequested',
+
+ // Ads
+ 'adsloaded', 'adscontentpause', 'adscontentresume', 'adstarted', 'adsmidpoint', 'adscomplete', 'adsallcomplete', 'adsimpression', 'adsclick'],
+
+ // Selectors
+ // Change these to match your template if using custom HTML
+ selectors: {
+ editable: 'input, textarea, select, [contenteditable]',
+ container: '.plyr',
+ controls: {
+ container: null,
+ wrapper: '.plyr__controls'
+ },
+ labels: '[data-plyr]',
+ buttons: {
+ play: '[data-plyr="play"]',
+ pause: '[data-plyr="pause"]',
+ restart: '[data-plyr="restart"]',
+ rewind: '[data-plyr="rewind"]',
+ fastForward: '[data-plyr="fast-forward"]',
+ mute: '[data-plyr="mute"]',
+ captions: '[data-plyr="captions"]',
+ fullscreen: '[data-plyr="fullscreen"]',
+ pip: '[data-plyr="pip"]',
+ airplay: '[data-plyr="airplay"]',
+ settings: '[data-plyr="settings"]',
+ loop: '[data-plyr="loop"]'
+ },
+ inputs: {
+ seek: '[data-plyr="seek"]',
+ volume: '[data-plyr="volume"]',
+ speed: '[data-plyr="speed"]',
+ language: '[data-plyr="language"]',
+ quality: '[data-plyr="quality"]'
+ },
+ display: {
+ currentTime: '.plyr__time--current',
+ duration: '.plyr__time--duration',
+ buffer: '.plyr__progress--buffer',
+ played: '.plyr__progress--played',
+ loop: '.plyr__progress--loop',
+ volume: '.plyr__volume--display'
+ },
+ progress: '.plyr__progress',
+ captions: '.plyr__captions',
+ menu: {
+ quality: '.js-plyr__menu__list--quality'
+ }
+ },
+
+ // Class hooks added to the player in different states
+ classNames: {
+ type: 'plyr--{0}',
+ provider: 'plyr--{0}',
+ video: 'plyr__video-wrapper',
+ embed: 'plyr__video-embed',
+ embedContainer: 'plyr__video-embed__container',
+ poster: 'plyr__poster',
+ ads: 'plyr__ads',
+ control: 'plyr__control',
+ playing: 'plyr--playing',
+ paused: 'plyr--paused',
+ stopped: 'plyr--stopped',
+ loading: 'plyr--loading',
+ error: 'plyr--has-error',
+ hover: 'plyr--hover',
+ tooltip: 'plyr__tooltip',
+ cues: 'plyr__cues',
+ hidden: 'plyr__sr-only',
+ hideControls: 'plyr--hide-controls',
+ isIos: 'plyr--is-ios',
+ isTouch: 'plyr--is-touch',
+ uiSupported: 'plyr--full-ui',
+ noTransition: 'plyr--no-transition',
+ menu: {
+ value: 'plyr__menu__value',
+ badge: 'plyr__badge',
+ open: 'plyr--menu-open'
+ },
+ captions: {
+ enabled: 'plyr--captions-enabled',
+ active: 'plyr--captions-active'
+ },
+ fullscreen: {
+ enabled: 'plyr--fullscreen-enabled',
+ fallback: 'plyr--fullscreen-fallback'
+ },
+ pip: {
+ supported: 'plyr--pip-supported',
+ active: 'plyr--pip-active'
+ },
+ airplay: {
+ supported: 'plyr--airplay-supported',
+ active: 'plyr--airplay-active'
+ },
+ tabFocus: 'plyr__tab-focus'
+ },
+
+ // Embed attributes
+ attributes: {
+ embed: {
+ provider: 'data-plyr-provider',
+ id: 'data-plyr-embed-id'
+ }
+ },
+
+ // API keys
+ keys: {
+ google: null
+ },
+
+ // Advertisements plugin
+ // Register for an account here: http://vi.ai/publisher-video-monetization/?aid=plyrio
+ ads: {
+ enabled: false,
+ publisherId: ''
+ }
+};
+
+// ==========================================================================
+
var browser$2 = utils.getBrowser();
+function onChange() {
+ if (!this.enabled) {
+ return;
+ }
+
+ // Update toggle button
+ var button = this.player.elements.buttons.fullscreen;
+ if (utils.is.element(button)) {
+ utils.toggleState(button, this.active);
+ }
+
+ // Trigger an event
+ utils.dispatchEvent(this.target, this.active ? 'enterfullscreen' : 'exitfullscreen', true);
+
+ // Trap focus in container
+ if (!browser$2.isIos) {
+ utils.trapFocus.call(this.player, this.target, this.active);
+ }
+}
+
+function toggleFallback() {
+ var toggle = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;
+
+ // Store or restore scroll position
+ if (toggle) {
+ this.scrollPosition = {
+ x: window.scrollX || 0,
+ y: window.scrollY || 0
+ };
+ } else {
+ window.scrollTo(this.scrollPosition.x, this.scrollPosition.y);
+ }
+
+ // Toggle scroll
+ document.body.style.overflow = toggle ? 'hidden' : '';
+
+ // Toggle class hook
+ utils.toggleClass(this.target, this.player.config.classNames.fullscreen.fallback, toggle);
+
+ // Toggle button and fire events
+ onChange.call(this);
+}
+
+var Fullscreen = function () {
+ function Fullscreen(player) {
+ var _this = this;
+
+ classCallCheck(this, Fullscreen);
+
+ // Keep reference to parent
+ this.player = player;
+
+ // Get prefix
+ this.prefix = Fullscreen.prefix;
+ this.property = Fullscreen.property;
+
+ // Scroll position
+ this.scrollPosition = { x: 0, y: 0 };
+
+ // Register event listeners
+ // Handle event (incase user presses escape etc)
+ utils.on(document, this.prefix === 'ms' ? 'MSFullscreenChange' : this.prefix + 'fullscreenchange', function () {
+ // TODO: Filter for target??
+ onChange.call(_this);
+ });
+
+ // Fullscreen toggle on double click
+ utils.on(this.player.elements.container, 'dblclick', function (event) {
+ // Ignore double click in controls
+ if (utils.is.element(_this.player.elements.controls) && _this.player.elements.controls.contains(event.target)) {
+ return;
+ }
+
+ _this.toggle();
+ });
+
+ // Update the UI
+ this.update();
+ }
+
+ // Determine if native supported
+
+
+ createClass(Fullscreen, [{
+ key: 'update',
+
+
+ // Update UI
+ value: function update() {
+ if (this.enabled) {
+ this.player.debug.log((Fullscreen.native ? 'Native' : 'Fallback') + ' fullscreen enabled');
+ } else {
+ this.player.debug.log('Fullscreen not supported and fallback disabled');
+ }
+
+ // Add styling hook to show button
+ utils.toggleClass(this.player.elements.container, this.player.config.classNames.fullscreen.enabled, this.enabled);
+ }
+
+ // Make an element fullscreen
+
+ }, {
+ key: 'enter',
+ value: function enter() {
+ if (!this.enabled) {
+ return;
+ }
+
+ // iOS native fullscreen doesn't need the request step
+ if (browser$2.isIos && this.player.config.fullscreen.iosNative) {
+ if (this.player.playing) {
+ this.target.webkitEnterFullscreen();
+ }
+ } else if (!Fullscreen.native) {
+ toggleFallback.call(this, true);
+ } else if (!this.prefix) {
+ this.target.requestFullscreen();
+ } else if (!utils.is.empty(this.prefix)) {
+ this.target[this.prefix + 'Request' + this.property]();
+ }
+ }
+
+ // Bail from fullscreen
+
+ }, {
+ key: 'exit',
+ value: function exit() {
+ if (!this.enabled) {
+ return;
+ }
+
+ // iOS native fullscreen
+ if (browser$2.isIos && this.player.config.fullscreen.iosNative) {
+ this.target.webkitExitFullscreen();
+ this.player.play();
+ } else if (!Fullscreen.native) {
+ toggleFallback.call(this, false);
+ } else if (!this.prefix) {
+ (document.cancelFullScreen || document.exitFullscreen).call(document);
+ } else if (!utils.is.empty(this.prefix)) {
+ var action = this.prefix === 'moz' ? 'Cancel' : 'Exit';
+ document['' + this.prefix + action + this.property]();
+ }
+ }
+
+ // Toggle state
+
+ }, {
+ key: 'toggle',
+ value: function toggle() {
+ if (!this.active) {
+ this.enter();
+ } else {
+ this.exit();
+ }
+ }
+ }, {
+ key: 'enabled',
+
+
+ // Determine if fullscreen is enabled
+ get: function get() {
+ return (Fullscreen.native || this.player.config.fullscreen.fallback) && this.player.config.fullscreen.enabled && this.player.supported.ui && this.player.isVideo;
+ }
+
+ // Get active state
+
+ }, {
+ key: 'active',
+ get: function get() {
+ if (!this.enabled) {
+ return false;
+ }
+
+ // Fallback using classname
+ if (!Fullscreen.native) {
+ return utils.hasClass(this.target, this.player.config.classNames.fullscreen.fallback);
+ }
+
+ var element = !this.prefix ? document.fullscreenElement : document['' + this.prefix + this.property + 'Element'];
+
+ return element === this.target;
+ }
+
+ // Get target element
+
+ }, {
+ key: 'target',
+ get: function get() {
+ return browser$2.isIos && this.player.config.fullscreen.iosNative ? this.player.media : this.player.elements.container;
+ }
+ }], [{
+ key: 'native',
+ get: function get() {
+ return !!(document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled);
+ }
+
+ // Get the prefix for handlers
+
+ }, {
+ key: 'prefix',
+ get: function get() {
+ // No prefix
+ if (utils.is.function(document.exitFullscreen)) {
+ return '';
+ }
+
+ // Check for fullscreen support by vendor prefix
+ var value = '';
+ var prefixes = ['webkit', 'moz', 'ms'];
+
+ prefixes.some(function (pre) {
+ if (utils.is.function(document[pre + 'ExitFullscreen']) || utils.is.function(document[pre + 'CancelFullScreen'])) {
+ value = pre;
+ return true;
+ }
+
+ return false;
+ });
+
+ return value;
+ }
+ }, {
+ key: 'property',
+ get: function get() {
+ return this.prefix === 'moz' ? 'FullScreen' : 'Fullscreen';
+ }
+ }]);
+ return Fullscreen;
+}();
+
+// ==========================================================================
+
+// Sniff out the browser
+var browser$3 = utils.getBrowser();
+
var Listeners = function () {
function Listeners(player) {
classCallCheck(this, Listeners);
@@ -10383,12 +9552,9 @@ var Listeners = function () {
// Handle the media finishing
utils.on(this.player.media, 'ended', function () {
// Show poster on end
- if (_this3.player.isHTML5 && _this3.player.isVideo && _this3.player.config.showPosterOnEnd) {
+ if (_this3.player.isHTML5 && _this3.player.isVideo && _this3.player.config.resetOnEnd) {
// Restart
_this3.player.restart();
-
- // Re-load media
- _this3.player.media.load();
}
});
@@ -10403,7 +9569,7 @@ var Listeners = function () {
});
// Handle play/pause
- utils.on(this.player.media, 'playing play pause ended emptied', function (event) {
+ utils.on(this.player.media, 'playing play pause ended emptied timeupdate', function (event) {
return ui.checkPlaying.call(_this3.player, event);
});
@@ -10535,7 +9701,7 @@ var Listeners = function () {
var _this4 = this;
// IE doesn't support input event, so we fallback to change
- var inputEvent = browser$2.isIE ? 'change' : 'input';
+ var inputEvent = browser$3.isIE ? 'change' : 'input';
// Run default and custom handlers
var proxy = function proxy(event, defaultHandler, customHandlerKey) {
@@ -10608,21 +9774,31 @@ var Listeners = function () {
on(this.player.elements.settings.form, 'click', function (event) {
event.stopPropagation();
+ // Go back to home tab on click
+ var showHomeTab = function showHomeTab() {
+ var id = 'plyr-settings-' + _this4.player.id + '-home';
+ controls.showTab.call(_this4.player, id);
+ };
+
// Settings menu items - use event delegation as items are added/removed
if (utils.matches(event.target, _this4.player.config.selectors.inputs.language)) {
proxy(event, function () {
_this4.player.language = event.target.value;
+ showHomeTab();
}, 'language');
} else if (utils.matches(event.target, _this4.player.config.selectors.inputs.quality)) {
proxy(event, function () {
_this4.player.quality = event.target.value;
+ showHomeTab();
}, 'quality');
} else if (utils.matches(event.target, _this4.player.config.selectors.inputs.speed)) {
proxy(event, function () {
_this4.player.speed = parseFloat(event.target.value);
+ showHomeTab();
}, 'speed');
} else {
- controls.showTab.call(_this4.player, event);
+ var tab = event.target;
+ controls.showTab.call(_this4.player, tab.getAttribute('aria-controls'));
}
});
@@ -10651,7 +9827,7 @@ var Listeners = function () {
}, 'volume');
// Polyfill for lower fill in <input type="range"> for webkit
- if (browser$2.isWebkit) {
+ if (browser$3.isWebkit) {
on(utils.getElements.call(this.player, 'input[type="range"]'), 'input', function (event) {
controls.updateRangeFill.call(_this4.player, event.target);
});
@@ -10730,84 +9906,933 @@ var Listeners = function () {
// ==========================================================================
-var Storage = function () {
- function Storage(player) {
- classCallCheck(this, Storage);
+var vimeo = {
+ setup: function setup() {
+ var _this = this;
- this.enabled = player.config.storage.enabled;
- this.key = player.config.storage.key;
- }
+ // Add embed class for responsive
+ utils.toggleClass(this.elements.wrapper, this.config.classNames.embed, true);
- // Check for actual support (see if we can use it)
+ // Set intial ratio
+ vimeo.setAspectRatio.call(this);
+ // Load the API if not already
+ if (!utils.is.object(window.Vimeo)) {
+ utils.loadScript(this.config.urls.vimeo.sdk).then(function () {
+ vimeo.ready.call(_this);
+ }).catch(function (error) {
+ _this.debug.warn('Vimeo API failed to load', error);
+ });
+ } else {
+ vimeo.ready.call(this);
+ }
+ },
- createClass(Storage, [{
- key: 'get',
- value: function get(key) {
- if (!Storage.supported) {
- return null;
- }
- var store = window.localStorage.getItem(this.key);
+ // Set aspect ratio
+ // For Vimeo we have an extra 300% height <div> to hide the standard controls and UI
+ setAspectRatio: function setAspectRatio(input) {
+ var ratio = utils.is.string(input) ? input.split(':') : this.config.ratio.split(':');
+ var padding = 100 / ratio[0] * ratio[1];
+ this.elements.wrapper.style.paddingBottom = padding + '%';
- if (utils.is.empty(store)) {
- return null;
- }
+ if (this.supported.ui) {
+ var height = 240;
+ var offset = (height - padding) / (height / 50);
- var json = JSON.parse(store);
+ this.media.style.transform = 'translateY(-' + offset + '%)';
+ }
+ },
- return utils.is.string(key) && key.length ? json[key] : json;
+
+ // API Ready
+ ready: function ready() {
+ var _this2 = this;
+
+ var player = this;
+
+ // Get Vimeo params for the iframe
+ var options = {
+ loop: player.config.loop.active,
+ autoplay: player.autoplay,
+ // muted: player.muted,
+ byline: false,
+ portrait: false,
+ title: false,
+ speed: true,
+ transparent: 0,
+ gesture: 'media',
+ playsinline: !this.config.fullscreen.iosNative
+ };
+ var params = utils.buildUrlParams(options);
+
+ // Get the source URL or ID
+ var source = player.media.getAttribute('src');
+
+ // Get from <div> if needed
+ if (utils.is.empty(source)) {
+ source = player.media.getAttribute(player.config.attributes.embed.id);
}
- }, {
- key: 'set',
- value: function set(object) {
- // Bail if we don't have localStorage support or it's disabled
- if (!Storage.supported || !this.enabled) {
+
+ var id = utils.parseVimeoId(source);
+
+ // Build an iframe
+ var iframe = utils.createElement('iframe');
+ var src = utils.format(player.config.urls.vimeo.iframe, id, params);
+ iframe.setAttribute('src', src);
+ iframe.setAttribute('allowfullscreen', '');
+ iframe.setAttribute('allowtransparency', '');
+ iframe.setAttribute('allow', 'autoplay');
+
+ // Inject the package
+ var wrapper = utils.createElement('div', { class: player.config.classNames.embedContainer });
+ wrapper.appendChild(iframe);
+ player.media = utils.replaceElement(wrapper, player.media);
+
+ // Get poster image
+ utils.fetch(utils.format(player.config.urls.vimeo.api, id), 'json').then(function (response) {
+ if (utils.is.empty(response)) {
return;
}
- // Can only store objectst
- if (!utils.is.object(object)) {
- return;
+ // Get the URL for thumbnail
+ var url = new URL(response[0].thumbnail_large);
+
+ // Get original image
+ url.pathname = url.pathname.split('_')[0] + '.jpg';
+
+ // Set attribute
+ player.media.setAttribute('poster', url.href);
+
+ // Update
+ ui.setPoster.call(player);
+ });
+
+ // Setup instance
+ // https://github.com/vimeo/player.js
+ player.embed = new window.Vimeo.Player(iframe, {
+ autopause: player.config.autopause,
+ muted: player.muted
+ });
+
+ player.media.paused = true;
+ player.media.currentTime = 0;
+
+ // Disable native text track rendering
+ if (player.supported.ui) {
+ player.embed.disableTextTrack();
+ }
+
+ // Create a faux HTML5 API using the Vimeo API
+ player.media.play = function () {
+ player.embed.play().then(function () {
+ player.media.paused = false;
+ });
+ };
+
+ player.media.pause = function () {
+ player.embed.pause().then(function () {
+ player.media.paused = true;
+ });
+ };
+
+ player.media.stop = function () {
+ player.pause();
+ player.currentTime = 0;
+ };
+
+ // Seeking
+ var currentTime = player.media.currentTime;
+
+ Object.defineProperty(player.media, 'currentTime', {
+ get: function get() {
+ return currentTime;
+ },
+ set: function set(time) {
+ // Get current paused state
+ // Vimeo will automatically play on seek
+ var paused = player.media.paused;
+
+ // Set seeking flag
+
+ player.media.seeking = true;
+
+ // Trigger seeking
+ utils.dispatchEvent.call(player, player.media, 'seeking');
+
+ // Seek after events
+ player.embed.setCurrentTime(time).catch(function () {
+ // Do nothing
+ });
+
+ // Restore pause state
+ if (paused) {
+ player.pause();
+ }
}
+ });
- // Get current storage
- var storage = this.get();
+ // Playback speed
+ var speed = player.config.speed.selected;
+ Object.defineProperty(player.media, 'playbackRate', {
+ get: function get() {
+ return speed;
+ },
+ set: function set(input) {
+ player.embed.setPlaybackRate(input).then(function () {
+ speed = input;
+ utils.dispatchEvent.call(player, player.media, 'ratechange');
+ }).catch(function (error) {
+ // Hide menu item (and menu if empty)
+ if (error.name === 'Error') {
+ controls.setSpeedMenu.call(player, []);
+ }
+ });
+ }
+ });
- // Default to empty object
- if (utils.is.empty(storage)) {
- storage = {};
+ // Volume
+ var volume = player.config.volume;
+
+ Object.defineProperty(player.media, 'volume', {
+ get: function get() {
+ return volume;
+ },
+ set: function set(input) {
+ player.embed.setVolume(input).then(function () {
+ volume = input;
+ utils.dispatchEvent.call(player, player.media, 'volumechange');
+ });
}
+ });
- // Update the working copy of the values
- utils.extend(storage, object);
+ // Muted
+ var muted = player.config.muted;
- // Update storage
- window.localStorage.setItem(this.key, JSON.stringify(storage));
+ Object.defineProperty(player.media, 'muted', {
+ get: function get() {
+ return muted;
+ },
+ set: function set(input) {
+ var toggle = utils.is.boolean(input) ? input : false;
+
+ player.embed.setVolume(toggle ? 0 : player.config.volume).then(function () {
+ muted = toggle;
+ utils.dispatchEvent.call(player, player.media, 'volumechange');
+ });
+ }
+ });
+
+ // Loop
+ var loop = player.config.loop;
+
+ Object.defineProperty(player.media, 'loop', {
+ get: function get() {
+ return loop;
+ },
+ set: function set(input) {
+ var toggle = utils.is.boolean(input) ? input : player.config.loop.active;
+
+ player.embed.setLoop(toggle).then(function () {
+ loop = toggle;
+ });
+ }
+ });
+
+ // Source
+ var currentSrc = void 0;
+ player.embed.getVideoUrl().then(function (value) {
+ currentSrc = value;
+ }).catch(function (error) {
+ _this2.debug.warn(error);
+ });
+
+ Object.defineProperty(player.media, 'currentSrc', {
+ get: function get() {
+ return currentSrc;
+ }
+ });
+
+ // Ended
+ Object.defineProperty(player.media, 'ended', {
+ get: function get() {
+ return player.currentTime === player.duration;
+ }
+ });
+
+ // Set aspect ratio based on video size
+ Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(function (dimensions) {
+ var ratio = utils.getAspectRatio(dimensions[0], dimensions[1]);
+ vimeo.setAspectRatio.call(_this2, ratio);
+ });
+
+ // Set autopause
+ player.embed.setAutopause(player.config.autopause).then(function (state) {
+ player.config.autopause = state;
+ });
+
+ // Get title
+ player.embed.getVideoTitle().then(function (title) {
+ player.config.title = title;
+ ui.setTitle.call(_this2);
+ });
+
+ // Get current time
+ player.embed.getCurrentTime().then(function (value) {
+ currentTime = value;
+ utils.dispatchEvent.call(player, player.media, 'timeupdate');
+ });
+
+ // Get duration
+ player.embed.getDuration().then(function (value) {
+ player.media.duration = value;
+ utils.dispatchEvent.call(player, player.media, 'durationchange');
+ });
+
+ // Get captions
+ player.embed.getTextTracks().then(function (tracks) {
+ player.media.textTracks = tracks;
+ captions.setup.call(player);
+ });
+
+ player.embed.on('cuechange', function (data) {
+ var cue = null;
+
+ if (data.cues.length) {
+ cue = utils.stripHTML(data.cues[0].text);
+ }
+
+ captions.setText.call(player, cue);
+ });
+
+ player.embed.on('loaded', function () {
+ if (utils.is.element(player.embed.element) && player.supported.ui) {
+ var frame = player.embed.element;
+
+ // Fix keyboard focus issues
+ // https://github.com/sampotts/plyr/issues/317
+ frame.setAttribute('tabindex', -1);
+ }
+ });
+
+ player.embed.on('play', function () {
+ // Only fire play if paused before
+ if (player.media.paused) {
+ utils.dispatchEvent.call(player, player.media, 'play');
+ }
+ player.media.paused = false;
+ utils.dispatchEvent.call(player, player.media, 'playing');
+ });
+
+ player.embed.on('pause', function () {
+ player.media.paused = true;
+ utils.dispatchEvent.call(player, player.media, 'pause');
+ });
+
+ player.embed.on('timeupdate', function (data) {
+ player.media.seeking = false;
+ currentTime = data.seconds;
+ utils.dispatchEvent.call(player, player.media, 'timeupdate');
+ });
+
+ player.embed.on('progress', function (data) {
+ player.media.buffered = data.percent;
+ utils.dispatchEvent.call(player, player.media, 'progress');
+
+ // Check all loaded
+ if (parseInt(data.percent, 10) === 1) {
+ utils.dispatchEvent.call(player, player.media, 'canplaythrough');
+ }
+
+ // Get duration as if we do it before load, it gives an incorrect value
+ // https://github.com/sampotts/plyr/issues/891
+ player.embed.getDuration().then(function (value) {
+ if (value !== player.media.duration) {
+ player.media.duration = value;
+ utils.dispatchEvent.call(player, player.media, 'durationchange');
+ }
+ });
+ });
+
+ player.embed.on('seeked', function () {
+ player.media.seeking = false;
+ utils.dispatchEvent.call(player, player.media, 'seeked');
+ utils.dispatchEvent.call(player, player.media, 'play');
+ });
+
+ player.embed.on('ended', function () {
+ player.media.paused = true;
+ utils.dispatchEvent.call(player, player.media, 'ended');
+ });
+
+ player.embed.on('error', function (detail) {
+ player.media.error = detail;
+ utils.dispatchEvent.call(player, player.media, 'error');
+ });
+
+ // Rebuild UI
+ setTimeout(function () {
+ return ui.build.call(player);
+ }, 0);
+ }
+};
+
+// ==========================================================================
+
+// Standardise YouTube quality unit
+function mapQualityUnit(input) {
+ switch (input) {
+ case 'hd2160':
+ return 2160;
+
+ case 2160:
+ return 'hd2160';
+
+ case 'hd1440':
+ return 1440;
+
+ case 1440:
+ return 'hd1440';
+
+ case 'hd1080':
+ return 1080;
+
+ case 1080:
+ return 'hd1080';
+
+ case 'hd720':
+ return 720;
+
+ case 720:
+ return 'hd720';
+
+ case 'large':
+ return 480;
+
+ case 480:
+ return 'large';
+
+ case 'medium':
+ return 360;
+
+ case 360:
+ return 'medium';
+
+ case 'small':
+ return 240;
+
+ case 240:
+ return 'small';
+
+ default:
+ return 'default';
+ }
+}
+
+function mapQualityUnits(levels) {
+ if (utils.is.empty(levels)) {
+ return levels;
+ }
+
+ return utils.dedupe(levels.map(function (level) {
+ return mapQualityUnit(level);
+ }));
+}
+
+var youtube = {
+ setup: function setup() {
+ var _this = this;
+
+ // Add embed class for responsive
+ utils.toggleClass(this.elements.wrapper, this.config.classNames.embed, true);
+
+ // Set aspect ratio
+ youtube.setAspectRatio.call(this);
+
+ // Setup API
+ if (utils.is.object(window.YT) && utils.is.function(window.YT.Player)) {
+ youtube.ready.call(this);
+ } else {
+ // Load the API
+ utils.loadScript(this.config.urls.youtube.sdk).catch(function (error) {
+ _this.debug.warn('YouTube API failed to load', error);
+ });
+
+ // Setup callback for the API
+ // YouTube has it's own system of course...
+ window.onYouTubeReadyCallbacks = window.onYouTubeReadyCallbacks || [];
+
+ // Add to queue
+ window.onYouTubeReadyCallbacks.push(function () {
+ youtube.ready.call(_this);
+ });
+
+ // Set callback to process queue
+ window.onYouTubeIframeAPIReady = function () {
+ window.onYouTubeReadyCallbacks.forEach(function (callback) {
+ callback();
+ });
+ };
}
- }], [{
- key: 'supported',
- get: function get() {
- try {
- if (!('localStorage' in window)) {
- return false;
+ },
+
+
+ // Get the media title
+ getTitle: function getTitle(videoId) {
+ var _this2 = this;
+
+ // Try via undocumented API method first
+ // This method disappears now and then though...
+ // https://github.com/sampotts/plyr/issues/709
+ if (utils.is.function(this.embed.getVideoData)) {
+ var _embed$getVideoData = this.embed.getVideoData(),
+ title = _embed$getVideoData.title;
+
+ if (utils.is.empty(title)) {
+ this.config.title = title;
+ ui.setTitle.call(this);
+ return;
+ }
+ }
+
+ // Or via Google API
+ var key = this.config.keys.google;
+ if (utils.is.string(key) && !utils.is.empty(key)) {
+ var url = utils.format(this.config.urls.youtube.api, videoId, key);
+
+ utils.fetch(url).then(function (result) {
+ if (utils.is.object(result)) {
+ _this2.config.title = result.items[0].snippet.title;
+ ui.setTitle.call(_this2);
}
+ }).catch(function () {});
+ }
+ },
- var test = '___test';
- // Try to use it (it might be disabled, e.g. user is in private mode)
- // see: https://github.com/sampotts/plyr/issues/131
- window.localStorage.setItem(test, test);
- window.localStorage.removeItem(test);
+ // Set aspect ratio
+ setAspectRatio: function setAspectRatio() {
+ var ratio = this.config.ratio.split(':');
+ this.elements.wrapper.style.paddingBottom = 100 / ratio[0] * ratio[1] + '%';
+ },
- return true;
- } catch (e) {
- return false;
+
+ // API ready
+ ready: function ready() {
+ var player = this;
+
+ // Ignore already setup (race condition)
+ var currentId = player.media.getAttribute('id');
+ if (!utils.is.empty(currentId) && currentId.startsWith('youtube-')) {
+ return;
+ }
+
+ // Get the source URL or ID
+ var source = player.media.getAttribute('src');
+
+ // Get from <div> if needed
+ if (utils.is.empty(source)) {
+ source = player.media.getAttribute(this.config.attributes.embed.id);
+ }
+
+ // Replace the <iframe> with a <div> due to YouTube API issues
+ var videoId = utils.parseYouTubeId(source);
+ var id = utils.generateId(player.provider);
+ var container = utils.createElement('div', { id: id });
+ player.media = utils.replaceElement(container, player.media);
+
+ // Set poster image
+ player.media.setAttribute('poster', utils.format(player.config.urls.youtube.poster, videoId));
+
+ // Setup instance
+ // https://developers.google.com/youtube/iframe_api_reference
+ player.embed = new window.YT.Player(id, {
+ videoId: videoId,
+ playerVars: {
+ autoplay: player.config.autoplay ? 1 : 0, // Autoplay
+ controls: player.supported.ui ? 0 : 1, // Only show controls if not fully supported
+ rel: 0, // No related vids
+ showinfo: 0, // Hide info
+ iv_load_policy: 3, // Hide annotations
+ modestbranding: 1, // Hide logos as much as possible (they still show one in the corner when paused)
+ disablekb: 1, // Disable keyboard as we handle it
+ playsinline: 1, // Allow iOS inline playback
+
+ // Tracking for stats
+ // origin: window ? `${window.location.protocol}//${window.location.host}` : null,
+ widget_referrer: window ? window.location.href : null,
+
+ // Captions are flaky on YouTube
+ cc_load_policy: player.captions.active ? 1 : 0,
+ cc_lang_pref: player.config.captions.language
+ },
+ events: {
+ onError: function onError(event) {
+ // If we've already fired an error, don't do it again
+ // YouTube fires onError twice
+ if (utils.is.object(player.media.error)) {
+ return;
+ }
+
+ var detail = {
+ code: event.data
+ };
+
+ // Messages copied from https://developers.google.com/youtube/iframe_api_reference#onError
+ switch (event.data) {
+ case 2:
+ detail.message = 'The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.';
+ break;
+
+ case 5:
+ detail.message = 'The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.';
+ break;
+
+ case 100:
+ detail.message = 'The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.';
+ break;
+
+ case 101:
+ case 150:
+ detail.message = 'The owner of the requested video does not allow it to be played in embedded players.';
+ break;
+
+ default:
+ detail.message = 'An unknown error occured';
+ break;
+ }
+
+ player.media.error = detail;
+
+ utils.dispatchEvent.call(player, player.media, 'error');
+ },
+ onPlaybackQualityChange: function onPlaybackQualityChange() {
+ utils.dispatchEvent.call(player, player.media, 'qualitychange', false, {
+ quality: player.media.quality
+ });
+ },
+ onPlaybackRateChange: function onPlaybackRateChange(event) {
+ // Get the instance
+ var instance = event.target;
+
+ // Get current speed
+ player.media.playbackRate = instance.getPlaybackRate();
+
+ utils.dispatchEvent.call(player, player.media, 'ratechange');
+ },
+ onReady: function onReady(event) {
+ // Get the instance
+ var instance = event.target;
+
+ // Get the title
+ youtube.getTitle.call(player, videoId);
+
+ // Create a faux HTML5 API using the YouTube API
+ player.media.play = function () {
+ instance.playVideo();
+ };
+
+ player.media.pause = function () {
+ instance.pauseVideo();
+ };
+
+ player.media.stop = function () {
+ instance.stopVideo();
+ };
+
+ player.media.duration = instance.getDuration();
+ player.media.paused = true;
+
+ // Seeking
+ player.media.currentTime = 0;
+ Object.defineProperty(player.media, 'currentTime', {
+ get: function get() {
+ return Number(instance.getCurrentTime());
+ },
+ set: function set(time) {
+ // Vimeo will automatically play on seek
+ var paused = player.media.paused;
+
+ // Set seeking flag
+
+ player.media.seeking = true;
+
+ // Trigger seeking
+ utils.dispatchEvent.call(player, player.media, 'seeking');
+
+ // Seek after events sent
+ instance.seekTo(time);
+
+ // Restore pause state
+ if (paused) {
+ player.pause();
+ }
+ }
+ });
+
+ // Playback speed
+ Object.defineProperty(player.media, 'playbackRate', {
+ get: function get() {
+ return instance.getPlaybackRate();
+ },
+ set: function set(input) {
+ instance.setPlaybackRate(input);
+ }
+ });
+
+ // Quality
+ Object.defineProperty(player.media, 'quality', {
+ get: function get() {
+ return mapQualityUnit(instance.getPlaybackQuality());
+ },
+ set: function set(input) {
+ var quality = input;
+
+ // Set via API
+ instance.setPlaybackQuality(mapQualityUnit(quality));
+
+ // Trigger request event
+ utils.dispatchEvent.call(player, player.media, 'qualityrequested', false, {
+ quality: quality
+ });
+ }
+ });
+
+ // Volume
+ var volume = player.config.volume;
+
+ Object.defineProperty(player.media, 'volume', {
+ get: function get() {
+ return volume;
+ },
+ set: function set(input) {
+ volume = input;
+ instance.setVolume(volume * 100);
+ utils.dispatchEvent.call(player, player.media, 'volumechange');
+ }
+ });
+
+ // Muted
+ var muted = player.config.muted;
+
+ Object.defineProperty(player.media, 'muted', {
+ get: function get() {
+ return muted;
+ },
+ set: function set(input) {
+ var toggle = utils.is.boolean(input) ? input : muted;
+ muted = toggle;
+ instance[toggle ? 'mute' : 'unMute']();
+ utils.dispatchEvent.call(player, player.media, 'volumechange');
+ }
+ });
+
+ // Source
+ Object.defineProperty(player.media, 'currentSrc', {
+ get: function get() {
+ return instance.getVideoUrl();
+ }
+ });
+
+ // Ended
+ Object.defineProperty(player.media, 'ended', {
+ get: function get() {
+ return player.currentTime === player.duration;
+ }
+ });
+
+ // Get available speeds
+ player.options.speed = instance.getAvailablePlaybackRates();
+
+ // Set the tabindex to avoid focus entering iframe
+ if (player.supported.ui) {
+ player.media.setAttribute('tabindex', -1);
+ }
+
+ utils.dispatchEvent.call(player, player.media, 'timeupdate');
+ utils.dispatchEvent.call(player, player.media, 'durationchange');
+
+ // Reset timer
+ clearInterval(player.timers.buffering);
+
+ // Setup buffering
+ player.timers.buffering = setInterval(function () {
+ // Get loaded % from YouTube
+ player.media.buffered = instance.getVideoLoadedFraction();
+
+ // Trigger progress only when we actually buffer something
+ if (player.media.lastBuffered === null || player.media.lastBuffered < player.media.buffered) {
+ utils.dispatchEvent.call(player, player.media, 'progress');
+ }
+
+ // Set last buffer point
+ player.media.lastBuffered = player.media.buffered;
+
+ // Bail if we're at 100%
+ if (player.media.buffered === 1) {
+ clearInterval(player.timers.buffering);
+
+ // Trigger event
+ utils.dispatchEvent.call(player, player.media, 'canplaythrough');
+ }
+ }, 200);
+
+ // Rebuild UI
+ setTimeout(function () {
+ return ui.build.call(player);
+ }, 50);
+ },
+ onStateChange: function onStateChange(event) {
+ // Get the instance
+ var instance = event.target;
+
+ // Reset timer
+ clearInterval(player.timers.playing);
+
+ // Handle events
+ // -1 Unstarted
+ // 0 Ended
+ // 1 Playing
+ // 2 Paused
+ // 3 Buffering
+ // 5 Video cued
+ switch (event.data) {
+ case -1:
+ // Update scrubber
+ utils.dispatchEvent.call(player, player.media, 'timeupdate');
+
+ // Get loaded % from YouTube
+ player.media.buffered = instance.getVideoLoadedFraction();
+ utils.dispatchEvent.call(player, player.media, 'progress');
+
+ break;
+
+ case 0:
+ player.media.paused = true;
+
+ // YouTube doesn't support loop for a single video, so mimick it.
+ if (player.media.loop) {
+ // YouTube needs a call to `stopVideo` before playing again
+ instance.stopVideo();
+ instance.playVideo();
+ } else {
+ utils.dispatchEvent.call(player, player.media, 'ended');
+ }
+
+ break;
+
+ case 1:
+ // If we were seeking, fire seeked event
+ if (player.media.seeking) {
+ utils.dispatchEvent.call(player, player.media, 'seeked');
+ }
+ player.media.seeking = false;
+
+ // Only fire play if paused before
+ if (player.media.paused) {
+ utils.dispatchEvent.call(player, player.media, 'play');
+ }
+ player.media.paused = false;
+
+ utils.dispatchEvent.call(player, player.media, 'playing');
+
+ // Poll to get playback progress
+ player.timers.playing = setInterval(function () {
+ utils.dispatchEvent.call(player, player.media, 'timeupdate');
+ }, 50);
+
+ // Check duration again due to YouTube bug
+ // https://github.com/sampotts/plyr/issues/374
+ // https://code.google.com/p/gdata-issues/issues/detail?id=8690
+ if (player.media.duration !== instance.getDuration()) {
+ player.media.duration = instance.getDuration();
+ utils.dispatchEvent.call(player, player.media, 'durationchange');
+ }
+
+ // Get quality
+ controls.setQualityMenu.call(player, mapQualityUnits(instance.getAvailableQualityLevels()));
+
+ break;
+
+ case 2:
+ player.media.paused = true;
+
+ utils.dispatchEvent.call(player, player.media, 'pause');
+
+ break;
+
+ default:
+ break;
+ }
+
+ utils.dispatchEvent.call(player, player.elements.container, 'statechange', false, {
+ code: event.data
+ });
+ }
}
+ });
+ }
+};
+
+// ==========================================================================
+
+var media = {
+ // Setup media
+ setup: function setup() {
+ // If there's no media, bail
+ if (!this.media) {
+ this.debug.warn('No media element found!');
+ return;
}
- }]);
- return Storage;
-}();
+
+ // Add type class
+ utils.toggleClass(this.elements.container, this.config.classNames.type.replace('{0}', this.type), true);
+
+ // Add provider class
+ utils.toggleClass(this.elements.container, this.config.classNames.provider.replace('{0}', this.provider), true);
+
+ // Add video class for embeds
+ // This will require changes if audio embeds are added
+ if (this.isEmbed) {
+ utils.toggleClass(this.elements.container, this.config.classNames.type.replace('{0}', 'video'), true);
+ }
+
+ // Inject the player wrapper
+ if (this.isVideo) {
+ // Create the wrapper div
+ this.elements.wrapper = utils.createElement('div', {
+ class: this.config.classNames.video
+ });
+
+ // Wrap the video in a container
+ utils.wrap(this.media, this.elements.wrapper);
+
+ // Faux poster container
+ this.elements.poster = utils.createElement('div', {
+ class: this.config.classNames.poster
+ });
+
+ this.elements.wrapper.appendChild(this.elements.poster);
+ }
+
+ if (this.isEmbed) {
+ switch (this.provider) {
+ case 'youtube':
+ youtube.setup.call(this);
+ break;
+
+ case 'vimeo':
+ vimeo.setup.call(this);
+ break;
+
+ default:
+ break;
+ }
+ } else if (this.isHTML5) {
+ html5.extend.call(this);
+ }
+ }
+};
// ==========================================================================
@@ -10824,7 +10849,6 @@ var Ads = function () {
this.player = player;
this.publisherId = player.config.ads.publisherId;
- this.enabled = player.isHTML5 && player.isVideo && player.config.ads.enabled && utils.is.string(this.publisherId) && this.publisherId.length;
this.playing = false;
this.initialized = false;
this.elements = {
@@ -10850,20 +10874,20 @@ var Ads = function () {
this.load();
}
- /**
- * Load the IMA SDK
- */
-
-
createClass(Ads, [{
key: 'load',
+
+
+ /**
+ * Load the IMA SDK
+ */
value: function load() {
var _this2 = this;
if (this.enabled) {
// Check if the Google IMA3 SDK is loaded or load it ourselves
if (!utils.is.object(window.google) || !utils.is.object(window.google.ima)) {
- utils.loadScript(this.player.config.urls.googleIMA.api).then(function () {
+ utils.loadScript(this.player.config.urls.googleIMA.sdk).then(function () {
_this2.ready();
}).catch(function () {
// Script failed to load or is blocked
@@ -10973,6 +10997,9 @@ var Ads = function () {
// We only overlay ads as we only support video.
request.forceNonLinearFullSlot = false;
+ // Mute based on current state
+ request.setAdWillPlayMuted(!this.player.muted);
+
this.loader.requestAds(request);
} catch (e) {
this.onAdError(e);
@@ -11051,7 +11078,7 @@ var Ads = function () {
// Get skippable state
// TODO: Skip button
- // this.manager.getAdSkippableState();
+ // this.player.debug.warn(this.manager.getAdSkippableState());
// Set volume to match player
this.manager.setVolume(this.player.volume);
@@ -11459,6 +11486,11 @@ var Ads = function () {
}
}
}, {
+ key: 'enabled',
+ get: function get() {
+ return this.player.isVideo && this.player.config.ads.enabled && !utils.is.empty(this.publisherId);
+ }
+ }, {
key: 'tagUrl',
get: function get() {
var params = {
@@ -11481,925 +11513,6 @@ var Ads = function () {
// ==========================================================================
-// Standardise YouTube quality unit
-function mapQualityUnit(input) {
- switch (input) {
- case 'hd2160':
- return 2160;
-
- case 2160:
- return 'hd2160';
-
- case 'hd1440':
- return 1440;
-
- case 1440:
- return 'hd1440';
-
- case 'hd1080':
- return 1080;
-
- case 1080:
- return 'hd1080';
-
- case 'hd720':
- return 720;
-
- case 720:
- return 'hd720';
-
- case 'large':
- return 480;
-
- case 480:
- return 'large';
-
- case 'medium':
- return 360;
-
- case 360:
- return 'medium';
-
- case 'small':
- return 240;
-
- case 240:
- return 'small';
-
- default:
- return 'default';
- }
-}
-
-function mapQualityUnits(levels) {
- if (utils.is.empty(levels)) {
- return levels;
- }
-
- return utils.dedupe(levels.map(function (level) {
- return mapQualityUnit(level);
- }));
-}
-
-var youtube = {
- setup: function setup() {
- var _this = this;
-
- // Add embed class for responsive
- utils.toggleClass(this.elements.wrapper, this.config.classNames.embed, true);
-
- // Set aspect ratio
- youtube.setAspectRatio.call(this);
-
- // Setup API
- if (utils.is.object(window.YT) && utils.is.function(window.YT.Player)) {
- youtube.ready.call(this);
- } else {
- // Load the API
- utils.loadScript(this.config.urls.youtube.api).catch(function (error) {
- _this.debug.warn('YouTube API failed to load', error);
- });
-
- // Setup callback for the API
- // YouTube has it's own system of course...
- window.onYouTubeReadyCallbacks = window.onYouTubeReadyCallbacks || [];
-
- // Add to queue
- window.onYouTubeReadyCallbacks.push(function () {
- youtube.ready.call(_this);
- });
-
- // Set callback to process queue
- window.onYouTubeIframeAPIReady = function () {
- window.onYouTubeReadyCallbacks.forEach(function (callback) {
- callback();
- });
- };
- }
- },
-
-
- // Get the media title
- getTitle: function getTitle(videoId) {
- var _this2 = this;
-
- // Try via undocumented API method first
- // This method disappears now and then though...
- // https://github.com/sampotts/plyr/issues/709
- if (utils.is.function(this.embed.getVideoData)) {
- var _embed$getVideoData = this.embed.getVideoData(),
- title = _embed$getVideoData.title;
-
- if (utils.is.empty(title)) {
- this.config.title = title;
- ui.setTitle.call(this);
- return;
- }
- }
-
- // Or via Google API
- var key = this.config.keys.google;
- if (utils.is.string(key) && !utils.is.empty(key)) {
- var url = 'https://www.googleapis.com/youtube/v3/videos?id=' + videoId + '&key=' + key + '&fields=items(snippet(title))&part=snippet';
-
- utils.fetch(url).then(function (result) {
- if (utils.is.object(result)) {
- _this2.config.title = result.items[0].snippet.title;
- ui.setTitle.call(_this2);
- }
- }).catch(function () {});
- }
- },
-
-
- // Set aspect ratio
- setAspectRatio: function setAspectRatio() {
- var ratio = this.config.ratio.split(':');
- this.elements.wrapper.style.paddingBottom = 100 / ratio[0] * ratio[1] + '%';
- },
-
-
- // API ready
- ready: function ready() {
- var player = this;
-
- // Ignore already setup (race condition)
- var currentId = player.media.getAttribute('id');
- if (!utils.is.empty(currentId) && currentId.startsWith('youtube-')) {
- return;
- }
-
- // Get the source URL or ID
- var source = player.media.getAttribute('src');
-
- // Get from <div> if needed
- if (utils.is.empty(source)) {
- source = player.media.getAttribute(this.config.attributes.embed.id);
- }
-
- // Replace the <iframe> with a <div> due to YouTube API issues
- var videoId = utils.parseYouTubeId(source);
- var id = utils.generateId(player.provider);
- var container = utils.createElement('div', { id: id });
- player.media = utils.replaceElement(container, player.media);
-
- // Setup instance
- // https://developers.google.com/youtube/iframe_api_reference
- player.embed = new window.YT.Player(id, {
- videoId: videoId,
- playerVars: {
- autoplay: player.config.autoplay ? 1 : 0, // Autoplay
- controls: player.supported.ui ? 0 : 1, // Only show controls if not fully supported
- rel: 0, // No related vids
- showinfo: 0, // Hide info
- iv_load_policy: 3, // Hide annotations
- modestbranding: 1, // Hide logos as much as possible (they still show one in the corner when paused)
- disablekb: 1, // Disable keyboard as we handle it
- playsinline: 1, // Allow iOS inline playback
-
- // Tracking for stats
- // origin: window ? `${window.location.protocol}//${window.location.host}` : null,
- widget_referrer: window ? window.location.href : null,
-
- // Captions are flaky on YouTube
- cc_load_policy: player.captions.active ? 1 : 0,
- cc_lang_pref: player.config.captions.language
- },
- events: {
- onError: function onError(event) {
- // If we've already fired an error, don't do it again
- // YouTube fires onError twice
- if (utils.is.object(player.media.error)) {
- return;
- }
-
- var detail = {
- code: event.data
- };
-
- // Messages copied from https://developers.google.com/youtube/iframe_api_reference#onError
- switch (event.data) {
- case 2:
- detail.message = 'The request contains an invalid parameter value. For example, this error occurs if you specify a video ID that does not have 11 characters, or if the video ID contains invalid characters, such as exclamation points or asterisks.';
- break;
-
- case 5:
- detail.message = 'The requested content cannot be played in an HTML5 player or another error related to the HTML5 player has occurred.';
- break;
-
- case 100:
- detail.message = 'The video requested was not found. This error occurs when a video has been removed (for any reason) or has been marked as private.';
- break;
-
- case 101:
- case 150:
- detail.message = 'The owner of the requested video does not allow it to be played in embedded players.';
- break;
-
- default:
- detail.message = 'An unknown error occured';
- break;
- }
-
- player.media.error = detail;
-
- utils.dispatchEvent.call(player, player.media, 'error');
- },
- onPlaybackQualityChange: function onPlaybackQualityChange() {
- utils.dispatchEvent.call(player, player.media, 'qualitychange', false, {
- quality: player.media.quality
- });
- },
- onPlaybackRateChange: function onPlaybackRateChange(event) {
- // Get the instance
- var instance = event.target;
-
- // Get current speed
- player.media.playbackRate = instance.getPlaybackRate();
-
- utils.dispatchEvent.call(player, player.media, 'ratechange');
- },
- onReady: function onReady(event) {
- // Get the instance
- var instance = event.target;
-
- // Get the title
- youtube.getTitle.call(player, videoId);
-
- // Create a faux HTML5 API using the YouTube API
- player.media.play = function () {
- instance.playVideo();
- };
-
- player.media.pause = function () {
- instance.pauseVideo();
- };
-
- player.media.stop = function () {
- instance.stopVideo();
- };
-
- player.media.duration = instance.getDuration();
- player.media.paused = true;
-
- // Seeking
- player.media.currentTime = 0;
- Object.defineProperty(player.media, 'currentTime', {
- get: function get() {
- return Number(instance.getCurrentTime());
- },
- set: function set(time) {
- // Vimeo will automatically play on seek
- var paused = player.media.paused;
-
- // Set seeking flag
-
- player.media.seeking = true;
-
- // Trigger seeking
- utils.dispatchEvent.call(player, player.media, 'seeking');
-
- // Seek after events sent
- instance.seekTo(time);
-
- // Restore pause state
- if (paused) {
- player.pause();
- }
- }
- });
-
- // Playback speed
- Object.defineProperty(player.media, 'playbackRate', {
- get: function get() {
- return instance.getPlaybackRate();
- },
- set: function set(input) {
- instance.setPlaybackRate(input);
- }
- });
-
- // Quality
- Object.defineProperty(player.media, 'quality', {
- get: function get() {
- return mapQualityUnit(instance.getPlaybackQuality());
- },
- set: function set(input) {
- var quality = input;
-
- // Set via API
- instance.setPlaybackQuality(mapQualityUnit(quality));
-
- // Trigger request event
- utils.dispatchEvent.call(player, player.media, 'qualityrequested', false, {
- quality: quality
- });
- }
- });
-
- // Volume
- var volume = player.config.volume;
-
- Object.defineProperty(player.media, 'volume', {
- get: function get() {
- return volume;
- },
- set: function set(input) {
- volume = input;
- instance.setVolume(volume * 100);
- utils.dispatchEvent.call(player, player.media, 'volumechange');
- }
- });
-
- // Muted
- var muted = player.config.muted;
-
- Object.defineProperty(player.media, 'muted', {
- get: function get() {
- return muted;
- },
- set: function set(input) {
- var toggle = utils.is.boolean(input) ? input : muted;
- muted = toggle;
- instance[toggle ? 'mute' : 'unMute']();
- utils.dispatchEvent.call(player, player.media, 'volumechange');
- }
- });
-
- // Source
- Object.defineProperty(player.media, 'currentSrc', {
- get: function get() {
- return instance.getVideoUrl();
- }
- });
-
- // Ended
- Object.defineProperty(player.media, 'ended', {
- get: function get() {
- return player.currentTime === player.duration;
- }
- });
-
- // Get available speeds
- player.options.speed = instance.getAvailablePlaybackRates();
-
- // Set the tabindex to avoid focus entering iframe
- if (player.supported.ui) {
- player.media.setAttribute('tabindex', -1);
- }
-
- utils.dispatchEvent.call(player, player.media, 'timeupdate');
- utils.dispatchEvent.call(player, player.media, 'durationchange');
-
- // Reset timer
- clearInterval(player.timers.buffering);
-
- // Setup buffering
- player.timers.buffering = setInterval(function () {
- // Get loaded % from YouTube
- player.media.buffered = instance.getVideoLoadedFraction();
-
- // Trigger progress only when we actually buffer something
- if (player.media.lastBuffered === null || player.media.lastBuffered < player.media.buffered) {
- utils.dispatchEvent.call(player, player.media, 'progress');
- }
-
- // Set last buffer point
- player.media.lastBuffered = player.media.buffered;
-
- // Bail if we're at 100%
- if (player.media.buffered === 1) {
- clearInterval(player.timers.buffering);
-
- // Trigger event
- utils.dispatchEvent.call(player, player.media, 'canplaythrough');
- }
- }, 200);
-
- // Rebuild UI
- setTimeout(function () {
- return ui.build.call(player);
- }, 50);
- },
- onStateChange: function onStateChange(event) {
- // Get the instance
- var instance = event.target;
-
- // Reset timer
- clearInterval(player.timers.playing);
-
- // Handle events
- // -1 Unstarted
- // 0 Ended
- // 1 Playing
- // 2 Paused
- // 3 Buffering
- // 5 Video cued
- switch (event.data) {
- case -1:
- // Update scrubber
- utils.dispatchEvent.call(player, player.media, 'timeupdate');
-
- // Get loaded % from YouTube
- player.media.buffered = instance.getVideoLoadedFraction();
- utils.dispatchEvent.call(player, player.media, 'progress');
-
- break;
-
- case 0:
- player.media.paused = true;
-
- // YouTube doesn't support loop for a single video, so mimick it.
- if (player.media.loop) {
- // YouTube needs a call to `stopVideo` before playing again
- instance.stopVideo();
- instance.playVideo();
- } else {
- utils.dispatchEvent.call(player, player.media, 'ended');
- }
-
- break;
-
- case 1:
- // If we were seeking, fire seeked event
- if (player.media.seeking) {
- utils.dispatchEvent.call(player, player.media, 'seeked');
- }
- player.media.seeking = false;
-
- // Only fire play if paused before
- if (player.media.paused) {
- utils.dispatchEvent.call(player, player.media, 'play');
- }
- player.media.paused = false;
-
- utils.dispatchEvent.call(player, player.media, 'playing');
-
- // Poll to get playback progress
- player.timers.playing = setInterval(function () {
- utils.dispatchEvent.call(player, player.media, 'timeupdate');
- }, 50);
-
- // Check duration again due to YouTube bug
- // https://github.com/sampotts/plyr/issues/374
- // https://code.google.com/p/gdata-issues/issues/detail?id=8690
- if (player.media.duration !== instance.getDuration()) {
- player.media.duration = instance.getDuration();
- utils.dispatchEvent.call(player, player.media, 'durationchange');
- }
-
- // Get quality
- controls.setQualityMenu.call(player, mapQualityUnits(instance.getAvailableQualityLevels()));
-
- break;
-
- case 2:
- player.media.paused = true;
-
- utils.dispatchEvent.call(player, player.media, 'pause');
-
- break;
-
- default:
- break;
- }
-
- utils.dispatchEvent.call(player, player.elements.container, 'statechange', false, {
- code: event.data
- });
- }
- }
- });
- }
-};
-
-// ==========================================================================
-
-var vimeo = {
- setup: function setup() {
- var _this = this;
-
- // Add embed class for responsive
- utils.toggleClass(this.elements.wrapper, this.config.classNames.embed, true);
-
- // Set intial ratio
- vimeo.setAspectRatio.call(this);
-
- // Load the API if not already
- if (!utils.is.object(window.Vimeo)) {
- utils.loadScript(this.config.urls.vimeo.api).then(function () {
- vimeo.ready.call(_this);
- }).catch(function (error) {
- _this.debug.warn('Vimeo API failed to load', error);
- });
- } else {
- vimeo.ready.call(this);
- }
- },
-
-
- // Set aspect ratio
- // For Vimeo we have an extra 300% height <div> to hide the standard controls and UI
- setAspectRatio: function setAspectRatio(input) {
- var ratio = utils.is.string(input) ? input.split(':') : this.config.ratio.split(':');
- var padding = 100 / ratio[0] * ratio[1];
- this.elements.wrapper.style.paddingBottom = padding + '%';
-
- if (this.supported.ui) {
- var height = 240;
- var offset = (height - padding) / (height / 50);
-
- this.media.style.transform = 'translateY(-' + offset + '%)';
- }
- },
-
-
- // API Ready
- ready: function ready() {
- var _this2 = this;
-
- var player = this;
-
- // Get Vimeo params for the iframe
- var options = {
- loop: player.config.loop.active,
- autoplay: player.autoplay,
- byline: false,
- portrait: false,
- title: false,
- speed: true,
- transparent: 0,
- gesture: 'media',
- playsinline: !this.config.fullscreen.iosNative
- };
- var params = utils.buildUrlParams(options);
-
- // Get the source URL or ID
- var source = player.media.getAttribute('src');
-
- // Get from <div> if needed
- if (utils.is.empty(source)) {
- source = player.media.getAttribute(this.config.attributes.embed.id);
- }
-
- var id = utils.parseVimeoId(source);
-
- // Build an iframe
- var iframe = utils.createElement('iframe');
- var src = 'https://player.vimeo.com/video/' + id + '?' + params;
- iframe.setAttribute('src', src);
- iframe.setAttribute('allowfullscreen', '');
- iframe.setAttribute('allowtransparency', '');
- iframe.setAttribute('allow', 'autoplay');
-
- // Inject the package
- var wrapper = utils.createElement('div');
- wrapper.appendChild(iframe);
- player.media = utils.replaceElement(wrapper, player.media);
-
- // Setup instance
- // https://github.com/vimeo/player.js
- player.embed = new window.Vimeo.Player(iframe);
-
- player.media.paused = true;
- player.media.currentTime = 0;
-
- // Disable native text track rendering
- if (player.supported.ui) {
- player.embed.disableTextTrack();
- }
-
- // Create a faux HTML5 API using the Vimeo API
- player.media.play = function () {
- player.embed.play().then(function () {
- player.media.paused = false;
- });
- };
-
- player.media.pause = function () {
- player.embed.pause().then(function () {
- player.media.paused = true;
- });
- };
-
- player.media.stop = function () {
- player.pause();
- player.currentTime = 0;
- };
-
- // Seeking
- var currentTime = player.media.currentTime;
-
- Object.defineProperty(player.media, 'currentTime', {
- get: function get() {
- return currentTime;
- },
- set: function set(time) {
- // Get current paused state
- // Vimeo will automatically play on seek
- var paused = player.media.paused;
-
- // Set seeking flag
-
- player.media.seeking = true;
-
- // Trigger seeking
- utils.dispatchEvent.call(player, player.media, 'seeking');
-
- // Seek after events
- player.embed.setCurrentTime(time).catch(function () {
- // Do nothing
- });
-
- // Restore pause state
- if (paused) {
- player.pause();
- }
- }
- });
-
- // Playback speed
- var speed = player.config.speed.selected;
- Object.defineProperty(player.media, 'playbackRate', {
- get: function get() {
- return speed;
- },
- set: function set(input) {
- player.embed.setPlaybackRate(input).then(function () {
- speed = input;
- utils.dispatchEvent.call(player, player.media, 'ratechange');
- }).catch(function (error) {
- // Hide menu item (and menu if empty)
- if (error.name === 'Error') {
- controls.setSpeedMenu.call(player, []);
- }
- });
- }
- });
-
- // Volume
- var volume = player.config.volume;
-
- Object.defineProperty(player.media, 'volume', {
- get: function get() {
- return volume;
- },
- set: function set(input) {
- player.embed.setVolume(input).then(function () {
- volume = input;
- utils.dispatchEvent.call(player, player.media, 'volumechange');
- });
- }
- });
-
- // Muted
- var muted = player.config.muted;
-
- Object.defineProperty(player.media, 'muted', {
- get: function get() {
- return muted;
- },
- set: function set(input) {
- var toggle = utils.is.boolean(input) ? input : false;
-
- player.embed.setVolume(toggle ? 0 : player.config.volume).then(function () {
- muted = toggle;
- utils.dispatchEvent.call(player, player.media, 'volumechange');
- });
- }
- });
-
- // Loop
- var loop = player.config.loop;
-
- Object.defineProperty(player.media, 'loop', {
- get: function get() {
- return loop;
- },
- set: function set(input) {
- var toggle = utils.is.boolean(input) ? input : player.config.loop.active;
-
- player.embed.setLoop(toggle).then(function () {
- loop = toggle;
- });
- }
- });
-
- // Source
- var currentSrc = void 0;
- player.embed.getVideoUrl().then(function (value) {
- currentSrc = value;
- }).catch(function (error) {
- _this2.debug.warn(error);
- });
-
- Object.defineProperty(player.media, 'currentSrc', {
- get: function get() {
- return currentSrc;
- }
- });
-
- // Ended
- Object.defineProperty(player.media, 'ended', {
- get: function get() {
- return player.currentTime === player.duration;
- }
- });
-
- // Set aspect ratio based on video size
- Promise.all([player.embed.getVideoWidth(), player.embed.getVideoHeight()]).then(function (dimensions) {
- var ratio = utils.getAspectRatio(dimensions[0], dimensions[1]);
- vimeo.setAspectRatio.call(_this2, ratio);
- });
-
- // Set autopause
- player.embed.setAutopause(player.config.autopause).then(function (state) {
- player.config.autopause = state;
- });
-
- // Get title
- player.embed.getVideoTitle().then(function (title) {
- player.config.title = title;
- ui.setTitle.call(_this2);
- });
-
- // Get current time
- player.embed.getCurrentTime().then(function (value) {
- currentTime = value;
- utils.dispatchEvent.call(player, player.media, 'timeupdate');
- });
-
- // Get duration
- player.embed.getDuration().then(function (value) {
- player.media.duration = value;
- utils.dispatchEvent.call(player, player.media, 'durationchange');
- });
-
- // Get captions
- player.embed.getTextTracks().then(function (tracks) {
- player.media.textTracks = tracks;
- captions.setup.call(player);
- });
-
- player.embed.on('cuechange', function (data) {
- var cue = null;
-
- if (data.cues.length) {
- cue = utils.stripHTML(data.cues[0].text);
- }
-
- captions.setText.call(player, cue);
- });
-
- player.embed.on('loaded', function () {
- if (utils.is.element(player.embed.element) && player.supported.ui) {
- var frame = player.embed.element;
-
- // Fix keyboard focus issues
- // https://github.com/sampotts/plyr/issues/317
- frame.setAttribute('tabindex', -1);
- }
- });
-
- player.embed.on('play', function () {
- // Only fire play if paused before
- if (player.media.paused) {
- utils.dispatchEvent.call(player, player.media, 'play');
- }
- player.media.paused = false;
- utils.dispatchEvent.call(player, player.media, 'playing');
- });
-
- player.embed.on('pause', function () {
- player.media.paused = true;
- utils.dispatchEvent.call(player, player.media, 'pause');
- });
-
- player.embed.on('timeupdate', function (data) {
- player.media.seeking = false;
- currentTime = data.seconds;
- utils.dispatchEvent.call(player, player.media, 'timeupdate');
- });
-
- player.embed.on('progress', function (data) {
- player.media.buffered = data.percent;
- utils.dispatchEvent.call(player, player.media, 'progress');
-
- // Check all loaded
- if (parseInt(data.percent, 10) === 1) {
- utils.dispatchEvent.call(player, player.media, 'canplaythrough');
- }
-
- // Get duration as if we do it before load, it gives an incorrect value
- // https://github.com/sampotts/plyr/issues/891
- player.embed.getDuration().then(function (value) {
- if (value !== player.media.duration) {
- player.media.duration = value;
- utils.dispatchEvent.call(player, player.media, 'durationchange');
- }
- });
- });
-
- player.embed.on('seeked', function () {
- player.media.seeking = false;
- utils.dispatchEvent.call(player, player.media, 'seeked');
- utils.dispatchEvent.call(player, player.media, 'play');
- });
-
- player.embed.on('ended', function () {
- player.media.paused = true;
- utils.dispatchEvent.call(player, player.media, 'ended');
- });
-
- player.embed.on('error', function (detail) {
- player.media.error = detail;
- utils.dispatchEvent.call(player, player.media, 'error');
- });
-
- // Rebuild UI
- setTimeout(function () {
- return ui.build.call(player);
- }, 0);
- }
-};
-
-// ==========================================================================
-
-// Sniff out the browser
-var browser$3 = utils.getBrowser();
-
-var media = {
- // Setup media
- setup: function setup() {
- // If there's no media, bail
- if (!this.media) {
- this.debug.warn('No media element found!');
- return;
- }
-
- // Add type class
- utils.toggleClass(this.elements.container, this.config.classNames.type.replace('{0}', this.type), true);
-
- // Add provider class
- utils.toggleClass(this.elements.container, this.config.classNames.provider.replace('{0}', this.provider), true);
-
- // Add video class for embeds
- // This will require changes if audio embeds are added
- if (this.isEmbed) {
- utils.toggleClass(this.elements.container, this.config.classNames.type.replace('{0}', 'video'), true);
- }
-
- if (this.supported.ui) {
- // Check for picture-in-picture support
- utils.toggleClass(this.elements.container, this.config.classNames.pip.supported, support.pip && this.isHTML5 && this.isVideo);
-
- // Check for airplay support
- utils.toggleClass(this.elements.container, this.config.classNames.airplay.supported, support.airplay && this.isHTML5);
-
- // If there's no autoplay attribute, assume the video is stopped and add state class
- utils.toggleClass(this.elements.container, this.config.classNames.stopped, this.config.autoplay);
-
- // Add iOS class
- utils.toggleClass(this.elements.container, this.config.classNames.isIos, browser$3.isIos);
-
- // Add touch class
- utils.toggleClass(this.elements.container, this.config.classNames.isTouch, this.touch);
- }
-
- // Inject the player wrapper
- if (this.isVideo) {
- // Create the wrapper div
- this.elements.wrapper = utils.createElement('div', {
- class: this.config.classNames.video
- });
-
- // Wrap the video in a container
- utils.wrap(this.media, this.elements.wrapper);
- }
-
- if (this.isEmbed) {
- switch (this.provider) {
- case 'youtube':
- youtube.setup.call(this);
- break;
-
- case 'vimeo':
- vimeo.setup.call(this);
- break;
-
- default:
- break;
- }
- } else if (this.isHTML5) {
- ui.setTitle.call(this);
-
- html5.extend.call(this);
- }
- }
-};
-
-// ==========================================================================
-
var source = {
// Add elements to HTML5 media (source, tracks, etc)
insertElements: function insertElements(type, attributes) {
@@ -12488,8 +11601,8 @@ var source = {
if (_this2.config.autoplay) {
_this2.media.setAttribute('autoplay', '');
}
- if ('poster' in input) {
- _this2.media.setAttribute('poster', input.poster);
+ if (!utils.is.empty(input.poster)) {
+ _this2.poster = input.poster;
}
if (_this2.config.loop.active) {
_this2.media.setAttribute('loop', '');
@@ -12541,6 +11654,87 @@ var source = {
// ==========================================================================
+var Storage = function () {
+ function Storage(player) {
+ classCallCheck(this, Storage);
+
+ this.enabled = player.config.storage.enabled;
+ this.key = player.config.storage.key;
+ }
+
+ // Check for actual support (see if we can use it)
+
+
+ createClass(Storage, [{
+ key: 'get',
+ value: function get(key) {
+ if (!Storage.supported) {
+ return null;
+ }
+
+ var store = window.localStorage.getItem(this.key);
+
+ if (utils.is.empty(store)) {
+ return null;
+ }
+
+ var json = JSON.parse(store);
+
+ return utils.is.string(key) && key.length ? json[key] : json;
+ }
+ }, {
+ key: 'set',
+ value: function set(object) {
+ // Bail if we don't have localStorage support or it's disabled
+ if (!Storage.supported || !this.enabled) {
+ return;
+ }
+
+ // Can only store objectst
+ if (!utils.is.object(object)) {
+ return;
+ }
+
+ // Get current storage
+ var storage = this.get();
+
+ // Default to empty object
+ if (utils.is.empty(storage)) {
+ storage = {};
+ }
+
+ // Update the working copy of the values
+ utils.extend(storage, object);
+
+ // Update storage
+ window.localStorage.setItem(this.key, JSON.stringify(storage));
+ }
+ }], [{
+ key: 'supported',
+ get: function get() {
+ try {
+ if (!('localStorage' in window)) {
+ return false;
+ }
+
+ var test = '___test';
+
+ // Try to use it (it might be disabled, e.g. user is in private mode)
+ // see: https://github.com/sampotts/plyr/issues/131
+ window.localStorage.setItem(test, test);
+ window.localStorage.removeItem(test);
+
+ return true;
+ } catch (e) {
+ return false;
+ }
+ }
+ }]);
+ return Storage;
+}();
+
+// ==========================================================================
+
// Private properties
// TODO: Use a WeakMap for private globals
// const globals = new WeakMap();
@@ -12578,7 +11772,7 @@ var Plyr = function () {
}
// Set config
- this.config = utils.extend({}, defaults, options || {}, function () {
+ this.config = utils.extend({}, defaults$1, options || {}, function () {
try {
return JSON.parse(_this.media.getAttribute('data-plyr-config'));
} catch (e) {
@@ -12653,17 +11847,9 @@ var Plyr = function () {
}
// Cache original element state for .destroy()
- // TODO: Investigate a better solution as I suspect this causes reported double load issues?
- setTimeout(function () {
- var clone = _this.media.cloneNode(true);
-
- // Prevent the clone autoplaying
- if (clone.getAttribute('autoplay')) {
- clone.pause();
- }
-
- _this.elements.original = clone;
- }, 0);
+ var clone = this.media.cloneNode(true);
+ clone.autoplay = false;
+ this.elements.original = clone;
// Set media type based on tag or data attribute
// Supported: video, audio, vimeo, youtube
@@ -12846,11 +12032,6 @@ var Plyr = function () {
return null;
}
- // If ads are enabled, wait for them first
- /* if (this.ads.enabled && !this.ads.initialized) {
- return this.ads.managerPromise.then(() => this.ads.play()).catch(() => this.media.play());
- } */
-
// Return the promise (for HTML5)
return this.media.play();
}
@@ -12870,7 +12051,7 @@ var Plyr = function () {
}
/**
- * Get paused state
+ * Get playing state
*/
}, {
@@ -12900,7 +12081,8 @@ var Plyr = function () {
key: 'stop',
value: function stop() {
if (this.isHTML5) {
- this.media.load();
+ this.pause();
+ this.restart();
} else if (utils.is.function(this.media.stop)) {
this.media.stop();
}
@@ -13125,8 +12307,8 @@ var Plyr = function () {
utils.toggleClass(_this2.elements.controls, _this2.config.classNames.noTransition, false);
}
- // Check if controls toggled
- var toggled = utils.toggleClass(_this2.elements.container, _this2.config.classNames.hideControls, true);
+ // Set hideControls class
+ var toggled = utils.toggleClass(_this2.elements.container, _this2.config.classNames.hideControls, _this2.config.hideControls);
// Trigger event and close menu
if (toggled) {
@@ -13335,19 +12517,29 @@ var Plyr = function () {
return Boolean(this.type === types.audio);
}
}, {
+ key: 'playing',
+ get: function get() {
+ return Boolean(this.ready && !this.paused && !this.ended);
+ }
+
+ /**
+ * Get paused state
+ */
+
+ }, {
key: 'paused',
get: function get() {
return Boolean(this.media.paused);
}
/**
- * Get playing state
+ * Get stopped state
*/
}, {
- key: 'playing',
+ key: 'stopped',
get: function get() {
- return Boolean(this.ready && !this.paused && !this.ended && (this.isHTML5 ? this.media.readyState > 2 : true));
+ return Boolean(this.paused && this.currentTime === 0);
}
/**
@@ -13728,20 +12920,21 @@ var Plyr = function () {
}
/**
- * Set the poster image for a HTML5 video
+ * Set the poster image for a video
* @param {input} - the URL for the new poster image
*/
}, {
key: 'poster',
set: function set(input) {
- if (!this.isHTML5 || !this.isVideo) {
- this.debug.warn('Poster can only be set on HTML5 video');
+ if (!this.isVideo) {
+ this.debug.warn('Poster can only be set for video');
return;
}
if (utils.is.string(input)) {
this.media.setAttribute('poster', input);
+ ui.setPoster.call(this);
}
}
@@ -13750,7 +12943,7 @@ var Plyr = function () {
*/
,
get: function get() {
- if (!this.isHTML5 || !this.isVideo) {
+ if (!this.isVideo) {
return null;
}
@@ -13887,6 +13080,38 @@ var Plyr = function () {
value: function loadSprite(url, id) {
return utils.loadSprite(url, id);
}
+
+ /**
+ * Setup multiple instances
+ * @param {*} selector
+ * @param {object} options
+ */
+
+ }, {
+ key: 'setup',
+ value: function setup(selector) {
+ var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
+
+ var targets = null;
+
+ if (utils.is.string(selector)) {
+ targets = Array.from(document.querySelectorAll(selector));
+ } else if (utils.is.nodeList(selector)) {
+ targets = Array.from(selector);
+ } else if (utils.is.array(selector)) {
+ targets = selector.filter(function (i) {
+ return utils.is.element(i);
+ });
+ }
+
+ if (utils.is.empty(targets)) {
+ return null;
+ }
+
+ return targets.map(function (t) {
+ return new Plyr(t, options);
+ });
+ }
}]);
return Plyr;
}();