diff --git a/node_modules/video.js/dist/alt/video.novtt.js b/node_modules/video.js/dist/alt/video.novtt.js
index 110f68b..60aa0d3 100644
--- a/node_modules/video.js/dist/alt/video.novtt.js
+++ b/node_modules/video.js/dist/alt/video.novtt.js
@@ -1,6 +1,6 @@
/**
* @license
- * Video.js 5.0.0-rc.59
+ * Video.js 5.0.0-rc.72
* Copyright Brightcove, Inc.
* Available under Apache License Version 2.0
*
@@ -25,7 +25,7 @@ if (typeof document !== 'undefined') {
}
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
+//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9nbG9iYWwvZG9jdW1lbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgdG9wTGV2ZWwgPSB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbCA6XG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiB7fVxudmFyIG1pbkRvYyA9IHJlcXVpcmUoJ21pbi1kb2N1bWVudCcpO1xuXG5pZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgIG1vZHVsZS5leHBvcnRzID0gZG9jdW1lbnQ7XG59IGVsc2Uge1xuICAgIHZhciBkb2NjeSA9IHRvcExldmVsWydfX0dMT0JBTF9ET0NVTUVOVF9DQUNIRUA0J107XG5cbiAgICBpZiAoIWRvY2N5KSB7XG4gICAgICAgIGRvY2N5ID0gdG9wTGV2ZWxbJ19fR0xPQkFMX0RPQ1VNRU5UX0NBQ0hFQDQnXSA9IG1pbkRvYztcbiAgICB9XG5cbiAgICBtb2R1bGUuZXhwb3J0cyA9IGRvY2N5O1xufVxuIl19
},{"min-document":3}],2:[function(_dereq_,module,exports){
(function (global){
if (typeof window !== "undefined") {
@@ -39,7 +39,7 @@ if (typeof window !== "undefined") {
}
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
+//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9nbG9iYWwvd2luZG93LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHdpbmRvdztcbn0gZWxzZSBpZiAodHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gZ2xvYmFsO1xufSBlbHNlIGlmICh0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIil7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBzZWxmO1xufSBlbHNlIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHt9O1xufVxuIl19
},{}],3:[function(_dereq_,module,exports){
},{}],4:[function(_dereq_,module,exports){
@@ -53,7 +53,7 @@ var nativeMax = Math.max;
* Creates a function that invokes `func` with the `this` binding of the
* created function and arguments from `start` and beyond provided as an array.
*
- * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).
+ * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).
*
* @static
* @memberOf _
@@ -192,7 +192,7 @@ var baseFor = createBaseFor();
module.exports = baseFor;
-},{"./createBaseFor":17}],9:[function(_dereq_,module,exports){
+},{"./createBaseFor":15}],9:[function(_dereq_,module,exports){
var baseFor = _dereq_('./baseFor'),
keysIn = _dereq_('../object/keysIn');
@@ -211,24 +211,7 @@ function baseForIn(object, iteratee) {
module.exports = baseForIn;
-},{"../object/keysIn":39,"./baseFor":8}],10:[function(_dereq_,module,exports){
-/**
- * The base implementation of `_.isFunction` without support for environments
- * with incorrect `typeof` results.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- */
-function baseIsFunction(value) {
- // Avoid a Chakra JIT bug in compatibility modes of IE 11.
- // See https://github.com/jashkenas/underscore/issues/1621 for more details.
- return typeof value == 'function' || false;
-}
-
-module.exports = baseIsFunction;
-
-},{}],11:[function(_dereq_,module,exports){
+},{"../object/keysIn":36,"./baseFor":8}],10:[function(_dereq_,module,exports){
var arrayEach = _dereq_('./arrayEach'),
baseMergeDeep = _dereq_('./baseMergeDeep'),
isArray = _dereq_('../lang/isArray'),
@@ -245,7 +228,7 @@ var arrayEach = _dereq_('./arrayEach'),
* @private
* @param {Object} object The destination object.
* @param {Object} source The source object.
- * @param {Function} [customizer] The function to customize merging properties.
+ * @param {Function} [customizer] The function to customize merged values.
* @param {Array} [stackA=[]] Tracks traversed source objects.
* @param {Array} [stackB=[]] Associates values with source counterparts.
* @returns {Object} Returns `object`.
@@ -255,7 +238,7 @@ function baseMerge(object, source, customizer, stackA, stackB) {
return object;
}
var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),
- props = isSrcArr ? null : keys(source);
+ props = isSrcArr ? undefined : keys(source);
arrayEach(props || source, function(srcValue, key) {
if (props) {
@@ -286,7 +269,7 @@ function baseMerge(object, source, customizer, stackA, stackB) {
module.exports = baseMerge;
-},{"../lang/isArray":30,"../lang/isObject":33,"../lang/isTypedArray":36,"../object/keys":38,"./arrayEach":6,"./baseMergeDeep":12,"./isArrayLike":20,"./isObjectLike":25}],12:[function(_dereq_,module,exports){
+},{"../lang/isArray":27,"../lang/isObject":30,"../lang/isTypedArray":33,"../object/keys":35,"./arrayEach":6,"./baseMergeDeep":11,"./isArrayLike":18,"./isObjectLike":23}],11:[function(_dereq_,module,exports){
var arrayCopy = _dereq_('./arrayCopy'),
isArguments = _dereq_('../lang/isArguments'),
isArray = _dereq_('../lang/isArray'),
@@ -305,7 +288,7 @@ var arrayCopy = _dereq_('./arrayCopy'),
* @param {Object} source The source object.
* @param {string} key The key of the value to merge.
* @param {Function} mergeFunc The function to merge values.
- * @param {Function} [customizer] The function to customize merging properties.
+ * @param {Function} [customizer] The function to customize merged values.
* @param {Array} [stackA=[]] Tracks traversed source objects.
* @param {Array} [stackB=[]] Associates values with source counterparts.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
@@ -355,7 +338,7 @@ function baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stack
module.exports = baseMergeDeep;
-},{"../lang/isArguments":29,"../lang/isArray":30,"../lang/isPlainObject":34,"../lang/isTypedArray":36,"../lang/toPlainObject":37,"./arrayCopy":5,"./isArrayLike":20}],13:[function(_dereq_,module,exports){
+},{"../lang/isArguments":26,"../lang/isArray":27,"../lang/isPlainObject":31,"../lang/isTypedArray":33,"../lang/toPlainObject":34,"./arrayCopy":5,"./isArrayLike":18}],12:[function(_dereq_,module,exports){
var toObject = _dereq_('./toObject');
/**
@@ -373,25 +356,7 @@ function baseProperty(key) {
module.exports = baseProperty;
-},{"./toObject":28}],14:[function(_dereq_,module,exports){
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- if (typeof value == 'string') {
- return value;
- }
- return value == null ? '' : (value + '');
-}
-
-module.exports = baseToString;
-
-},{}],15:[function(_dereq_,module,exports){
+},{"./toObject":25}],13:[function(_dereq_,module,exports){
var identity = _dereq_('../utility/identity');
/**
@@ -432,16 +397,13 @@ function bindCallback(func, thisArg, argCount) {
module.exports = bindCallback;
-},{"../utility/identity":43}],16:[function(_dereq_,module,exports){
+},{"../utility/identity":39}],14:[function(_dereq_,module,exports){
var bindCallback = _dereq_('./bindCallback'),
isIterateeCall = _dereq_('./isIterateeCall'),
restParam = _dereq_('../function/restParam');
/**
- * Creates a function that assigns properties of source object(s) to a given
- * destination object.
- *
- * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.
+ * Creates a `_.assign`, `_.defaults`, or `_.merge` function.
*
* @private
* @param {Function} assigner The function to assign values.
@@ -478,7 +440,7 @@ function createAssigner(assigner) {
module.exports = createAssigner;
-},{"../function/restParam":4,"./bindCallback":15,"./isIterateeCall":23}],17:[function(_dereq_,module,exports){
+},{"../function/restParam":4,"./bindCallback":13,"./isIterateeCall":21}],15:[function(_dereq_,module,exports){
var toObject = _dereq_('./toObject');
/**
@@ -507,7 +469,7 @@ function createBaseFor(fromRight) {
module.exports = createBaseFor;
-},{"./toObject":28}],18:[function(_dereq_,module,exports){
+},{"./toObject":25}],16:[function(_dereq_,module,exports){
var baseProperty = _dereq_('./baseProperty');
/**
@@ -524,7 +486,7 @@ var getLength = baseProperty('length');
module.exports = getLength;
-},{"./baseProperty":13}],19:[function(_dereq_,module,exports){
+},{"./baseProperty":12}],17:[function(_dereq_,module,exports){
var isNative = _dereq_('../lang/isNative');
/**
@@ -542,7 +504,7 @@ function getNative(object, key) {
module.exports = getNative;
-},{"../lang/isNative":32}],20:[function(_dereq_,module,exports){
+},{"../lang/isNative":29}],18:[function(_dereq_,module,exports){
var getLength = _dereq_('./getLength'),
isLength = _dereq_('./isLength');
@@ -559,7 +521,7 @@ function isArrayLike(value) {
module.exports = isArrayLike;
-},{"./getLength":18,"./isLength":24}],21:[function(_dereq_,module,exports){
+},{"./getLength":16,"./isLength":22}],19:[function(_dereq_,module,exports){
/**
* Checks if `value` is a host object in IE < 9.
*
@@ -582,12 +544,12 @@ var isHostObject = (function() {
module.exports = isHostObject;
-},{}],22:[function(_dereq_,module,exports){
+},{}],20:[function(_dereq_,module,exports){
/** Used to detect unsigned integer values. */
var reIsUint = /^\d+$/;
/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
* of an array-like value.
*/
var MAX_SAFE_INTEGER = 9007199254740991;
@@ -608,7 +570,7 @@ function isIndex(value, length) {
module.exports = isIndex;
-},{}],23:[function(_dereq_,module,exports){
+},{}],21:[function(_dereq_,module,exports){
var isArrayLike = _dereq_('./isArrayLike'),
isIndex = _dereq_('./isIndex'),
isObject = _dereq_('../lang/isObject');
@@ -638,9 +600,9 @@ function isIterateeCall(value, index, object) {
module.exports = isIterateeCall;
-},{"../lang/isObject":33,"./isArrayLike":20,"./isIndex":22}],24:[function(_dereq_,module,exports){
+},{"../lang/isObject":30,"./isArrayLike":18,"./isIndex":20}],22:[function(_dereq_,module,exports){
/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
* of an array-like value.
*/
var MAX_SAFE_INTEGER = 9007199254740991;
@@ -648,7 +610,7 @@ var MAX_SAFE_INTEGER = 9007199254740991;
/**
* Checks if `value` is a valid array-like length.
*
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
+ * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
*
* @private
* @param {*} value The value to check.
@@ -660,7 +622,7 @@ function isLength(value) {
module.exports = isLength;
-},{}],25:[function(_dereq_,module,exports){
+},{}],23:[function(_dereq_,module,exports){
/**
* Checks if `value` is object-like.
*
@@ -674,70 +636,7 @@ function isObjectLike(value) {
module.exports = isObjectLike;
-},{}],26:[function(_dereq_,module,exports){
-var baseForIn = _dereq_('./baseForIn'),
- isArguments = _dereq_('../lang/isArguments'),
- isHostObject = _dereq_('./isHostObject'),
- isObjectLike = _dereq_('./isObjectLike'),
- support = _dereq_('../support');
-
-/** `Object#toString` result references. */
-var objectTag = '[object Object]';
-
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
-/**
- * A fallback implementation of `_.isPlainObject` which checks if `value`
- * is an object created by the `Object` constructor or has a `[[Prototype]]`
- * of `null`.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
- */
-function shimIsPlainObject(value) {
- var Ctor;
-
- // Exit early for non `Object` objects.
- if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value)) ||
- (!hasOwnProperty.call(value, 'constructor') &&
- (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor))) ||
- (!support.argsTag && isArguments(value))) {
- return false;
- }
- // IE < 9 iterates inherited properties before own properties. If the first
- // iterated property is an object's own property then there are no inherited
- // enumerable properties.
- var result;
- if (support.ownLast) {
- baseForIn(value, function(subValue, key, object) {
- result = hasOwnProperty.call(object, key);
- return false;
- });
- return result !== false;
- }
- // In most environments an object's own properties are iterated before
- // its inherited properties. If the last iterated property is an object's
- // own property then there are no inherited enumerable properties.
- baseForIn(value, function(subValue, key) {
- result = key;
- });
- return result === undefined || hasOwnProperty.call(value, result);
-}
-
-module.exports = shimIsPlainObject;
-
-},{"../lang/isArguments":29,"../support":42,"./baseForIn":9,"./isHostObject":21,"./isObjectLike":25}],27:[function(_dereq_,module,exports){
+},{}],24:[function(_dereq_,module,exports){
var isArguments = _dereq_('../lang/isArguments'),
isArray = _dereq_('../lang/isArray'),
isIndex = _dereq_('./isIndex'),
@@ -781,7 +680,7 @@ function shimKeys(object) {
module.exports = shimKeys;
-},{"../lang/isArguments":29,"../lang/isArray":30,"../lang/isString":35,"../object/keysIn":39,"./isIndex":22,"./isLength":24}],28:[function(_dereq_,module,exports){
+},{"../lang/isArguments":26,"../lang/isArray":27,"../lang/isString":32,"../object/keysIn":36,"./isIndex":20,"./isLength":22}],25:[function(_dereq_,module,exports){
var isObject = _dereq_('../lang/isObject'),
isString = _dereq_('../lang/isString'),
support = _dereq_('../support');
@@ -809,13 +708,9 @@ function toObject(value) {
module.exports = toObject;
-},{"../lang/isObject":33,"../lang/isString":35,"../support":42}],29:[function(_dereq_,module,exports){
+},{"../lang/isObject":30,"../lang/isString":32,"../support":38}],26:[function(_dereq_,module,exports){
var isArrayLike = _dereq_('../internal/isArrayLike'),
- isObjectLike = _dereq_('../internal/isObjectLike'),
- support = _dereq_('../support');
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]';
+ isObjectLike = _dereq_('../internal/isObjectLike');
/** Used for native method references. */
var objectProto = Object.prototype;
@@ -823,12 +718,6 @@ var objectProto = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
/** Native method references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable;
@@ -849,19 +738,13 @@ var propertyIsEnumerable = objectProto.propertyIsEnumerable;
* // => false
*/
function isArguments(value) {
- return isObjectLike(value) && isArrayLike(value) && objToString.call(value) == argsTag;
-}
-// Fallback for environments without a `toStringTag` for `arguments` objects.
-if (!support.argsTag) {
- isArguments = function(value) {
- return isObjectLike(value) && isArrayLike(value) &&
- hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
- };
+ return isObjectLike(value) && isArrayLike(value) &&
+ hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
}
module.exports = isArguments;
-},{"../internal/isArrayLike":20,"../internal/isObjectLike":25,"../support":42}],30:[function(_dereq_,module,exports){
+},{"../internal/isArrayLike":18,"../internal/isObjectLike":23}],27:[function(_dereq_,module,exports){
var getNative = _dereq_('../internal/getNative'),
isLength = _dereq_('../internal/isLength'),
isObjectLike = _dereq_('../internal/isObjectLike');
@@ -873,7 +756,7 @@ var arrayTag = '[object Array]';
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -903,10 +786,8 @@ var isArray = nativeIsArray || function(value) {
module.exports = isArray;
-},{"../internal/getNative":19,"../internal/isLength":24,"../internal/isObjectLike":25}],31:[function(_dereq_,module,exports){
-(function (global){
-var baseIsFunction = _dereq_('../internal/baseIsFunction'),
- getNative = _dereq_('../internal/getNative');
+},{"../internal/getNative":17,"../internal/isLength":22,"../internal/isObjectLike":23}],28:[function(_dereq_,module,exports){
+var isObject = _dereq_('./isObject');
/** `Object#toString` result references. */
var funcTag = '[object Function]';
@@ -915,14 +796,11 @@ var funcTag = '[object Function]';
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
-/** Native method references. */
-var Uint8Array = getNative(global, 'Uint8Array');
-
/**
* Checks if `value` is classified as a `Function` object.
*
@@ -939,25 +817,20 @@ var Uint8Array = getNative(global, 'Uint8Array');
* _.isFunction(/abc/);
* // => false
*/
-var isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) {
+function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
// in older versions of Chrome and Safari which return 'function' for regexes
- // and Safari 8 equivalents which return 'object' for typed array constructors.
- return objToString.call(value) == funcTag;
-};
+ // and Safari 8 which returns 'object' for typed array constructors.
+ return isObject(value) && objToString.call(value) == funcTag;
+}
module.exports = isFunction;
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
-},{"../internal/baseIsFunction":10,"../internal/getNative":19}],32:[function(_dereq_,module,exports){
-var escapeRegExp = _dereq_('../string/escapeRegExp'),
+},{"./isObject":30}],29:[function(_dereq_,module,exports){
+var isFunction = _dereq_('./isFunction'),
isHostObject = _dereq_('../internal/isHostObject'),
isObjectLike = _dereq_('../internal/isObjectLike');
-/** `Object#toString` result references. */
-var funcTag = '[object Function]';
-
/** Used to detect host constructors (Safari > 5). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;
@@ -970,15 +843,9 @@ var fnToString = Function.prototype.toString;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
/** Used to detect if a method is native. */
var reIsNative = RegExp('^' +
- escapeRegExp(fnToString.call(hasOwnProperty))
+ fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
.replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
);
@@ -1002,7 +869,7 @@ function isNative(value) {
if (value == null) {
return false;
}
- if (objToString.call(value) == funcTag) {
+ if (isFunction(value)) {
return reIsNative.test(fnToString.call(value));
}
return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);
@@ -1010,7 +877,7 @@ function isNative(value) {
module.exports = isNative;
-},{"../internal/isHostObject":21,"../internal/isObjectLike":25,"../string/escapeRegExp":41}],33:[function(_dereq_,module,exports){
+},{"../internal/isHostObject":19,"../internal/isObjectLike":23,"./isFunction":28}],30:[function(_dereq_,module,exports){
/**
* Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
* (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
@@ -1040,10 +907,11 @@ function isObject(value) {
module.exports = isObject;
-},{}],34:[function(_dereq_,module,exports){
-var getNative = _dereq_('../internal/getNative'),
+},{}],31:[function(_dereq_,module,exports){
+var baseForIn = _dereq_('../internal/baseForIn'),
isArguments = _dereq_('./isArguments'),
- shimIsPlainObject = _dereq_('../internal/shimIsPlainObject'),
+ isHostObject = _dereq_('../internal/isHostObject'),
+ isObjectLike = _dereq_('../internal/isObjectLike'),
support = _dereq_('../support');
/** `Object#toString` result references. */
@@ -1052,15 +920,15 @@ var objectTag = '[object Object]';
/** Used for native method references. */
var objectProto = Object.prototype;
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
-/** Native method references. */
-var getPrototypeOf = getNative(Object, 'getPrototypeOf');
-
/**
* Checks if `value` is a plain object, that is, an object created by the
* `Object` constructor or one with a `[[Prototype]]` of `null`.
@@ -1091,21 +959,37 @@ var getPrototypeOf = getNative(Object, 'getPrototypeOf');
* _.isPlainObject(Object.create(null));
* // => true
*/
-var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) {
- if (!(value && objToString.call(value) == objectTag) || (!support.argsTag && isArguments(value))) {
+function isPlainObject(value) {
+ var Ctor;
+
+ // Exit early for non `Object` objects.
+ if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||
+ (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {
return false;
}
- var valueOf = getNative(value, 'valueOf'),
- objProto = valueOf && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);
-
- return objProto
- ? (value == objProto || getPrototypeOf(value) == objProto)
- : shimIsPlainObject(value);
-};
+ // IE < 9 iterates inherited properties before own properties. If the first
+ // iterated property is an object's own property then there are no inherited
+ // enumerable properties.
+ var result;
+ if (support.ownLast) {
+ baseForIn(value, function(subValue, key, object) {
+ result = hasOwnProperty.call(object, key);
+ return false;
+ });
+ return result !== false;
+ }
+ // In most environments an object's own properties are iterated before
+ // its inherited properties. If the last iterated property is an object's
+ // own property then there are no inherited enumerable properties.
+ baseForIn(value, function(subValue, key) {
+ result = key;
+ });
+ return result === undefined || hasOwnProperty.call(value, result);
+}
module.exports = isPlainObject;
-},{"../internal/getNative":19,"../internal/shimIsPlainObject":26,"../support":42,"./isArguments":29}],35:[function(_dereq_,module,exports){
+},{"../internal/baseForIn":9,"../internal/isHostObject":19,"../internal/isObjectLike":23,"../support":38,"./isArguments":26}],32:[function(_dereq_,module,exports){
var isObjectLike = _dereq_('../internal/isObjectLike');
/** `Object#toString` result references. */
@@ -1115,7 +999,7 @@ var stringTag = '[object String]';
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -1142,7 +1026,7 @@ function isString(value) {
module.exports = isString;
-},{"../internal/isObjectLike":25}],36:[function(_dereq_,module,exports){
+},{"../internal/isObjectLike":23}],33:[function(_dereq_,module,exports){
var isLength = _dereq_('../internal/isLength'),
isObjectLike = _dereq_('../internal/isObjectLike');
@@ -1191,7 +1075,7 @@ typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -1218,7 +1102,7 @@ function isTypedArray(value) {
module.exports = isTypedArray;
-},{"../internal/isLength":24,"../internal/isObjectLike":25}],37:[function(_dereq_,module,exports){
+},{"../internal/isLength":22,"../internal/isObjectLike":23}],34:[function(_dereq_,module,exports){
var baseCopy = _dereq_('../internal/baseCopy'),
keysIn = _dereq_('../object/keysIn');
@@ -1251,7 +1135,7 @@ function toPlainObject(value) {
module.exports = toPlainObject;
-},{"../internal/baseCopy":7,"../object/keysIn":39}],38:[function(_dereq_,module,exports){
+},{"../internal/baseCopy":7,"../object/keysIn":36}],35:[function(_dereq_,module,exports){
var getNative = _dereq_('../internal/getNative'),
isArrayLike = _dereq_('../internal/isArrayLike'),
isObject = _dereq_('../lang/isObject'),
@@ -1265,7 +1149,7 @@ var nativeKeys = getNative(Object, 'keys');
* Creates an array of the own enumerable property names of `object`.
*
* **Note:** Non-object values are coerced to objects. See the
- * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys)
+ * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
* for more details.
*
* @static
@@ -1289,7 +1173,7 @@ var nativeKeys = getNative(Object, 'keys');
* // => ['0', '1']
*/
var keys = !nativeKeys ? shimKeys : function(object) {
- var Ctor = object == null ? null : object.constructor;
+ var Ctor = object == null ? undefined : object.constructor;
if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
(typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {
return shimKeys(object);
@@ -1299,7 +1183,7 @@ var keys = !nativeKeys ? shimKeys : function(object) {
module.exports = keys;
-},{"../internal/getNative":19,"../internal/isArrayLike":20,"../internal/shimKeys":27,"../lang/isObject":33,"../support":42}],39:[function(_dereq_,module,exports){
+},{"../internal/getNative":17,"../internal/isArrayLike":18,"../internal/shimKeys":24,"../lang/isObject":30,"../support":38}],36:[function(_dereq_,module,exports){
var arrayEach = _dereq_('../internal/arrayEach'),
isArguments = _dereq_('../lang/isArguments'),
isArray = _dereq_('../lang/isArray'),
@@ -1336,7 +1220,7 @@ var errorProto = Error.prototype,
var hasOwnProperty = objectProto.hasOwnProperty;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -1403,7 +1287,7 @@ function keysIn(object) {
while (++index < length) {
result[index] = (index + '');
}
- // lodash skips the `constructor` property when it infers it is iterating
+ // lodash skips the `constructor` property when it infers it's iterating
// over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`
// attribute of an existing property and the `constructor` property of a
// prototype defaults to non-enumerable.
@@ -1437,7 +1321,7 @@ function keysIn(object) {
module.exports = keysIn;
-},{"../internal/arrayEach":6,"../internal/isIndex":22,"../internal/isLength":24,"../lang/isArguments":29,"../lang/isArray":30,"../lang/isFunction":31,"../lang/isObject":33,"../lang/isString":35,"../support":42}],40:[function(_dereq_,module,exports){
+},{"../internal/arrayEach":6,"../internal/isIndex":20,"../internal/isLength":22,"../lang/isArguments":26,"../lang/isArray":27,"../lang/isFunction":28,"../lang/isObject":30,"../lang/isString":32,"../support":38}],37:[function(_dereq_,module,exports){
var baseMerge = _dereq_('../internal/baseMerge'),
createAssigner = _dereq_('../internal/createAssigner');
@@ -1445,7 +1329,7 @@ var baseMerge = _dereq_('../internal/baseMerge'),
* Recursively merges own enumerable properties of the source object(s), that
* don't resolve to `undefined` into the destination object. Subsequent sources
* overwrite property assignments of previous sources. If `customizer` is
- * provided it is invoked to produce the merged values of the destination and
+ * provided it's invoked to produce the merged values of the destination and
* source properties. If `customizer` returns `undefined` merging is handled
* by the method instead. The `customizer` is bound to `thisArg` and invoked
* with five arguments: (objectValue, sourceValue, key, object, source).
@@ -1493,60 +1377,12 @@ var merge = createAssigner(baseMerge);
module.exports = merge;
-},{"../internal/baseMerge":11,"../internal/createAssigner":16}],41:[function(_dereq_,module,exports){
-var baseToString = _dereq_('../internal/baseToString');
-
-/**
- * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).
- * In addition to special characters the forward slash is escaped to allow for
- * easier `eval` use and `Function` compilation.
- */
-var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g,
- reHasRegExpChars = RegExp(reRegExpChars.source);
-
-/**
- * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?",
- * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to escape.
- * @returns {string} Returns the escaped string.
- * @example
- *
- * _.escapeRegExp('[lodash](https://lodash.com/)');
- * // => '\[lodash\]\(https:\/\/lodash\.com\/\)'
- */
-function escapeRegExp(string) {
- string = baseToString(string);
- return (string && reHasRegExpChars.test(string))
- ? string.replace(reRegExpChars, '\\$&')
- : string;
-}
-
-module.exports = escapeRegExp;
-
-},{"../internal/baseToString":14}],42:[function(_dereq_,module,exports){
-(function (global){
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- objectTag = '[object Object]';
-
+},{"../internal/baseMerge":10,"../internal/createAssigner":14}],38:[function(_dereq_,module,exports){
/** Used for native method references. */
var arrayProto = Array.prototype,
errorProto = Error.prototype,
objectProto = Object.prototype;
-/** Used to detect DOM support. */
-var document = (document = global.window) ? document.document : null;
-
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
/** Native method references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable,
splice = arrayProto.splice;
@@ -1568,15 +1404,6 @@ var support = {};
Ctor.prototype = { 'valueOf': x, 'y': x };
for (var key in new Ctor) { props.push(key); }
- /**
- * Detect if the `toStringTag` of `arguments` objects is resolvable
- * (all but Firefox < 4, IE < 9).
- *
- * @memberOf _.support
- * @type boolean
- */
- support.argsTag = objToString.call(arguments) == argsTag;
-
/**
* Detect if `name` or `message` properties of `Error.prototype` are
* enumerable by default (IE < 9, Safari < 5.1).
@@ -1600,14 +1427,6 @@ var support = {};
*/
support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');
- /**
- * Detect if the `toStringTag` of DOM nodes is resolvable (all but IE < 9).
- *
- * @memberOf _.support
- * @type boolean
- */
- support.nodeTag = objToString.call(document) != objectTag;
-
/**
* Detect if properties shadowing those on `Object.prototype` are non-enumerable.
*
@@ -1652,25 +1471,11 @@ var support = {};
* @type boolean
*/
support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';
-
- /**
- * Detect if the DOM is supported.
- *
- * @memberOf _.support
- * @type boolean
- */
- try {
- support.dom = document.createDocumentFragment().nodeType === 11;
- } catch(e) {
- support.dom = false;
- }
}(1, 0));
module.exports = support;
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
-},{}],43:[function(_dereq_,module,exports){
+},{}],39:[function(_dereq_,module,exports){
/**
* This method returns the first argument provided to it.
*
@@ -1692,7 +1497,7 @@ function identity(value) {
module.exports = identity;
-},{}],44:[function(_dereq_,module,exports){
+},{}],40:[function(_dereq_,module,exports){
'use strict';
// modified from https://github.com/es-shims/es6-shim
@@ -1702,22 +1507,24 @@ var canBeObject = function (obj) {
};
var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';
var defineProperties = _dereq_('define-properties');
+var toObject = Object;
+var push = Array.prototype.push;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
-var isEnumerableOn = function (obj) {
- return function isEnumerable(prop) {
- return propIsEnumerable.call(obj, prop);
- };
-};
var assignShim = function assign(target, source1) {
if (!canBeObject(target)) { throw new TypeError('target must be an object'); }
- var objTarget = Object(target);
- var s, source, i, props;
+ var objTarget = toObject(target);
+ var s, source, i, props, syms;
for (s = 1; s < arguments.length; ++s) {
- source = Object(arguments[s]);
+ source = toObject(arguments[s]);
props = keys(source);
if (hasSymbols && Object.getOwnPropertySymbols) {
- props.push.apply(props, Object.getOwnPropertySymbols(source).filter(isEnumerableOn(source)));
+ syms = Object.getOwnPropertySymbols(source);
+ for (i = 0; i < syms.length; ++i) {
+ if (propIsEnumerable.call(source, syms[i])) {
+ push.call(props, syms[i]);
+ }
+ }
}
for (i = 0; i < props.length; ++i) {
objTarget[props[i]] = source[props[i]];
@@ -1726,9 +1533,12 @@ var assignShim = function assign(target, source1) {
return objTarget;
};
-assignShim.shim = function shimObjectAssign() {
- if (Object.assign && Object.preventExtensions) {
- var assignHasPendingExceptions = (function () {
+defineProperties(assignShim, {
+ shim: function shimObjectAssign() {
+ var assignHasPendingExceptions = function () {
+ if (!Object.assign || !Object.preventExtensions) {
+ return false;
+ }
// Firefox 37 still has "pending exception" logic in its Object.assign implementation,
// which is 72% slower than our shim, and Firefox 40's native implementation.
var thrower = Object.preventExtensions({ 1: 2 });
@@ -1737,27 +1547,24 @@ assignShim.shim = function shimObjectAssign() {
} catch (e) {
return thrower[1] === 'y';
}
- }());
- if (assignHasPendingExceptions) {
- delete Object.assign;
- }
+ };
+ defineProperties(
+ Object,
+ { assign: assignShim },
+ { assign: assignHasPendingExceptions }
+ );
+ return Object.assign || assignShim;
}
- if (!Object.assign) {
- defineProperties(Object, {
- assign: assignShim
- });
- }
- return Object.assign || assignShim;
-};
+});
module.exports = assignShim;
-
-},{"define-properties":45,"object-keys":47}],45:[function(_dereq_,module,exports){
+},{"define-properties":41,"object-keys":43}],41:[function(_dereq_,module,exports){
'use strict';
var keys = _dereq_('object-keys');
var foreach = _dereq_('foreach');
+var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';
var toStr = Object.prototype.toString;
@@ -1768,7 +1575,10 @@ var isFunction = function (fn) {
var arePropertyDescriptorsSupported = function () {
var obj = {};
try {
- Object.defineProperty(obj, 'x', { value: obj });
+ Object.defineProperty(obj, 'x', { value: obj, enumerable: false });
+ /* eslint-disable no-unused-vars */
+ for (var _ in obj) { return false; }
+ /* eslint-enable no-unused-vars */
return obj.x === obj;
} catch (e) { /* this is IE 8. */
return false;
@@ -1794,7 +1604,11 @@ var defineProperty = function (object, name, value, predicate) {
var defineProperties = function (object, map) {
var predicates = arguments.length > 2 ? arguments[2] : {};
- foreach(keys(map), function (name) {
+ var props = keys(map);
+ if (hasSymbols) {
+ props = props.concat(Object.getOwnPropertySymbols(map));
+ }
+ foreach(props, function (name) {
defineProperty(object, name, map[name], predicates[name]);
});
};
@@ -1803,7 +1617,7 @@ defineProperties.supportsDescriptors = !!supportsDescriptors;
module.exports = defineProperties;
-},{"foreach":46,"object-keys":47}],46:[function(_dereq_,module,exports){
+},{"foreach":42,"object-keys":43}],42:[function(_dereq_,module,exports){
var hasOwn = Object.prototype.hasOwnProperty;
var toString = Object.prototype.toString;
@@ -1827,12 +1641,13 @@ module.exports = function forEach (obj, fn, ctx) {
};
-},{}],47:[function(_dereq_,module,exports){
+},{}],43:[function(_dereq_,module,exports){
'use strict';
// modified from https://github.com/es-shims/es5-shim
var has = Object.prototype.hasOwnProperty;
var toStr = Object.prototype.toString;
+var slice = Array.prototype.slice;
var isArgs = _dereq_('./isArguments');
var hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');
var hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');
@@ -1845,6 +1660,44 @@ var dontEnums = [
'propertyIsEnumerable',
'constructor'
];
+var equalsConstructorPrototype = function (o) {
+ var ctor = o.constructor;
+ return ctor && ctor.prototype === o;
+};
+var blacklistedKeys = {
+ $window: true,
+ $console: true,
+ $parent: true,
+ $self: true,
+ $frames: true,
+ $webkitIndexedDB: true,
+ $webkitStorageInfo: true
+};
+var hasAutomationEqualityBug = (function () {
+ /* global window */
+ if (typeof window === 'undefined') { return false; }
+ for (var k in window) {
+ if (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {
+ try {
+ equalsConstructorPrototype(window[k]);
+ } catch (e) {
+ return true;
+ }
+ }
+ }
+ return false;
+}());
+var equalsConstructorPrototypeIfNotBuggy = function (o) {
+ /* global window */
+ if (typeof window === 'undefined' && !hasAutomationEqualityBug) {
+ return equalsConstructorPrototype(o);
+ }
+ try {
+ return equalsConstructorPrototype(o);
+ } catch (e) {
+ return false;
+ }
+};
var keysShim = function keys(object) {
var isObject = object !== null && typeof object === 'object';
@@ -1877,8 +1730,7 @@ var keysShim = function keys(object) {
}
if (hasDontEnumBug) {
- var ctor = object.constructor;
- var skipConstructor = ctor && ctor.prototype === object;
+ var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
for (var k = 0; k < dontEnums.length; ++k) {
if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {
@@ -1892,13 +1744,28 @@ var keysShim = function keys(object) {
keysShim.shim = function shimObjectKeys() {
if (!Object.keys) {
Object.keys = keysShim;
+ } else {
+ var keysWorksWithArguments = (function () {
+ // Safari 5.0 bug
+ return (Object.keys(arguments) || '').length === 2;
+ }(1, 2));
+ if (!keysWorksWithArguments) {
+ var originalKeys = Object.keys;
+ Object.keys = function keys(object) {
+ if (isArgs(object)) {
+ return originalKeys(slice.call(object));
+ } else {
+ return originalKeys(object);
+ }
+ };
+ }
}
return Object.keys || keysShim;
};
module.exports = keysShim;
-},{"./isArguments":48}],48:[function(_dereq_,module,exports){
+},{"./isArguments":44}],44:[function(_dereq_,module,exports){
'use strict';
var toStr = Object.prototype.toString;
@@ -1907,17 +1774,17 @@ module.exports = function isArguments(value) {
var str = toStr.call(value);
var isArgs = str === '[object Arguments]';
if (!isArgs) {
- isArgs = str !== '[object Array]'
- && value !== null
- && typeof value === 'object'
- && typeof value.length === 'number'
- && value.length >= 0
- && toStr.call(value.callee) === '[object Function]';
+ isArgs = str !== '[object Array]' &&
+ value !== null &&
+ typeof value === 'object' &&
+ typeof value.length === 'number' &&
+ value.length >= 0 &&
+ toStr.call(value.callee) === '[object Function]';
}
return isArgs;
};
-},{}],49:[function(_dereq_,module,exports){
+},{}],45:[function(_dereq_,module,exports){
module.exports = SafeParseTuple
function SafeParseTuple(obj, reviver) {
@@ -1933,27 +1800,27 @@ function SafeParseTuple(obj, reviver) {
return [error, json]
}
-},{}],50:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{}],46:[function(_dereq_,module,exports){
/**
* @file big-play-button.js
*/
+'use strict';
-var _Button2 = _dereq_('./button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('./component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _buttonJs = _dereq_('./button.js');
+
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('./component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Initial play button. Shows before the video has played. The hiding of the
@@ -1966,14 +1833,14 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var BigPlayButton = (function (_Button) {
+ _inherits(BigPlayButton, _Button);
+
function BigPlayButton(player, options) {
_classCallCheck(this, BigPlayButton);
_Button.call(this, player, options);
}
- _inherits(BigPlayButton, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -1996,51 +1863,53 @@ var BigPlayButton = (function (_Button) {
};
return BigPlayButton;
-})(_Button3['default']);
+})(_buttonJs2['default']);
BigPlayButton.prototype.controlText_ = 'Play Video';
-_Component2['default'].registerComponent('BigPlayButton', BigPlayButton);
+_componentJs2['default'].registerComponent('BigPlayButton', BigPlayButton);
exports['default'] = BigPlayButton;
module.exports = exports['default'];
-},{"./button.js":51,"./component.js":52}],51:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./button.js":47,"./component.js":48}],47:[function(_dereq_,module,exports){
/**
* @file button.js
*/
+'use strict';
-var _Component2 = _dereq_('./component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('./utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import2 = _dereq_('./utils/events.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Events = _interopRequireWildcard(_import2);
+var _component = _dereq_('./component');
-var _import3 = _dereq_('./utils/fn.js');
+var _component2 = _interopRequireDefault(_component);
-var Fn = _interopRequireWildcard(_import3);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _document = _dereq_('global/document');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _document2 = _interopRequireWildcard(_document);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _assign = _dereq_('object.assign');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsFnJs = _dereq_('./utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/**
* Base class for all buttons
@@ -2052,6 +1921,8 @@ var _assign2 = _interopRequireWildcard(_assign);
*/
var Button = (function (_Component) {
+ _inherits(Button, _Component);
+
function Button(player, options) {
_classCallCheck(this, Button);
@@ -2065,8 +1936,6 @@ var Button = (function (_Component) {
this.on('blur', this.handleBlur);
}
- _inherits(Button, _Component);
-
/**
* Create the component's DOM element
*
@@ -2077,14 +1946,14 @@ var Button = (function (_Component) {
*/
Button.prototype.createEl = function createEl() {
- var tag = arguments[0] === undefined ? 'button' : arguments[0];
- var props = arguments[1] === undefined ? {} : arguments[1];
+ var tag = arguments.length <= 0 || arguments[0] === undefined ? 'button' : arguments[0];
+ var props = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
// Add standard Aria and Tabindex info
- props = _assign2['default']({
+ props = _objectAssign2['default']({
className: this.buildCSSClass(),
- role: 'button',
- type: 'button', // Necessary since the default button type is "submit"
+ 'role': 'button',
+ 'type': 'button', // Necessary since the default button type is "submit"
'aria-live': 'polite', // let the screen reader user know that the text of the button may change
tabIndex: 0
}, props);
@@ -2111,9 +1980,9 @@ var Button = (function (_Component) {
*/
Button.prototype.controlText = function controlText(text) {
- if (!text) {
- return this.controlText_ || 'Need Text';
- }this.controlText_ = text;
+ if (!text) return this.controlText_ || 'Need Text';
+
+ this.controlText_ = text;
this.controlTextEl_.innerHTML = this.localize(this.controlText_);
return this;
@@ -2145,7 +2014,7 @@ var Button = (function (_Component) {
*/
Button.prototype.handleFocus = function handleFocus() {
- Events.on(_document2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
+ Events.on(_globalDocument2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
};
/**
@@ -2169,65 +2038,68 @@ var Button = (function (_Component) {
*/
Button.prototype.handleBlur = function handleBlur() {
- Events.off(_document2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
+ Events.off(_globalDocument2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
};
return Button;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('Button', Button);
+_component2['default'].registerComponent('Button', Button);
exports['default'] = Button;
module.exports = exports['default'];
-},{"./component":52,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"global/document":1,"object.assign":44}],52:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-exports.__esModule = true;
+},{"./component":48,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"global/document":1,"object.assign":40}],48:[function(_dereq_,module,exports){
/**
* @file component.js
*
* Player Component - Base class for all UI objects
*/
-var _window = _dereq_('global/window');
+'use strict';
-var _window2 = _interopRequireWildcard(_window);
+exports.__esModule = true;
-var _import = _dereq_('./utils/dom.js');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var Dom = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _import2 = _dereq_('./utils/fn.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var Fn = _interopRequireWildcard(_import2);
+var _globalWindow = _dereq_('global/window');
-var _import3 = _dereq_('./utils/guid.js');
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
-var Guid = _interopRequireWildcard(_import3);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _import4 = _dereq_('./utils/events.js');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var Events = _interopRequireWildcard(_import4);
+var _utilsFnJs = _dereq_('./utils/fn.js');
-var _log = _dereq_('./utils/log.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _log2 = _interopRequireWildcard(_log);
+var _utilsGuidJs = _dereq_('./utils/guid.js');
-var _toTitleCase = _dereq_('./utils/to-title-case.js');
+var Guid = _interopRequireWildcard(_utilsGuidJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _assign = _dereq_('object.assign');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _mergeOptions = _dereq_('./utils/merge-options.js');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _utilsToTitleCaseJs = _dereq_('./utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
/**
* Base UI Component class
@@ -2266,14 +2138,14 @@ var Component = (function () {
if (!player && this.play) {
this.player_ = player = this; // eslint-disable-line
} else {
- this.player_ = player;
- }
+ this.player_ = player;
+ }
// Make a copy of prototype.options_ to protect against overriding defaults
- this.options_ = _mergeOptions2['default']({}, this.options_);
+ this.options_ = _utilsMergeOptionsJs2['default']({}, this.options_);
// Updated options with supplied options
- options = this.options_ = _mergeOptions2['default'](this.options_, options);
+ options = this.options_ = _utilsMergeOptionsJs2['default'](this.options_, options);
// Get ID from options or options element if one is supplied
this.id_ = options.id || options.el && options.el.id;
@@ -2283,7 +2155,7 @@ var Component = (function () {
// Don't require the player ID function in the case of mock players
var id = player && player.id && player.id() || 'no_player';
- this.id_ = '' + id + '_component_' + Guid.newGUID();
+ this.id_ = id + '_component_' + Guid.newGUID();
}
this.name_ = options.name || null;
@@ -2402,13 +2274,13 @@ var Component = (function () {
*/
Component.prototype.options = function options(obj) {
- _log2['default'].warn('this.options() has been deprecated and will be moved to the constructor in 6.0');
+ _utilsLogJs2['default'].warn('this.options() has been deprecated and will be moved to the constructor in 6.0');
if (!obj) {
return this.options_;
}
- this.options_ = _mergeOptions2['default'](this.options_, obj);
+ this.options_ = _utilsMergeOptionsJs2['default'](this.options_, obj);
return this.options_;
};
@@ -2570,7 +2442,7 @@ var Component = (function () {
*/
Component.prototype.addChild = function addChild(child) {
- var options = arguments[1] === undefined ? {} : arguments[1];
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var component = undefined;
var componentName = undefined;
@@ -2586,13 +2458,13 @@ var Component = (function () {
// Same as above, but true is deprecated so show a warning.
if (options === true) {
- _log2['default'].warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');
+ _utilsLogJs2['default'].warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');
options = {};
}
// If no componentClass in options, assume componentClass is the name lowercased
// (e.g. playButton)
- var componentClassName = options.componentClass || _toTitleCase2['default'](componentName);
+ var componentClassName = options.componentClass || _utilsToTitleCaseJs2['default'](componentName);
// Set name through options
options.name = componentName;
@@ -2605,8 +2477,8 @@ var Component = (function () {
// child is a component instance
} else {
- component = child;
- }
+ component = child;
+ }
this.children_.push(component);
@@ -2833,46 +2705,46 @@ var Component = (function () {
// Targeting another component or element
} else {
- (function () {
- var target = first;
- var type = second;
- var fn = Fn.bind(_this2, third);
+ (function () {
+ var target = first;
+ var type = second;
+ var fn = Fn.bind(_this2, third);
- // When this component is disposed, remove the listener from the other component
- var removeOnDispose = function removeOnDispose() {
- return _this2.off(target, type, fn);
- };
+ // When this component is disposed, remove the listener from the other component
+ var removeOnDispose = function removeOnDispose() {
+ return _this2.off(target, type, fn);
+ };
- // Use the same function ID so we can remove it later it using the ID
- // of the original listener
- removeOnDispose.guid = fn.guid;
- _this2.on('dispose', removeOnDispose);
+ // Use the same function ID so we can remove it later it using the ID
+ // of the original listener
+ removeOnDispose.guid = fn.guid;
+ _this2.on('dispose', removeOnDispose);
- // If the other component is disposed first we need to clean the reference
- // to the other component in this component's removeOnDispose listener
- // Otherwise we create a memory leak.
- var cleanRemover = function cleanRemover() {
- return _this2.off('dispose', removeOnDispose);
- };
+ // If the other component is disposed first we need to clean the reference
+ // to the other component in this component's removeOnDispose listener
+ // Otherwise we create a memory leak.
+ var cleanRemover = function cleanRemover() {
+ return _this2.off('dispose', removeOnDispose);
+ };
- // Add the same function ID so we can easily remove it later
- cleanRemover.guid = fn.guid;
+ // Add the same function ID so we can easily remove it later
+ cleanRemover.guid = fn.guid;
- // Check if this is a DOM node
- if (first.nodeName) {
- // Add the listener to the other element
- Events.on(target, type, fn);
- Events.on(target, 'dispose', cleanRemover);
+ // Check if this is a DOM node
+ if (first.nodeName) {
+ // Add the listener to the other element
+ Events.on(target, type, fn);
+ Events.on(target, 'dispose', cleanRemover);
- // Should be a component
- // Not using `instanceof Component` because it makes mock players difficult
- } else if (typeof first.on === 'function') {
- // Add the listener to the other component
- target.on(type, fn);
- target.on('dispose', cleanRemover);
- }
- })();
- }
+ // Should be a component
+ // Not using `instanceof Component` because it makes mock players difficult
+ } else if (typeof first.on === 'function') {
+ // Add the listener to the other component
+ target.on(type, fn);
+ target.on('dispose', cleanRemover);
+ }
+ })();
+ }
return this;
};
@@ -2946,9 +2818,8 @@ var Component = (function () {
*/
Component.prototype.one = function one(first, second, third) {
- var _this3 = this;
-
- var _arguments = arguments;
+ var _this3 = this,
+ _arguments = arguments;
if (typeof first === 'string' || Array.isArray(first)) {
Events.one(this.el_, first, Fn.bind(this, second));
@@ -2958,20 +2829,10 @@ var Component = (function () {
var type = second;
var fn = Fn.bind(_this3, third);
- var newFunc = (function (_newFunc) {
- function newFunc() {
- return _newFunc.apply(this, arguments);
- }
-
- newFunc.toString = function () {
- return _newFunc.toString();
- };
-
- return newFunc;
- })(function () {
+ var newFunc = function newFunc() {
_this3.off(target, type, newFunc);
fn.apply(null, _arguments);
- });
+ };
// Keep the same function ID so we can remove it later
newFunc.guid = fn.guid;
@@ -3015,7 +2876,7 @@ var Component = (function () {
*/
Component.prototype.ready = function ready(fn) {
- var sync = arguments[1] === undefined ? false : arguments[1];
+ var sync = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
if (fn) {
if (this.isReady_) {
@@ -3262,7 +3123,7 @@ var Component = (function () {
// No px so using % or no style was set, so falling back to offsetWidth/height
// If component has display:none, offset will return 0
// TODO: handle display:none and no dimension style using px
- return parseInt(this.el_['offset' + _toTitleCase2['default'](widthOrHeight)], 10);
+ return parseInt(this.el_['offset' + _utilsToTitleCaseJs2['default'](widthOrHeight)], 10);
};
/**
@@ -3294,7 +3155,7 @@ var Component = (function () {
// If more than one finger, don't consider treating this as a click
if (event.touches.length === 1) {
// Copy the touches object to prevent modifying the original
- firstTouch = _assign2['default']({}, event.touches[0]);
+ firstTouch = _objectAssign2['default']({}, event.touches[0]);
// Record start time so we can detect a tap vs. "touch and hold"
touchStart = new Date().getTime();
// Reset couldBeTap tracking
@@ -3416,7 +3277,7 @@ var Component = (function () {
fn = Fn.bind(this, fn);
// window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.
- var timeoutId = _window2['default'].setTimeout(fn, timeout);
+ var timeoutId = _globalWindow2['default'].setTimeout(fn, timeout);
var disposeFn = function disposeFn() {
this.clearTimeout(timeoutId);
@@ -3438,7 +3299,7 @@ var Component = (function () {
*/
Component.prototype.clearTimeout = function clearTimeout(timeoutId) {
- _window2['default'].clearTimeout(timeoutId);
+ _globalWindow2['default'].clearTimeout(timeoutId);
var disposeFn = function disposeFn() {};
@@ -3461,7 +3322,7 @@ var Component = (function () {
Component.prototype.setInterval = function setInterval(fn, interval) {
fn = Fn.bind(this, fn);
- var intervalId = _window2['default'].setInterval(fn, interval);
+ var intervalId = _globalWindow2['default'].setInterval(fn, interval);
var disposeFn = function disposeFn() {
this.clearInterval(intervalId);
@@ -3483,7 +3344,7 @@ var Component = (function () {
*/
Component.prototype.clearInterval = function clearInterval(intervalId) {
- _window2['default'].clearInterval(intervalId);
+ _globalWindow2['default'].clearInterval(intervalId);
var disposeFn = function disposeFn() {};
@@ -3526,9 +3387,9 @@ var Component = (function () {
return Component.components_[name];
}
- if (_window2['default'] && _window2['default'].videojs && _window2['default'].videojs[name]) {
- _log2['default'].warn('The ' + name + ' component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)');
- return _window2['default'].videojs[name];
+ if (_globalWindow2['default'] && _globalWindow2['default'].videojs && _globalWindow2['default'].videojs[name]) {
+ _utilsLogJs2['default'].warn('The ' + name + ' component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)');
+ return _globalWindow2['default'].videojs[name];
}
};
@@ -3545,7 +3406,7 @@ var Component = (function () {
Component.extend = function extend(props) {
props = props || {};
- _log2['default'].warn('Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead');
+ _utilsLogJs2['default'].warn('Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead');
// Set up the constructor using the supplied init method
// or using the init of the parent object
@@ -3590,89 +3451,89 @@ Component.registerComponent('Component', Component);
exports['default'] = Component;
module.exports = exports['default'];
-},{"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/guid.js":115,"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/to-title-case.js":120,"global/window":2,"object.assign":44}],53:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/guid.js":111,"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/to-title-case.js":116,"global/window":2,"object.assign":40}],49:[function(_dereq_,module,exports){
/**
* @file control-bar.js
*/
+'use strict';
-var _Component2 = _dereq_('../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
// Required children
-var _PlayToggle = _dereq_('./play-toggle.js');
+var _playToggleJs = _dereq_('./play-toggle.js');
-var _PlayToggle2 = _interopRequireWildcard(_PlayToggle);
+var _playToggleJs2 = _interopRequireDefault(_playToggleJs);
-var _CurrentTimeDisplay = _dereq_('./time-controls/current-time-display.js');
+var _timeControlsCurrentTimeDisplayJs = _dereq_('./time-controls/current-time-display.js');
-var _CurrentTimeDisplay2 = _interopRequireWildcard(_CurrentTimeDisplay);
+var _timeControlsCurrentTimeDisplayJs2 = _interopRequireDefault(_timeControlsCurrentTimeDisplayJs);
-var _DurationDisplay = _dereq_('./time-controls/duration-display.js');
+var _timeControlsDurationDisplayJs = _dereq_('./time-controls/duration-display.js');
-var _DurationDisplay2 = _interopRequireWildcard(_DurationDisplay);
+var _timeControlsDurationDisplayJs2 = _interopRequireDefault(_timeControlsDurationDisplayJs);
-var _TimeDivider = _dereq_('./time-controls/time-divider.js');
+var _timeControlsTimeDividerJs = _dereq_('./time-controls/time-divider.js');
-var _TimeDivider2 = _interopRequireWildcard(_TimeDivider);
+var _timeControlsTimeDividerJs2 = _interopRequireDefault(_timeControlsTimeDividerJs);
-var _RemainingTimeDisplay = _dereq_('./time-controls/remaining-time-display.js');
+var _timeControlsRemainingTimeDisplayJs = _dereq_('./time-controls/remaining-time-display.js');
-var _RemainingTimeDisplay2 = _interopRequireWildcard(_RemainingTimeDisplay);
+var _timeControlsRemainingTimeDisplayJs2 = _interopRequireDefault(_timeControlsRemainingTimeDisplayJs);
-var _LiveDisplay = _dereq_('./live-display.js');
+var _liveDisplayJs = _dereq_('./live-display.js');
-var _LiveDisplay2 = _interopRequireWildcard(_LiveDisplay);
+var _liveDisplayJs2 = _interopRequireDefault(_liveDisplayJs);
-var _ProgressControl = _dereq_('./progress-control/progress-control.js');
+var _progressControlProgressControlJs = _dereq_('./progress-control/progress-control.js');
-var _ProgressControl2 = _interopRequireWildcard(_ProgressControl);
+var _progressControlProgressControlJs2 = _interopRequireDefault(_progressControlProgressControlJs);
-var _FullscreenToggle = _dereq_('./fullscreen-toggle.js');
+var _fullscreenToggleJs = _dereq_('./fullscreen-toggle.js');
-var _FullscreenToggle2 = _interopRequireWildcard(_FullscreenToggle);
+var _fullscreenToggleJs2 = _interopRequireDefault(_fullscreenToggleJs);
-var _VolumeControl = _dereq_('./volume-control/volume-control.js');
+var _volumeControlVolumeControlJs = _dereq_('./volume-control/volume-control.js');
-var _VolumeControl2 = _interopRequireWildcard(_VolumeControl);
+var _volumeControlVolumeControlJs2 = _interopRequireDefault(_volumeControlVolumeControlJs);
-var _VolumeMenuButton = _dereq_('./volume-menu-button.js');
+var _volumeMenuButtonJs = _dereq_('./volume-menu-button.js');
-var _VolumeMenuButton2 = _interopRequireWildcard(_VolumeMenuButton);
+var _volumeMenuButtonJs2 = _interopRequireDefault(_volumeMenuButtonJs);
-var _MuteToggle = _dereq_('./mute-toggle.js');
+var _muteToggleJs = _dereq_('./mute-toggle.js');
-var _MuteToggle2 = _interopRequireWildcard(_MuteToggle);
+var _muteToggleJs2 = _interopRequireDefault(_muteToggleJs);
-var _ChaptersButton = _dereq_('./text-track-controls/chapters-button.js');
+var _textTrackControlsChaptersButtonJs = _dereq_('./text-track-controls/chapters-button.js');
-var _ChaptersButton2 = _interopRequireWildcard(_ChaptersButton);
+var _textTrackControlsChaptersButtonJs2 = _interopRequireDefault(_textTrackControlsChaptersButtonJs);
-var _SubtitlesButton = _dereq_('./text-track-controls/subtitles-button.js');
+var _textTrackControlsSubtitlesButtonJs = _dereq_('./text-track-controls/subtitles-button.js');
-var _SubtitlesButton2 = _interopRequireWildcard(_SubtitlesButton);
+var _textTrackControlsSubtitlesButtonJs2 = _interopRequireDefault(_textTrackControlsSubtitlesButtonJs);
-var _CaptionsButton = _dereq_('./text-track-controls/captions-button.js');
+var _textTrackControlsCaptionsButtonJs = _dereq_('./text-track-controls/captions-button.js');
-var _CaptionsButton2 = _interopRequireWildcard(_CaptionsButton);
+var _textTrackControlsCaptionsButtonJs2 = _interopRequireDefault(_textTrackControlsCaptionsButtonJs);
-var _PlaybackRateMenuButton = _dereq_('./playback-rate-menu/playback-rate-menu-button.js');
+var _playbackRateMenuPlaybackRateMenuButtonJs = _dereq_('./playback-rate-menu/playback-rate-menu-button.js');
-var _PlaybackRateMenuButton2 = _interopRequireWildcard(_PlaybackRateMenuButton);
+var _playbackRateMenuPlaybackRateMenuButtonJs2 = _interopRequireDefault(_playbackRateMenuPlaybackRateMenuButtonJs);
-var _CustomControlSpacer = _dereq_('./spacer-controls/custom-control-spacer.js');
+var _spacerControlsCustomControlSpacerJs = _dereq_('./spacer-controls/custom-control-spacer.js');
-var _CustomControlSpacer2 = _interopRequireWildcard(_CustomControlSpacer);
+var _spacerControlsCustomControlSpacerJs2 = _interopRequireDefault(_spacerControlsCustomControlSpacerJs);
/**
* Container of main controls
@@ -3682,16 +3543,14 @@ var _CustomControlSpacer2 = _interopRequireWildcard(_CustomControlSpacer);
*/
var ControlBar = (function (_Component) {
+ _inherits(ControlBar, _Component);
+
function ControlBar() {
_classCallCheck(this, ControlBar);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(ControlBar, _Component);
-
/**
* Create the component's DOM element
*
@@ -3706,38 +3565,38 @@ var ControlBar = (function (_Component) {
};
return ControlBar;
-})(_Component3['default']);
+})(_componentJs2['default']);
ControlBar.prototype.options_ = {
loadEvent: 'play',
children: ['playToggle', 'volumeMenuButton', 'currentTimeDisplay', 'timeDivider', 'durationDisplay', 'progressControl', 'liveDisplay', 'remainingTimeDisplay', 'customControlSpacer', 'playbackRateMenuButton', 'muteToggle', 'volumeControl', 'chaptersButton', 'subtitlesButton', 'captionsButton', 'fullscreenToggle']
};
-_Component3['default'].registerComponent('ControlBar', ControlBar);
+_componentJs2['default'].registerComponent('ControlBar', ControlBar);
exports['default'] = ControlBar;
module.exports = exports['default'];
-},{"../component.js":52,"./fullscreen-toggle.js":54,"./live-display.js":55,"./mute-toggle.js":56,"./play-toggle.js":57,"./playback-rate-menu/playback-rate-menu-button.js":58,"./progress-control/progress-control.js":62,"./spacer-controls/custom-control-spacer.js":64,"./text-track-controls/captions-button.js":67,"./text-track-controls/chapters-button.js":68,"./text-track-controls/subtitles-button.js":71,"./time-controls/current-time-display.js":74,"./time-controls/duration-display.js":75,"./time-controls/remaining-time-display.js":76,"./time-controls/time-divider.js":77,"./volume-control/volume-control.js":79,"./volume-menu-button.js":81}],54:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component.js":48,"./fullscreen-toggle.js":50,"./live-display.js":51,"./mute-toggle.js":52,"./play-toggle.js":53,"./playback-rate-menu/playback-rate-menu-button.js":54,"./progress-control/progress-control.js":58,"./spacer-controls/custom-control-spacer.js":60,"./text-track-controls/captions-button.js":63,"./text-track-controls/chapters-button.js":64,"./text-track-controls/subtitles-button.js":67,"./time-controls/current-time-display.js":70,"./time-controls/duration-display.js":71,"./time-controls/remaining-time-display.js":72,"./time-controls/time-divider.js":73,"./volume-control/volume-control.js":75,"./volume-menu-button.js":77}],50:[function(_dereq_,module,exports){
/**
* @file fullscreen-toggle.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _buttonJs = _dereq_('../button.js');
+
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Toggle fullscreen video
@@ -3747,16 +3606,14 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var FullscreenToggle = (function (_Button) {
+ _inherits(FullscreenToggle, _Button);
+
function FullscreenToggle() {
_classCallCheck(this, FullscreenToggle);
- if (_Button != null) {
- _Button.apply(this, arguments);
- }
+ _Button.apply(this, arguments);
}
- _inherits(FullscreenToggle, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -3785,35 +3642,37 @@ var FullscreenToggle = (function (_Button) {
};
return FullscreenToggle;
-})(_Button3['default']);
+})(_buttonJs2['default']);
FullscreenToggle.prototype.controlText_ = 'Fullscreen';
-_Component2['default'].registerComponent('FullscreenToggle', FullscreenToggle);
+_componentJs2['default'].registerComponent('FullscreenToggle', FullscreenToggle);
exports['default'] = FullscreenToggle;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52}],55:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48}],51:[function(_dereq_,module,exports){
/**
* @file live-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _component = _dereq_('../component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* Displays the live indicator
@@ -3824,16 +3683,14 @@ var Dom = _interopRequireWildcard(_import);
*/
var LiveDisplay = (function (_Component) {
+ _inherits(LiveDisplay, _Component);
+
function LiveDisplay() {
_classCallCheck(this, LiveDisplay);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(LiveDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -3858,37 +3715,39 @@ var LiveDisplay = (function (_Component) {
};
return LiveDisplay;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('LiveDisplay', LiveDisplay);
+_component2['default'].registerComponent('LiveDisplay', LiveDisplay);
exports['default'] = LiveDisplay;
module.exports = exports['default'];
-},{"../component":52,"../utils/dom.js":111}],56:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/dom.js":107}],52:[function(_dereq_,module,exports){
/**
* @file mute-toggle.js
*/
+'use strict';
-var _Button2 = _dereq_('../button');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../component');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../utils/dom.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Dom = _interopRequireWildcard(_import);
+var _button = _dereq_('../button');
+
+var _button2 = _interopRequireDefault(_button);
+
+var _component = _dereq_('../component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* A button component for muting the audio
@@ -3900,6 +3759,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var MuteToggle = (function (_Button) {
+ _inherits(MuteToggle, _Button);
+
function MuteToggle(player, options) {
_classCallCheck(this, MuteToggle);
@@ -3908,14 +3769,14 @@ var MuteToggle = (function (_Button) {
this.on(player, 'volumechange', this.update);
// hide mute toggle if the current tech doesn't support volume control
- if (player.tech && player.tech.featuresVolumeControl === false) {
+ if (player.tech && player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
}
this.on(player, 'loadstart', function () {
this.update(); // We need to update the button to account for a default muted state.
- if (player.tech.featuresVolumeControl === false) {
+ if (player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
} else {
this.removeClass('vjs-hidden');
@@ -3923,8 +3784,6 @@ var MuteToggle = (function (_Button) {
});
}
- _inherits(MuteToggle, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -3981,35 +3840,35 @@ var MuteToggle = (function (_Button) {
};
return MuteToggle;
-})(_Button3['default']);
+})(_button2['default']);
MuteToggle.prototype.controlText_ = 'Mute';
-_Component2['default'].registerComponent('MuteToggle', MuteToggle);
+_component2['default'].registerComponent('MuteToggle', MuteToggle);
exports['default'] = MuteToggle;
module.exports = exports['default'];
-},{"../button":51,"../component":52,"../utils/dom.js":111}],57:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button":47,"../component":48,"../utils/dom.js":107}],53:[function(_dereq_,module,exports){
/**
* @file play-toggle.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _buttonJs = _dereq_('../button.js');
+
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Button to toggle between play and pause
@@ -4021,6 +3880,8 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var PlayToggle = (function (_Button) {
+ _inherits(PlayToggle, _Button);
+
function PlayToggle(player, options) {
_classCallCheck(this, PlayToggle);
@@ -4030,8 +3891,6 @@ var PlayToggle = (function (_Button) {
this.on(player, 'pause', this.handlePause);
}
- _inherits(PlayToggle, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -4082,47 +3941,49 @@ var PlayToggle = (function (_Button) {
};
return PlayToggle;
-})(_Button3['default']);
+})(_buttonJs2['default']);
PlayToggle.prototype.controlText_ = 'Play';
-_Component2['default'].registerComponent('PlayToggle', PlayToggle);
+_componentJs2['default'].registerComponent('PlayToggle', PlayToggle);
exports['default'] = PlayToggle;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52}],58:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48}],54:[function(_dereq_,module,exports){
/**
* @file playback-rate-menu-button.js
*/
+'use strict';
-var _MenuButton2 = _dereq_('../../menu/menu-button.js');
+exports.__esModule = true;
-var _MenuButton3 = _interopRequireWildcard(_MenuButton2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Menu = _dereq_('../../menu/menu.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Menu2 = _interopRequireWildcard(_Menu);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _PlaybackRateMenuItem = _dereq_('./playback-rate-menu-item.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _PlaybackRateMenuItem2 = _interopRequireWildcard(_PlaybackRateMenuItem);
+var _menuMenuButtonJs = _dereq_('../../menu/menu-button.js');
-var _Component = _dereq_('../../component.js');
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
-var _Component2 = _interopRequireWildcard(_Component);
+var _menuMenuJs = _dereq_('../../menu/menu.js');
-var _import = _dereq_('../../utils/dom.js');
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var Dom = _interopRequireWildcard(_import);
+var _playbackRateMenuItemJs = _dereq_('./playback-rate-menu-item.js');
+
+var _playbackRateMenuItemJs2 = _interopRequireDefault(_playbackRateMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* The component for controlling the playback rate
@@ -4134,6 +3995,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var PlaybackRateMenuButton = (function (_MenuButton) {
+ _inherits(PlaybackRateMenuButton, _MenuButton);
+
function PlaybackRateMenuButton(player, options) {
_classCallCheck(this, PlaybackRateMenuButton);
@@ -4146,8 +4009,6 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
this.on(player, 'ratechange', this.updateLabel);
}
- _inherits(PlaybackRateMenuButton, _MenuButton);
-
/**
* Create the component's DOM element
*
@@ -4160,7 +4021,7 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
this.labelEl_ = Dom.createEl('div', {
className: 'vjs-playback-rate-value',
- innerHTML: 1
+ innerHTML: 1.0
});
el.appendChild(this.labelEl_);
@@ -4187,12 +4048,12 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
*/
PlaybackRateMenuButton.prototype.createMenu = function createMenu() {
- var menu = new _Menu2['default'](this.player());
+ var menu = new _menuMenuJs2['default'](this.player());
var rates = this.playbackRates();
if (rates) {
for (var i = rates.length - 1; i >= 0; i--) {
- menu.addChild(new _PlaybackRateMenuItem2['default'](this.player(), { rate: rates[i] + 'x' }));
+ menu.addChild(new _playbackRateMenuItemJs2['default'](this.player(), { 'rate': rates[i] + 'x' }));
}
}
@@ -4240,7 +4101,7 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
*/
PlaybackRateMenuButton.prototype.playbackRates = function playbackRates() {
- return this.options_.playbackRates || this.options_.playerOptions && this.options_.playerOptions.playbackRates;
+ return this.options_['playbackRates'] || this.options_.playerOptions && this.options_.playerOptions['playbackRates'];
};
/**
@@ -4251,7 +4112,7 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
*/
PlaybackRateMenuButton.prototype.playbackRateSupported = function playbackRateSupported() {
- return this.player().tech && this.player().tech.featuresPlaybackRate && this.playbackRates() && this.playbackRates().length > 0;
+ return this.player().tech && this.player().tech['featuresPlaybackRate'] && this.playbackRates() && this.playbackRates().length > 0;
};
/**
@@ -4281,35 +4142,35 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
};
return PlaybackRateMenuButton;
-})(_MenuButton3['default']);
+})(_menuMenuButtonJs2['default']);
PlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';
-_Component2['default'].registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);
+_componentJs2['default'].registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);
exports['default'] = PlaybackRateMenuButton;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-button.js":88,"../../menu/menu.js":90,"../../utils/dom.js":111,"./playback-rate-menu-item.js":59}],59:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-button.js":84,"../../menu/menu.js":86,"../../utils/dom.js":107,"./playback-rate-menu-item.js":55}],55:[function(_dereq_,module,exports){
/**
* @file playback-rate-menu-item.js
*/
+'use strict';
-var _MenuItem2 = _dereq_('../../menu/menu-item.js');
+exports.__esModule = true;
-var _MenuItem3 = _interopRequireWildcard(_MenuItem2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _menuMenuItemJs = _dereq_('../../menu/menu-item.js');
+
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The specific menu item type for selecting a playback rate
@@ -4321,15 +4182,17 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var PlaybackRateMenuItem = (function (_MenuItem) {
+ _inherits(PlaybackRateMenuItem, _MenuItem);
+
function PlaybackRateMenuItem(player, options) {
_classCallCheck(this, PlaybackRateMenuItem);
- var label = options.rate;
+ var label = options['rate'];
var rate = parseFloat(label, 10);
// Modify options for parent MenuItem class's init.
- options.label = label;
- options.selected = rate === 1;
+ options['label'] = label;
+ options['selected'] = rate === 1;
_MenuItem.call(this, player, options);
this.label = label;
@@ -4338,8 +4201,6 @@ var PlaybackRateMenuItem = (function (_MenuItem) {
this.on(player, 'ratechange', this.update);
}
- _inherits(PlaybackRateMenuItem, _MenuItem);
-
/**
* Handle click on menu item
*
@@ -4362,35 +4223,37 @@ var PlaybackRateMenuItem = (function (_MenuItem) {
};
return PlaybackRateMenuItem;
-})(_MenuItem3['default']);
+})(_menuMenuItemJs2['default']);
PlaybackRateMenuItem.prototype.contentElType = 'button';
-_Component2['default'].registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);
+_componentJs2['default'].registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);
exports['default'] = PlaybackRateMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-item.js":89}],60:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-item.js":85}],56:[function(_dereq_,module,exports){
/**
* @file load-progress-bar.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* Shows load progress
@@ -4402,6 +4265,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var LoadProgressBar = (function (_Component) {
+ _inherits(LoadProgressBar, _Component);
+
function LoadProgressBar(player, options) {
_classCallCheck(this, LoadProgressBar);
@@ -4409,8 +4274,6 @@ var LoadProgressBar = (function (_Component) {
this.on(player, 'progress', this.update);
}
- _inherits(LoadProgressBar, _Component);
-
/**
* Create the component's DOM element
*
@@ -4468,37 +4331,39 @@ var LoadProgressBar = (function (_Component) {
};
return LoadProgressBar;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('LoadProgressBar', LoadProgressBar);
+_componentJs2['default'].registerComponent('LoadProgressBar', LoadProgressBar);
exports['default'] = LoadProgressBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111}],61:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107}],57:[function(_dereq_,module,exports){
/**
* @file play-progress-bar.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/fn.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Fn = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Shows play progress
@@ -4510,6 +4375,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var PlayProgressBar = (function (_Component) {
+ _inherits(PlayProgressBar, _Component);
+
function PlayProgressBar(player, options) {
_classCallCheck(this, PlayProgressBar);
@@ -4518,8 +4385,6 @@ var PlayProgressBar = (function (_Component) {
player.ready(Fn.bind(this, this.updateDataAttr));
}
- _inherits(PlayProgressBar, _Component);
-
/**
* Create the component's DOM element
*
@@ -4536,37 +4401,37 @@ var PlayProgressBar = (function (_Component) {
PlayProgressBar.prototype.updateDataAttr = function updateDataAttr() {
var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
- this.el_.setAttribute('data-current-time', _formatTime2['default'](time, this.player_.duration()));
+ this.el_.setAttribute('data-current-time', _utilsFormatTimeJs2['default'](time, this.player_.duration()));
};
return PlayProgressBar;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('PlayProgressBar', PlayProgressBar);
+_componentJs2['default'].registerComponent('PlayProgressBar', PlayProgressBar);
exports['default'] = PlayProgressBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/fn.js":113,"../../utils/format-time.js":114}],62:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/fn.js":109,"../../utils/format-time.js":110}],58:[function(_dereq_,module,exports){
/**
* @file progress-control.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _SeekBar = _dereq_('./seek-bar.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _SeekBar2 = _interopRequireWildcard(_SeekBar);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _seekBarJs = _dereq_('./seek-bar.js');
+
+var _seekBarJs2 = _interopRequireDefault(_seekBarJs);
/**
* The Progress Control component contains the seek bar, load progress,
@@ -4579,16 +4444,14 @@ var _SeekBar2 = _interopRequireWildcard(_SeekBar);
*/
var ProgressControl = (function (_Component) {
+ _inherits(ProgressControl, _Component);
+
function ProgressControl() {
_classCallCheck(this, ProgressControl);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(ProgressControl, _Component);
-
/**
* Create the component's DOM element
*
@@ -4603,55 +4466,57 @@ var ProgressControl = (function (_Component) {
};
return ProgressControl;
-})(_Component3['default']);
+})(_componentJs2['default']);
ProgressControl.prototype.options_ = {
children: {
- seekBar: {}
+ 'seekBar': {}
}
};
-_Component3['default'].registerComponent('ProgressControl', ProgressControl);
+_componentJs2['default'].registerComponent('ProgressControl', ProgressControl);
exports['default'] = ProgressControl;
module.exports = exports['default'];
-},{"../../component.js":52,"./seek-bar.js":63}],63:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./seek-bar.js":59}],59:[function(_dereq_,module,exports){
/**
* @file seek-bar.js
*/
+'use strict';
-var _Slider2 = _dereq_('../../slider/slider.js');
+exports.__esModule = true;
-var _Slider3 = _interopRequireWildcard(_Slider2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _LoadProgressBar = _dereq_('./load-progress-bar.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _LoadProgressBar2 = _interopRequireWildcard(_LoadProgressBar);
+var _sliderSliderJs = _dereq_('../../slider/slider.js');
-var _PlayProgressBar = _dereq_('./play-progress-bar.js');
+var _sliderSliderJs2 = _interopRequireDefault(_sliderSliderJs);
-var _PlayProgressBar2 = _interopRequireWildcard(_PlayProgressBar);
+var _componentJs = _dereq_('../../component.js');
-var _import = _dereq_('../../utils/fn.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Fn = _interopRequireWildcard(_import);
+var _loadProgressBarJs = _dereq_('./load-progress-bar.js');
-var _formatTime = _dereq_('../../utils/format-time.js');
+var _loadProgressBarJs2 = _interopRequireDefault(_loadProgressBarJs);
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _playProgressBarJs = _dereq_('./play-progress-bar.js');
+
+var _playProgressBarJs2 = _interopRequireDefault(_playProgressBarJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Seek Bar and holder for the progress bars
@@ -4663,6 +4528,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var SeekBar = (function (_Slider) {
+ _inherits(SeekBar, _Slider);
+
function SeekBar(player, options) {
_classCallCheck(this, SeekBar);
@@ -4671,8 +4538,6 @@ var SeekBar = (function (_Slider) {
player.ready(Fn.bind(this, this.updateARIAAttributes));
}
- _inherits(SeekBar, _Slider);
-
/**
* Create the component's DOM element
*
@@ -4697,7 +4562,7 @@ var SeekBar = (function (_Slider) {
// Allows for smooth scrubbing, when player can't keep up.
var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)
- this.el_.setAttribute('aria-valuetext', _formatTime2['default'](time, this.player_.duration())); // human readable value of progress bar (time complete)
+ this.el_.setAttribute('aria-valuetext', _utilsFormatTimeJs2['default'](time, this.player_.duration())); // human readable value of progress bar (time complete)
};
/**
@@ -4781,43 +4646,43 @@ var SeekBar = (function (_Slider) {
};
return SeekBar;
-})(_Slider3['default']);
+})(_sliderSliderJs2['default']);
SeekBar.prototype.options_ = {
children: {
- loadProgressBar: {},
- playProgressBar: {}
+ 'loadProgressBar': {},
+ 'playProgressBar': {}
},
- barName: 'playProgressBar'
+ 'barName': 'playProgressBar'
};
SeekBar.prototype.playerEvent = 'timeupdate';
-_Component2['default'].registerComponent('SeekBar', SeekBar);
+_componentJs2['default'].registerComponent('SeekBar', SeekBar);
exports['default'] = SeekBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../slider/slider.js":95,"../../utils/fn.js":113,"../../utils/format-time.js":114,"./load-progress-bar.js":60,"./play-progress-bar.js":61}],64:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../slider/slider.js":91,"../../utils/fn.js":109,"../../utils/format-time.js":110,"./load-progress-bar.js":56,"./play-progress-bar.js":57}],60:[function(_dereq_,module,exports){
/**
* @file custom-control-spacer.js
*/
+'use strict';
-var _Spacer2 = _dereq_('./spacer.js');
+exports.__esModule = true;
-var _Spacer3 = _interopRequireWildcard(_Spacer2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _spacerJs = _dereq_('./spacer.js');
+
+var _spacerJs2 = _interopRequireDefault(_spacerJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Spacer specifically meant to be used as an insertion point for new plugins, etc.
@@ -4827,16 +4692,14 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var CustomControlSpacer = (function (_Spacer) {
+ _inherits(CustomControlSpacer, _Spacer);
+
function CustomControlSpacer() {
_classCallCheck(this, CustomControlSpacer);
- if (_Spacer != null) {
- _Spacer.apply(this, arguments);
- }
+ _Spacer.apply(this, arguments);
}
- _inherits(CustomControlSpacer, _Spacer);
-
/**
* Allow sub components to stack CSS class names
*
@@ -4862,29 +4725,29 @@ var CustomControlSpacer = (function (_Spacer) {
};
return CustomControlSpacer;
-})(_Spacer3['default']);
+})(_spacerJs2['default']);
-_Component2['default'].registerComponent('CustomControlSpacer', CustomControlSpacer);
+_componentJs2['default'].registerComponent('CustomControlSpacer', CustomControlSpacer);
exports['default'] = CustomControlSpacer;
module.exports = exports['default'];
-},{"../../component.js":52,"./spacer.js":65}],65:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./spacer.js":61}],61:[function(_dereq_,module,exports){
/**
* @file spacer.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Just an empty spacer element that can be used as an append point for plugins, etc.
@@ -4895,16 +4758,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var Spacer = (function (_Component) {
+ _inherits(Spacer, _Component);
+
function Spacer() {
_classCallCheck(this, Spacer);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(Spacer, _Component);
-
/**
* Allow sub components to stack CSS class names
*
@@ -4931,34 +4792,34 @@ var Spacer = (function (_Component) {
};
return Spacer;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('Spacer', Spacer);
+_componentJs2['default'].registerComponent('Spacer', Spacer);
exports['default'] = Spacer;
module.exports = exports['default'];
-},{"../../component.js":52}],66:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48}],62:[function(_dereq_,module,exports){
/**
* @file caption-settings-menu-item.js
*/
+'use strict';
-var _TextTrackMenuItem2 = _dereq_('./text-track-menu-item.js');
+exports.__esModule = true;
-var _TextTrackMenuItem3 = _interopRequireWildcard(_TextTrackMenuItem2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
+
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The menu item for caption track settings menu
@@ -4970,13 +4831,15 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var CaptionSettingsMenuItem = (function (_TextTrackMenuItem) {
+ _inherits(CaptionSettingsMenuItem, _TextTrackMenuItem);
+
function CaptionSettingsMenuItem(player, options) {
_classCallCheck(this, CaptionSettingsMenuItem);
- options.track = {
- kind: options.kind,
- player: player,
- label: options.kind + ' settings',
+ options['track'] = {
+ 'kind': options['kind'],
+ 'player': player,
+ 'label': options['kind'] + ' settings',
'default': false,
mode: 'disabled'
};
@@ -4985,8 +4848,6 @@ var CaptionSettingsMenuItem = (function (_TextTrackMenuItem) {
this.addClass('vjs-texttrack-settings');
}
- _inherits(CaptionSettingsMenuItem, _TextTrackMenuItem);
-
/**
* Handle click on menu item
*
@@ -4998,37 +4859,37 @@ var CaptionSettingsMenuItem = (function (_TextTrackMenuItem) {
};
return CaptionSettingsMenuItem;
-})(_TextTrackMenuItem3['default']);
+})(_textTrackMenuItemJs2['default']);
-_Component2['default'].registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);
+_componentJs2['default'].registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);
exports['default'] = CaptionSettingsMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"./text-track-menu-item.js":73}],67:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./text-track-menu-item.js":69}],63:[function(_dereq_,module,exports){
/**
* @file captions-button.js
*/
+'use strict';
-var _TextTrackButton2 = _dereq_('./text-track-button.js');
+exports.__esModule = true;
-var _TextTrackButton3 = _interopRequireWildcard(_TextTrackButton2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _CaptionSettingsMenuItem = _dereq_('./caption-settings-menu-item.js');
+var _textTrackButtonJs = _dereq_('./text-track-button.js');
-var _CaptionSettingsMenuItem2 = _interopRequireWildcard(_CaptionSettingsMenuItem);
+var _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _captionSettingsMenuItemJs = _dereq_('./caption-settings-menu-item.js');
+
+var _captionSettingsMenuItemJs2 = _interopRequireDefault(_captionSettingsMenuItemJs);
/**
* The button component for toggling and selecting captions
@@ -5041,6 +4902,8 @@ var _CaptionSettingsMenuItem2 = _interopRequireWildcard(_CaptionSettingsMenuItem
*/
var CaptionsButton = (function (_TextTrackButton) {
+ _inherits(CaptionsButton, _TextTrackButton);
+
function CaptionsButton(player, options, ready) {
_classCallCheck(this, CaptionsButton);
@@ -5048,8 +4911,6 @@ var CaptionsButton = (function (_TextTrackButton) {
this.el_.setAttribute('aria-label', 'Captions Menu');
}
- _inherits(CaptionsButton, _TextTrackButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -5072,7 +4933,7 @@ var CaptionsButton = (function (_TextTrackButton) {
_TextTrackButton.prototype.update.call(this);
// if native, then threshold is 1 because no settings button
- if (this.player().tech && this.player().tech.featuresNativeTextTracks) {
+ if (this.player().tech && this.player().tech['featuresNativeTextTracks']) {
threshold = 1;
}
@@ -5093,72 +4954,74 @@ var CaptionsButton = (function (_TextTrackButton) {
CaptionsButton.prototype.createItems = function createItems() {
var items = [];
- if (!(this.player().tech && this.player().tech.featuresNativeTextTracks)) {
- items.push(new _CaptionSettingsMenuItem2['default'](this.player_, { kind: this.kind_ }));
+ if (!(this.player().tech && this.player().tech['featuresNativeTextTracks'])) {
+ items.push(new _captionSettingsMenuItemJs2['default'](this.player_, { 'kind': this.kind_ }));
}
return _TextTrackButton.prototype.createItems.call(this, items);
};
return CaptionsButton;
-})(_TextTrackButton3['default']);
+})(_textTrackButtonJs2['default']);
CaptionsButton.prototype.kind_ = 'captions';
CaptionsButton.prototype.controlText_ = 'Captions';
-_Component2['default'].registerComponent('CaptionsButton', CaptionsButton);
+_componentJs2['default'].registerComponent('CaptionsButton', CaptionsButton);
exports['default'] = CaptionsButton;
module.exports = exports['default'];
-},{"../../component.js":52,"./caption-settings-menu-item.js":66,"./text-track-button.js":72}],68:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./caption-settings-menu-item.js":62,"./text-track-button.js":68}],64:[function(_dereq_,module,exports){
/**
* @file chapters-button.js
*/
+'use strict';
-var _TextTrackButton2 = _dereq_('./text-track-button.js');
+exports.__esModule = true;
-var _TextTrackButton3 = _interopRequireWildcard(_TextTrackButton2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _TextTrackMenuItem = _dereq_('./text-track-menu-item.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _TextTrackMenuItem2 = _interopRequireWildcard(_TextTrackMenuItem);
+var _textTrackButtonJs = _dereq_('./text-track-button.js');
-var _ChaptersTrackMenuItem = _dereq_('./chapters-track-menu-item.js');
+var _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);
-var _ChaptersTrackMenuItem2 = _interopRequireWildcard(_ChaptersTrackMenuItem);
+var _componentJs = _dereq_('../../component.js');
-var _Menu = _dereq_('../../menu/menu.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _Menu2 = _interopRequireWildcard(_Menu);
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
-var _import = _dereq_('../../utils/dom.js');
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
-var Dom = _interopRequireWildcard(_import);
+var _chaptersTrackMenuItemJs = _dereq_('./chapters-track-menu-item.js');
-var _import2 = _dereq_('../../utils/fn.js');
+var _chaptersTrackMenuItemJs2 = _interopRequireDefault(_chaptersTrackMenuItemJs);
-var Fn = _interopRequireWildcard(_import2);
+var _menuMenuJs = _dereq_('../../menu/menu.js');
-var _toTitleCase = _dereq_('../../utils/to-title-case.js');
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsDomJs = _dereq_('../../utils/dom.js');
-var _window = _dereq_('global/window');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsToTitleCaseJs = _dereq_('../../utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/**
* The button component for toggling and selecting chapters
@@ -5173,6 +5036,8 @@ var _window2 = _interopRequireWildcard(_window);
*/
var ChaptersButton = (function (_TextTrackButton) {
+ _inherits(ChaptersButton, _TextTrackButton);
+
function ChaptersButton(player, options, ready) {
_classCallCheck(this, ChaptersButton);
@@ -5180,8 +5045,6 @@ var ChaptersButton = (function (_TextTrackButton) {
this.el_.setAttribute('aria-label', 'Chapters Menu');
}
- _inherits(ChaptersButton, _TextTrackButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -5211,9 +5074,9 @@ var ChaptersButton = (function (_TextTrackButton) {
for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
- if (track.kind === this.kind_) {
- items.push(new _TextTrackMenuItem2['default'](this.player_, {
- track: track
+ if (track['kind'] === this.kind_) {
+ items.push(new _textTrackMenuItemJs2['default'](this.player_, {
+ 'track': track
}));
}
}
@@ -5235,42 +5098,42 @@ var ChaptersButton = (function (_TextTrackButton) {
for (var i = 0, l = tracks.length; i < l; i++) {
var track = tracks[i];
- if (track.kind === this.kind_) {
+ if (track['kind'] === this.kind_) {
if (!track.cues) {
- track.mode = 'hidden';
+ track['mode'] = 'hidden';
/* jshint loopfunc:true */
// TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864
- _window2['default'].setTimeout(Fn.bind(this, function () {
+ _globalWindow2['default'].setTimeout(Fn.bind(this, function () {
this.createMenu();
}), 100);
/* jshint loopfunc:false */
} else {
- chaptersTrack = track;
- break;
- }
+ chaptersTrack = track;
+ break;
+ }
}
}
var menu = this.menu;
if (menu === undefined) {
- menu = new _Menu2['default'](this.player_);
+ menu = new _menuMenuJs2['default'](this.player_);
menu.contentEl().appendChild(Dom.createEl('li', {
className: 'vjs-menu-title',
- innerHTML: _toTitleCase2['default'](this.kind_),
+ innerHTML: _utilsToTitleCaseJs2['default'](this.kind_),
tabIndex: -1
}));
}
if (chaptersTrack) {
- var cues = chaptersTrack.cues,
+ var cues = chaptersTrack['cues'],
cue = undefined;
for (var i = 0, l = cues.length; i < l; i++) {
cue = cues[i];
- var mi = new _ChaptersTrackMenuItem2['default'](this.player_, {
- track: chaptersTrack,
- cue: cue
+ var mi = new _chaptersTrackMenuItemJs2['default'](this.player_, {
+ 'track': chaptersTrack,
+ 'cue': cue
});
items.push(mi);
@@ -5288,40 +5151,42 @@ var ChaptersButton = (function (_TextTrackButton) {
};
return ChaptersButton;
-})(_TextTrackButton3['default']);
+})(_textTrackButtonJs2['default']);
ChaptersButton.prototype.kind_ = 'chapters';
ChaptersButton.prototype.controlText_ = 'Chapters';
-_Component2['default'].registerComponent('ChaptersButton', ChaptersButton);
+_componentJs2['default'].registerComponent('ChaptersButton', ChaptersButton);
exports['default'] = ChaptersButton;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu.js":90,"../../utils/dom.js":111,"../../utils/fn.js":113,"../../utils/to-title-case.js":120,"./chapters-track-menu-item.js":69,"./text-track-button.js":72,"./text-track-menu-item.js":73,"global/window":2}],69:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu.js":86,"../../utils/dom.js":107,"../../utils/fn.js":109,"../../utils/to-title-case.js":116,"./chapters-track-menu-item.js":65,"./text-track-button.js":68,"./text-track-menu-item.js":69,"global/window":2}],65:[function(_dereq_,module,exports){
/**
* @file chapters-track-menu-item.js
*/
+'use strict';
-var _MenuItem2 = _dereq_('../../menu/menu-item.js');
+exports.__esModule = true;
-var _MenuItem3 = _interopRequireWildcard(_MenuItem2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuItemJs = _dereq_('../../menu/menu-item.js');
+
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
/**
* The chapter track menu item
@@ -5333,16 +5198,18 @@ var Fn = _interopRequireWildcard(_import);
*/
var ChaptersTrackMenuItem = (function (_MenuItem) {
+ _inherits(ChaptersTrackMenuItem, _MenuItem);
+
function ChaptersTrackMenuItem(player, options) {
_classCallCheck(this, ChaptersTrackMenuItem);
- var track = options.track;
- var cue = options.cue;
+ var track = options['track'];
+ var cue = options['cue'];
var currentTime = player.currentTime();
// Modify options for parent MenuItem class's init.
- options.label = cue.text;
- options.selected = cue.startTime <= currentTime && currentTime < cue.endTime;
+ options['label'] = cue.text;
+ options['selected'] = cue['startTime'] <= currentTime && currentTime < cue['endTime'];
_MenuItem.call(this, player, options);
this.track = track;
@@ -5350,8 +5217,6 @@ var ChaptersTrackMenuItem = (function (_MenuItem) {
track.addEventListener('cuechange', Fn.bind(this, this.update));
}
- _inherits(ChaptersTrackMenuItem, _MenuItem);
-
/**
* Handle click on menu item
*
@@ -5375,37 +5240,37 @@ var ChaptersTrackMenuItem = (function (_MenuItem) {
var currentTime = this.player_.currentTime();
// vjs.log(currentTime, cue.startTime);
- this.selected(cue.startTime <= currentTime && currentTime < cue.endTime);
+ this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);
};
return ChaptersTrackMenuItem;
-})(_MenuItem3['default']);
+})(_menuMenuItemJs2['default']);
-_Component2['default'].registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);
+_componentJs2['default'].registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);
exports['default'] = ChaptersTrackMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-item.js":89,"../../utils/fn.js":113}],70:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-item.js":85,"../../utils/fn.js":109}],66:[function(_dereq_,module,exports){
/**
* @file off-text-track-menu-item.js
*/
+'use strict';
-var _TextTrackMenuItem2 = _dereq_('./text-track-menu-item.js');
+exports.__esModule = true;
-var _TextTrackMenuItem3 = _interopRequireWildcard(_TextTrackMenuItem2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
+
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* A special menu item for turning of a specific type of text track
@@ -5417,25 +5282,25 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var OffTextTrackMenuItem = (function (_TextTrackMenuItem) {
+ _inherits(OffTextTrackMenuItem, _TextTrackMenuItem);
+
function OffTextTrackMenuItem(player, options) {
_classCallCheck(this, OffTextTrackMenuItem);
// Create pseudo track info
// Requires options['kind']
- options.track = {
- kind: options.kind,
- player: player,
- label: options.kind + ' off',
+ options['track'] = {
+ 'kind': options['kind'],
+ 'player': player,
+ 'label': options['kind'] + ' off',
'default': false,
- mode: 'disabled'
+ 'mode': 'disabled'
};
_TextTrackMenuItem.call(this, player, options);
this.selected(true);
}
- _inherits(OffTextTrackMenuItem, _TextTrackMenuItem);
-
/**
* Handle text track change
*
@@ -5449,7 +5314,7 @@ var OffTextTrackMenuItem = (function (_TextTrackMenuItem) {
for (var i = 0, l = tracks.length; i < l; i++) {
var track = tracks[i];
- if (track.kind === this.track.kind && track.mode === 'showing') {
+ if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {
selected = false;
break;
}
@@ -5459,33 +5324,33 @@ var OffTextTrackMenuItem = (function (_TextTrackMenuItem) {
};
return OffTextTrackMenuItem;
-})(_TextTrackMenuItem3['default']);
+})(_textTrackMenuItemJs2['default']);
-_Component2['default'].registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);
+_componentJs2['default'].registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);
exports['default'] = OffTextTrackMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"./text-track-menu-item.js":73}],71:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./text-track-menu-item.js":69}],67:[function(_dereq_,module,exports){
/**
* @file subtitles-button.js
*/
+'use strict';
-var _TextTrackButton2 = _dereq_('./text-track-button.js');
+exports.__esModule = true;
-var _TextTrackButton3 = _interopRequireWildcard(_TextTrackButton2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _textTrackButtonJs = _dereq_('./text-track-button.js');
+
+var _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The button component for toggling and selecting subtitles
@@ -5498,6 +5363,8 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var SubtitlesButton = (function (_TextTrackButton) {
+ _inherits(SubtitlesButton, _TextTrackButton);
+
function SubtitlesButton(player, options, ready) {
_classCallCheck(this, SubtitlesButton);
@@ -5505,8 +5372,6 @@ var SubtitlesButton = (function (_TextTrackButton) {
this.el_.setAttribute('aria-label', 'Subtitles Menu');
}
- _inherits(SubtitlesButton, _TextTrackButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -5519,48 +5384,50 @@ var SubtitlesButton = (function (_TextTrackButton) {
};
return SubtitlesButton;
-})(_TextTrackButton3['default']);
+})(_textTrackButtonJs2['default']);
SubtitlesButton.prototype.kind_ = 'subtitles';
SubtitlesButton.prototype.controlText_ = 'Subtitles';
-_Component2['default'].registerComponent('SubtitlesButton', SubtitlesButton);
+_componentJs2['default'].registerComponent('SubtitlesButton', SubtitlesButton);
exports['default'] = SubtitlesButton;
module.exports = exports['default'];
-},{"../../component.js":52,"./text-track-button.js":72}],72:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./text-track-button.js":68}],68:[function(_dereq_,module,exports){
/**
* @file text-track-button.js
*/
+'use strict';
-var _MenuButton2 = _dereq_('../../menu/menu-button.js');
+exports.__esModule = true;
-var _MenuButton3 = _interopRequireWildcard(_MenuButton2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuButtonJs = _dereq_('../../menu/menu-button.js');
-var _TextTrackMenuItem = _dereq_('./text-track-menu-item.js');
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
-var _TextTrackMenuItem2 = _interopRequireWildcard(_TextTrackMenuItem);
+var _componentJs = _dereq_('../../component.js');
-var _OffTextTrackMenuItem = _dereq_('./off-text-track-menu-item.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _OffTextTrackMenuItem2 = _interopRequireWildcard(_OffTextTrackMenuItem);
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
+
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
+
+var _offTextTrackMenuItemJs = _dereq_('./off-text-track-menu-item.js');
+
+var _offTextTrackMenuItemJs2 = _interopRequireDefault(_offTextTrackMenuItemJs);
/**
* The base class for buttons that toggle specific text track types (e.g. subtitles)
@@ -5572,6 +5439,8 @@ var _OffTextTrackMenuItem2 = _interopRequireWildcard(_OffTextTrackMenuItem);
*/
var TextTrackButton = (function (_MenuButton) {
+ _inherits(TextTrackButton, _MenuButton);
+
function TextTrackButton(player, options) {
_classCallCheck(this, TextTrackButton);
@@ -5597,15 +5466,13 @@ var TextTrackButton = (function (_MenuButton) {
});
}
- _inherits(TextTrackButton, _MenuButton);
-
// Create a menu item for each text track
TextTrackButton.prototype.createItems = function createItems() {
- var items = arguments[0] === undefined ? [] : arguments[0];
+ var items = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
// Add an OFF menu item to turn all tracks off
- items.push(new _OffTextTrackMenuItem2['default'](this.player_, { kind: this.kind_ }));
+ items.push(new _offTextTrackMenuItemJs2['default'](this.player_, { 'kind': this.kind_ }));
var tracks = this.player_.textTracks();
@@ -5617,9 +5484,9 @@ var TextTrackButton = (function (_MenuButton) {
var track = tracks[i];
// only add tracks that are of the appropriate kind and have a label
- if (track.kind === this.kind_) {
- items.push(new _TextTrackMenuItem2['default'](this.player_, {
- track: track
+ if (track['kind'] === this.kind_) {
+ items.push(new _textTrackMenuItemJs2['default'](this.player_, {
+ 'track': track
}));
}
}
@@ -5628,45 +5495,47 @@ var TextTrackButton = (function (_MenuButton) {
};
return TextTrackButton;
-})(_MenuButton3['default']);
+})(_menuMenuButtonJs2['default']);
-_Component2['default'].registerComponent('TextTrackButton', TextTrackButton);
+_componentJs2['default'].registerComponent('TextTrackButton', TextTrackButton);
exports['default'] = TextTrackButton;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-button.js":88,"../../utils/fn.js":113,"./off-text-track-menu-item.js":70,"./text-track-menu-item.js":73}],73:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-button.js":84,"../../utils/fn.js":109,"./off-text-track-menu-item.js":66,"./text-track-menu-item.js":69}],69:[function(_dereq_,module,exports){
/**
* @file text-track-menu-item.js
*/
+'use strict';
-var _MenuItem2 = _dereq_('../../menu/menu-item.js');
+exports.__esModule = true;
-var _MenuItem3 = _interopRequireWildcard(_MenuItem2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuItemJs = _dereq_('../../menu/menu-item.js');
-var _window = _dereq_('global/window');
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
-var _window2 = _interopRequireWildcard(_window);
+var _componentJs = _dereq_('../../component.js');
-var _document = _dereq_('global/document');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _document2 = _interopRequireWildcard(_document);
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* The specific menu item type for selecting a language within a text track kind
@@ -5678,17 +5547,19 @@ var _document2 = _interopRequireWildcard(_document);
*/
var TextTrackMenuItem = (function (_MenuItem) {
+ _inherits(TextTrackMenuItem, _MenuItem);
+
function TextTrackMenuItem(player, options) {
var _this = this;
_classCallCheck(this, TextTrackMenuItem);
- var track = options.track;
+ var track = options['track'];
var tracks = player.textTracks();
// Modify options for parent MenuItem class's init.
- options.label = track.label || track.language || 'Unknown';
- options.selected = track['default'] || track.mode === 'showing';
+ options['label'] = track['label'] || track['language'] || 'Unknown';
+ options['selected'] = track['default'] || track['mode'] === 'showing';
_MenuItem.call(this, player, options);
this.track = track;
@@ -5715,15 +5586,15 @@ var TextTrackMenuItem = (function (_MenuItem) {
var event = undefined;
_this.on(['tap', 'click'], function () {
- if (typeof _window2['default'].Event !== 'object') {
+ if (typeof _globalWindow2['default'].Event !== 'object') {
// Android 2.3 throws an Illegal Constructor error for window.Event
try {
- event = new _window2['default'].Event('change');
+ event = new _globalWindow2['default'].Event('change');
} catch (err) {}
}
if (!event) {
- event = _document2['default'].createEvent('Event');
+ event = _globalDocument2['default'].createEvent('Event');
event.initEvent('change', true, true);
}
@@ -5733,8 +5604,6 @@ var TextTrackMenuItem = (function (_MenuItem) {
}
}
- _inherits(TextTrackMenuItem, _MenuItem);
-
/**
* Handle click on text track
*
@@ -5742,24 +5611,24 @@ var TextTrackMenuItem = (function (_MenuItem) {
*/
TextTrackMenuItem.prototype.handleClick = function handleClick(event) {
- var kind = this.track.kind;
+ var kind = this.track['kind'];
var tracks = this.player_.textTracks();
_MenuItem.prototype.handleClick.call(this, event);
- if (!tracks) {
- return;
- }for (var i = 0; i < tracks.length; i++) {
+ if (!tracks) return;
+
+ for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
- if (track.kind !== kind) {
+ if (track['kind'] !== kind) {
continue;
}
if (track === this.track) {
- track.mode = 'showing';
+ track['mode'] = 'showing';
} else {
- track.mode = 'disabled';
+ track['mode'] = 'disabled';
}
}
};
@@ -5771,41 +5640,43 @@ var TextTrackMenuItem = (function (_MenuItem) {
*/
TextTrackMenuItem.prototype.handleTracksChange = function handleTracksChange(event) {
- this.selected(this.track.mode === 'showing');
+ this.selected(this.track['mode'] === 'showing');
};
return TextTrackMenuItem;
-})(_MenuItem3['default']);
+})(_menuMenuItemJs2['default']);
-_Component2['default'].registerComponent('TextTrackMenuItem', TextTrackMenuItem);
+_componentJs2['default'].registerComponent('TextTrackMenuItem', TextTrackMenuItem);
exports['default'] = TextTrackMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-item.js":89,"../../utils/fn.js":113,"global/document":1,"global/window":2}],74:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-item.js":85,"../../utils/fn.js":109,"global/document":1,"global/window":2}],70:[function(_dereq_,module,exports){
/**
* @file current-time-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Displays the current time
@@ -5817,6 +5688,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var CurrentTimeDisplay = (function (_Component) {
+ _inherits(CurrentTimeDisplay, _Component);
+
function CurrentTimeDisplay(player, options) {
_classCallCheck(this, CurrentTimeDisplay);
@@ -5825,8 +5698,6 @@ var CurrentTimeDisplay = (function (_Component) {
this.on(player, 'timeupdate', this.updateContent);
}
- _inherits(CurrentTimeDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -5859,42 +5730,44 @@ var CurrentTimeDisplay = (function (_Component) {
// Allows for smooth scrubbing, when player can't keep up.
var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
var localizedText = this.localize('Current Time');
- var formattedTime = _formatTime2['default'](time, this.player_.duration());
+ var formattedTime = _utilsFormatTimeJs2['default'](time, this.player_.duration());
this.contentEl_.innerHTML = '' + localizedText + ' ' + formattedTime;
};
return CurrentTimeDisplay;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);
+_componentJs2['default'].registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);
exports['default'] = CurrentTimeDisplay;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],75:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],71:[function(_dereq_,module,exports){
/**
* @file duration-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Displays the duration
@@ -5906,6 +5779,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var DurationDisplay = (function (_Component) {
+ _inherits(DurationDisplay, _Component);
+
function DurationDisplay(player, options) {
_classCallCheck(this, DurationDisplay);
@@ -5920,8 +5795,6 @@ var DurationDisplay = (function (_Component) {
this.on(player, 'loadedmetadata', this.updateContent);
}
- _inherits(DurationDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -5954,43 +5827,45 @@ var DurationDisplay = (function (_Component) {
var duration = this.player_.duration();
if (duration) {
var localizedText = this.localize('Duration Time');
- var formattedTime = _formatTime2['default'](duration);
+ var formattedTime = _utilsFormatTimeJs2['default'](duration);
this.contentEl_.innerHTML = '' + localizedText + ' ' + formattedTime; // label the duration time for screen reader users
}
};
return DurationDisplay;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('DurationDisplay', DurationDisplay);
+_componentJs2['default'].registerComponent('DurationDisplay', DurationDisplay);
exports['default'] = DurationDisplay;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],76:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],72:[function(_dereq_,module,exports){
/**
* @file remaining-time-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Displays the time left in the video
@@ -6002,6 +5877,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var RemainingTimeDisplay = (function (_Component) {
+ _inherits(RemainingTimeDisplay, _Component);
+
function RemainingTimeDisplay(player, options) {
_classCallCheck(this, RemainingTimeDisplay);
@@ -6010,8 +5887,6 @@ var RemainingTimeDisplay = (function (_Component) {
this.on(player, 'timeupdate', this.updateContent);
}
- _inherits(RemainingTimeDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -6043,7 +5918,7 @@ var RemainingTimeDisplay = (function (_Component) {
RemainingTimeDisplay.prototype.updateContent = function updateContent() {
if (this.player_.duration()) {
var localizedText = this.localize('Remaining Time');
- var formattedTime = _formatTime2['default'](this.player_.remainingTime());
+ var formattedTime = _utilsFormatTimeJs2['default'](this.player_.remainingTime());
this.contentEl_.innerHTML = '' + localizedText + ' -' + formattedTime;
}
@@ -6053,29 +5928,29 @@ var RemainingTimeDisplay = (function (_Component) {
};
return RemainingTimeDisplay;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);
+_componentJs2['default'].registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);
exports['default'] = RemainingTimeDisplay;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],77:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],73:[function(_dereq_,module,exports){
/**
* @file time-divider.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The separator between the current time and duration.
@@ -6088,16 +5963,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var TimeDivider = (function (_Component) {
+ _inherits(TimeDivider, _Component);
+
function TimeDivider() {
_classCallCheck(this, TimeDivider);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(TimeDivider, _Component);
-
/**
* Create the component's DOM element
*
@@ -6113,43 +5986,45 @@ var TimeDivider = (function (_Component) {
};
return TimeDivider;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('TimeDivider', TimeDivider);
+_componentJs2['default'].registerComponent('TimeDivider', TimeDivider);
exports['default'] = TimeDivider;
module.exports = exports['default'];
-},{"../../component.js":52}],78:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48}],74:[function(_dereq_,module,exports){
/**
* @file volume-bar.js
*/
+'use strict';
-var _Slider2 = _dereq_('../../slider/slider.js');
+exports.__esModule = true;
-var _Slider3 = _interopRequireWildcard(_Slider2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _sliderSliderJs = _dereq_('../../slider/slider.js');
+
+var _sliderSliderJs2 = _interopRequireDefault(_sliderSliderJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
// Required children
-var _VolumeLevel = _dereq_('./volume-level.js');
+var _volumeLevelJs = _dereq_('./volume-level.js');
-var _VolumeLevel2 = _interopRequireWildcard(_VolumeLevel);
+var _volumeLevelJs2 = _interopRequireDefault(_volumeLevelJs);
/**
* The bar that contains the volume level and can be clicked on to adjust the level
@@ -6161,6 +6036,8 @@ var _VolumeLevel2 = _interopRequireWildcard(_VolumeLevel);
*/
var VolumeBar = (function (_Slider) {
+ _inherits(VolumeBar, _Slider);
+
function VolumeBar(player, options) {
_classCallCheck(this, VolumeBar);
@@ -6169,8 +6046,6 @@ var VolumeBar = (function (_Slider) {
player.ready(Fn.bind(this, this.updateARIAAttributes));
}
- _inherits(VolumeBar, _Slider);
-
/**
* Create the component's DOM element
*
@@ -6248,44 +6123,44 @@ var VolumeBar = (function (_Slider) {
};
return VolumeBar;
-})(_Slider3['default']);
+})(_sliderSliderJs2['default']);
VolumeBar.prototype.options_ = {
children: {
- volumeLevel: {}
+ 'volumeLevel': {}
},
- barName: 'volumeLevel'
+ 'barName': 'volumeLevel'
};
VolumeBar.prototype.playerEvent = 'volumechange';
-_Component2['default'].registerComponent('VolumeBar', VolumeBar);
+_componentJs2['default'].registerComponent('VolumeBar', VolumeBar);
exports['default'] = VolumeBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../slider/slider.js":95,"../../utils/fn.js":113,"./volume-level.js":80}],79:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../slider/slider.js":91,"../../utils/fn.js":109,"./volume-level.js":76}],75:[function(_dereq_,module,exports){
/**
* @file volume-control.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
// Required children
-var _VolumeBar = _dereq_('./volume-bar.js');
+var _volumeBarJs = _dereq_('./volume-bar.js');
-var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
+var _volumeBarJs2 = _interopRequireDefault(_volumeBarJs);
/**
* The component for controlling the volume level
@@ -6297,17 +6172,19 @@ var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
*/
var VolumeControl = (function (_Component) {
+ _inherits(VolumeControl, _Component);
+
function VolumeControl(player, options) {
_classCallCheck(this, VolumeControl);
_Component.call(this, player, options);
// hide volume controls when they're not supported by the current tech
- if (player.tech && player.tech.featuresVolumeControl === false) {
+ if (player.tech && player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
}
this.on(player, 'loadstart', function () {
- if (player.tech.featuresVolumeControl === false) {
+ if (player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
} else {
this.removeClass('vjs-hidden');
@@ -6315,8 +6192,6 @@ var VolumeControl = (function (_Component) {
});
}
- _inherits(VolumeControl, _Component);
-
/**
* Create the component's DOM element
*
@@ -6331,35 +6206,35 @@ var VolumeControl = (function (_Component) {
};
return VolumeControl;
-})(_Component3['default']);
+})(_componentJs2['default']);
VolumeControl.prototype.options_ = {
children: {
- volumeBar: {}
+ 'volumeBar': {}
}
};
-_Component3['default'].registerComponent('VolumeControl', VolumeControl);
+_componentJs2['default'].registerComponent('VolumeControl', VolumeControl);
exports['default'] = VolumeControl;
module.exports = exports['default'];
-},{"../../component.js":52,"./volume-bar.js":78}],80:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./volume-bar.js":74}],76:[function(_dereq_,module,exports){
/**
* @file volume-level.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Shows volume level
@@ -6371,16 +6246,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var VolumeLevel = (function (_Component) {
+ _inherits(VolumeLevel, _Component);
+
function VolumeLevel() {
_classCallCheck(this, VolumeLevel);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(VolumeLevel, _Component);
-
/**
* Create the component's DOM element
*
@@ -6396,49 +6269,49 @@ var VolumeLevel = (function (_Component) {
};
return VolumeLevel;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('VolumeLevel', VolumeLevel);
+_componentJs2['default'].registerComponent('VolumeLevel', VolumeLevel);
exports['default'] = VolumeLevel;
module.exports = exports['default'];
-},{"../../component.js":52}],81:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48}],77:[function(_dereq_,module,exports){
/**
* @file volume-menu-button.js
*/
+'use strict';
-var _Button = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button2 = _interopRequireWildcard(_Button);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _Menu = _dereq_('../menu/menu.js');
+var _buttonJs = _dereq_('../button.js');
-var _Menu2 = _interopRequireWildcard(_Menu);
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
-var _MenuButton2 = _dereq_('../menu/menu-button.js');
+var _componentJs = _dereq_('../component.js');
-var _MenuButton3 = _interopRequireWildcard(_MenuButton2);
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _MuteToggle = _dereq_('./mute-toggle.js');
+var _menuMenuJs = _dereq_('../menu/menu.js');
-var _MuteToggle2 = _interopRequireWildcard(_MuteToggle);
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var _VolumeBar = _dereq_('./volume-control/volume-bar.js');
+var _menuMenuButtonJs = _dereq_('../menu/menu-button.js');
-var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
+
+var _muteToggleJs = _dereq_('./mute-toggle.js');
+
+var _muteToggleJs2 = _interopRequireDefault(_muteToggleJs);
+
+var _volumeControlVolumeBarJs = _dereq_('./volume-control/volume-bar.js');
+
+var _volumeControlVolumeBarJs2 = _interopRequireDefault(_volumeControlVolumeBarJs);
/**
* Button for volume menu
@@ -6450,8 +6323,10 @@ var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
*/
var VolumeMenuButton = (function (_MenuButton) {
+ _inherits(VolumeMenuButton, _MenuButton);
+
function VolumeMenuButton(player) {
- var options = arguments[1] === undefined ? {} : arguments[1];
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
_classCallCheck(this, VolumeMenuButton);
@@ -6478,11 +6353,11 @@ var VolumeMenuButton = (function (_MenuButton) {
this.on(player, 'loadstart', this.volumeUpdate);
// hide mute toggle if the current tech doesn't support volume control
- if (player.tech && player.tech.featuresVolumeControl === false) {
+ if (player.tech && player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
}
this.on(player, 'loadstart', function () {
- if (player.tech.featuresVolumeControl === false) {
+ if (player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
} else {
this.removeClass('vjs-hidden');
@@ -6491,8 +6366,6 @@ var VolumeMenuButton = (function (_MenuButton) {
this.addClass('vjs-menu-button');
}
- _inherits(VolumeMenuButton, _MenuButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -6519,11 +6392,11 @@ var VolumeMenuButton = (function (_MenuButton) {
*/
VolumeMenuButton.prototype.createMenu = function createMenu() {
- var menu = new _Menu2['default'](this.player_, {
+ var menu = new _menuMenuJs2['default'](this.player_, {
contentElType: 'div'
});
- var vc = new _VolumeBar2['default'](this.player_, this.options_.volumeBar);
+ var vc = new _volumeControlVolumeBarJs2['default'](this.player_, this.options_.volumeBar);
vc.on('focus', function () {
menu.lockShowing();
@@ -6542,41 +6415,43 @@ var VolumeMenuButton = (function (_MenuButton) {
*/
VolumeMenuButton.prototype.handleClick = function handleClick() {
- _MuteToggle2['default'].prototype.handleClick.call(this);
+ _muteToggleJs2['default'].prototype.handleClick.call(this);
_MenuButton.prototype.handleClick.call(this);
};
return VolumeMenuButton;
-})(_MenuButton3['default']);
+})(_menuMenuButtonJs2['default']);
-VolumeMenuButton.prototype.volumeUpdate = _MuteToggle2['default'].prototype.update;
+VolumeMenuButton.prototype.volumeUpdate = _muteToggleJs2['default'].prototype.update;
VolumeMenuButton.prototype.controlText_ = 'Mute';
-_Component2['default'].registerComponent('VolumeMenuButton', VolumeMenuButton);
+_componentJs2['default'].registerComponent('VolumeMenuButton', VolumeMenuButton);
exports['default'] = VolumeMenuButton;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52,"../menu/menu-button.js":88,"../menu/menu.js":90,"./mute-toggle.js":56,"./volume-control/volume-bar.js":78}],82:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48,"../menu/menu-button.js":84,"../menu/menu.js":86,"./mute-toggle.js":52,"./volume-control/volume-bar.js":74}],78:[function(_dereq_,module,exports){
/**
* @file error-display.js
*/
+'use strict';
-var _Component2 = _dereq_('./component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('./utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _component = _dereq_('./component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _utilsDomJs = _dereq_('./utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* Display that an error has occurred making the video unplayable
@@ -6588,6 +6463,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var ErrorDisplay = (function (_Component) {
+ _inherits(ErrorDisplay, _Component);
+
function ErrorDisplay(player, options) {
_classCallCheck(this, ErrorDisplay);
@@ -6597,8 +6474,6 @@ var ErrorDisplay = (function (_Component) {
this.on(player, 'error', this.update);
}
- _inherits(ErrorDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -6630,25 +6505,25 @@ var ErrorDisplay = (function (_Component) {
};
return ErrorDisplay;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('ErrorDisplay', ErrorDisplay);
+_component2['default'].registerComponent('ErrorDisplay', ErrorDisplay);
exports['default'] = ErrorDisplay;
module.exports = exports['default'];
-},{"./component":52,"./utils/dom.js":111}],83:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./component":48,"./utils/dom.js":107}],79:[function(_dereq_,module,exports){
/**
* @file event-target.js
*/
+'use strict';
-var _import = _dereq_('./utils/events.js');
+exports.__esModule = true;
-var Events = _interopRequireWildcard(_import);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
+
+var _utilsEventsJs = _dereq_('./utils/events.js');
+
+var Events = _interopRequireWildcard(_utilsEventsJs);
var EventTarget = function EventTarget() {};
@@ -6695,16 +6570,16 @@ EventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;
exports['default'] = EventTarget;
module.exports = exports['default'];
-},{"./utils/events.js":112}],84:[function(_dereq_,module,exports){
+},{"./utils/events.js":108}],80:[function(_dereq_,module,exports){
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
-var _log = _dereq_('./utils/log');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _log2 = _interopRequireWildcard(_log);
+var _utilsLog = _dereq_('./utils/log');
+
+var _utilsLog2 = _interopRequireDefault(_utilsLog);
/*
* @file extends.js
@@ -6751,7 +6626,7 @@ var _inherits = function _inherits(subClass, superClass) {
* ```
*/
var extendsFn = function extendsFn(superClass) {
- var subClassMethods = arguments[1] === undefined ? {} : arguments[1];
+ var subClassMethods = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var subClass = function subClass() {
superClass.apply(this, arguments);
@@ -6760,7 +6635,7 @@ var extendsFn = function extendsFn(superClass) {
if (typeof subClassMethods === 'object') {
if (typeof subClassMethods.init === 'function') {
- _log2['default'].warn('Constructor logic via init() is deprecated; please use constructor() instead.');
+ _utilsLog2['default'].warn('Constructor logic via init() is deprecated; please use constructor() instead.');
subClassMethods.constructor = subClassMethods.init;
}
if (subClassMethods.constructor !== Object.prototype.constructor) {
@@ -6786,19 +6661,19 @@ var extendsFn = function extendsFn(superClass) {
exports['default'] = extendsFn;
module.exports = exports['default'];
-},{"./utils/log":116}],85:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./utils/log":112}],81:[function(_dereq_,module,exports){
/**
* @file fullscreen-api.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/*
* Store the browser-specific methods for the fullscreen API
@@ -6827,7 +6702,7 @@ var browserApi = undefined;
// determine the supported set of functions
for (var i = 0; i < apiMap.length; i++) {
// check for exitFullscreen function
- if (apiMap[i][1] in _document2['default']) {
+ if (apiMap[i][1] in _globalDocument2['default']) {
browserApi = apiMap[i];
break;
}
@@ -6843,23 +6718,23 @@ if (browserApi) {
exports['default'] = FullscreenApi;
module.exports = exports['default'];
-},{"global/document":1}],86:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"global/document":1}],82:[function(_dereq_,module,exports){
/**
* @file loading-spinner.js
*/
+'use strict';
-var _Component2 = _dereq_('./component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _component = _dereq_('./component');
+
+var _component2 = _interopRequireDefault(_component);
/* Loading Spinner
================================================================================ */
@@ -6871,16 +6746,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var LoadingSpinner = (function (_Component) {
+ _inherits(LoadingSpinner, _Component);
+
function LoadingSpinner() {
_classCallCheck(this, LoadingSpinner);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(LoadingSpinner, _Component);
-
/**
* Create the component's DOM element
*
@@ -6894,42 +6767,32 @@ var LoadingSpinner = (function (_Component) {
};
return LoadingSpinner;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('LoadingSpinner', LoadingSpinner);
+_component2['default'].registerComponent('LoadingSpinner', LoadingSpinner);
exports['default'] = LoadingSpinner;
module.exports = exports['default'];
-},{"./component":52}],87:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./component":48}],83:[function(_dereq_,module,exports){
/**
* @file media-error.js
*/
+'use strict';
-var _assign = _dereq_('object.assign');
+exports.__esModule = true;
-var _assign2 = _interopRequireWildcard(_assign);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/*
* Custom MediaError to mimic the HTML5 MediaError
*
* @param {Number} code The media error code
*/
-var MediaError = (function (_MediaError) {
- function MediaError(_x) {
- return _MediaError.apply(this, arguments);
- }
-
- MediaError.toString = function () {
- return _MediaError.toString();
- };
-
- return MediaError;
-})(function (code) {
+var MediaError = function MediaError(code) {
if (typeof code === 'number') {
this.code = code;
} else if (typeof code === 'string') {
@@ -6937,13 +6800,13 @@ var MediaError = (function (_MediaError) {
this.message = code;
} else if (typeof code === 'object') {
// object
- _assign2['default'](this, code);
+ _objectAssign2['default'](this, code);
}
if (!this.message) {
this.message = MediaError.defaultMessages[this.code] || '';
}
-});
+};
/*
* The error code that refers two one of the defined
@@ -7001,43 +6864,45 @@ for (var errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {
exports['default'] = MediaError;
module.exports = exports['default'];
-},{"object.assign":44}],88:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"object.assign":40}],84:[function(_dereq_,module,exports){
/**
* @file menu-button.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Menu = _dereq_('./menu.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _Menu2 = _interopRequireWildcard(_Menu);
+var _buttonJs = _dereq_('../button.js');
-var _import = _dereq_('../utils/dom.js');
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
-var Dom = _interopRequireWildcard(_import);
+var _componentJs = _dereq_('../component.js');
-var _import2 = _dereq_('../utils/fn.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Fn = _interopRequireWildcard(_import2);
+var _menuJs = _dereq_('./menu.js');
-var _toTitleCase = _dereq_('../utils/to-title-case.js');
+var _menuJs2 = _interopRequireDefault(_menuJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFnJs = _dereq_('../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsToTitleCaseJs = _dereq_('../utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
/**
* A button class with a popup menu
@@ -7049,8 +6914,10 @@ var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
*/
var MenuButton = (function (_Button) {
+ _inherits(MenuButton, _Button);
+
function MenuButton(player) {
- var options = arguments[1] === undefined ? {} : arguments[1];
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
_classCallCheck(this, MenuButton);
@@ -7063,8 +6930,6 @@ var MenuButton = (function (_Button) {
this.el_.setAttribute('role', 'button');
}
- _inherits(MenuButton, _Button);
-
/**
* Update menu
*
@@ -7104,18 +6969,18 @@ var MenuButton = (function (_Button) {
*/
MenuButton.prototype.createMenu = function createMenu() {
- var menu = new _Menu2['default'](this.player_);
+ var menu = new _menuJs2['default'](this.player_);
// Add a title list item to the top
if (this.options_.title) {
menu.contentEl().appendChild(Dom.createEl('li', {
className: 'vjs-menu-title',
- innerHTML: _toTitleCase2['default'](this.options_.title),
+ innerHTML: _utilsToTitleCaseJs2['default'](this.options_.title),
tabIndex: -1
}));
}
- this.items = this.createItems();
+ this.items = this['createItems']();
if (this.items) {
// Add menu items to the menu
@@ -7232,11 +7097,11 @@ var MenuButton = (function (_Button) {
event.preventDefault();
// Check for escape (27) key
} else if (event.which === 27) {
- if (this.buttonPressed_) {
- this.unpressButton();
+ if (this.buttonPressed_) {
+ this.unpressButton();
+ }
+ event.preventDefault();
}
- event.preventDefault();
- }
};
/**
@@ -7267,37 +7132,37 @@ var MenuButton = (function (_Button) {
};
return MenuButton;
-})(_Button3['default']);
+})(_buttonJs2['default']);
-_Component2['default'].registerComponent('MenuButton', MenuButton);
+_componentJs2['default'].registerComponent('MenuButton', MenuButton);
exports['default'] = MenuButton;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52,"../utils/dom.js":111,"../utils/fn.js":113,"../utils/to-title-case.js":120,"./menu.js":90}],89:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48,"../utils/dom.js":107,"../utils/fn.js":109,"../utils/to-title-case.js":116,"./menu.js":86}],85:[function(_dereq_,module,exports){
/**
* @file menu-item.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _assign = _dereq_('object.assign');
+var _buttonJs = _dereq_('../button.js');
-var _assign2 = _interopRequireWildcard(_assign);
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/**
* The component for a menu item. `
`
@@ -7309,15 +7174,15 @@ var _assign2 = _interopRequireWildcard(_assign);
*/
var MenuItem = (function (_Button) {
+ _inherits(MenuItem, _Button);
+
function MenuItem(player, options) {
_classCallCheck(this, MenuItem);
_Button.call(this, player, options);
- this.selected(options.selected);
+ this.selected(options['selected']);
}
- _inherits(MenuItem, _Button);
-
/**
* Create the component's DOM element
*
@@ -7328,9 +7193,9 @@ var MenuItem = (function (_Button) {
*/
MenuItem.prototype.createEl = function createEl(type, props) {
- return _Button.prototype.createEl.call(this, 'li', _assign2['default']({
+ return _Button.prototype.createEl.call(this, 'li', _objectAssign2['default']({
className: 'vjs-menu-item',
- innerHTML: this.localize(this.options_.label)
+ innerHTML: this.localize(this.options_['label'])
}, props));
};
@@ -7351,62 +7216,54 @@ var MenuItem = (function (_Button) {
* @method selected
*/
- MenuItem.prototype.selected = (function (_selected) {
- function selected(_x) {
- return _selected.apply(this, arguments);
- }
-
- selected.toString = function () {
- return _selected.toString();
- };
-
- return selected;
- })(function (selected) {
- if (selected) {
+ MenuItem.prototype.selected = function selected(_selected) {
+ if (_selected) {
this.addClass('vjs-selected');
this.el_.setAttribute('aria-selected', true);
} else {
this.removeClass('vjs-selected');
this.el_.setAttribute('aria-selected', false);
}
- });
+ };
return MenuItem;
-})(_Button3['default']);
+})(_buttonJs2['default']);
-_Component2['default'].registerComponent('MenuItem', MenuItem);
+_componentJs2['default'].registerComponent('MenuItem', MenuItem);
exports['default'] = MenuItem;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52,"object.assign":44}],90:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48,"object.assign":40}],86:[function(_dereq_,module,exports){
/**
* @file menu.js
*/
+'use strict';
-var _Component2 = _dereq_('../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import2 = _dereq_('../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import2);
+var _componentJs = _dereq_('../component.js');
-var _import3 = _dereq_('../utils/events.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Events = _interopRequireWildcard(_import3);
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFnJs = _dereq_('../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsEventsJs = _dereq_('../utils/events.js');
+
+var Events = _interopRequireWildcard(_utilsEventsJs);
/**
* The Menu component is used to build pop up menus, including subtitle and
@@ -7417,16 +7274,14 @@ var Events = _interopRequireWildcard(_import3);
*/
var Menu = (function (_Component) {
+ _inherits(Menu, _Component);
+
function Menu() {
_classCallCheck(this, Menu);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(Menu, _Component);
-
/**
* Add a menu item to the menu
*
@@ -7470,138 +7325,140 @@ var Menu = (function (_Component) {
};
return Menu;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('Menu', Menu);
+_componentJs2['default'].registerComponent('Menu', Menu);
exports['default'] = Menu;
module.exports = exports['default'];
-},{"../component.js":52,"../utils/dom.js":111,"../utils/events.js":112,"../utils/fn.js":113}],91:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component.js":48,"../utils/dom.js":107,"../utils/events.js":108,"../utils/fn.js":109}],87:[function(_dereq_,module,exports){
/**
* @file player.js
*/
// Subclasses Component
+'use strict';
-var _Component2 = _dereq_('./component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _document = _dereq_('global/document');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document2 = _interopRequireWildcard(_document);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _window = _dereq_('global/window');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _window2 = _interopRequireWildcard(_window);
+var _componentJs = _dereq_('./component.js');
-var _import = _dereq_('./utils/events.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Events = _interopRequireWildcard(_import);
+var _globalDocument = _dereq_('global/document');
-var _import2 = _dereq_('./utils/dom.js');
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var Dom = _interopRequireWildcard(_import2);
+var _globalWindow = _dereq_('global/window');
-var _import3 = _dereq_('./utils/fn.js');
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
-var Fn = _interopRequireWildcard(_import3);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _import4 = _dereq_('./utils/guid.js');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var Guid = _interopRequireWildcard(_import4);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _import5 = _dereq_('./utils/browser.js');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var browser = _interopRequireWildcard(_import5);
+var _utilsFnJs = _dereq_('./utils/fn.js');
-var _log = _dereq_('./utils/log.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _log2 = _interopRequireWildcard(_log);
+var _utilsGuidJs = _dereq_('./utils/guid.js');
-var _toTitleCase = _dereq_('./utils/to-title-case.js');
+var Guid = _interopRequireWildcard(_utilsGuidJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsBrowserJs = _dereq_('./utils/browser.js');
-var _createTimeRange = _dereq_('./utils/time-ranges.js');
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _bufferedPercent2 = _dereq_('./utils/buffer.js');
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _import6 = _dereq_('./utils/stylesheet.js');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var stylesheet = _interopRequireWildcard(_import6);
+var _utilsToTitleCaseJs = _dereq_('./utils/to-title-case.js');
-var _FullscreenApi = _dereq_('./fullscreen-api.js');
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
-var _FullscreenApi2 = _interopRequireWildcard(_FullscreenApi);
+var _utilsTimeRangesJs = _dereq_('./utils/time-ranges.js');
-var _MediaError = _dereq_('./media-error.js');
+var _utilsBufferJs = _dereq_('./utils/buffer.js');
-var _MediaError2 = _interopRequireWildcard(_MediaError);
+var _utilsStylesheetJs = _dereq_('./utils/stylesheet.js');
-var _safeParseTuple2 = _dereq_('safe-json-parse/tuple');
+var stylesheet = _interopRequireWildcard(_utilsStylesheetJs);
-var _safeParseTuple3 = _interopRequireWildcard(_safeParseTuple2);
+var _fullscreenApiJs = _dereq_('./fullscreen-api.js');
-var _assign = _dereq_('object.assign');
+var _fullscreenApiJs2 = _interopRequireDefault(_fullscreenApiJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _mediaErrorJs = _dereq_('./media-error.js');
-var _mergeOptions = _dereq_('./utils/merge-options.js');
+var _mediaErrorJs2 = _interopRequireDefault(_mediaErrorJs);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _safeJsonParseTuple = _dereq_('safe-json-parse/tuple');
-var _textTrackConverter = _dereq_('./tracks/text-track-list-converter.js');
+var _safeJsonParseTuple2 = _interopRequireDefault(_safeJsonParseTuple);
-var _textTrackConverter2 = _interopRequireWildcard(_textTrackConverter);
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
+
+var _tracksTextTrackListConverterJs = _dereq_('./tracks/text-track-list-converter.js');
+
+var _tracksTextTrackListConverterJs2 = _interopRequireDefault(_tracksTextTrackListConverterJs);
// Include required child components (importing also registers them)
-var _MediaLoader = _dereq_('./tech/loader.js');
+var _techLoaderJs = _dereq_('./tech/loader.js');
-var _MediaLoader2 = _interopRequireWildcard(_MediaLoader);
+var _techLoaderJs2 = _interopRequireDefault(_techLoaderJs);
-var _PosterImage = _dereq_('./poster-image.js');
+var _posterImageJs = _dereq_('./poster-image.js');
-var _PosterImage2 = _interopRequireWildcard(_PosterImage);
+var _posterImageJs2 = _interopRequireDefault(_posterImageJs);
-var _TextTrackDisplay = _dereq_('./tracks/text-track-display.js');
+var _tracksTextTrackDisplayJs = _dereq_('./tracks/text-track-display.js');
-var _TextTrackDisplay2 = _interopRequireWildcard(_TextTrackDisplay);
+var _tracksTextTrackDisplayJs2 = _interopRequireDefault(_tracksTextTrackDisplayJs);
-var _LoadingSpinner = _dereq_('./loading-spinner.js');
+var _loadingSpinnerJs = _dereq_('./loading-spinner.js');
-var _LoadingSpinner2 = _interopRequireWildcard(_LoadingSpinner);
+var _loadingSpinnerJs2 = _interopRequireDefault(_loadingSpinnerJs);
-var _BigPlayButton = _dereq_('./big-play-button.js');
+var _bigPlayButtonJs = _dereq_('./big-play-button.js');
-var _BigPlayButton2 = _interopRequireWildcard(_BigPlayButton);
+var _bigPlayButtonJs2 = _interopRequireDefault(_bigPlayButtonJs);
-var _ControlBar = _dereq_('./control-bar/control-bar.js');
+var _controlBarControlBarJs = _dereq_('./control-bar/control-bar.js');
-var _ControlBar2 = _interopRequireWildcard(_ControlBar);
+var _controlBarControlBarJs2 = _interopRequireDefault(_controlBarControlBarJs);
-var _ErrorDisplay = _dereq_('./error-display.js');
+var _errorDisplayJs = _dereq_('./error-display.js');
-var _ErrorDisplay2 = _interopRequireWildcard(_ErrorDisplay);
+var _errorDisplayJs2 = _interopRequireDefault(_errorDisplayJs);
-var _TextTrackSettings = _dereq_('./tracks/text-track-settings.js');
+var _tracksTextTrackSettingsJs = _dereq_('./tracks/text-track-settings.js');
-var _TextTrackSettings2 = _interopRequireWildcard(_TextTrackSettings);
+var _tracksTextTrackSettingsJs2 = _interopRequireDefault(_tracksTextTrackSettingsJs);
// Require html5 tech, at least for disposing the original video tag
-var _Html5 = _dereq_('./tech/html5.js');
+var _techHtml5Js = _dereq_('./tech/html5.js');
-var _Html52 = _interopRequireWildcard(_Html5);
+var _techHtml5Js2 = _interopRequireDefault(_techHtml5Js);
/**
* An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.
@@ -7624,6 +7481,7 @@ var _Html52 = _interopRequireWildcard(_Html5);
*/
var Player = (function (_Component) {
+ _inherits(Player, _Component);
/**
* player's constructor function
@@ -7648,7 +7506,7 @@ var Player = (function (_Component) {
// which overrides globally set options.
// This latter part coincides with the load order
// (tag must exist before Player)
- options = _assign2['default'](Player.getTagSettings(tag), options);
+ options = _objectAssign2['default'](Player.getTagSettings(tag), options);
// Delay the initialization of children because we need to set up
// player properties first, and can't use `this` before `super()`
@@ -7721,7 +7579,7 @@ var Player = (function (_Component) {
// as well so they don't need to reach back into the player for options later.
// We also need to do another copy of this.options_ so we don't end up with
// an infinite loop.
- var playerOptionsCopy = _mergeOptions2['default'](this.options_);
+ var playerOptionsCopy = _utilsMergeOptionsJs2['default'](this.options_);
// Load plugins
if (options.plugins) {
@@ -7729,11 +7587,10 @@ var Player = (function (_Component) {
var plugins = options.plugins;
Object.getOwnPropertyNames(plugins).forEach(function (name) {
- plugins[name].playerOptions = playerOptionsCopy;
if (typeof this[name] === 'function') {
this[name](plugins[name]);
} else {
- _log2['default'].error('Unable to find plugin:', name);
+ _utilsLogJs2['default'].error('Unable to find plugin:', name);
}
}, _this);
})();
@@ -7781,7 +7638,11 @@ var Player = (function (_Component) {
this.on('stageclick', this.handleStageClick);
}
- _inherits(Player, _Component);
+ /*
+ * Global player list
+ *
+ * @type {Object}
+ */
/**
* Destroys the video player and does any necessary cleanup
@@ -7863,8 +7724,8 @@ var Player = (function (_Component) {
// of the player in a way that's still overrideable by CSS, just like the
// video element
this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');
- var defaultsStyleEl = _document2['default'].querySelector('.vjs-styles-defaults');
- var head = _document2['default'].querySelector('head');
+ var defaultsStyleEl = _globalDocument2['default'].querySelector('.vjs-styles-defaults');
+ var head = _globalDocument2['default'].querySelector('head');
head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);
// Pass in the width/height/aspectRatio options which will update the style el
@@ -7921,18 +7782,8 @@ var Player = (function (_Component) {
* @method dimension
*/
- Player.prototype.dimension = (function (_dimension) {
- function dimension(_x, _x2) {
- return _dimension.apply(this, arguments);
- }
-
- dimension.toString = function () {
- return _dimension.toString();
- };
-
- return dimension;
- })(function (dimension, value) {
- var privDimension = dimension + '_';
+ Player.prototype.dimension = function dimension(_dimension, value) {
+ var privDimension = _dimension + '_';
if (value === undefined) {
return this[privDimension] || 0;
@@ -7945,7 +7796,7 @@ var Player = (function (_Component) {
var parsedVal = parseFloat(value);
if (isNaN(parsedVal)) {
- _log2['default'].error('Improper value "' + value + '" supplied for for ' + dimension);
+ _utilsLogJs2['default'].error('Improper value "' + value + '" supplied for for ' + _dimension);
return this;
}
@@ -7954,7 +7805,7 @@ var Player = (function (_Component) {
this.updateStyleEl_();
return this;
- });
+ };
/**
* Add/remove the vjs-fluid class
@@ -8076,7 +7927,7 @@ var Player = (function (_Component) {
// get rid of the HTML5 video tag as soon as we are using another tech
if (techName !== 'Html5' && this.tag) {
- _Component3['default'].getComponent('Html5').disposeMediaElement(this.tag);
+ _componentJs2['default'].getComponent('Html5').disposeMediaElement(this.tag);
this.tag.player = null;
this.tag = null;
}
@@ -8091,17 +7942,18 @@ var Player = (function (_Component) {
});
// Grab tech-specific options from player options and add source and parent element to use.
- var techOptions = _assign2['default']({
- source: source,
- playerId: this.id(),
- techId: '' + this.id() + '_' + techName + '_api',
- textTracks: this.textTracks_,
- autoplay: this.options_.autoplay,
- preload: this.options_.preload,
- loop: this.options_.loop,
- muted: this.options_.muted,
- poster: this.poster(),
- language: this.language(),
+ var techOptions = _objectAssign2['default']({
+ 'nativeControlsForTouch': this.options_.nativeControlsForTouch,
+ 'source': source,
+ 'playerId': this.id(),
+ 'techId': this.id() + '_' + techName + '_api',
+ 'textTracks': this.textTracks_,
+ 'autoplay': this.options_.autoplay,
+ 'preload': this.options_.preload,
+ 'loop': this.options_.loop,
+ 'muted': this.options_.muted,
+ 'poster': this.poster(),
+ 'language': this.language(),
'vtt.js': this.options_['vtt.js']
}, this.options_[techName.toLowerCase()]);
@@ -8119,13 +7971,12 @@ var Player = (function (_Component) {
}
// Initialize tech instance
- var techComponent = _Component3['default'].getComponent(techName);
+ var techComponent = _componentJs2['default'].getComponent(techName);
this.tech = new techComponent(techOptions);
- _textTrackConverter2['default'].jsonToTextTracks(this.textTracksJson_ || [], this.tech);
+ _tracksTextTrackListConverterJs2['default'].jsonToTextTracks(this.textTracksJson_ || [], this.tech);
this.on(this.tech, 'ready', this.handleTechReady);
- this.on(this.tech, 'usenativecontrols', this.handleTechUseNativeControls);
// Listen to every HTML5 events and trigger them back on the player for the plugins
this.on(this.tech, 'loadstart', this.handleTechLoadStart);
@@ -8155,6 +8006,8 @@ var Player = (function (_Component) {
this.on(this.tech, 'texttrackchange', this.onTextTrackChange);
this.on(this.tech, 'loadedmetadata', this.updateStyleEl_);
+ this.usingNativeControls(this.techGet('controls'));
+
if (this.controls() && !this.usingNativeControls()) {
this.addTechControlsListeners();
}
@@ -8184,7 +8037,7 @@ var Player = (function (_Component) {
Player.prototype.unloadTech = function unloadTech() {
// Save the current text tracks so that we can reuse the same text tracks with the next tech
this.textTracks_ = this.textTracks();
- this.textTracksJson_ = _textTrackConverter2['default'].textTracksToJson(this);
+ this.textTracksJson_ = _tracksTextTrackListConverterJs2['default'].textTracksToJson(this);
this.isReady_ = false;
@@ -8200,6 +8053,9 @@ var Player = (function (_Component) {
*/
Player.prototype.addTechControlsListeners = function addTechControlsListeners() {
+ // Make sure to remove all the previous listeners in case we are called multiple times.
+ this.removeTechControlsListeners();
+
// Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do
// trigger mousedown/up.
// http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object
@@ -8260,17 +8116,6 @@ var Player = (function (_Component) {
}
};
- /**
- * Fired when the native controls are used
- *
- * @private
- * @method handleTechUseNativeControls
- */
-
- Player.prototype.handleTechUseNativeControls = function handleTechUseNativeControls() {
- this.usingNativeControls(true);
- };
-
/**
* Fired when the user agent begins looking for media data
*
@@ -8306,22 +8151,12 @@ var Player = (function (_Component) {
* @method hasStarted
*/
- Player.prototype.hasStarted = (function (_hasStarted) {
- function hasStarted(_x3) {
- return _hasStarted.apply(this, arguments);
- }
-
- hasStarted.toString = function () {
- return _hasStarted.toString();
- };
-
- return hasStarted;
- })(function (hasStarted) {
- if (hasStarted !== undefined) {
+ Player.prototype.hasStarted = function hasStarted(_hasStarted) {
+ if (_hasStarted !== undefined) {
// only update if this is a new value
- if (this.hasStarted_ !== hasStarted) {
- this.hasStarted_ = hasStarted;
- if (hasStarted) {
+ if (this.hasStarted_ !== _hasStarted) {
+ this.hasStarted_ = _hasStarted;
+ if (_hasStarted) {
this.addClass('vjs-has-started');
// trigger the firstplay event if this newly has played
this.trigger('firstplay');
@@ -8332,7 +8167,7 @@ var Player = (function (_Component) {
return this;
}
return !!this.hasStarted_;
- });
+ };
/**
* Fired whenever the media begins or resumes playback
@@ -8507,9 +8342,9 @@ var Player = (function (_Component) {
Player.prototype.handleTechClick = function handleTechClick(event) {
// We're using mousedown to detect clicks thanks to Flash, but mousedown
// will also be triggered with right-clicks, so we need to prevent that
- if (event.button !== 0) {
- return;
- } // When controls are disabled a click should not toggle playback because
+ if (event.button !== 0) return;
+
+ // When controls are disabled a click should not toggle playback because
// the click is considered a control
if (this.controls()) {
if (this.paused()) {
@@ -8636,7 +8471,8 @@ var Player = (function (_Component) {
*/
Player.prototype.handleTechError = function handleTechError() {
- this.error(this.tech.error().code);
+ var error = this.tech.error();
+ this.error(error && error.code);
};
/**
@@ -8767,13 +8603,13 @@ var Player = (function (_Component) {
// Otherwise call method now
} else {
- try {
- this.tech[method](arg);
- } catch (e) {
- _log2['default'](e);
- throw e;
+ try {
+ this.tech[method](arg);
+ } catch (e) {
+ _utilsLogJs2['default'](e);
+ throw e;
+ }
}
- }
};
/**
@@ -8795,14 +8631,14 @@ var Player = (function (_Component) {
} catch (e) {
// When building additional tech libs, an expected method may not be defined yet
if (this.tech[method] === undefined) {
- _log2['default']('Video.js: ' + method + ' method not defined for ' + this.techName + ' playback technology.', e);
+ _utilsLogJs2['default']('Video.js: ' + method + ' method not defined for ' + this.techName + ' playback technology.', e);
} else {
// When a method isn't available on the object it throws a TypeError
if (e.name === 'TypeError') {
- _log2['default']('Video.js: ' + method + ' unavailable on ' + this.techName + ' playback technology element.', e);
+ _utilsLogJs2['default']('Video.js: ' + method + ' unavailable on ' + this.techName + ' playback technology element.', e);
this.tech.isReady_ = false;
} else {
- _log2['default'](e);
+ _utilsLogJs2['default'](e);
}
}
throw e;
@@ -8984,25 +8820,15 @@ var Player = (function (_Component) {
* @method buffered
*/
- Player.prototype.buffered = (function (_buffered) {
- function buffered() {
- return _buffered.apply(this, arguments);
- }
-
- buffered.toString = function () {
- return _buffered.toString();
- };
-
- return buffered;
- })(function () {
+ Player.prototype.buffered = function buffered() {
var buffered = this.techGet('buffered');
if (!buffered || !buffered.length) {
- buffered = _createTimeRange.createTimeRange(0, 0);
+ buffered = _utilsTimeRangesJs.createTimeRange(0, 0);
}
return buffered;
- });
+ };
/**
* Get the percent (as a decimal) of the video that's been downloaded
@@ -9016,19 +8842,9 @@ var Player = (function (_Component) {
* @method bufferedPercent
*/
- Player.prototype.bufferedPercent = (function (_bufferedPercent) {
- function bufferedPercent() {
- return _bufferedPercent.apply(this, arguments);
- }
-
- bufferedPercent.toString = function () {
- return _bufferedPercent.toString();
- };
-
- return bufferedPercent;
- })(function () {
- return _bufferedPercent2.bufferedPercent(this.buffered(), this.duration());
- });
+ Player.prototype.bufferedPercent = function bufferedPercent() {
+ return _utilsBufferJs.bufferedPercent(this.buffered(), this.duration());
+ };
/**
* Get the ending time of the last buffered time range
@@ -9097,23 +8913,13 @@ var Player = (function (_Component) {
* @method muted
*/
- Player.prototype.muted = (function (_muted) {
- function muted(_x4) {
- return _muted.apply(this, arguments);
- }
-
- muted.toString = function () {
- return _muted.toString();
- };
-
- return muted;
- })(function (muted) {
- if (muted !== undefined) {
- this.techCall('setMuted', muted);
+ Player.prototype.muted = function muted(_muted) {
+ if (_muted !== undefined) {
+ this.techCall('setMuted', _muted);
return this;
}
return this.techGet('muted') || false; // Default to false
- });
+ };
// Check if current tech can support native fullscreen
// (e.g. with built in controls like iOS, so not our flash swf)
@@ -9171,7 +8977,7 @@ var Player = (function (_Component) {
*/
Player.prototype.requestFullscreen = function requestFullscreen() {
- var fsApi = _FullscreenApi2['default'];
+ var fsApi = _fullscreenApiJs2['default'];
this.isFullscreen(true);
@@ -9184,12 +8990,12 @@ var Player = (function (_Component) {
// when canceling fullscreen. Otherwise if there's multiple
// players on a page, they would all be reacting to the same fullscreen
// events
- Events.on(_document2['default'], fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e) {
- this.isFullscreen(_document2['default'][fsApi.fullscreenElement]);
+ Events.on(_globalDocument2['default'], fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e) {
+ this.isFullscreen(_globalDocument2['default'][fsApi.fullscreenElement]);
// If cancelling fullscreen, remove event listener.
if (this.isFullscreen() === false) {
- Events.off(_document2['default'], fsApi.fullscreenchange, documentFullscreenChange);
+ Events.off(_globalDocument2['default'], fsApi.fullscreenchange, documentFullscreenChange);
}
this.trigger('fullscreenchange');
@@ -9221,12 +9027,12 @@ var Player = (function (_Component) {
*/
Player.prototype.exitFullscreen = function exitFullscreen() {
- var fsApi = _FullscreenApi2['default'];
+ var fsApi = _fullscreenApiJs2['default'];
this.isFullscreen(false);
// Check for browser element fullscreen support
if (fsApi.requestFullscreen) {
- _document2['default'][fsApi.exitFullscreen]();
+ _globalDocument2['default'][fsApi.exitFullscreen]();
} else if (this.tech.supportsFullScreen()) {
this.techCall('exitFullScreen');
} else {
@@ -9247,16 +9053,16 @@ var Player = (function (_Component) {
this.isFullWindow = true;
// Storing original doc overflow value to return to when fullscreen is off
- this.docOrigOverflow = _document2['default'].documentElement.style.overflow;
+ this.docOrigOverflow = _globalDocument2['default'].documentElement.style.overflow;
// Add listener for esc key to exit fullscreen
- Events.on(_document2['default'], 'keydown', Fn.bind(this, this.fullWindowOnEscKey));
+ Events.on(_globalDocument2['default'], 'keydown', Fn.bind(this, this.fullWindowOnEscKey));
// Hide any scroll bars
- _document2['default'].documentElement.style.overflow = 'hidden';
+ _globalDocument2['default'].documentElement.style.overflow = 'hidden';
// Apply fullscreen styles
- Dom.addElClass(_document2['default'].body, 'vjs-full-window');
+ Dom.addElClass(_globalDocument2['default'].body, 'vjs-full-window');
this.trigger('enterFullWindow');
};
@@ -9286,13 +9092,13 @@ var Player = (function (_Component) {
Player.prototype.exitFullWindow = function exitFullWindow() {
this.isFullWindow = false;
- Events.off(_document2['default'], 'keydown', this.fullWindowOnEscKey);
+ Events.off(_globalDocument2['default'], 'keydown', this.fullWindowOnEscKey);
// Unhide scroll bars.
- _document2['default'].documentElement.style.overflow = this.docOrigOverflow;
+ _globalDocument2['default'].documentElement.style.overflow = this.docOrigOverflow;
// Remove fullscreen styles
- Dom.removeElClass(_document2['default'].body, 'vjs-full-window');
+ Dom.removeElClass(_globalDocument2['default'].body, 'vjs-full-window');
// Resize the box, controller, and poster to original sizes
// this.positionAll();
@@ -9310,12 +9116,12 @@ var Player = (function (_Component) {
Player.prototype.selectSource = function selectSource(sources) {
// Loop through each playback technology in the options order
for (var i = 0, j = this.options_.techOrder; i < j.length; i++) {
- var techName = _toTitleCase2['default'](j[i]);
- var tech = _Component3['default'].getComponent(techName);
+ var techName = _utilsToTitleCaseJs2['default'](j[i]);
+ var tech = _componentJs2['default'].getComponent(techName);
// Check if the current tech is defined before continuing
if (!tech) {
- _log2['default'].error('The "' + techName + '" tech is undefined. Skipped browser support check for that tech.');
+ _utilsLogJs2['default'].error('The "' + techName + '" tech is undefined. Skipped browser support check for that tech.');
continue;
}
@@ -9374,7 +9180,7 @@ var Player = (function (_Component) {
return this.techGet('src');
}
- var currentTech = _Component3['default'].getComponent(this.techName);
+ var currentTech = _componentJs2['default'].getComponent(this.techName);
// case: Array of source objects to choose from and pick the best to play
if (Array.isArray(source)) {
@@ -9382,46 +9188,46 @@ var Player = (function (_Component) {
// case: URL String (http://myvideo...)
} else if (typeof source === 'string') {
- // create a source object from the string
- this.src({ src: source });
+ // create a source object from the string
+ this.src({ src: source });
- // case: Source object { src: '', type: '' ... }
- } else if (source instanceof Object) {
- // check if the source has a type and the loaded tech cannot play the source
- // if there's no type we'll just try the current tech
- if (source.type && !currentTech.canPlaySource(source)) {
- // create a source list with the current source and send through
- // the tech loop to check for a compatible technology
- this.sourceList_([source]);
- } else {
- this.cache_.src = source.src;
- this.currentType_ = source.type || '';
-
- // wait until the tech is ready to set the source
- this.ready(function () {
-
- // The setSource tech method was added with source handlers
- // so older techs won't support it
- // We need to check the direct prototype for the case where subclasses
- // of the tech do not support source handlers
- if (currentTech.prototype.hasOwnProperty('setSource')) {
- this.techCall('setSource', source);
+ // case: Source object { src: '', type: '' ... }
+ } else if (source instanceof Object) {
+ // check if the source has a type and the loaded tech cannot play the source
+ // if there's no type we'll just try the current tech
+ if (source.type && !currentTech.canPlaySource(source)) {
+ // create a source list with the current source and send through
+ // the tech loop to check for a compatible technology
+ this.sourceList_([source]);
} else {
- this.techCall('src', source.src);
- }
+ this.cache_.src = source.src;
+ this.currentType_ = source.type || '';
- if (this.options_.preload === 'auto') {
- this.load();
- }
+ // wait until the tech is ready to set the source
+ this.ready(function () {
- if (this.options_.autoplay) {
- this.play();
- }
+ // The setSource tech method was added with source handlers
+ // so older techs won't support it
+ // We need to check the direct prototype for the case where subclasses
+ // of the tech do not support source handlers
+ if (currentTech.prototype.hasOwnProperty('setSource')) {
+ this.techCall('setSource', source);
+ } else {
+ this.techCall('src', source.src);
+ }
- // Set the source synchronously if possible (#2326)
- }, true);
- }
- }
+ if (this.options_.preload === 'auto') {
+ this.load();
+ }
+
+ if (this.options_.autoplay) {
+ this.play();
+ }
+
+ // Set the source synchronously if possible (#2326)
+ }, true);
+ }
+ }
return this;
};
@@ -9542,7 +9348,7 @@ var Player = (function (_Component) {
Player.prototype.loop = function loop(value) {
if (value !== undefined) {
this.techCall('setLoop', value);
- this.options_.loop = value;
+ this.options_['loop'] = value;
return this;
}
return this.techGet('loop');
@@ -9701,10 +9507,10 @@ var Player = (function (_Component) {
}
// error instance
- if (err instanceof _MediaError2['default']) {
+ if (err instanceof _mediaErrorJs2['default']) {
this.error_ = err;
} else {
- this.error_ = new _MediaError2['default'](err);
+ this.error_ = new _mediaErrorJs2['default'](err);
}
// fire an error event on the player
@@ -9715,7 +9521,7 @@ var Player = (function (_Component) {
// log the name of the error type and any message
// ie8 just logs "[object object]" if you just log the error object
- _log2['default'].error('(CODE:' + this.error_.code + ' ' + _MediaError2['default'].errorTypes[this.error_.code] + ')', this.error_.message, this.error_);
+ _utilsLogJs2['default'].error('(CODE:' + this.error_.code + ' ' + _mediaErrorJs2['default'].errorTypes[this.error_.code] + ')', this.error_.message, this.error_);
return this;
};
@@ -9884,7 +9690,7 @@ var Player = (function (_Component) {
// Clear any existing inactivity timeout to start the timer over
this.clearTimeout(inactivityTimeout);
- var timeout = this.options_.inactivityTimeout;
+ var timeout = this.options_['inactivityTimeout'];
if (timeout > 0) {
// In milliseconds, if no more activity has occurred the
// user will be considered inactive
@@ -9919,10 +9725,10 @@ var Player = (function (_Component) {
return this;
}
- if (this.tech && this.tech.featuresPlaybackRate) {
+ if (this.tech && this.tech['featuresPlaybackRate']) {
return this.techGet('playbackRate');
} else {
- return 1;
+ return 1.0;
}
};
@@ -10017,7 +9823,7 @@ var Player = (function (_Component) {
Player.prototype.textTracks = function textTracks() {
// cannot use techGet directly because it checks to see whether the tech is ready.
// Flash is unlikely to be ready in time but textTracks should still work.
- return this.tech && this.tech.textTracks();
+ return this.tech && this.tech['textTracks']();
};
/**
@@ -10028,7 +9834,7 @@ var Player = (function (_Component) {
*/
Player.prototype.remoteTextTracks = function remoteTextTracks() {
- return this.tech && this.tech.remoteTextTracks();
+ return this.tech && this.tech['remoteTextTracks']();
};
/**
@@ -10043,7 +9849,7 @@ var Player = (function (_Component) {
*/
Player.prototype.addTextTrack = function addTextTrack(kind, label, language) {
- return this.tech && this.tech.addTextTrack(kind, label, language);
+ return this.tech && this.tech['addTextTrack'](kind, label, language);
};
/**
@@ -10054,7 +9860,7 @@ var Player = (function (_Component) {
*/
Player.prototype.addRemoteTextTrack = function addRemoteTextTrack(options) {
- return this.tech && this.tech.addRemoteTextTrack(options);
+ return this.tech && this.tech['addRemoteTextTrack'](options);
};
/**
@@ -10065,7 +9871,7 @@ var Player = (function (_Component) {
*/
Player.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {
- this.tech && this.tech.removeRemoteTextTrack(track);
+ this.tech && this.tech['removeRemoteTextTrack'](track);
};
/**
@@ -10137,7 +9943,7 @@ var Player = (function (_Component) {
*/
Player.prototype.languages = function languages() {
- return _mergeOptions2['default'](Player.prototype.options_.languages, this.languages_);
+ return _utilsMergeOptionsJs2['default'](Player.prototype.options_.languages, this.languages_);
};
/**
@@ -10148,7 +9954,7 @@ var Player = (function (_Component) {
*/
Player.prototype.toJSON = function toJSON() {
- var options = _mergeOptions2['default'](this.options_);
+ var options = _utilsMergeOptionsJs2['default'](this.options_);
var tracks = options.tracks;
options.tracks = [];
@@ -10157,7 +9963,7 @@ var Player = (function (_Component) {
var track = tracks[i];
// deep merge tracks and null out player so no circular references
- track = _mergeOptions2['default'](track);
+ track = _utilsMergeOptionsJs2['default'](track);
track.player = undefined;
options.tracks[i] = track;
}
@@ -10176,8 +9982,8 @@ var Player = (function (_Component) {
Player.getTagSettings = function getTagSettings(tag) {
var baseOptions = {
- sources: [],
- tracks: []
+ 'sources': [],
+ 'tracks': []
};
var tagOptions = Dom.getElAttributes(tag);
@@ -10186,20 +9992,19 @@ var Player = (function (_Component) {
// Check if data-setup attr exists.
if (dataSetup !== null) {
// Parse options JSON
- // If empty string, make it a parsable json object.
- var _safeParseTuple = _safeParseTuple3['default'](dataSetup || '{}');
+ var _safeParseTuple = _safeJsonParseTuple2['default'](dataSetup || '{}');
var err = _safeParseTuple[0];
var data = _safeParseTuple[1];
if (err) {
- _log2['default'].error(err);
+ _utilsLogJs2['default'].error(err);
}
- _assign2['default'](tagOptions, data);
+ _objectAssign2['default'](tagOptions, data);
}
- _assign2['default'](baseOptions, tagOptions);
+ _objectAssign2['default'](baseOptions, tagOptions);
// Get tag children settings
if (tag.hasChildNodes()) {
@@ -10221,16 +10026,11 @@ var Player = (function (_Component) {
};
return Player;
-})(_Component3['default']);
+})(_componentJs2['default']);
-/*
- * Global player list
- *
- * @type {Object}
- */
Player.players = {};
-var navigator = _window2['default'].navigator;
+var navigator = _globalWindow2['default'].navigator;
/*
* Player instance options, surfaced using options
* options = Player.prototype.options_
@@ -10248,7 +10048,7 @@ Player.prototype.options_ = {
flash: {},
// defaultVolume: 0.85,
- defaultVolume: 0, // The freakin seaguls are driving me crazy!
+ defaultVolume: 0.00, // The freakin seaguls are driving me crazy!
// default inactivity timeout
inactivityTimeout: 2000,
@@ -10270,7 +10070,7 @@ Player.prototype.options_ = {
textTrackSettings: {}
},
- language: _document2['default'].getElementsByTagName('html')[0].getAttribute('lang') || navigator.languages && navigator.languages[0] || navigator.userLanguage || navigator.language || 'en',
+ language: _globalDocument2['default'].getElementsByTagName('html')[0].getAttribute('lang') || navigator.languages && navigator.languages[0] || navigator.userLanguage || navigator.language || 'en',
// locales and their language translations
languages: {},
@@ -10338,30 +10138,31 @@ Player.prototype.handleVolumeChange;
Player.prototype.handleError;
Player.prototype.flexNotSupported_ = function () {
- var elem = _document2['default'].createElement('i');
+ var elem = _globalDocument2['default'].createElement('i');
// Note: We don't actually use flexBasis (or flexOrder), but it's one of the more
// common flex features that we can rely on when checking for flex support.
- return !('flexBasis' in elem.style || 'webkitFlexBasis' in elem.style || 'mozFlexBasis' in elem.style || 'msFlexBasis' in elem.style || 'msFlexOrder' in elem.style /* IE10-specific (2012 flex spec) */);
+ return !('flexBasis' in elem.style || 'webkitFlexBasis' in elem.style || 'mozFlexBasis' in elem.style || 'msFlexBasis' in elem.style || 'msFlexOrder' in elem.style) /* IE10-specific (2012 flex spec) */;
};
-_Component3['default'].registerComponent('Player', Player);
+_componentJs2['default'].registerComponent('Player', Player);
exports['default'] = Player;
module.exports = exports['default'];
+// If empty string, make it a parsable json object.
-},{"./big-play-button.js":50,"./component.js":52,"./control-bar/control-bar.js":53,"./error-display.js":82,"./fullscreen-api.js":85,"./loading-spinner.js":86,"./media-error.js":87,"./poster-image.js":93,"./tech/html5.js":98,"./tech/loader.js":99,"./tracks/text-track-display.js":102,"./tracks/text-track-list-converter.js":104,"./tracks/text-track-settings.js":106,"./utils/browser.js":108,"./utils/buffer.js":109,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/guid.js":115,"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/stylesheet.js":118,"./utils/time-ranges.js":119,"./utils/to-title-case.js":120,"global/document":1,"global/window":2,"object.assign":44,"safe-json-parse/tuple":49}],92:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./big-play-button.js":46,"./component.js":48,"./control-bar/control-bar.js":49,"./error-display.js":78,"./fullscreen-api.js":81,"./loading-spinner.js":82,"./media-error.js":83,"./poster-image.js":89,"./tech/html5.js":94,"./tech/loader.js":95,"./tracks/text-track-display.js":98,"./tracks/text-track-list-converter.js":100,"./tracks/text-track-settings.js":102,"./utils/browser.js":104,"./utils/buffer.js":105,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/guid.js":111,"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/stylesheet.js":114,"./utils/time-ranges.js":115,"./utils/to-title-case.js":116,"global/document":1,"global/window":2,"object.assign":40,"safe-json-parse/tuple":45}],88:[function(_dereq_,module,exports){
/**
* @file plugins.js
*/
+'use strict';
-var _Player = _dereq_('./player.js');
+exports.__esModule = true;
-var _Player2 = _interopRequireWildcard(_Player);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _playerJs = _dereq_('./player.js');
+
+var _playerJs2 = _interopRequireDefault(_playerJs);
/**
* The method for registering a video.js plugin
@@ -10371,45 +10172,47 @@ var _Player2 = _interopRequireWildcard(_Player);
* @method plugin
*/
var plugin = function plugin(name, init) {
- _Player2['default'].prototype[name] = init;
+ _playerJs2['default'].prototype[name] = init;
};
exports['default'] = plugin;
module.exports = exports['default'];
-},{"./player.js":91}],93:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./player.js":87}],89:[function(_dereq_,module,exports){
/**
* @file poster-image.js
*/
+'use strict';
-var _Button2 = _dereq_('./button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('./component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('./utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _buttonJs = _dereq_('./button.js');
-var _import2 = _dereq_('./utils/dom.js');
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
-var Dom = _interopRequireWildcard(_import2);
+var _componentJs = _dereq_('./component.js');
-var _import3 = _dereq_('./utils/browser.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var browser = _interopRequireWildcard(_import3);
+var _utilsFnJs = _dereq_('./utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsDomJs = _dereq_('./utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsBrowserJs = _dereq_('./utils/browser.js');
+
+var browser = _interopRequireWildcard(_utilsBrowserJs);
/**
* The component that handles showing the poster image.
@@ -10421,6 +10224,8 @@ var browser = _interopRequireWildcard(_import3);
*/
var PosterImage = (function (_Button) {
+ _inherits(PosterImage, _Button);
+
function PosterImage(player, options) {
_classCallCheck(this, PosterImage);
@@ -10430,8 +10235,6 @@ var PosterImage = (function (_Button) {
player.on('posterchange', Fn.bind(this, this.update));
}
- _inherits(PosterImage, _Button);
-
/**
* Clean up the poster image
*
@@ -10529,36 +10332,38 @@ var PosterImage = (function (_Button) {
};
return PosterImage;
-})(_Button3['default']);
+})(_buttonJs2['default']);
-_Component2['default'].registerComponent('PosterImage', PosterImage);
+_componentJs2['default'].registerComponent('PosterImage', PosterImage);
exports['default'] = PosterImage;
module.exports = exports['default'];
-},{"./button.js":51,"./component.js":52,"./utils/browser.js":108,"./utils/dom.js":111,"./utils/fn.js":113}],94:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./button.js":47,"./component.js":48,"./utils/browser.js":104,"./utils/dom.js":107,"./utils/fn.js":109}],90:[function(_dereq_,module,exports){
/**
* @file setup.js
*
* Functions for automatically setting up a player
* based on the data-setup attribute of the video tag
*/
+'use strict';
-var _import = _dereq_('./utils/events.js');
+exports.__esModule = true;
-var Events = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document = _dereq_('global/document');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _document2 = _interopRequireWildcard(_document);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _window = _dereq_('global/window');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _window2 = _interopRequireWildcard(_window);
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
var _windowLoaded = false;
var videojs = undefined;
@@ -10572,8 +10377,8 @@ var autoSetup = function autoSetup() {
// Because IE8 doesn't support calling slice on a node list, we need to loop through each list of elements
// to build up a new, combined list of elements.
- var vids = _document2['default'].getElementsByTagName('video');
- var audios = _document2['default'].getElementsByTagName('audio');
+ var vids = _globalDocument2['default'].getElementsByTagName('video');
+ var audios = _globalDocument2['default'].getElementsByTagName('audio');
var mediaEls = [];
if (vids && vids.length > 0) {
for (var i = 0, e = vids.length; i < e; i++) {
@@ -10597,7 +10402,7 @@ var autoSetup = function autoSetup() {
if (mediaEl && mediaEl.getAttribute) {
// Make sure this player hasn't already been set up.
- if (mediaEl.player === undefined) {
+ if (mediaEl['player'] === undefined) {
var options = mediaEl.getAttribute('data-setup');
// Check if data-setup attr exists.
@@ -10610,15 +10415,15 @@ var autoSetup = function autoSetup() {
// If getAttribute isn't defined, we need to wait for the DOM.
} else {
- autoSetupTimeout(1);
- break;
- }
+ autoSetupTimeout(1);
+ break;
+ }
}
// No videos were found, so keep looping unless page is finished loading.
} else if (!_windowLoaded) {
- autoSetupTimeout(1);
- }
+ autoSetupTimeout(1);
+ }
};
// Pause to let the DOM keep processing
@@ -10627,10 +10432,10 @@ var autoSetupTimeout = function autoSetupTimeout(wait, vjs) {
setTimeout(autoSetup, wait);
};
-if (_document2['default'].readyState === 'complete') {
+if (_globalDocument2['default'].readyState === 'complete') {
_windowLoaded = true;
} else {
- Events.one(_window2['default'], 'load', function () {
+ Events.one(_globalWindow2['default'], 'load', function () {
_windowLoaded = true;
});
}
@@ -10643,35 +10448,37 @@ exports.autoSetup = autoSetup;
exports.autoSetupTimeout = autoSetupTimeout;
exports.hasLoaded = hasLoaded;
-},{"./utils/events.js":112,"global/document":1,"global/window":2}],95:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./utils/events.js":108,"global/document":1,"global/window":2}],91:[function(_dereq_,module,exports){
/**
* @file slider.js
*/
+'use strict';
-var _Component2 = _dereq_('../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _document = _dereq_('global/document');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _document2 = _interopRequireWildcard(_document);
+var _componentJs = _dereq_('../component.js');
-var _assign = _dereq_('object.assign');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/**
* The base functionality for sliders like the volume bar and seek bar
@@ -10683,6 +10490,8 @@ var _assign2 = _interopRequireWildcard(_assign);
*/
var Slider = (function (_Component) {
+ _inherits(Slider, _Component);
+
function Slider(player, options) {
_classCallCheck(this, Slider);
@@ -10704,8 +10513,6 @@ var Slider = (function (_Component) {
this.on(player, this.playerEvent, this.update);
}
- _inherits(Slider, _Component);
-
/**
* Create the component's DOM element
*
@@ -10716,12 +10523,12 @@ var Slider = (function (_Component) {
*/
Slider.prototype.createEl = function createEl(type) {
- var props = arguments[1] === undefined ? {} : arguments[1];
+ var props = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
// Add the slider element class to all sub classes
props.className = props.className + ' vjs-slider';
- props = _assign2['default']({
- role: 'slider',
+ props = _objectAssign2['default']({
+ 'role': 'slider',
'aria-valuenow': 0,
'aria-valuemin': 0,
'aria-valuemax': 100,
@@ -10743,10 +10550,10 @@ var Slider = (function (_Component) {
Dom.blockTextSelection();
this.addClass('vjs-sliding');
- this.on(_document2['default'], 'mousemove', this.handleMouseMove);
- this.on(_document2['default'], 'mouseup', this.handleMouseUp);
- this.on(_document2['default'], 'touchmove', this.handleMouseMove);
- this.on(_document2['default'], 'touchend', this.handleMouseUp);
+ this.on(_globalDocument2['default'], 'mousemove', this.handleMouseMove);
+ this.on(_globalDocument2['default'], 'mouseup', this.handleMouseUp);
+ this.on(_globalDocument2['default'], 'touchmove', this.handleMouseMove);
+ this.on(_globalDocument2['default'], 'touchend', this.handleMouseUp);
this.handleMouseMove(event);
};
@@ -10769,10 +10576,10 @@ var Slider = (function (_Component) {
Dom.unblockTextSelection();
this.removeClass('vjs-sliding');
- this.off(_document2['default'], 'mousemove', this.handleMouseMove);
- this.off(_document2['default'], 'mouseup', this.handleMouseUp);
- this.off(_document2['default'], 'touchmove', this.handleMouseMove);
- this.off(_document2['default'], 'touchend', this.handleMouseUp);
+ this.off(_globalDocument2['default'], 'mousemove', this.handleMouseMove);
+ this.off(_globalDocument2['default'], 'mouseup', this.handleMouseUp);
+ this.off(_globalDocument2['default'], 'touchmove', this.handleMouseMove);
+ this.off(_globalDocument2['default'], 'touchend', this.handleMouseUp);
this.update();
};
@@ -10786,18 +10593,18 @@ var Slider = (function (_Component) {
Slider.prototype.update = function update() {
// In VolumeBar init we have a setTimeout for update that pops and update to the end of the
// execution stack. The player is destroyed before then update will cause an error
- if (!this.el_) {
- return;
- } // If scrubbing, we could use a cached value to make the handle keep up with the user's mouse.
+ if (!this.el_) return;
+
+ // If scrubbing, we could use a cached value to make the handle keep up with the user's mouse.
// On HTML5 browsers scrubbing is really smooth, but some flash players are slow, so we might want to utilize this later.
// var progress = (this.player_.scrubbing()) ? this.player_.getCache().currentTime / this.player_.duration() : this.player_.currentTime() / this.player_.duration();
var progress = this.getPercent();
var bar = this.bar;
// If there's no bar...
- if (!bar) {
- return;
- } // Protect against no duration and other division issues
+ if (!bar) return;
+
+ // Protect against no duration and other division issues
if (typeof progress !== 'number' || progress !== progress || progress < 0 || progress === Infinity) {
progress = 0;
}
@@ -10860,7 +10667,7 @@ var Slider = (function (_Component) {
*/
Slider.prototype.handleFocus = function handleFocus() {
- this.on(_document2['default'], 'keydown', this.handleKeyPress);
+ this.on(_globalDocument2['default'], 'keydown', this.handleKeyPress);
};
/**
@@ -10889,7 +10696,7 @@ var Slider = (function (_Component) {
*/
Slider.prototype.handleBlur = function handleBlur() {
- this.off(_document2['default'], 'keydown', this.handleKeyPress);
+ this.off(_globalDocument2['default'], 'keydown', this.handleKeyPress);
};
/**
@@ -10930,19 +10737,19 @@ var Slider = (function (_Component) {
};
return Slider;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('Slider', Slider);
+_componentJs2['default'].registerComponent('Slider', Slider);
exports['default'] = Slider;
module.exports = exports['default'];
-},{"../component.js":52,"../utils/dom.js":111,"global/document":1,"object.assign":44}],96:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"../component.js":48,"../utils/dom.js":107,"global/document":1,"object.assign":40}],92:[function(_dereq_,module,exports){
/**
* @file flash-rtmp.js
*/
+'use strict';
+
+exports.__esModule = true;
function FlashRtmpDecorator(Flash) {
Flash.streamingFormats = {
'rtmp/mp4': 'MP4',
@@ -11023,8 +10830,8 @@ function FlashRtmpDecorator(Flash) {
Flash.rtmpSourceHandler.handleSource = function (source, tech) {
var srcParts = Flash.streamToParts(source.src);
- tech.setRtmpConnection(srcParts.connection);
- tech.setRtmpStream(srcParts.stream);
+ tech['setRtmpConnection'](srcParts.connection);
+ tech['setRtmpStream'](srcParts.stream);
};
// Register the native source handler
@@ -11036,16 +10843,7 @@ function FlashRtmpDecorator(Flash) {
exports['default'] = FlashRtmpDecorator;
module.exports = exports['default'];
-},{}],97:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{}],93:[function(_dereq_,module,exports){
/**
* @file flash.js
* VideoJS-SWF - Custom Flash Player with HTML5-ish API
@@ -11053,37 +10851,49 @@ exports.__esModule = true;
* Not using setupTriggers. Using global onEvent func to distribute events
*/
-var _Tech2 = _dereq_('./tech');
+'use strict';
-var _Tech3 = _interopRequireWildcard(_Tech2);
+exports.__esModule = true;
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var Dom = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _import2 = _dereq_('../utils/url.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var Url = _interopRequireWildcard(_import2);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _createTimeRange = _dereq_('../utils/time-ranges.js');
+var _tech = _dereq_('./tech');
-var _FlashRtmpDecorator = _dereq_('./flash-rtmp');
+var _tech2 = _interopRequireDefault(_tech);
-var _FlashRtmpDecorator2 = _interopRequireWildcard(_FlashRtmpDecorator);
+var _utilsDomJs = _dereq_('../utils/dom.js');
-var _Component = _dereq_('../component');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _Component2 = _interopRequireWildcard(_Component);
+var _utilsUrlJs = _dereq_('../utils/url.js');
-var _window = _dereq_('global/window');
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsTimeRangesJs = _dereq_('../utils/time-ranges.js');
-var _assign = _dereq_('object.assign');
+var _flashRtmp = _dereq_('./flash-rtmp');
-var _assign2 = _interopRequireWildcard(_assign);
+var _flashRtmp2 = _interopRequireDefault(_flashRtmp);
-var navigator = _window2['default'].navigator;
+var _component = _dereq_('../component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var navigator = _globalWindow2['default'].navigator;
/**
* Flash Media Controller - Wrapper for fallback SWF API
*
@@ -11094,6 +10904,8 @@ var navigator = _window2['default'].navigator;
*/
var Flash = (function (_Tech) {
+ _inherits(Flash, _Tech);
+
function Flash(options, ready) {
_classCallCheck(this, Flash);
@@ -11120,18 +10932,18 @@ var Flash = (function (_Tech) {
// A 4.x workflow we weren't able to solve for in 5.0
// because of the need to hard code these functions
// into the swf for security reasons
- _window2['default'].videojs = _window2['default'].videojs || {};
- _window2['default'].videojs.Flash = _window2['default'].videojs.Flash || {};
- _window2['default'].videojs.Flash.onReady = Flash.onReady;
- _window2['default'].videojs.Flash.onEvent = Flash.onEvent;
- _window2['default'].videojs.Flash.onError = Flash.onError;
+ _globalWindow2['default'].videojs = _globalWindow2['default'].videojs || {};
+ _globalWindow2['default'].videojs.Flash = _globalWindow2['default'].videojs.Flash || {};
+ _globalWindow2['default'].videojs.Flash.onReady = Flash.onReady;
+ _globalWindow2['default'].videojs.Flash.onEvent = Flash.onEvent;
+ _globalWindow2['default'].videojs.Flash.onError = Flash.onError;
this.on('seeked', function () {
this.lastSeekTarget_ = undefined;
});
}
- _inherits(Flash, _Tech);
+ // Create setters and getters for attributes
/**
* Create the component's DOM element
@@ -11147,31 +10959,31 @@ var Flash = (function (_Tech) {
var objId = options.techId;
// Merge default flashvars with ones passed in to init
- var flashVars = _assign2['default']({
+ var flashVars = _objectAssign2['default']({
// SWF Callback Functions
- readyFunction: 'videojs.Flash.onReady',
- eventProxyFunction: 'videojs.Flash.onEvent',
- errorEventProxyFunction: 'videojs.Flash.onError',
+ 'readyFunction': 'videojs.Flash.onReady',
+ 'eventProxyFunction': 'videojs.Flash.onEvent',
+ 'errorEventProxyFunction': 'videojs.Flash.onError',
// Player Settings
- autoplay: options.autoplay,
- preload: options.preload,
- loop: options.loop,
- muted: options.muted
+ 'autoplay': options.autoplay,
+ 'preload': options.preload,
+ 'loop': options.loop,
+ 'muted': options.muted
}, options.flashVars);
// Merge default parames with ones passed in
- var params = _assign2['default']({
- wmode: 'opaque', // Opaque is needed to overlay controls, but can affect playback performance
- bgcolor: '#000000' // Using bgcolor prevents a white flash when the object is loading
+ var params = _objectAssign2['default']({
+ 'wmode': 'opaque', // Opaque is needed to overlay controls, but can affect playback performance
+ 'bgcolor': '#000000' // Using bgcolor prevents a white flash when the object is loading
}, options.params);
// Merge default attributes with ones passed in
- var attributes = _assign2['default']({
- id: objId,
- name: objId, // Both ID and Name needed or swf to identify itself
+ var attributes = _objectAssign2['default']({
+ 'id': objId,
+ 'name': objId, // Both ID and Name needed or swf to identify itself
'class': 'vjs-tech'
}, options.attributes);
@@ -11188,6 +11000,9 @@ var Flash = (function (_Tech) {
*/
Flash.prototype.play = function play() {
+ if (this.ended()) {
+ this.setCurrentTime(0);
+ }
this.el_.vjs_play();
};
@@ -11209,24 +11024,14 @@ var Flash = (function (_Tech) {
* @method src
*/
- Flash.prototype.src = (function (_src) {
- function src(_x) {
- return _src.apply(this, arguments);
- }
-
- src.toString = function () {
- return _src.toString();
- };
-
- return src;
- })(function (src) {
- if (src === undefined) {
+ Flash.prototype.src = function src(_src) {
+ if (_src === undefined) {
return this.currentSrc();
}
// Setting src through `src` not `setSrc` will be deprecated
- return this.setSrc(src);
- });
+ return this.setSrc(_src);
+ };
/**
* Set video
@@ -11350,9 +11155,9 @@ var Flash = (function (_Tech) {
Flash.prototype.seekable = function seekable() {
var duration = this.duration();
if (duration === 0) {
- return _createTimeRange.createTimeRange();
+ return _utilsTimeRangesJs.createTimeRange();
}
- return _createTimeRange.createTimeRange(0, duration);
+ return _utilsTimeRangesJs.createTimeRange(0, duration);
};
/**
@@ -11363,7 +11168,11 @@ var Flash = (function (_Tech) {
*/
Flash.prototype.buffered = function buffered() {
- return _createTimeRange.createTimeRange(0, this.el_.vjs_getProperty('buffered'));
+ var ranges = this.el_.vjs_getProperty('buffered');
+ if (ranges.length === 0) {
+ return _utilsTimeRangesJs.createTimeRange();
+ }
+ return _utilsTimeRangesJs.createTimeRange(ranges[0][0], ranges[0][1]);
};
/**
@@ -11393,12 +11202,11 @@ var Flash = (function (_Tech) {
};
return Flash;
-})(_Tech3['default']);
+})(_tech2['default']);
-// Create setters and getters for attributes
var _api = Flash.prototype;
var _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');
-var _readOnly = 'error,networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');
+var _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');
function _createSetter(attr) {
var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);
@@ -11431,7 +11239,7 @@ Flash.isSupported = function () {
};
// Add Source Handler pattern functions to this tech
-_Tech3['default'].withSourceHandlers(Flash);
+_tech2['default'].withSourceHandlers(Flash);
/*
* The default native source handler.
@@ -11528,7 +11336,7 @@ Flash.checkReady = function (tech) {
} else {
// wait longer
this.setTimeout(function () {
- Flash.checkReady(tech);
+ Flash['checkReady'](tech);
}, 50);
}
};
@@ -11542,15 +11350,14 @@ Flash.onEvent = function (swfID, eventName) {
// Log errors from the swf
Flash.onError = function (swfID, err) {
var tech = Dom.getEl(swfID).tech;
- var msg = 'FLASH: ' + err;
+ // trigger MEDIA_ERR_SRC_NOT_SUPPORTED
if (err === 'srcnotfound') {
- tech.trigger('error', { code: 4, message: msg });
-
- // errors we haven't categorized into the media errors
- } else {
- tech.trigger('error', msg);
+ return tech.error(4);
}
+
+ // trigger a custom error
+ tech.error('FLASH: ' + err);
};
// Flash Version Check
@@ -11559,7 +11366,7 @@ Flash.version = function () {
// IE
try {
- version = new _window2['default'].ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
+ version = new _globalWindow2['default'].ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
// other browsers
} catch (e) {
@@ -11591,16 +11398,16 @@ Flash.getEmbedCode = function (swf, flashVars, params, attributes) {
// Convert flash vars to string
if (flashVars) {
Object.getOwnPropertyNames(flashVars).forEach(function (key) {
- flashVarsString += '' + key + '=' + flashVars[key] + '&';
+ flashVarsString += key + '=' + flashVars[key] + '&';
});
}
// Add swf, flashVars, and other default params
- params = _assign2['default']({
- movie: swf,
- flashvars: flashVarsString,
- allowScriptAccess: 'always', // Required to talk to swf
- allowNetworking: 'all' // All should be default, but having security issues.
+ params = _objectAssign2['default']({
+ 'movie': swf,
+ 'flashvars': flashVarsString,
+ 'allowScriptAccess': 'always', // Required to talk to swf
+ 'allowNetworking': 'all' // All should be default, but having security issues.
}, params);
// Create param tags string
@@ -11608,89 +11415,92 @@ Flash.getEmbedCode = function (swf, flashVars, params, attributes) {
paramsString += '';
});
- attributes = _assign2['default']({
+ attributes = _objectAssign2['default']({
// Add swf to attributes (need both for IE and Others to work)
- data: swf,
+ 'data': swf,
// Default to 100% width/height
- width: '100%',
- height: '100%'
+ 'width': '100%',
+ 'height': '100%'
}, attributes);
// Create Attributes string
Object.getOwnPropertyNames(attributes).forEach(function (key) {
- attrsString += '' + key + '="' + attributes[key] + '" ';
+ attrsString += key + '="' + attributes[key] + '" ';
});
- return '' + objTag + '' + attrsString + '>' + paramsString + '';
+ return '' + objTag + attrsString + '>' + paramsString + '';
};
// Run Flash through the RTMP decorator
-_FlashRtmpDecorator2['default'](Flash);
+_flashRtmp2['default'](Flash);
-_Component2['default'].registerComponent('Flash', Flash);
+_component2['default'].registerComponent('Flash', Flash);
exports['default'] = Flash;
module.exports = exports['default'];
-},{"../component":52,"../utils/dom.js":111,"../utils/time-ranges.js":119,"../utils/url.js":121,"./flash-rtmp":96,"./tech":100,"global/window":2,"object.assign":44}],98:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/dom.js":107,"../utils/time-ranges.js":115,"../utils/url.js":117,"./flash-rtmp":92,"./tech":96,"global/window":2,"object.assign":40}],94:[function(_dereq_,module,exports){
/**
* @file html5.js
* HTML5 Media Controller - Wrapper for HTML5 Media API
*/
-var _Tech2 = _dereq_('./tech.js');
+'use strict';
-var _Tech3 = _interopRequireWildcard(_Tech2);
+exports.__esModule = true;
-var _Component = _dereq_('../component');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _import = _dereq_('../utils/dom.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var Dom = _interopRequireWildcard(_import);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _import2 = _dereq_('../utils/url.js');
+var _techJs = _dereq_('./tech.js');
-var Url = _interopRequireWildcard(_import2);
+var _techJs2 = _interopRequireDefault(_techJs);
-var _import3 = _dereq_('../utils/fn.js');
+var _component = _dereq_('../component');
-var Fn = _interopRequireWildcard(_import3);
+var _component2 = _interopRequireDefault(_component);
-var _log = _dereq_('../utils/log.js');
+var _utilsDomJs = _dereq_('../utils/dom.js');
-var _log2 = _interopRequireWildcard(_log);
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _import4 = _dereq_('../utils/browser.js');
+var _utilsUrlJs = _dereq_('../utils/url.js');
-var browser = _interopRequireWildcard(_import4);
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _document = _dereq_('global/document');
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _document2 = _interopRequireWildcard(_document);
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _window = _dereq_('global/window');
+var _utilsLogJs = _dereq_('../utils/log.js');
-var _window2 = _interopRequireWildcard(_window);
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _assign = _dereq_('object.assign');
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
-var _assign2 = _interopRequireWildcard(_assign);
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _mergeOptions = _dereq_('../utils/merge-options.js');
+var _globalDocument = _dereq_('global/document');
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var _utilsMergeOptionsJs = _dereq_('../utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
/**
* HTML5 Media Controller - Wrapper for HTML5 Media API
@@ -11702,6 +11512,8 @@ var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
*/
var Html5 = (function (_Tech) {
+ _inherits(Html5, _Tech);
+
function Html5(options, ready) {
_classCallCheck(this, Html5);
@@ -11755,14 +11567,22 @@ var Html5 = (function (_Tech) {
// Our goal should be to get the custom controls on mobile solid everywhere
// so we can remove this all together. Right now this will block custom
// controls on touch enabled laptops like the Chrome Pixel
- if (browser.TOUCH_ENABLED && options.nativeControlsForTouch === true) {
- this.trigger('usenativecontrols');
+ if (browser.TOUCH_ENABLED && options.nativeControlsForTouch === true || browser.IS_IPHONE || browser.IS_NATIVE_ANDROID) {
+ this.setControls(true);
}
this.triggerReady();
}
- _inherits(Html5, _Tech);
+ /* HTML5 Support Testing ---------------------------------------------------- */
+
+ /*
+ * Element for testing browser HTML5 video capabilities
+ *
+ * @type {Element}
+ * @constant
+ * @private
+ */
/**
* Dispose of html5 media element
@@ -11805,7 +11625,7 @@ var Html5 = (function (_Tech) {
// Check if this browser supports moving the element into the box.
// On the iPhone video will break if you move the element,
// So we have to create a brand new element.
- if (!el || this.movingMediaElementInDOM === false) {
+ if (!el || this['movingMediaElementInDOM'] === false) {
// If the original tag is still there, clone and remove it.
if (el) {
@@ -11814,16 +11634,16 @@ var Html5 = (function (_Tech) {
Html5.disposeMediaElement(el);
el = clone;
} else {
- el = _document2['default'].createElement('video');
+ el = _globalDocument2['default'].createElement('video');
// determine if native controls should be used
var tagAttributes = this.options_.tag && Dom.getElAttributes(this.options_.tag);
- var attributes = _mergeOptions2['default']({}, tagAttributes);
+ var attributes = _utilsMergeOptionsJs2['default']({}, tagAttributes);
if (!browser.TOUCH_ENABLED || this.options_.nativeControlsForTouch !== true) {
delete attributes.controls;
}
- Dom.setElAttributes(el, _assign2['default'](attributes, {
+ Dom.setElAttributes(el, _objectAssign2['default'](attributes, {
id: this.options_.techId,
'class': 'vjs-tech'
}));
@@ -11926,7 +11746,7 @@ var Html5 = (function (_Tech) {
try {
this.el_.currentTime = seconds;
} catch (e) {
- _log2['default'](e, 'Video is not ready. (Video.js)');
+ _utilsLogJs2['default'](e, 'Video is not ready. (Video.js)');
// this.warning(VideoJS.warnings.videoNotReady);
}
};
@@ -12030,7 +11850,7 @@ var Html5 = (function (_Tech) {
Html5.prototype.supportsFullScreen = function supportsFullScreen() {
if (typeof this.el_.webkitEnterFullScreen === 'function') {
- var userAgent = _window2['default'].navigator.userAgent;
+ var userAgent = _globalWindow2['default'].navigator.userAgent;
// Seems to be broken in Chromium/Chrome && Safari in Leopard
if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {
return true;
@@ -12092,24 +11912,14 @@ var Html5 = (function (_Tech) {
* @method src
*/
- Html5.prototype.src = (function (_src) {
- function src(_x) {
- return _src.apply(this, arguments);
- }
-
- src.toString = function () {
- return _src.toString();
- };
-
- return src;
- })(function (src) {
- if (src === undefined) {
+ Html5.prototype.src = function src(_src) {
+ if (_src === undefined) {
return this.el_.src;
} else {
// Setting src through `src` instead of `setSrc` will be deprecated
- this.setSrc(src);
+ this.setSrc(_src);
}
- });
+ };
/**
* Set video
@@ -12426,7 +12236,7 @@ var Html5 = (function (_Tech) {
*/
Html5.prototype.addTextTrack = function addTextTrack(kind, label, language) {
- if (!this.featuresNativeTextTracks) {
+ if (!this['featuresNativeTextTracks']) {
return _Tech.prototype.addTextTrack.call(this, kind, label, language);
}
@@ -12443,31 +12253,31 @@ var Html5 = (function (_Tech) {
*/
Html5.prototype.addRemoteTextTrack = function addRemoteTextTrack() {
- var options = arguments[0] === undefined ? {} : arguments[0];
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
- if (!this.featuresNativeTextTracks) {
+ if (!this['featuresNativeTextTracks']) {
return _Tech.prototype.addRemoteTextTrack.call(this, options);
}
- var track = _document2['default'].createElement('track');
+ var track = _globalDocument2['default'].createElement('track');
- if (options.kind) {
- track.kind = options.kind;
+ if (options['kind']) {
+ track['kind'] = options['kind'];
}
- if (options.label) {
- track.label = options.label;
+ if (options['label']) {
+ track['label'] = options['label'];
}
- if (options.language || options.srclang) {
- track.srclang = options.language || options.srclang;
+ if (options['language'] || options['srclang']) {
+ track['srclang'] = options['language'] || options['srclang'];
}
if (options['default']) {
track['default'] = options['default'];
}
- if (options.id) {
- track.id = options.id;
+ if (options['id']) {
+ track['id'] = options['id'];
}
- if (options.src) {
- track.src = options.src;
+ if (options['src']) {
+ track['src'] = options['src'];
}
this.el().appendChild(track);
@@ -12485,7 +12295,7 @@ var Html5 = (function (_Tech) {
*/
Html5.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {
- if (!this.featuresNativeTextTracks) {
+ if (!this['featuresNativeTextTracks']) {
return _Tech.prototype.removeRemoteTextTrack.call(this, track);
}
@@ -12504,19 +12314,10 @@ var Html5 = (function (_Tech) {
};
return Html5;
-})(_Tech3['default']);
+})(_techJs2['default']);
-/* HTML5 Support Testing ---------------------------------------------------- */
-
-/*
-* Element for testing browser HTML5 video capabilities
-*
-* @type {Element}
-* @constant
-* @private
-*/
-Html5.TEST_VID = _document2['default'].createElement('video');
-var track = _document2['default'].createElement('track');
+Html5.TEST_VID = _globalDocument2['default'].createElement('video');
+var track = _globalDocument2['default'].createElement('track');
track.kind = 'captions';
track.srclang = 'en';
track.label = 'English';
@@ -12530,7 +12331,7 @@ Html5.TEST_VID.appendChild(track);
Html5.isSupported = function () {
// IE9 with no Media Player is a LIAR! (#984)
try {
- Html5.TEST_VID.volume = 0.5;
+ Html5.TEST_VID['volume'] = 0.5;
} catch (e) {
return false;
}
@@ -12539,7 +12340,7 @@ Html5.isSupported = function () {
};
// Add Source Handler pattern functions to this tech
-_Tech3['default'].withSourceHandlers(Html5);
+_techJs2['default'].withSourceHandlers(Html5);
/*
* The default native source handler.
@@ -12642,7 +12443,7 @@ Html5.supportsNativeTextTracks = function () {
// TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862
supportsTextTracks = !!Html5.TEST_VID.textTracks;
if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {
- supportsTextTracks = typeof Html5.TEST_VID.textTracks[0].mode !== 'number';
+ supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';
}
if (supportsTextTracks && browser.IS_FIREFOX) {
supportsTextTracks = false;
@@ -12667,14 +12468,14 @@ Html5.Events = ['loadstart', 'suspend', 'abort', 'error', 'emptied', 'stalled',
*
* @type {Boolean}
*/
-Html5.prototype.featuresVolumeControl = Html5.canControlVolume();
+Html5.prototype['featuresVolumeControl'] = Html5.canControlVolume();
/*
* Set the tech's playbackRate support status
*
* @type {Boolean}
*/
-Html5.prototype.featuresPlaybackRate = Html5.canControlPlaybackRate();
+Html5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();
/*
* Set the tech's status on moving the video element.
@@ -12682,27 +12483,27 @@ Html5.prototype.featuresPlaybackRate = Html5.canControlPlaybackRate();
*
* @type {Boolean}
*/
-Html5.prototype.movingMediaElementInDOM = !browser.IS_IOS;
+Html5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;
/*
* Set the the tech's fullscreen resize support status.
* HTML video is able to automatically resize when going to fullscreen.
* (No longer appears to be used. Can probably be removed.)
*/
-Html5.prototype.featuresFullscreenResize = true;
+Html5.prototype['featuresFullscreenResize'] = true;
/*
* Set the tech's progress event support status
* (this disables the manual progress events of the Tech)
*/
-Html5.prototype.featuresProgressEvents = true;
+Html5.prototype['featuresProgressEvents'] = true;
/*
* Sets the tech's status on native text track support
*
* @type {Boolean}
*/
-Html5.prototype.featuresNativeTextTracks = Html5.supportsNativeTextTracks();
+Html5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();
// HTML5 Feature detection and Device Fixes --------------------------------- //
var canPlayType = undefined;
@@ -12711,7 +12512,7 @@ var mp4RE = /^video\/mp4/i;
Html5.patchCanPlayType = function () {
// Android 4.0 and above can play HLS to some extent but it reports being unable to do so
- if (browser.ANDROID_VERSION >= 4) {
+ if (browser.ANDROID_VERSION >= 4.0) {
if (!canPlayType) {
canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;
}
@@ -12774,42 +12575,42 @@ Html5.disposeMediaElement = function (el) {
(function () {
try {
el.load();
- } catch (e) {}
+ } catch (e) {
+ // not supported
+ }
})();
}
};
-_Component2['default'].registerComponent('Html5', Html5);
+_component2['default'].registerComponent('Html5', Html5);
exports['default'] = Html5;
module.exports = exports['default'];
-// not supported
-
-},{"../component":52,"../utils/browser.js":108,"../utils/dom.js":111,"../utils/fn.js":113,"../utils/log.js":116,"../utils/merge-options.js":117,"../utils/url.js":121,"./tech.js":100,"global/document":1,"global/window":2,"object.assign":44}],99:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/browser.js":104,"../utils/dom.js":107,"../utils/fn.js":109,"../utils/log.js":112,"../utils/merge-options.js":113,"../utils/url.js":117,"./tech.js":96,"global/document":1,"global/window":2,"object.assign":40}],95:[function(_dereq_,module,exports){
/**
* @file loader.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _window = _dereq_('global/window');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _window2 = _interopRequireWildcard(_window);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _toTitleCase = _dereq_('../utils/to-title-case.js');
+var _component = _dereq_('../component');
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _component2 = _interopRequireDefault(_component);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _utilsToTitleCaseJs = _dereq_('../utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
/**
* The Media Loader is the component that decides which playback technology to load
@@ -12823,6 +12624,8 @@ var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
*/
var MediaLoader = (function (_Component) {
+ _inherits(MediaLoader, _Component);
+
function MediaLoader(player, options, ready) {
_classCallCheck(this, MediaLoader);
@@ -12831,10 +12634,10 @@ var MediaLoader = (function (_Component) {
// If there are no sources when the player is initialized,
// load the first supported playback technology.
- if (!options.playerOptions.sources || options.playerOptions.sources.length === 0) {
- for (var i = 0, j = options.playerOptions.techOrder; i < j.length; i++) {
- var techName = _toTitleCase2['default'](j[i]);
- var tech = _Component3['default'].getComponent(techName);
+ if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {
+ for (var i = 0, j = options.playerOptions['techOrder']; i < j.length; i++) {
+ var techName = _utilsToTitleCaseJs2['default'](j[i]);
+ var tech = _component2['default'].getComponent(techName);
// Check if the browser supports this technology
if (tech && tech.isSupported()) {
@@ -12847,66 +12650,71 @@ var MediaLoader = (function (_Component) {
// // Then load the best source.
// // A few assumptions here:
// // All playback technologies respect preload false.
- player.src(options.playerOptions.sources);
+ player.src(options.playerOptions['sources']);
}
}
- _inherits(MediaLoader, _Component);
-
return MediaLoader;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('MediaLoader', MediaLoader);
+_component2['default'].registerComponent('MediaLoader', MediaLoader);
exports['default'] = MediaLoader;
module.exports = exports['default'];
-},{"../component":52,"../utils/to-title-case.js":120,"global/window":2}],100:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/to-title-case.js":116,"global/window":2}],96:[function(_dereq_,module,exports){
/**
* @file tech.js
* Media Technology Controller - Base class for media playback
* technology controllers like Flash and HTML5
*/
-var _Component2 = _dereq_('../component');
+'use strict';
-var _Component3 = _interopRequireWildcard(_Component2);
+exports.__esModule = true;
-var _TextTrack = _dereq_('../tracks/text-track');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _TextTrack2 = _interopRequireWildcard(_TextTrack);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _TextTrackList = _dereq_('../tracks/text-track-list');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _TextTrackList2 = _interopRequireWildcard(_TextTrackList);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _import = _dereq_('../utils/fn.js');
+var _component = _dereq_('../component');
-var Fn = _interopRequireWildcard(_import);
+var _component2 = _interopRequireDefault(_component);
-var _log = _dereq_('../utils/log.js');
+var _tracksTextTrack = _dereq_('../tracks/text-track');
-var _log2 = _interopRequireWildcard(_log);
+var _tracksTextTrack2 = _interopRequireDefault(_tracksTextTrack);
-var _createTimeRange = _dereq_('../utils/time-ranges.js');
+var _tracksTextTrackList = _dereq_('../tracks/text-track-list');
-var _bufferedPercent2 = _dereq_('../utils/buffer.js');
+var _tracksTextTrackList2 = _interopRequireDefault(_tracksTextTrackList);
-var _window = _dereq_('global/window');
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _window2 = _interopRequireWildcard(_window);
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _document = _dereq_('global/document');
+var _utilsLogJs = _dereq_('../utils/log.js');
-var _document2 = _interopRequireWildcard(_document);
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
+
+var _utilsTimeRangesJs = _dereq_('../utils/time-ranges.js');
+
+var _utilsBufferJs = _dereq_('../utils/buffer.js');
+
+var _mediaErrorJs = _dereq_('../media-error.js');
+
+var _mediaErrorJs2 = _interopRequireDefault(_mediaErrorJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* Base class for media (HTML5 Video, Flash) controllers
@@ -12918,9 +12726,11 @@ var _document2 = _interopRequireWildcard(_document);
*/
var Tech = (function (_Component) {
+ _inherits(Tech, _Component);
+
function Tech() {
- var options = arguments[0] === undefined ? {} : arguments[0];
- var ready = arguments[1] === undefined ? function () {} : arguments[1];
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
+ var ready = arguments.length <= 1 || arguments[1] === undefined ? function () {} : arguments[1];
_classCallCheck(this, Tech);
@@ -12967,7 +12777,12 @@ var Tech = (function (_Component) {
this.emitTapEvents();
}
- _inherits(Tech, _Component);
+ /*
+ * List of associated text tracks
+ *
+ * @type {Array}
+ * @private
+ */
/**
* Set up click and touch listeners for the playback element
@@ -13078,7 +12893,7 @@ var Tech = (function (_Component) {
*/
Tech.prototype.buffered = function buffered() {
- return _createTimeRange.createTimeRange(0, 0);
+ return _utilsTimeRangesJs.createTimeRange(0, 0);
};
/**
@@ -13088,19 +12903,9 @@ var Tech = (function (_Component) {
* @method bufferedPercent
*/
- Tech.prototype.bufferedPercent = (function (_bufferedPercent) {
- function bufferedPercent() {
- return _bufferedPercent.apply(this, arguments);
- }
-
- bufferedPercent.toString = function () {
- return _bufferedPercent.toString();
- };
-
- return bufferedPercent;
- })(function () {
- return _bufferedPercent2.bufferedPercent(this.buffered(), this.duration_);
- });
+ Tech.prototype.bufferedPercent = function bufferedPercent() {
+ return _utilsBufferJs.bufferedPercent(this.buffered(), this.duration_);
+ };
/**
* Stops tracking progress by clearing progress interval
@@ -13176,10 +12981,13 @@ var Tech = (function (_Component) {
Tech.prototype.dispose = function dispose() {
// clear out text tracks because we can't reuse them between techs
- var tt = this.textTracks();
- var i = tt.length;
- while (i--) {
- this.removeRemoteTextTrack(tt[i]);
+ var textTracks = this.textTracks();
+
+ if (textTracks) {
+ var i = textTracks.length;
+ while (i--) {
+ this.removeRemoteTextTrack(textTracks[i]);
+ }
}
// Turn off any manual progress or timeupdate tracking
@@ -13194,6 +13002,28 @@ var Tech = (function (_Component) {
_Component.prototype.dispose.call(this);
};
+ /**
+ * When invoked without an argument, returns a MediaError object
+ * representing the current error state of the player or null if
+ * there is no error. When invoked with an argument, set the current
+ * error state of the player.
+ * @param {MediaError=} err Optional an error object
+ * @return {MediaError} the current error object or null
+ * @method error
+ */
+
+ Tech.prototype.error = function error(err) {
+ if (err !== undefined) {
+ if (err instanceof _mediaErrorJs2['default']) {
+ this.error_ = err;
+ } else {
+ this.error_ = new _mediaErrorJs2['default'](err);
+ }
+ this.trigger('error');
+ }
+ return this.error_;
+ };
+
/**
* Return the time ranges that have been played through for the
* current source. This implementation is incomplete. It does not
@@ -13206,9 +13036,9 @@ var Tech = (function (_Component) {
Tech.prototype.played = function played() {
if (this.hasStarted_) {
- return _createTimeRange.createTimeRange(0, 0);
+ return _utilsTimeRangesJs.createTimeRange(0, 0);
}
- return _createTimeRange.createTimeRange();
+ return _utilsTimeRangesJs.createTimeRange();
};
/**
@@ -13237,9 +13067,9 @@ var Tech = (function (_Component) {
var tracks = this.textTracks();
- if (!tracks) {
- return;
- }tracks.addEventListener('removetrack', textTrackListChanges);
+ if (!tracks) return;
+
+ tracks.addEventListener('removetrack', textTrackListChanges);
tracks.addEventListener('addtrack', textTrackListChanges);
this.on('dispose', Fn.bind(this, function () {
@@ -13255,11 +13085,11 @@ var Tech = (function (_Component) {
*/
Tech.prototype.emulateTextTracks = function emulateTextTracks() {
- if (!_window2['default'].WebVTT && this.el().parentNode != null) {
- var script = _document2['default'].createElement('script');
+ if (!_globalWindow2['default']['WebVTT'] && this.el().parentNode != null) {
+ var script = _globalDocument2['default'].createElement('script');
script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';
this.el().parentNode.appendChild(script);
- _window2['default'].WebVTT = true;
+ _globalWindow2['default']['WebVTT'] = true;
}
var tracks = this.textTracks();
@@ -13306,7 +13136,7 @@ var Tech = (function (_Component) {
*/
Tech.prototype.textTracks = function textTracks() {
- this.textTracks_ = this.textTracks_ || new _TextTrackList2['default']();
+ this.textTracks_ = this.textTracks_ || new _tracksTextTrackList2['default']();
return this.textTracks_;
};
@@ -13318,7 +13148,7 @@ var Tech = (function (_Component) {
*/
Tech.prototype.remoteTextTracks = function remoteTextTracks() {
- this.remoteTextTracks_ = this.remoteTextTracks_ || new _TextTrackList2['default']();
+ this.remoteTextTracks_ = this.remoteTextTracks_ || new _tracksTextTrackList2['default']();
return this.remoteTextTracks_;
};
@@ -13381,18 +13211,12 @@ var Tech = (function (_Component) {
Tech.prototype.setPoster = function setPoster() {};
return Tech;
-})(_Component3['default']);
+})(_component2['default']);
-/*
- * List of associated text tracks
- *
- * @type {Array}
- * @private
- */
Tech.prototype.textTracks_;
var createTrackHelper = function createTrackHelper(self, kind, label, language) {
- var options = arguments[4] === undefined ? {} : arguments[4];
+ var options = arguments.length <= 4 || arguments[4] === undefined ? {} : arguments[4];
var tracks = self.textTracks();
@@ -13406,7 +13230,7 @@ var createTrackHelper = function createTrackHelper(self, kind, label, language)
}
options.tech = self;
- var track = new _TextTrack2['default'](options);
+ var track = new _tracksTextTrack2['default'](options);
tracks.addTrack_(track);
return track;
@@ -13521,7 +13345,7 @@ Tech.withSourceHandlers = function (_Tech) {
if (_Tech.nativeSourceHandler) {
sh = _Tech.nativeSourceHandler;
} else {
- _log2['default'].error('No source hander found for the current source.');
+ _utilsLogJs2['default'].error('No source hander found for the current source.');
}
}
@@ -13546,29 +13370,31 @@ Tech.withSourceHandlers = function (_Tech) {
};
};
-_Component3['default'].registerComponent('Tech', Tech);
+_component2['default'].registerComponent('Tech', Tech);
// Old name for Tech
-_Component3['default'].registerComponent('MediaTechController', Tech);
+_component2['default'].registerComponent('MediaTechController', Tech);
exports['default'] = Tech;
module.exports = exports['default'];
-},{"../component":52,"../tracks/text-track":107,"../tracks/text-track-list":105,"../utils/buffer.js":109,"../utils/fn.js":113,"../utils/log.js":116,"../utils/time-ranges.js":119,"global/document":1,"global/window":2}],101:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../component":48,"../media-error.js":83,"../tracks/text-track":103,"../tracks/text-track-list":101,"../utils/buffer.js":105,"../utils/fn.js":109,"../utils/log.js":112,"../utils/time-ranges.js":115,"global/document":1,"global/window":2}],97:[function(_dereq_,module,exports){
/**
* @file text-track-cue-list.js
*/
+'use strict';
-var _import = _dereq_('../utils/browser.js');
+exports.__esModule = true;
-var browser = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document = _dereq_('global/document');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _document2 = _interopRequireWildcard(_document);
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
+
+var browser = _interopRequireWildcard(_utilsBrowserJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/*
* https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist
@@ -13580,21 +13406,11 @@ var _document2 = _interopRequireWildcard(_document);
* };
*/
-var TextTrackCueList = (function (_TextTrackCueList) {
- function TextTrackCueList(_x) {
- return _TextTrackCueList.apply(this, arguments);
- }
-
- TextTrackCueList.toString = function () {
- return _TextTrackCueList.toString();
- };
-
- return TextTrackCueList;
-})(function (cues) {
+var TextTrackCueList = function TextTrackCueList(cues) {
var list = this;
if (browser.IS_IE8) {
- list = _document2['default'].createElement('custom');
+ list = _globalDocument2['default'].createElement('custom');
for (var prop in TextTrackCueList.prototype) {
list[prop] = TextTrackCueList.prototype[prop];
@@ -13612,7 +13428,7 @@ var TextTrackCueList = (function (_TextTrackCueList) {
if (browser.IS_IE8) {
return list;
}
-});
+};
TextTrackCueList.prototype.setCues_ = function (cues) {
var oldLength = this.length || 0;
@@ -13657,47 +13473,49 @@ TextTrackCueList.prototype.getCueById = function (id) {
exports['default'] = TextTrackCueList;
module.exports = exports['default'];
-},{"../utils/browser.js":108,"global/document":1}],102:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../utils/browser.js":104,"global/document":1}],98:[function(_dereq_,module,exports){
/**
* @file text-track-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Menu = _dereq_('../menu/menu.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Menu2 = _interopRequireWildcard(_Menu);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _MenuItem = _dereq_('../menu/menu-item.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _MenuItem2 = _interopRequireWildcard(_MenuItem);
+var _component = _dereq_('../component');
-var _MenuButton = _dereq_('../menu/menu-button.js');
+var _component2 = _interopRequireDefault(_component);
-var _MenuButton2 = _interopRequireWildcard(_MenuButton);
+var _menuMenuJs = _dereq_('../menu/menu.js');
-var _import = _dereq_('../utils/fn.js');
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuItemJs = _dereq_('../menu/menu-item.js');
-var _document = _dereq_('global/document');
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
-var _document2 = _interopRequireWildcard(_document);
+var _menuMenuButtonJs = _dereq_('../menu/menu-button.js');
-var _window = _dereq_('global/window');
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsFnJs = _dereq_('../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
var darkGray = '#222';
var lightGray = '#ccc';
@@ -13725,6 +13543,8 @@ var fontMap = {
*/
var TextTrackDisplay = (function (_Component) {
+ _inherits(TextTrackDisplay, _Component);
+
function TextTrackDisplay(player, options, ready) {
_classCallCheck(this, TextTrackDisplay);
@@ -13738,14 +13558,14 @@ var TextTrackDisplay = (function (_Component) {
// Should probably be moved to an external track loader when we support
// tracks that don't need a display.
player.ready(Fn.bind(this, function () {
- if (player.tech && player.tech.featuresNativeTextTracks) {
+ if (player.tech && player.tech['featuresNativeTextTracks']) {
this.hide();
return;
}
player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));
- var tracks = this.options_.playerOptions.tracks || [];
+ var tracks = this.options_.playerOptions['tracks'] || [];
for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
this.player_.addRemoteTextTrack(track);
@@ -13753,7 +13573,14 @@ var TextTrackDisplay = (function (_Component) {
}));
}
- _inherits(TextTrackDisplay, _Component);
+ /**
+ * Add cue HTML to display
+ *
+ * @param {Number} color Hex number for color, like #f0e
+ * @param {Number} opacity Value for opacity,0.0 - 1.0
+ * @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'
+ * @method constructColor
+ */
/**
* Toggle display texttracks
@@ -13762,7 +13589,7 @@ var TextTrackDisplay = (function (_Component) {
*/
TextTrackDisplay.prototype.toggleDisplay = function toggleDisplay() {
- if (this.player_.tech && this.player_.tech.featuresNativeTextTracks) {
+ if (this.player_.tech && this.player_.tech['featuresNativeTextTracks']) {
this.hide();
} else {
this.show();
@@ -13789,8 +13616,8 @@ var TextTrackDisplay = (function (_Component) {
*/
TextTrackDisplay.prototype.clearDisplay = function clearDisplay() {
- if (typeof _window2['default'].WebVTT === 'function') {
- _window2['default'].WebVTT.processCues(_window2['default'], [], this.el_);
+ if (typeof _globalWindow2['default']['WebVTT'] === 'function') {
+ _globalWindow2['default']['WebVTT']['processCues'](_globalWindow2['default'], [], this.el_);
}
};
@@ -13811,7 +13638,7 @@ var TextTrackDisplay = (function (_Component) {
for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
- if (track.mode === 'showing') {
+ if (track['mode'] === 'showing') {
this.updateForTrack(track);
}
}
@@ -13825,18 +13652,18 @@ var TextTrackDisplay = (function (_Component) {
*/
TextTrackDisplay.prototype.updateForTrack = function updateForTrack(track) {
- if (typeof _window2['default'].WebVTT !== 'function' || !track.activeCues) {
+ if (typeof _globalWindow2['default']['WebVTT'] !== 'function' || !track['activeCues']) {
return;
}
- var overrides = this.player_.textTrackSettings.getValues();
+ var overrides = this.player_['textTrackSettings'].getValues();
var cues = [];
- for (var _i = 0; _i < track.activeCues.length; _i++) {
- cues.push(track.activeCues[_i]);
+ for (var _i = 0; _i < track['activeCues'].length; _i++) {
+ cues.push(track['activeCues'][_i]);
}
- _window2['default'].WebVTT.processCues(_window2['default'], track.activeCues, this.el_);
+ _globalWindow2['default']['WebVTT']['processCues'](_globalWindow2['default'], track['activeCues'], this.el_);
var i = cues.length;
while (i--) {
@@ -13872,7 +13699,7 @@ var TextTrackDisplay = (function (_Component) {
}
}
if (overrides.fontPercent && overrides.fontPercent !== 1) {
- var fontSize = _window2['default'].parseFloat(cueDiv.style.fontSize);
+ var fontSize = _globalWindow2['default'].parseFloat(cueDiv.style.fontSize);
cueDiv.style.fontSize = fontSize * overrides.fontPercent + 'px';
cueDiv.style.height = 'auto';
cueDiv.style.top = 'auto';
@@ -13889,16 +13716,8 @@ var TextTrackDisplay = (function (_Component) {
};
return TextTrackDisplay;
-})(_Component3['default']);
+})(_component2['default']);
-/**
-* Add cue HTML to display
-*
-* @param {Number} color Hex number for color, like #f0e
-* @param {Number} opacity Value for opacity,0.0 - 1.0
-* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'
-* @method constructColor
-*/
function constructColor(color, opacity) {
return 'rgba(' +
// color looks like "#f0e"
@@ -13921,14 +13740,11 @@ function tryUpdateStyle(el, style, rule) {
} catch (e) {}
}
-_Component3['default'].registerComponent('TextTrackDisplay', TextTrackDisplay);
+_component2['default'].registerComponent('TextTrackDisplay', TextTrackDisplay);
exports['default'] = TextTrackDisplay;
module.exports = exports['default'];
-},{"../component":52,"../menu/menu-button.js":88,"../menu/menu-item.js":89,"../menu/menu.js":90,"../utils/fn.js":113,"global/document":1,"global/window":2}],103:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"../component":48,"../menu/menu-button.js":84,"../menu/menu-item.js":85,"../menu/menu.js":86,"../utils/fn.js":109,"global/document":1,"global/window":2}],99:[function(_dereq_,module,exports){
/**
* @file text-track-enums.js
*
@@ -13936,10 +13752,13 @@ exports.__esModule = true;
*
* enum TextTrackMode { "disabled", "hidden", "showing" };
*/
+'use strict';
+
+exports.__esModule = true;
var TextTrackMode = {
- disabled: 'disabled',
- hidden: 'hidden',
- showing: 'showing'
+ 'disabled': 'disabled',
+ 'hidden': 'hidden',
+ 'showing': 'showing'
};
/*
@@ -13948,20 +13767,17 @@ var TextTrackMode = {
* enum TextTrackKind { "subtitles", "captions", "descriptions", "chapters", "metadata" };
*/
var TextTrackKind = {
- subtitles: 'subtitles',
- captions: 'captions',
- descriptions: 'descriptions',
- chapters: 'chapters',
- metadata: 'metadata'
+ 'subtitles': 'subtitles',
+ 'captions': 'captions',
+ 'descriptions': 'descriptions',
+ 'chapters': 'chapters',
+ 'metadata': 'metadata'
};
exports.TextTrackMode = TextTrackMode;
exports.TextTrackKind = TextTrackKind;
-},{}],104:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{}],100:[function(_dereq_,module,exports){
/**
* Utilities for capturing text track state and re-creating tracks
* based on a capture.
@@ -13976,6 +13792,9 @@ exports.__esModule = true;
* @return {Object} a serializable javascript representation of the
* @private
*/
+'use strict';
+
+exports.__esModule = true;
var trackToJson_ = function trackToJson_(track) {
return {
kind: track.kind,
@@ -14045,31 +13864,33 @@ var jsonToTextTracks = function jsonToTextTracks(json, tech) {
exports['default'] = { textTracksToJson: textTracksToJson, jsonToTextTracks: jsonToTextTracks, trackToJson_: trackToJson_ };
module.exports = exports['default'];
-},{}],105:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{}],101:[function(_dereq_,module,exports){
/**
* @file text-track-list.js
*/
+'use strict';
-var _EventTarget = _dereq_('../event-target');
+exports.__esModule = true;
-var _EventTarget2 = _interopRequireWildcard(_EventTarget);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/fn.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Fn = _interopRequireWildcard(_import);
+var _eventTarget = _dereq_('../event-target');
-var _import2 = _dereq_('../utils/browser.js');
+var _eventTarget2 = _interopRequireDefault(_eventTarget);
-var browser = _interopRequireWildcard(_import2);
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _document = _dereq_('global/document');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _document2 = _interopRequireWildcard(_document);
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
+
+var browser = _interopRequireWildcard(_utilsBrowserJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/*
* https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist
@@ -14084,21 +13905,11 @@ var _document2 = _interopRequireWildcard(_document);
* attribute EventHandler onremovetrack;
* };
*/
-var TextTrackList = (function (_TextTrackList) {
- function TextTrackList(_x) {
- return _TextTrackList.apply(this, arguments);
- }
-
- TextTrackList.toString = function () {
- return _TextTrackList.toString();
- };
-
- return TextTrackList;
-})(function (tracks) {
+var TextTrackList = function TextTrackList(tracks) {
var list = this;
if (browser.IS_IE8) {
- list = _document2['default'].createElement('custom');
+ list = _globalDocument2['default'].createElement('custom');
for (var prop in TextTrackList.prototype) {
list[prop] = TextTrackList.prototype[prop];
@@ -14121,9 +13932,9 @@ var TextTrackList = (function (_TextTrackList) {
if (browser.IS_IE8) {
return list;
}
-});
+};
-TextTrackList.prototype = Object.create(_EventTarget2['default'].prototype);
+TextTrackList.prototype = Object.create(_eventTarget2['default'].prototype);
TextTrackList.prototype.constructor = TextTrackList;
/*
@@ -14132,9 +13943,9 @@ TextTrackList.prototype.constructor = TextTrackList;
* removetrack - A track has been removed from the track list.
*/
TextTrackList.prototype.allowedEvents_ = {
- change: 'change',
- addtrack: 'addtrack',
- removetrack: 'removetrack'
+ 'change': 'change',
+ 'addtrack': 'addtrack',
+ 'removetrack': 'removetrack'
};
// emulate attribute EventHandler support to allow for feature detection
@@ -14198,43 +14009,45 @@ TextTrackList.prototype.getTrackById = function (id) {
exports['default'] = TextTrackList;
module.exports = exports['default'];
-},{"../event-target":83,"../utils/browser.js":108,"../utils/fn.js":113,"global/document":1}],106:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../event-target":79,"../utils/browser.js":104,"../utils/fn.js":109,"global/document":1}],102:[function(_dereq_,module,exports){
/**
* @file text-track-settings.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/events.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Events = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import2 = _dereq_('../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import2);
+var _component = _dereq_('../component');
-var _log = _dereq_('../utils/log.js');
+var _component2 = _interopRequireDefault(_component);
-var _log2 = _interopRequireWildcard(_log);
+var _utilsEventsJs = _dereq_('../utils/events.js');
-var _safeParseTuple2 = _dereq_('safe-json-parse/tuple');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _safeParseTuple3 = _interopRequireWildcard(_safeParseTuple2);
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _window = _dereq_('global/window');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsLogJs = _dereq_('../utils/log.js');
+
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
+
+var _safeJsonParseTuple = _dereq_('safe-json-parse/tuple');
+
+var _safeJsonParseTuple2 = _interopRequireDefault(_safeJsonParseTuple);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/**
* Manipulate settings of texttracks
@@ -14246,6 +14059,8 @@ var _window2 = _interopRequireWildcard(_window);
*/
var TextTrackSettings = (function (_Component) {
+ _inherits(TextTrackSettings, _Component);
+
function TextTrackSettings(player, options) {
_classCallCheck(this, TextTrackSettings);
@@ -14290,8 +14105,6 @@ var TextTrackSettings = (function (_Component) {
}
}
- _inherits(TextTrackSettings, _Component);
-
/**
* Create the component's DOM element
*
@@ -14333,21 +14146,21 @@ var TextTrackSettings = (function (_Component) {
var bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));
var windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));
var windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));
- var fontPercent = _window2['default'].parseFloat(getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));
+ var fontPercent = _globalWindow2['default']['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));
var result = {
- backgroundOpacity: bgOpacity,
- textOpacity: textOpacity,
- windowOpacity: windowOpacity,
- edgeStyle: textEdge,
- fontFamily: fontFamily,
- color: fgColor,
- backgroundColor: bgColor,
- windowColor: windowColor,
- fontPercent: fontPercent
+ 'backgroundOpacity': bgOpacity,
+ 'textOpacity': textOpacity,
+ 'windowOpacity': windowOpacity,
+ 'edgeStyle': textEdge,
+ 'fontFamily': fontFamily,
+ 'color': fgColor,
+ 'backgroundColor': bgColor,
+ 'windowColor': windowColor,
+ 'fontPercent': fontPercent
};
for (var _name in result) {
- if (result[_name] === '' || result[_name] === 'none' || _name === 'fontPercent' && result[_name] === 1) {
+ if (result[_name] === '' || result[_name] === 'none' || _name === 'fontPercent' && result[_name] === 1.00) {
delete result[_name];
}
}
@@ -14398,13 +14211,13 @@ var TextTrackSettings = (function (_Component) {
*/
TextTrackSettings.prototype.restoreSettings = function restoreSettings() {
- var _safeParseTuple = _safeParseTuple3['default'](_window2['default'].localStorage.getItem('vjs-text-track-settings'));
+ var _safeParseTuple = _safeJsonParseTuple2['default'](_globalWindow2['default'].localStorage.getItem('vjs-text-track-settings'));
var err = _safeParseTuple[0];
var values = _safeParseTuple[1];
if (err) {
- _log2['default'].error(err);
+ _utilsLogJs2['default'].error(err);
}
if (values) {
@@ -14426,9 +14239,9 @@ var TextTrackSettings = (function (_Component) {
var values = this.getValues();
try {
if (Object.getOwnPropertyNames(values).length > 0) {
- _window2['default'].localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));
+ _globalWindow2['default'].localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));
} else {
- _window2['default'].localStorage.removeItem('vjs-text-track-settings');
+ _globalWindow2['default'].localStorage.removeItem('vjs-text-track-settings');
}
} catch (e) {}
};
@@ -14447,9 +14260,9 @@ var TextTrackSettings = (function (_Component) {
};
return TextTrackSettings;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('TextTrackSettings', TextTrackSettings);
+_component2['default'].registerComponent('TextTrackSettings', TextTrackSettings);
function getSelectedOptionValue(target) {
var selectedOption = undefined;
@@ -14488,55 +14301,57 @@ function captionOptionsMenuTemplate() {
exports['default'] = TextTrackSettings;
module.exports = exports['default'];
-},{"../component":52,"../utils/events.js":112,"../utils/fn.js":113,"../utils/log.js":116,"global/window":2,"safe-json-parse/tuple":49}],107:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/events.js":108,"../utils/fn.js":109,"../utils/log.js":112,"global/window":2,"safe-json-parse/tuple":45}],103:[function(_dereq_,module,exports){
/**
* @file text-track.js
*/
+'use strict';
-var _TextTrackCueList = _dereq_('./text-track-cue-list');
+exports.__esModule = true;
-var _TextTrackCueList2 = _interopRequireWildcard(_TextTrackCueList);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/fn.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Fn = _interopRequireWildcard(_import);
+var _textTrackCueList = _dereq_('./text-track-cue-list');
-var _import2 = _dereq_('../utils/guid.js');
+var _textTrackCueList2 = _interopRequireDefault(_textTrackCueList);
-var Guid = _interopRequireWildcard(_import2);
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _import3 = _dereq_('../utils/browser.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var browser = _interopRequireWildcard(_import3);
+var _utilsGuidJs = _dereq_('../utils/guid.js');
-var _import4 = _dereq_('./text-track-enums');
+var Guid = _interopRequireWildcard(_utilsGuidJs);
-var TextTrackEnum = _interopRequireWildcard(_import4);
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
-var _log = _dereq_('../utils/log.js');
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _log2 = _interopRequireWildcard(_log);
+var _textTrackEnums = _dereq_('./text-track-enums');
-var _EventTarget = _dereq_('../event-target');
+var TextTrackEnum = _interopRequireWildcard(_textTrackEnums);
-var _EventTarget2 = _interopRequireWildcard(_EventTarget);
+var _utilsLogJs = _dereq_('../utils/log.js');
-var _document = _dereq_('global/document');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _document2 = _interopRequireWildcard(_document);
+var _eventTarget = _dereq_('../event-target');
-var _window = _dereq_('global/window');
+var _eventTarget2 = _interopRequireDefault(_eventTarget);
-var _window2 = _interopRequireWildcard(_window);
+var _globalDocument = _dereq_('global/document');
-var _XHR = _dereq_('../xhr.js');
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var _XHR2 = _interopRequireWildcard(_XHR);
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _xhrJs = _dereq_('../xhr.js');
+
+var _xhrJs2 = _interopRequireDefault(_xhrJs);
/*
* https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack
@@ -14560,18 +14375,8 @@ var _XHR2 = _interopRequireWildcard(_XHR);
* attribute EventHandler oncuechange;
* };
*/
-var TextTrack = (function (_TextTrack) {
- function TextTrack() {
- return _TextTrack.apply(this, arguments);
- }
-
- TextTrack.toString = function () {
- return _TextTrack.toString();
- };
-
- return TextTrack;
-})(function () {
- var options = arguments[0] === undefined ? {} : arguments[0];
+var TextTrack = function TextTrack() {
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
if (!options.tech) {
throw new Error('A tech was not provided.');
@@ -14579,7 +14384,7 @@ var TextTrack = (function (_TextTrack) {
var tt = this;
if (browser.IS_IE8) {
- tt = _document2['default'].createElement('custom');
+ tt = _globalDocument2['default'].createElement('custom');
for (var prop in TextTrack.prototype) {
tt[prop] = TextTrack.prototype[prop];
@@ -14588,11 +14393,11 @@ var TextTrack = (function (_TextTrack) {
tt.tech_ = options.tech;
- var mode = TextTrackEnum.TextTrackMode[options.mode] || 'disabled';
- var kind = TextTrackEnum.TextTrackKind[options.kind] || 'subtitles';
- var label = options.label || '';
- var language = options.language || options.srclang || '';
- var id = options.id || 'vjs_text_track_' + Guid.newGUID();
+ var mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';
+ var kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';
+ var label = options['label'] || '';
+ var language = options['language'] || options['srclang'] || '';
+ var id = options['id'] || 'vjs_text_track_' + Guid.newGUID();
if (kind === 'metadata' || kind === 'chapters') {
mode = 'hidden';
@@ -14601,14 +14406,14 @@ var TextTrack = (function (_TextTrack) {
tt.cues_ = [];
tt.activeCues_ = [];
- var cues = new _TextTrackCueList2['default'](tt.cues_);
- var activeCues = new _TextTrackCueList2['default'](tt.activeCues_);
+ var cues = new _textTrackCueList2['default'](tt.cues_);
+ var activeCues = new _textTrackCueList2['default'](tt.activeCues_);
var changed = false;
var timeupdateHandler = Fn.bind(tt, function () {
- this.activeCues;
+ this['activeCues'];
if (changed) {
- this.trigger('cuechange');
+ this['trigger']('cuechange');
changed = false;
}
});
@@ -14677,18 +14482,18 @@ var TextTrack = (function (_TextTrack) {
return null;
}
- if (this.cues.length === 0) {
+ if (this['cues'].length === 0) {
return activeCues; // nothing to do
}
var ct = this.tech_.currentTime();
var active = [];
- for (var i = 0, l = this.cues.length; i < l; i++) {
- var cue = this.cues[i];
- if (cue.startTime <= ct && cue.endTime >= ct) {
+ for (var i = 0, l = this['cues'].length; i < l; i++) {
+ var cue = this['cues'][i];
+ if (cue['startTime'] <= ct && cue['endTime'] >= ct) {
active.push(cue);
- } else if (cue.startTime === cue.endTime && cue.startTime <= ct && cue.startTime + 0.5 >= ct) {
+ } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {
active.push(cue);
}
}
@@ -14723,16 +14528,16 @@ var TextTrack = (function (_TextTrack) {
if (browser.IS_IE8) {
return tt;
}
-});
+};
-TextTrack.prototype = Object.create(_EventTarget2['default'].prototype);
+TextTrack.prototype = Object.create(_eventTarget2['default'].prototype);
TextTrack.prototype.constructor = TextTrack;
/*
* cuechange - One or more cues in the track have become active or stopped being active.
*/
TextTrack.prototype.allowedEvents_ = {
- cuechange: 'cuechange'
+ 'cuechange': 'cuechange'
};
TextTrack.prototype.addCue = function (cue) {
@@ -14747,7 +14552,7 @@ TextTrack.prototype.addCue = function (cue) {
}
this.cues_.push(cue);
- this.cues.setCues_(this.cues_);
+ this['cues'].setCues_(this.cues_);
};
TextTrack.prototype.removeCue = function (removeCue) {
@@ -14769,41 +14574,31 @@ TextTrack.prototype.removeCue = function (removeCue) {
/*
* Downloading stuff happens below this point
*/
-var parseCues = (function (_parseCues) {
- function parseCues(_x, _x2) {
- return _parseCues.apply(this, arguments);
- }
-
- parseCues.toString = function () {
- return _parseCues.toString();
- };
-
- return parseCues;
-})(function (srcContent, track) {
- if (typeof _window2['default'].WebVTT !== 'function') {
+var parseCues = function parseCues(srcContent, track) {
+ if (typeof _globalWindow2['default']['WebVTT'] !== 'function') {
//try again a bit later
- return _window2['default'].setTimeout(function () {
+ return _globalWindow2['default'].setTimeout(function () {
parseCues(srcContent, track);
}, 25);
}
- var parser = new _window2['default'].WebVTT.Parser(_window2['default'], _window2['default'].vttjs, _window2['default'].WebVTT.StringDecoder());
+ var parser = new _globalWindow2['default']['WebVTT']['Parser'](_globalWindow2['default'], _globalWindow2['default']['vttjs'], _globalWindow2['default']['WebVTT']['StringDecoder']());
- parser.oncue = function (cue) {
+ parser['oncue'] = function (cue) {
track.addCue(cue);
};
- parser.onparsingerror = function (error) {
- _log2['default'].error(error);
+ parser['onparsingerror'] = function (error) {
+ _utilsLogJs2['default'].error(error);
};
- parser.parse(srcContent);
- parser.flush();
-});
+ parser['parse'](srcContent);
+ parser['flush']();
+};
var loadTrack = function loadTrack(src, track) {
- _XHR2['default'](src, Fn.bind(this, function (err, response, responseBody) {
+ _xhrJs2['default'](src, Fn.bind(this, function (err, response, responseBody) {
if (err) {
- return _log2['default'].error(err);
+ return _utilsLogJs2['default'].error(err, response);
}
track.loaded_ = true;
@@ -14848,25 +14643,27 @@ var indexOf = function indexOf(searchElement, fromIndex) {
exports['default'] = TextTrack;
module.exports = exports['default'];
-},{"../event-target":83,"../utils/browser.js":108,"../utils/fn.js":113,"../utils/guid.js":115,"../utils/log.js":116,"../xhr.js":123,"./text-track-cue-list":101,"./text-track-enums":103,"global/document":1,"global/window":2}],108:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../event-target":79,"../utils/browser.js":104,"../utils/fn.js":109,"../utils/guid.js":111,"../utils/log.js":112,"../xhr.js":119,"./text-track-cue-list":97,"./text-track-enums":99,"global/document":1,"global/window":2}],104:[function(_dereq_,module,exports){
/**
* @file browser.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _window = _dereq_('global/window');
+var _globalDocument = _dereq_('global/document');
-var _window2 = _interopRequireWildcard(_window);
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var USER_AGENT = _window2['default'].navigator.userAgent;
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var USER_AGENT = _globalWindow2['default'].navigator.userAgent;
+var webkitVersionMap = /AppleWebKit\/([\d.]+)/i.exec(USER_AGENT);
+var appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;
/*
* Device is an iPhone
@@ -14919,8 +14716,10 @@ var ANDROID_VERSION = (function () {
exports.ANDROID_VERSION = ANDROID_VERSION;
// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser
var IS_OLD_ANDROID = IS_ANDROID && /webkit/i.test(USER_AGENT) && ANDROID_VERSION < 2.3;
-
exports.IS_OLD_ANDROID = IS_OLD_ANDROID;
+var IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;
+
+exports.IS_NATIVE_ANDROID = IS_NATIVE_ANDROID;
var IS_FIREFOX = /Firefox/i.test(USER_AGENT);
exports.IS_FIREFOX = IS_FIREFOX;
var IS_CHROME = /Chrome/i.test(USER_AGENT);
@@ -14928,15 +14727,21 @@ exports.IS_CHROME = IS_CHROME;
var IS_IE8 = /MSIE\s8\.0/.test(USER_AGENT);
exports.IS_IE8 = IS_IE8;
-var TOUCH_ENABLED = !!('ontouchstart' in _window2['default'] || _window2['default'].DocumentTouch && _document2['default'] instanceof _window2['default'].DocumentTouch);
+var TOUCH_ENABLED = !!('ontouchstart' in _globalWindow2['default'] || _globalWindow2['default'].DocumentTouch && _globalDocument2['default'] instanceof _globalWindow2['default'].DocumentTouch);
exports.TOUCH_ENABLED = TOUCH_ENABLED;
-var BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _document2['default'].createElement('video').style);
+var BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _globalDocument2['default'].createElement('video').style);
exports.BACKGROUND_SIZE_SUPPORTED = BACKGROUND_SIZE_SUPPORTED;
-},{"global/document":1,"global/window":2}],109:[function(_dereq_,module,exports){
+},{"global/document":1,"global/window":2}],105:[function(_dereq_,module,exports){
+/**
+ * @file buffer.js
+ */
'use strict';
exports.__esModule = true;
+exports.bufferedPercent = bufferedPercent;
+
+var _timeRangesJs = _dereq_('./time-ranges.js');
/**
* Compute how much your video has been buffered
@@ -14947,12 +14752,6 @@ exports.__esModule = true;
* @private
* @function bufferedPercent
*/
-exports.bufferedPercent = bufferedPercent;
-/**
- * @file buffer.js
- */
-
-var _createTimeRange = _dereq_('./time-ranges.js');
function bufferedPercent(buffered, duration) {
var bufferedDuration = 0,
@@ -14964,7 +14763,7 @@ function bufferedPercent(buffered, duration) {
}
if (!buffered || !buffered.length) {
- buffered = _createTimeRange.createTimeRange(0, 0);
+ buffered = _timeRangesJs.createTimeRange(0, 0);
}
for (var i = 0; i < buffered.length; i++) {
@@ -14982,16 +14781,16 @@ function bufferedPercent(buffered, duration) {
return bufferedDuration / duration;
}
-},{"./time-ranges.js":119}],110:[function(_dereq_,module,exports){
+},{"./time-ranges.js":115}],106:[function(_dereq_,module,exports){
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
-var _log = _dereq_('./log.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _log2 = _interopRequireWildcard(_log);
+var _logJs = _dereq_('./log.js');
+
+var _logJs2 = _interopRequireDefault(_logJs);
/**
* Object containing the default behaviors for available handler methods.
@@ -15024,7 +14823,7 @@ var defaultBehaviors = {
*/
exports['default'] = function (target) {
- var messages = arguments[1] === undefined ? {} : arguments[1];
+ var messages = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
if (typeof Proxy === 'function') {
var _ret = (function () {
@@ -15035,7 +14834,7 @@ exports['default'] = function (target) {
Object.keys(messages).forEach(function (key) {
if (defaultBehaviors.hasOwnProperty(key)) {
handler[key] = function () {
- _log2['default'].warn(messages[key]);
+ _logJs2['default'].warn(messages[key]);
return defaultBehaviors[key].apply(this, arguments);
};
}
@@ -15053,12 +14852,43 @@ exports['default'] = function (target) {
module.exports = exports['default'];
-},{"./log.js":116}],111:[function(_dereq_,module,exports){
+},{"./log.js":112}],107:[function(_dereq_,module,exports){
+/**
+ * @file dom.js
+ */
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
+exports.getEl = getEl;
+exports.createEl = createEl;
+exports.insertElFirst = insertElFirst;
+exports.getElData = getElData;
+exports.hasElData = hasElData;
+exports.removeElData = removeElData;
+exports.hasElClass = hasElClass;
+exports.addElClass = addElClass;
+exports.removeElClass = removeElClass;
+exports.setElAttributes = setElAttributes;
+exports.getElAttributes = getElAttributes;
+exports.blockTextSelection = blockTextSelection;
+exports.unblockTextSelection = unblockTextSelection;
+exports.findElPosition = findElPosition;
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _guidJs = _dereq_('./guid.js');
+
+var Guid = _interopRequireWildcard(_guidJs);
/**
* Shorthand for document.getElementById()
@@ -15068,7 +14898,14 @@ exports.__esModule = true;
* @return {Element} Element with supplied ID
* @function getEl
*/
-exports.getEl = getEl;
+
+function getEl(id) {
+ if (id.indexOf('#') === 0) {
+ id = id.slice(1);
+ }
+
+ return _globalDocument2['default'].getElementById(id);
+}
/**
* Creates an element and applies properties.
@@ -15078,151 +14915,12 @@ exports.getEl = getEl;
* @return {Element}
* @function createEl
*/
-exports.createEl = createEl;
-
-/**
- * Insert an element as the first child node of another
- *
- * @param {Element} child Element to insert
- * @param {Element} parent Element to insert child into
- * @private
- * @function insertElFirst
- */
-exports.insertElFirst = insertElFirst;
-
-/**
- * Returns the cache object where data for an element is stored
- *
- * @param {Element} el Element to store data for.
- * @return {Object}
- * @function getElData
- */
-exports.getElData = getElData;
-
-/**
- * Returns whether or not an element has cached data
- *
- * @param {Element} el A dom element
- * @return {Boolean}
- * @private
- * @function hasElData
- */
-exports.hasElData = hasElData;
-
-/**
- * Delete data for the element from the cache and the guid attr from getElementById
- *
- * @param {Element} el Remove data for an element
- * @private
- * @function removeElData
- */
-exports.removeElData = removeElData;
-
-/**
- * Check if an element has a CSS class
- *
- * @param {Element} element Element to check
- * @param {String} classToCheck Classname to check
- * @function hasElClass
- */
-exports.hasElClass = hasElClass;
-
-/**
- * Add a CSS class name to an element
- *
- * @param {Element} element Element to add class name to
- * @param {String} classToAdd Classname to add
- * @function addElClass
- */
-exports.addElClass = addElClass;
-
-/**
- * Remove a CSS class name from an element
- *
- * @param {Element} element Element to remove from class name
- * @param {String} classToRemove Classname to remove
- * @function removeElClass
- */
-exports.removeElClass = removeElClass;
-
-/**
- * Apply attributes to an HTML element.
- *
- * @param {Element} el Target element.
- * @param {Object=} attributes Element attributes to be applied.
- * @private
- * @function setElAttributes
- */
-exports.setElAttributes = setElAttributes;
-
-/**
- * Get an element's attribute values, as defined on the HTML tag
- * Attributes are not the same as properties. They're defined on the tag
- * or with setAttribute (which shouldn't be used with HTML)
- * This will return true or false for boolean attributes.
- *
- * @param {Element} tag Element from which to get tag attributes
- * @return {Object}
- * @private
- * @function getElAttributes
- */
-exports.getElAttributes = getElAttributes;
-
-/**
- * Attempt to block the ability to select text while dragging controls
- *
- * @return {Boolean}
- * @method blockTextSelection
- */
-exports.blockTextSelection = blockTextSelection;
-
-/**
- * Turn off text selection blocking
- *
- * @return {Boolean}
- * @method unblockTextSelection
- */
-exports.unblockTextSelection = unblockTextSelection;
-
-/**
- * Offset Left
- * getBoundingClientRect technique from
- * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/
- *
- * @param {Element} el Element from which to get offset
- * @return {Object=}
- * @method findElPosition
- */
-exports.findElPosition = findElPosition;
-/**
- * @file dom.js
- */
-
-var _document = _dereq_('global/document');
-
-var _document2 = _interopRequireWildcard(_document);
-
-var _window = _dereq_('global/window');
-
-var _window2 = _interopRequireWildcard(_window);
-
-var _import = _dereq_('./guid.js');
-
-var Guid = _interopRequireWildcard(_import);
-
-function getEl(id) {
- if (id.indexOf('#') === 0) {
- id = id.slice(1);
- }
-
- return _document2['default'].getElementById(id);
-}
function createEl() {
- var tagName = arguments[0] === undefined ? 'div' : arguments[0];
- var properties = arguments[1] === undefined ? {} : arguments[1];
+ var tagName = arguments.length <= 0 || arguments[0] === undefined ? 'div' : arguments[0];
+ var properties = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
- var el = _document2['default'].createElement(tagName);
+ var el = _globalDocument2['default'].createElement(tagName);
Object.getOwnPropertyNames(properties).forEach(function (propName) {
var val = properties[propName];
@@ -15245,6 +14943,15 @@ function createEl() {
return el;
}
+/**
+ * Insert an element as the first child node of another
+ *
+ * @param {Element} child Element to insert
+ * @param {Element} parent Element to insert child into
+ * @private
+ * @function insertElFirst
+ */
+
function insertElFirst(child, parent) {
if (parent.firstChild) {
parent.insertBefore(child, parent.firstChild);
@@ -15271,6 +14978,15 @@ var elData = {};
* @private
*/
var elIdAttr = 'vdata' + new Date().getTime();
+
+/**
+ * Returns the cache object where data for an element is stored
+ *
+ * @param {Element} el Element to store data for.
+ * @return {Object}
+ * @function getElData
+ */
+
function getElData(el) {
var id = el[elIdAttr];
@@ -15285,6 +15001,15 @@ function getElData(el) {
return elData[id];
}
+/**
+ * Returns whether or not an element has cached data
+ *
+ * @param {Element} el A dom element
+ * @return {Boolean}
+ * @private
+ * @function hasElData
+ */
+
function hasElData(el) {
var id = el[elIdAttr];
@@ -15295,6 +15020,14 @@ function hasElData(el) {
return !!Object.getOwnPropertyNames(elData[id]).length;
}
+/**
+ * Delete data for the element from the cache and the guid attr from getElementById
+ *
+ * @param {Element} el Remove data for an element
+ * @private
+ * @function removeElData
+ */
+
function removeElData(el) {
var id = el[elIdAttr];
@@ -15318,16 +15051,40 @@ function removeElData(el) {
}
}
+/**
+ * Check if an element has a CSS class
+ *
+ * @param {Element} element Element to check
+ * @param {String} classToCheck Classname to check
+ * @function hasElClass
+ */
+
function hasElClass(element, classToCheck) {
return (' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1;
}
+/**
+ * Add a CSS class name to an element
+ *
+ * @param {Element} element Element to add class name to
+ * @param {String} classToAdd Classname to add
+ * @function addElClass
+ */
+
function addElClass(element, classToAdd) {
if (!hasElClass(element, classToAdd)) {
element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;
}
}
+/**
+ * Remove a CSS class name from an element
+ *
+ * @param {Element} element Element to remove from class name
+ * @param {String} classToRemove Classname to remove
+ * @function removeElClass
+ */
+
function removeElClass(element, classToRemove) {
if (!hasElClass(element, classToRemove)) {
return;
@@ -15345,6 +15102,15 @@ function removeElClass(element, classToRemove) {
element.className = classNames.join(' ');
}
+/**
+ * Apply attributes to an HTML element.
+ *
+ * @param {Element} el Target element.
+ * @param {Object=} attributes Element attributes to be applied.
+ * @private
+ * @function setElAttributes
+ */
+
function setElAttributes(el, attributes) {
Object.getOwnPropertyNames(attributes).forEach(function (attrName) {
var attrValue = attributes[attrName];
@@ -15357,6 +15123,18 @@ function setElAttributes(el, attributes) {
});
}
+/**
+ * Get an element's attribute values, as defined on the HTML tag
+ * Attributes are not the same as properties. They're defined on the tag
+ * or with setAttribute (which shouldn't be used with HTML)
+ * This will return true or false for boolean attributes.
+ *
+ * @param {Element} tag Element from which to get tag attributes
+ * @return {Object}
+ * @private
+ * @function getElAttributes
+ */
+
function getElAttributes(tag) {
var obj, knownBooleans, attrs, attrName, attrVal;
@@ -15390,19 +15168,43 @@ function getElAttributes(tag) {
return obj;
}
+/**
+ * Attempt to block the ability to select text while dragging controls
+ *
+ * @return {Boolean}
+ * @method blockTextSelection
+ */
+
function blockTextSelection() {
- _document2['default'].body.focus();
- _document2['default'].onselectstart = function () {
+ _globalDocument2['default'].body.focus();
+ _globalDocument2['default'].onselectstart = function () {
return false;
};
}
+/**
+ * Turn off text selection blocking
+ *
+ * @return {Boolean}
+ * @method unblockTextSelection
+ */
+
function unblockTextSelection() {
- _document2['default'].onselectstart = function () {
+ _globalDocument2['default'].onselectstart = function () {
return true;
};
}
+/**
+ * Offset Left
+ * getBoundingClientRect technique from
+ * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/
+ *
+ * @param {Element} el Element from which to get offset
+ * @return {Object=}
+ * @method findElPosition
+ */
+
function findElPosition(el) {
var box = undefined;
@@ -15417,15 +15219,15 @@ function findElPosition(el) {
};
}
- var docEl = _document2['default'].documentElement;
- var body = _document2['default'].body;
+ var docEl = _globalDocument2['default'].documentElement;
+ var body = _globalDocument2['default'].body;
var clientLeft = docEl.clientLeft || body.clientLeft || 0;
- var scrollLeft = _window2['default'].pageXOffset || body.scrollLeft;
+ var scrollLeft = _globalWindow2['default'].pageXOffset || body.scrollLeft;
var left = box.left + scrollLeft - clientLeft;
var clientTop = docEl.clientTop || body.clientTop || 0;
- var scrollTop = _window2['default'].pageYOffset || body.scrollTop;
+ var scrollTop = _globalWindow2['default'].pageYOffset || body.scrollTop;
var top = box.top + scrollTop - clientTop;
// Android sometimes returns slightly off decimal values, so need to round
@@ -15435,12 +15237,44 @@ function findElPosition(el) {
};
}
-},{"./guid.js":115,"global/document":1,"global/window":2}],112:[function(_dereq_,module,exports){
+},{"./guid.js":111,"global/document":1,"global/window":2}],108:[function(_dereq_,module,exports){
+/**
+ * @file events.js
+ *
+ * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)
+ * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)
+ * This should work very similarly to jQuery's events, however it's based off the book version which isn't as
+ * robust as jquery's, so there's probably some differences.
+ */
+
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
+exports.on = on;
+exports.off = off;
+exports.trigger = trigger;
+exports.one = one;
+exports.fixEvent = fixEvent;
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
+
+var _domJs = _dereq_('./dom.js');
+
+var Dom = _interopRequireWildcard(_domJs);
+
+var _guidJs = _dereq_('./guid.js');
+
+var Guid = _interopRequireWildcard(_guidJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* Add an event listener to element
@@ -15453,72 +15287,6 @@ exports.__esModule = true;
* @param {Function} fn Event listener.
* @method on
*/
-exports.on = on;
-
-/**
- * Removes event listeners from an element
- *
- * @param {Element|Object} elem Object to remove listeners from
- * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.
- * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.
- * @method off
- */
-exports.off = off;
-
-/**
- * Trigger an event for an element
- *
- * @param {Element|Object} elem Element to trigger an event on
- * @param {Event|Object|String} event A string (the type) or an event object with a type attribute
- * @param {Object} [hash] data hash to pass along with the event
- * @return {Boolean=} Returned only if default was prevented
- * @method trigger
- */
-exports.trigger = trigger;
-
-/**
- * Trigger a listener only once for an event
- *
- * @param {Element|Object} elem Element or object to
- * @param {String|Array} type Name/type of event
- * @param {Function} fn Event handler function
- * @method one
- */
-exports.one = one;
-
-/**
- * Fix a native event to have standard property values
- *
- * @param {Object} event Event object to fix
- * @return {Object}
- * @private
- * @method fixEvent
- */
-exports.fixEvent = fixEvent;
-/**
- * @file events.js
- *
- * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)
- * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)
- * This should work very similarly to jQuery's events, however it's based off the book version which isn't as
- * robust as jquery's, so there's probably some differences.
- */
-
-var _import = _dereq_('./dom.js');
-
-var Dom = _interopRequireWildcard(_import);
-
-var _import2 = _dereq_('./guid.js');
-
-var Guid = _interopRequireWildcard(_import2);
-
-var _window = _dereq_('global/window');
-
-var _window2 = _interopRequireWildcard(_window);
-
-var _document = _dereq_('global/document');
-
-var _document2 = _interopRequireWildcard(_document);
function on(elem, type, fn) {
if (Array.isArray(type)) {
@@ -15570,11 +15338,20 @@ function on(elem, type, fn) {
}
}
+/**
+ * Removes event listeners from an element
+ *
+ * @param {Element|Object} elem Object to remove listeners from
+ * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.
+ * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.
+ * @method off
+ */
+
function off(elem, type, fn) {
// Don't want to add a cache object through getElData if not needed
- if (!Dom.hasElData(elem)) {
- return;
- }var data = Dom.getElData(elem);
+ if (!Dom.hasElData(elem)) return;
+
+ var data = Dom.getElData(elem);
// If no events exist, nothing to unbind
if (!data.handlers) {
@@ -15601,9 +15378,9 @@ function off(elem, type, fn) {
var handlers = data.handlers[type];
// If no handlers exist, nothing to unbind
- if (!handlers) {
- return;
- } // If no listener was provided, remove all listeners for type
+ if (!handlers) return;
+
+ // If no listener was provided, remove all listeners for type
if (!fn) {
removeType(type);
return;
@@ -15621,6 +15398,16 @@ function off(elem, type, fn) {
_cleanUpEvents(elem, type);
}
+/**
+ * Trigger an event for an element
+ *
+ * @param {Element|Object} elem Element to trigger an event on
+ * @param {Event|Object|String} event A string (the type) or an event object with a type attribute
+ * @param {Object} [hash] data hash to pass along with the event
+ * @return {Boolean=} Returned only if default was prevented
+ * @method trigger
+ */
+
function trigger(elem, event, hash) {
// Fetches element data and a reference to the parent (for bubbling).
// Don't want to add a data object to cache for every parent,
@@ -15649,48 +15436,56 @@ function trigger(elem, event, hash) {
// If at the top of the DOM, triggers the default action unless disabled.
} else if (!parent && !event.defaultPrevented) {
- var targetData = Dom.getElData(event.target);
+ var targetData = Dom.getElData(event.target);
- // Checks if the target has a default action for this event.
- if (event.target[event.type]) {
- // Temporarily disables event dispatching on the target as we have already executed the handler.
- targetData.disabled = true;
- // Executes the default action.
- if (typeof event.target[event.type] === 'function') {
- event.target[event.type]();
+ // Checks if the target has a default action for this event.
+ if (event.target[event.type]) {
+ // Temporarily disables event dispatching on the target as we have already executed the handler.
+ targetData.disabled = true;
+ // Executes the default action.
+ if (typeof event.target[event.type] === 'function') {
+ event.target[event.type]();
+ }
+ // Re-enables event dispatching.
+ targetData.disabled = false;
}
- // Re-enables event dispatching.
- targetData.disabled = false;
}
- }
// Inform the triggerer if the default was prevented by returning false
return !event.defaultPrevented;
}
+/**
+ * Trigger a listener only once for an event
+ *
+ * @param {Element|Object} elem Element or object to
+ * @param {String|Array} type Name/type of event
+ * @param {Function} fn Event handler function
+ * @method one
+ */
+
function one(elem, type, fn) {
if (Array.isArray(type)) {
return _handleMultipleEvents(one, elem, type, fn);
}
- var func = (function (_func) {
- function func() {
- return _func.apply(this, arguments);
- }
-
- func.toString = function () {
- return _func.toString();
- };
-
- return func;
- })(function () {
+ var func = function func() {
off(elem, type, func);
fn.apply(this, arguments);
- });
+ };
// copy the guid to the new function so it can removed using the original function's ID
func.guid = fn.guid = fn.guid || Guid.newGUID();
on(elem, type, func);
}
+/**
+ * Fix a native event to have standard property values
+ *
+ * @param {Object} event Event object to fix
+ * @return {Object}
+ * @private
+ * @method fixEvent
+ */
+
function fixEvent(event) {
function returnTrue() {
@@ -15706,7 +15501,7 @@ function fixEvent(event) {
// other expected methods like isPropagationStopped. Seems to be a problem
// with the Javascript Ninja code. So we're just overriding all events now.
if (!event || !event.isPropagationStopped) {
- var old = event || _window2['default'].event;
+ var old = event || _globalWindow2['default'].event;
event = {};
// Clone the old object so that we can modify the values event = {};
@@ -15728,7 +15523,7 @@ function fixEvent(event) {
// The event occurred on this element
if (!event.target) {
- event.target = event.srcElement || _document2['default'];
+ event.target = event.srcElement || _globalDocument2['default'];
}
// Handle which other element the event is related to
@@ -15771,8 +15566,8 @@ function fixEvent(event) {
// Handle mouse position
if (event.clientX != null) {
- var doc = _document2['default'].documentElement,
- body = _document2['default'].body;
+ var doc = _globalDocument2['default'].documentElement,
+ body = _globalDocument2['default'].body;
event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
@@ -15847,15 +15642,15 @@ function _handleMultipleEvents(fn, elem, types, callback) {
});
}
-},{"./dom.js":111,"./guid.js":115,"global/document":1,"global/window":2}],113:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"./dom.js":107,"./guid.js":111,"global/document":1,"global/window":2}],109:[function(_dereq_,module,exports){
/**
* @file fn.js
*/
+'use strict';
-var _newGUID = _dereq_('./guid.js');
+exports.__esModule = true;
+
+var _guidJs = _dereq_('./guid.js');
/**
* Bind (a.k.a proxy or Context). A simple method for changing the context of a function
@@ -15871,7 +15666,7 @@ var _newGUID = _dereq_('./guid.js');
var bind = function bind(context, fn, uid) {
// Make sure the function has a unique ID
if (!fn.guid) {
- fn.guid = _newGUID.newGUID();
+ fn.guid = _guidJs.newGUID();
}
// Create the new function that changes the context
@@ -15891,10 +15686,7 @@ var bind = function bind(context, fn, uid) {
};
exports.bind = bind;
-},{"./guid.js":115}],114:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"./guid.js":111}],110:[function(_dereq_,module,exports){
/**
* @file format-time.js
*
@@ -15908,8 +15700,11 @@ exports.__esModule = true;
* @private
* @function formatTime
*/
+'use strict';
+
+exports.__esModule = true;
function formatTime(seconds) {
- var guide = arguments[1] === undefined ? seconds : arguments[1];
+ var guide = arguments.length <= 1 || arguments[1] === undefined ? seconds : arguments[1];
return (function () {
var s = Math.floor(seconds % 60);
var m = Math.floor(seconds / 60 % 60);
@@ -15941,18 +15736,7 @@ function formatTime(seconds) {
exports['default'] = formatTime;
module.exports = exports['default'];
-},{}],115:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
-
-/**
- * Get the next unique ID
- *
- * @return {String}
- * @function newGUID
- */
-exports.newGUID = newGUID;
+},{}],111:[function(_dereq_,module,exports){
/**
* @file guid.js
*
@@ -15960,24 +15744,36 @@ exports.newGUID = newGUID;
* @type {Number}
* @private
*/
+"use strict";
+
+exports.__esModule = true;
+exports.newGUID = newGUID;
var _guid = 1;
+
+/**
+ * Get the next unique ID
+ *
+ * @return {String}
+ * @function newGUID
+ */
+
function newGUID() {
return _guid++;
}
-},{}],116:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{}],112:[function(_dereq_,module,exports){
/**
* @file log.js
*/
+'use strict';
-var _window = _dereq_('global/window');
+exports.__esModule = true;
-var _window2 = _interopRequireWildcard(_window);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/**
* Log plain debug messages
@@ -16023,10 +15819,10 @@ function _logType(type, args) {
// in the function makes it easier to test cases where console doesn't exist
var noop = function noop() {};
- var console = _window2['default'].console || {
- log: noop,
- warn: noop,
- error: noop
+ var console = _globalWindow2['default']['console'] || {
+ 'log': noop,
+ 'warn': noop,
+ 'error': noop
};
if (type) {
@@ -16055,30 +15851,20 @@ function _logType(type, args) {
exports['default'] = log;
module.exports = exports['default'];
-},{"global/window":2}],117:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
-
-/**
- * Merge one or more options objects, recursively merging **only**
- * plain object properties. Previously `deepMerge`.
- *
- * @param {...Object} source One or more objects to merge
- * @returns {Object} a new object that is the union of all
- * provided objects
- * @function mergeOptions
- */
-exports['default'] = mergeOptions;
+},{"global/window":2}],113:[function(_dereq_,module,exports){
/**
* @file merge-options.js
*/
+'use strict';
-var _merge = _dereq_('lodash-compat/object/merge');
+exports.__esModule = true;
+exports['default'] = mergeOptions;
-var _merge2 = _interopRequireWildcard(_merge);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');
+
+var _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);
function isPlain(obj) {
return !!obj && typeof obj === 'object' && obj.toString() === '[object Object]' && obj.constructor === Object;
@@ -16105,6 +15891,17 @@ var customizer = function customizer(destination, source) {
return mergeOptions(source);
}
};
+
+/**
+ * Merge one or more options objects, recursively merging **only**
+ * plain object properties. Previously `deepMerge`.
+ *
+ * @param {...Object} source One or more objects to merge
+ * @returns {Object} a new object that is the union of all
+ * provided objects
+ * @function mergeOptions
+ */
+
function mergeOptions() {
// contruct the call dynamically to handle the variable number of
// objects to merge
@@ -16117,7 +15914,7 @@ function mergeOptions() {
// customize conflict resolution to match our historical merge behavior
args.push(customizer);
- _merge2['default'].apply(null, args);
+ _lodashCompatObjectMerge2['default'].apply(null, args);
// return the mutated result object
return args[0];
@@ -16125,19 +15922,19 @@ function mergeOptions() {
module.exports = exports['default'];
-},{"lodash-compat/object/merge":40}],118:[function(_dereq_,module,exports){
+},{"lodash-compat/object/merge":37}],114:[function(_dereq_,module,exports){
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
-var _document = _dereq_('global/document');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document2 = _interopRequireWildcard(_document);
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
var createStyleElement = function createStyleElement(className) {
- var style = _document2['default'].createElement('style');
+ var style = _globalDocument2['default'].createElement('style');
style.className = className;
return style;
@@ -16153,10 +15950,7 @@ var setTextContent = function setTextContent(el, content) {
};
exports.setTextContent = setTextContent;
-},{"global/document":1}],119:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"global/document":1}],115:[function(_dereq_,module,exports){
/**
* @file time-ranges.js
*
@@ -16171,10 +15965,13 @@ exports.__esModule = true;
* @private
* @method createTimeRange
*/
+'use strict';
+
+exports.__esModule = true;
exports.createTimeRange = createTimeRange;
-function createTimeRange(start, end) {
- if (start === undefined && end === undefined) {
+function createTimeRange(_start, _end) {
+ if (_start === undefined && _end === undefined) {
return {
length: 0,
start: function start() {
@@ -16187,39 +15984,16 @@ function createTimeRange(start, end) {
}
return {
length: 1,
- start: (function (_start) {
- function start() {
- return _start.apply(this, arguments);
- }
-
- start.toString = function () {
- return _start.toString();
- };
-
- return start;
- })(function () {
- return start;
- }),
- end: (function (_end) {
- function end() {
- return _end.apply(this, arguments);
- }
-
- end.toString = function () {
- return _end.toString();
- };
-
- return end;
- })(function () {
- return end;
- })
+ start: function start() {
+ return _start;
+ },
+ end: function end() {
+ return _end;
+ }
};
}
-},{}],120:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
+},{}],116:[function(_dereq_,module,exports){
/**
* @file to-title-case.js
*
@@ -16230,6 +16004,9 @@ exports.__esModule = true;
* @private
* @method toTitleCase
*/
+"use strict";
+
+exports.__esModule = true;
function toTitleCase(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
@@ -16237,19 +16014,19 @@ function toTitleCase(string) {
exports["default"] = toTitleCase;
module.exports = exports["default"];
-},{}],121:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{}],117:[function(_dereq_,module,exports){
/**
* @file url.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* Resolve and parse the elements of a URL
@@ -16262,7 +16039,7 @@ var parseUrl = function parseUrl(url) {
var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];
// add the url to an anchor and let the browser parse the URL
- var a = _document2['default'].createElement('a');
+ var a = _globalDocument2['default'].createElement('a');
a.href = url;
// IE8 (and 9?) Fix
@@ -16271,12 +16048,12 @@ var parseUrl = function parseUrl(url) {
var addToBody = a.host === '' && a.protocol !== 'file:';
var div = undefined;
if (addToBody) {
- div = _document2['default'].createElement('div');
+ div = _globalDocument2['default'].createElement('div');
div.innerHTML = '';
a = div.firstChild;
// prevent the div from affecting layout
div.setAttribute('style', 'display:none; position:absolute;');
- _document2['default'].body.appendChild(div);
+ _globalDocument2['default'].body.appendChild(div);
}
// Copy the specific URL properties to a new object
@@ -16297,7 +16074,7 @@ var parseUrl = function parseUrl(url) {
}
if (addToBody) {
- _document2['default'].body.removeChild(div);
+ _globalDocument2['default'].body.removeChild(div);
}
return details;
@@ -16317,7 +16094,7 @@ var getAbsoluteURL = function getAbsoluteURL(url) {
// Check if absolute URL
if (!url.match(/^https?:\/\//)) {
// Convert to absolute URL. Flash hosted off-site needs an absolute URL.
- var div = _document2['default'].createElement('div');
+ var div = _globalDocument2['default'].createElement('div');
div.innerHTML = 'x';
url = div.firstChild.href;
}
@@ -16347,113 +16124,115 @@ var getFileExtension = function getFileExtension(path) {
};
exports.getFileExtension = getFileExtension;
-},{"global/document":1}],122:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"global/document":1}],118:[function(_dereq_,module,exports){
/**
* @file video.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('./setup');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var setup = _interopRequireWildcard(_import);
+var _globalDocument = _dereq_('global/document');
-var _import2 = _dereq_('./utils/stylesheet.js');
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var stylesheet = _interopRequireWildcard(_import2);
+var _setup = _dereq_('./setup');
-var _Component = _dereq_('./component');
+var setup = _interopRequireWildcard(_setup);
-var _Component2 = _interopRequireWildcard(_Component);
+var _utilsStylesheetJs = _dereq_('./utils/stylesheet.js');
-var _EventTarget = _dereq_('./event-target');
+var stylesheet = _interopRequireWildcard(_utilsStylesheetJs);
-var _EventTarget2 = _interopRequireWildcard(_EventTarget);
+var _component = _dereq_('./component');
-var _import3 = _dereq_('./utils/events.js');
+var _component2 = _interopRequireDefault(_component);
-var Events = _interopRequireWildcard(_import3);
+var _eventTarget = _dereq_('./event-target');
-var _Player = _dereq_('./player');
+var _eventTarget2 = _interopRequireDefault(_eventTarget);
-var _Player2 = _interopRequireWildcard(_Player);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _plugin = _dereq_('./plugins.js');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _plugin2 = _interopRequireWildcard(_plugin);
+var _player = _dereq_('./player');
-var _mergeOptions = _dereq_('../../src/js/utils/merge-options.js');
+var _player2 = _interopRequireDefault(_player);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _pluginsJs = _dereq_('./plugins.js');
-var _import4 = _dereq_('./utils/fn.js');
+var _pluginsJs2 = _interopRequireDefault(_pluginsJs);
-var Fn = _interopRequireWildcard(_import4);
+var _srcJsUtilsMergeOptionsJs = _dereq_('../../src/js/utils/merge-options.js');
-var _assign = _dereq_('object.assign');
+var _srcJsUtilsMergeOptionsJs2 = _interopRequireDefault(_srcJsUtilsMergeOptionsJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsFnJs = _dereq_('./utils/fn.js');
-var _createTimeRange = _dereq_('./utils/time-ranges.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _formatTime = _dereq_('./utils/format-time.js');
+var _objectAssign = _dereq_('object.assign');
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
-var _log = _dereq_('./utils/log.js');
+var _utilsTimeRangesJs = _dereq_('./utils/time-ranges.js');
-var _log2 = _interopRequireWildcard(_log);
+var _utilsFormatTimeJs = _dereq_('./utils/format-time.js');
-var _xhr = _dereq_('./xhr.js');
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
-var _xhr2 = _interopRequireWildcard(_xhr);
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _import5 = _dereq_('./utils/dom.js');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var Dom = _interopRequireWildcard(_import5);
+var _xhrJs = _dereq_('./xhr.js');
-var _import6 = _dereq_('./utils/browser.js');
+var _xhrJs2 = _interopRequireDefault(_xhrJs);
-var browser = _interopRequireWildcard(_import6);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _import7 = _dereq_('./utils/url.js');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var Url = _interopRequireWildcard(_import7);
+var _utilsBrowserJs = _dereq_('./utils/browser.js');
-var _extendsFn = _dereq_('./extends.js');
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _extendsFn2 = _interopRequireWildcard(_extendsFn);
+var _utilsUrlJs = _dereq_('./utils/url.js');
-var _merge2 = _dereq_('lodash-compat/object/merge');
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _merge3 = _interopRequireWildcard(_merge2);
+var _extendsJs = _dereq_('./extends.js');
-var _createDeprecationProxy = _dereq_('./utils/create-deprecation-proxy.js');
+var _extendsJs2 = _interopRequireDefault(_extendsJs);
-var _createDeprecationProxy2 = _interopRequireWildcard(_createDeprecationProxy);
+var _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');
+
+var _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);
+
+var _utilsCreateDeprecationProxyJs = _dereq_('./utils/create-deprecation-proxy.js');
+
+var _utilsCreateDeprecationProxyJs2 = _interopRequireDefault(_utilsCreateDeprecationProxyJs);
// Include the built-in techs
-var _Html5 = _dereq_('./tech/html5.js');
+var _techHtml5Js = _dereq_('./tech/html5.js');
-var _Html52 = _interopRequireWildcard(_Html5);
+var _techHtml5Js2 = _interopRequireDefault(_techHtml5Js);
-var _Flash = _dereq_('./tech/flash.js');
+var _techFlashJs = _dereq_('./tech/flash.js');
-var _Flash2 = _interopRequireWildcard(_Flash);
+var _techFlashJs2 = _interopRequireDefault(_techFlashJs);
// HTML5 Element Shim for IE8
if (typeof HTMLVideoElement === 'undefined') {
- _document2['default'].createElement('video');
- _document2['default'].createElement('audio');
- _document2['default'].createElement('track');
+ _globalDocument2['default'].createElement('video');
+ _globalDocument2['default'].createElement('audio');
+ _globalDocument2['default'].createElement('track');
}
/**
@@ -16471,17 +16250,7 @@ if (typeof HTMLVideoElement === 'undefined') {
* @mixes videojs
* @method videojs
*/
-var videojs = (function (_videojs) {
- function videojs(_x, _x2, _x3) {
- return _videojs.apply(this, arguments);
- }
-
- videojs.toString = function () {
- return _videojs.toString();
- };
-
- return videojs;
-})(function (id, options, ready) {
+var videojs = function videojs(id, options, ready) {
var tag; // Element of ID
// Allow for element or ID to be passed in
@@ -16498,7 +16267,7 @@ var videojs = (function (_videojs) {
// If options or ready funtion are passed, warn
if (options) {
- _log2['default'].warn('Player "' + id + '" is already initialised. Options will not be applied.');
+ _utilsLogJs2['default'].warn('Player "' + id + '" is already initialised. Options will not be applied.');
}
if (ready) {
@@ -16509,13 +16278,13 @@ var videojs = (function (_videojs) {
// Otherwise get element for ID
} else {
- tag = Dom.getEl(id);
- }
+ tag = Dom.getEl(id);
+ }
// ID is a media element
} else {
- tag = id;
- }
+ tag = id;
+ }
// Check for a useable element
if (!tag || !tag.nodeName) {
@@ -16525,12 +16294,12 @@ var videojs = (function (_videojs) {
// Element may have a player attr referring to an already created player instance.
// If not, set up a new player and return the instance.
- return tag.player || new _Player2['default'](tag, options, ready);
-});
+ return tag['player'] || new _player2['default'](tag, options, ready);
+};
// Add default styles
var style = stylesheet.createStyleElement('vjs-styles-defaults');
-var head = _document2['default'].querySelector('head');
+var head = _globalDocument2['default'].querySelector('head');
head.insertBefore(style, head.firstChild);
stylesheet.setTextContent(style, '\n .video-js {\n width: 300px;\n height: 150px;\n');
@@ -16543,7 +16312,7 @@ setup.autoSetupTimeout(1, videojs);
*
* @type {String}
*/
-videojs.VERSION = '5.0.0-rc.59';
+videojs.VERSION = '5.0.0-rc.72';
/**
* The global options object. These are the settings that take effect
@@ -16556,7 +16325,7 @@ videojs.VERSION = '5.0.0-rc.59';
*
* @type {Object}
*/
-videojs.options = _Player2['default'].prototype.options_;
+videojs.options = _player2['default'].prototype.options_;
/**
* Get an object with the currently created players, keyed by player ID
@@ -16566,7 +16335,7 @@ videojs.options = _Player2['default'].prototype.options_;
* @method getPlayers
*/
videojs.getPlayers = function () {
- return _Player2['default'].players;
+ return _player2['default'].players;
};
/**
@@ -16576,7 +16345,7 @@ videojs.getPlayers = function () {
* @memberOf videojs
* @property {Object|Proxy} players
*/
-videojs.players = _createDeprecationProxy2['default'](_Player2['default'].players, {
+videojs.players = _utilsCreateDeprecationProxyJs2['default'](_player2['default'].players, {
get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',
set: 'Modification of videojs.players is deprecated'
});
@@ -16593,7 +16362,7 @@ videojs.players = _createDeprecationProxy2['default'](_Player2['default'].player
* @mixes videojs
* @method getComponent
*/
-videojs.getComponent = _Component2['default'].getComponent;
+videojs.getComponent = _component2['default'].getComponent;
/**
* Register a component so it can referred to by name
@@ -16621,7 +16390,7 @@ videojs.getComponent = _Component2['default'].getComponent;
* @mixes videojs
* @method registerComponent
*/
-videojs.registerComponent = _Component2['default'].registerComponent;
+videojs.registerComponent = _component2['default'].registerComponent;
/**
* A suite of browser and device tests
@@ -16674,7 +16443,7 @@ videojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;
* @mixes videojs
* @method extends
*/
-videojs['extends'] = _extendsFn2['default'];
+videojs['extends'] = _extendsJs2['default'];
/**
* Merge two options objects recursively
@@ -16709,7 +16478,7 @@ videojs['extends'] = _extendsFn2['default'];
* @mixes videojs
* @method mergeOptions
*/
-videojs.mergeOptions = _mergeOptions2['default'];
+videojs.mergeOptions = _srcJsUtilsMergeOptionsJs2['default'];
/**
* Change the context (this) of a function
@@ -16773,7 +16542,7 @@ videojs.bind = Fn.bind;
* @mixes videojs
* @method plugin
*/
-videojs.plugin = _plugin2['default'];
+videojs.plugin = _pluginsJs2['default'];
/**
* Adding languages so that they're available to all players.
@@ -16791,7 +16560,7 @@ videojs.addLanguage = function (code, data) {
var _merge;
code = ('' + code).toLowerCase();
- return _merge3['default'](videojs.options.languages, (_merge = {}, _merge[code] = data, _merge))[code];
+ return _lodashCompatObjectMerge2['default'](videojs.options.languages, (_merge = {}, _merge[code] = data, _merge))[code];
};
/**
@@ -16799,7 +16568,7 @@ videojs.addLanguage = function (code, data) {
*
* @param {...Object} messages One or more messages to log
*/
-videojs.log = _log2['default'];
+videojs.log = _utilsLogJs2['default'];
/**
* Creates an emulated TimeRange object.
@@ -16809,7 +16578,7 @@ videojs.log = _log2['default'];
* @return {Object} Fake TimeRange object
* @method createTimeRange
*/
-videojs.createTimeRange = _createTimeRange.createTimeRange;
+videojs.createTimeRange = _utilsTimeRangesJs.createTimeRange;
/**
* Format seconds as a time string, H:MM:SS or M:SS
@@ -16821,7 +16590,7 @@ videojs.createTimeRange = _createTimeRange.createTimeRange;
* @return {String} Time formatted as H:MM:SS or M:SS
* @method formatTime
*/
-videojs.formatTime = _formatTime2['default'];
+videojs.formatTime = _utilsFormatTimeJs2['default'];
/**
* Simple http request for retrieving external files (e.g. text tracks)
@@ -16852,7 +16621,7 @@ videojs.formatTime = _formatTime2['default'];
* @param {Function} callback The callback function
* @returns {Object} The request
*/
-videojs.xhr = _xhr2['default'];
+videojs.xhr = _xhrJs2['default'];
/**
* Resolve and parse the elements of a URL
@@ -16868,7 +16637,7 @@ videojs.parseUrl = Url.parseUrl;
*
* @type {Function}
*/
-videojs.EventTarget = _EventTarget2['default'];
+videojs.EventTarget = _eventTarget2['default'];
/**
* Add an event listener to element
@@ -16938,44 +16707,46 @@ videojs.trigger = Events.trigger;
* still support requirejs and browserify. This also needs to be closure
* compiler compatible, so string keys are used.
*/
-if (typeof define === 'function' && define.amd) {
+if (typeof define === 'function' && define['amd']) {
define('videojs', [], function () {
return videojs;
});
// checking that module is an object too because of umdjs/umd#35
} else if (typeof exports === 'object' && typeof module === 'object') {
- module.exports = videojs;
-}
+ module['exports'] = videojs;
+ }
exports['default'] = videojs;
module.exports = exports['default'];
-},{"../../src/js/utils/merge-options.js":117,"./component":52,"./event-target":83,"./extends.js":84,"./player":91,"./plugins.js":92,"./setup":94,"./tech/flash.js":97,"./tech/html5.js":98,"./utils/browser.js":108,"./utils/create-deprecation-proxy.js":110,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/format-time.js":114,"./utils/log.js":116,"./utils/stylesheet.js":118,"./utils/time-ranges.js":119,"./utils/url.js":121,"./xhr.js":123,"global/document":1,"lodash-compat/object/merge":40,"object.assign":44}],123:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../../src/js/utils/merge-options.js":113,"./component":48,"./event-target":79,"./extends.js":80,"./player":87,"./plugins.js":88,"./setup":90,"./tech/flash.js":93,"./tech/html5.js":94,"./utils/browser.js":104,"./utils/create-deprecation-proxy.js":106,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/format-time.js":110,"./utils/log.js":112,"./utils/stylesheet.js":114,"./utils/time-ranges.js":115,"./utils/url.js":117,"./xhr.js":119,"global/document":1,"lodash-compat/object/merge":37,"object.assign":40}],119:[function(_dereq_,module,exports){
/**
* @file xhr.js
*/
+'use strict';
-var _import = _dereq_('./utils/url.js');
+exports.__esModule = true;
-var Url = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _log = _dereq_('./utils/log.js');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _log2 = _interopRequireWildcard(_log);
+var _utilsUrlJs = _dereq_('./utils/url.js');
-var _mergeOptions = _dereq_('./utils/merge-options.js');
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _window = _dereq_('global/window');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/*
* Simple http request for retrieving external files (e.g. text tracks)
@@ -17016,26 +16787,26 @@ var xhr = function xhr(options, callback) {
}
// Merge with default options
- options = _mergeOptions2['default']({
+ options = _utilsMergeOptionsJs2['default']({
method: 'GET',
timeout: 45 * 1000
}, options);
callback = callback || function () {};
- var XHR = _window2['default'].XMLHttpRequest;
+ var XHR = _globalWindow2['default'].XMLHttpRequest;
if (typeof XHR === 'undefined') {
// Shim XMLHttpRequest for older IEs
XHR = function () {
try {
- return new _window2['default'].ActiveXObject('Msxml2.XMLHTTP.6.0');
+ return new _globalWindow2['default'].ActiveXObject('Msxml2.XMLHTTP.6.0');
} catch (e) {}
try {
- return new _window2['default'].ActiveXObject('Msxml2.XMLHTTP.3.0');
+ return new _globalWindow2['default'].ActiveXObject('Msxml2.XMLHTTP.3.0');
} catch (f) {}
try {
- return new _window2['default'].ActiveXObject('Msxml2.XMLHTTP');
+ return new _globalWindow2['default'].ActiveXObject('Msxml2.XMLHTTP');
} catch (g) {}
throw new Error('This browser does not support XMLHttpRequest.');
};
@@ -17046,18 +16817,18 @@ var xhr = function xhr(options, callback) {
request.uri = options.uri;
var urlInfo = Url.parseUrl(options.uri);
- var winLoc = _window2['default'].location;
+ var winLoc = _globalWindow2['default'].location;
var successHandler = function successHandler() {
- _window2['default'].clearTimeout(abortTimeout);
+ _globalWindow2['default'].clearTimeout(abortTimeout);
callback(null, request, request.response || request.responseText);
};
var errorHandler = function errorHandler(err) {
- _window2['default'].clearTimeout(abortTimeout);
+ _globalWindow2['default'].clearTimeout(abortTimeout);
if (!err || typeof err === 'string') {
- err = new Error(err);
+ err = new Error(err || 'XHR Failed with a response of: ' + (request && (request.response || request.responseText)));
}
callback(err, request);
@@ -17070,8 +16841,8 @@ var xhr = function xhr(options, callback) {
// XDomainRequest -- Use for IE if XMLHTTPRequest2 isn't available
// 'withCredentials' is only available in XMLHTTPRequest2
// Also XDomainRequest has a lot of gotchas, so only use if cross domain
- if (crossOrigin && _window2['default'].XDomainRequest && !('withCredentials' in request)) {
- request = new _window2['default'].XDomainRequest();
+ if (crossOrigin && _globalWindow2['default'].XDomainRequest && !('withCredentials' in request)) {
+ request = new _globalWindow2['default'].XDomainRequest();
request.onload = successHandler;
request.onerror = errorHandler;
// These blank handlers need to be set to fix ie9
@@ -17081,33 +16852,33 @@ var xhr = function xhr(options, callback) {
// XMLHTTPRequest
} else {
- (function () {
- var fileUrl = urlInfo.protocol === 'file:' || winLoc.protocol === 'file:';
+ (function () {
+ var fileUrl = urlInfo.protocol === 'file:' || winLoc.protocol === 'file:';
- request.onreadystatechange = function () {
- if (request.readyState === 4) {
- if (request.timedout) {
- return errorHandler('timeout');
- }
+ request.onreadystatechange = function () {
+ if (request.readyState === 4) {
+ if (request.timedout) {
+ return errorHandler('timeout');
+ }
- if (request.status === 200 || fileUrl && request.status === 0) {
- successHandler();
- } else {
- errorHandler();
+ if (request.status === 200 || fileUrl && request.status === 0) {
+ successHandler();
+ } else {
+ errorHandler();
+ }
}
+ };
+
+ if (options.timeout) {
+ abortTimeout = _globalWindow2['default'].setTimeout(function () {
+ if (request.readyState !== 4) {
+ request.timedout = true;
+ request.abort();
+ }
+ }, options.timeout);
}
- };
-
- if (options.timeout) {
- abortTimeout = _window2['default'].setTimeout(function () {
- if (request.readyState !== 4) {
- request.timedout = true;
- request.abort();
- }
- }, options.timeout);
- }
- })();
- }
+ })();
+ }
// open the connection
try {
@@ -17139,7 +16910,7 @@ var xhr = function xhr(options, callback) {
exports['default'] = xhr;
module.exports = exports['default'];
-},{"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/url.js":121,"global/window":2}]},{},[122])(122)
+},{"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/url.js":117,"global/window":2}]},{},[118])(118)
});
diff --git a/node_modules/video.js/dist/alt/video.novtt.min.js b/node_modules/video.js/dist/alt/video.novtt.min.js
index f2fbbba..fb956a2 100644
--- a/node_modules/video.js/dist/alt/video.novtt.min.js
+++ b/node_modules/video.js/dist/alt/video.novtt.min.js
@@ -1,17 +1,16 @@
/**
* @license
- * Video.js 5.0.0-rc.59
+ * Video.js 5.0.0-rc.72
* Copyright Brightcove, Inc.
* Available under Apache License Version 2.0
*
*/
-!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g2?c[g-2]:void 0,i=g>2?c[2]:void 0,j=g>1?c[g-1]:void 0;for("function"==typeof h?(h=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],23:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":33,"./isArrayLike":20,"./isIndex":22}],24:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],25:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],26:[function(a,b){function c(a){var b;if(!g(a)||l.call(a)!=i||f(a)||!k.call(a,"constructor")&&(b=a.constructor,"function"==typeof b&&!(b instanceof b))||!h.argsTag&&e(a))return!1;var c;return h.ownLast?(d(a,function(a,b,d){return c=k.call(d,b),!1}),c!==!1):(d(a,function(a,b){c=b}),void 0===c||k.call(a,c))}var d=a("./baseForIn"),e=a("../lang/isArguments"),f=a("./isHostObject"),g=a("./isObjectLike"),h=a("../support"),i="[object Object]",j=Object.prototype,k=j.hasOwnProperty,l=j.toString;b.exports=c},{"../lang/isArguments":29,"../support":42,"./baseForIn":9,"./isHostObject":21,"./isObjectLike":25}],27:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{};d(c(b),function(c){i(a,c,b[c],e[c])})};j.supportsDescriptors=!!h,b.exports=j},{foreach:46,"object-keys":47}],46:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],47:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=a("./isArguments"),f=!{toString:null}.propertyIsEnumerable("toString"),g=function(){}.propertyIsEnumerable("prototype"),h=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],i=function(a){var b=null!==a&&"object"==typeof a,i="[object Function]"===d.call(a),j=e(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!i&&!j)throw new TypeError("Object.keys called on a non-object");var m=g&&i;if(k&&a.length>0&&!c.call(a,0))for(var n=0;n0)for(var o=0;o=0&&"[object Function]"===c.call(a.callee)),d}},{}],49:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],50:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./button.js"),h=d(g),i=a("./component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(){this.player_.play()},b}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":51,"./component.js":52}],51:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./component"),h=d(g),i=a("./utils/dom.js"),j=d(i),k=a("./utils/events.js"),l=d(k),m=a("./utils/fn.js"),n=d(m),o=a("global/document"),p=d(o),q=a("object.assign"),r=d(q),s=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.emitTapEvents(),this.on("tap",this.handleClick),this.on("click",this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur)}return f(b,a),b.prototype.createEl=function(){var b=void 0===arguments[0]?"button":arguments[0],c=void 0===arguments[1]?{}:arguments[1];c=r["default"]({className:this.buildCSSClass(),role:"button",type:"button","aria-live":"polite",tabIndex:0},c);var d=a.prototype.createEl.call(this,b,c);return this.controlTextEl_=j.createEl("span",{className:"vjs-control-text"}),d.appendChild(this.controlTextEl_),this.controlText(this.controlText_),d},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){l.on(p["default"],"keydown",n.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick())},b.prototype.handleBlur=function(){l.off(p["default"],"keydown",n.bind(this,this.handleKeyPress))},b}(h["default"]);h["default"].registerComponent("Button",s),c["default"]=s,b.exports=c["default"]},{"./component":52,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"global/document":1,"object.assign":44}],52:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")};c.__esModule=!0;var f=a("global/window"),g=d(f),h=a("./utils/dom.js"),i=d(h),j=a("./utils/fn.js"),k=d(j),l=a("./utils/guid.js"),m=d(l),n=a("./utils/events.js"),o=d(n),p=a("./utils/log.js"),q=d(p),r=a("./utils/to-title-case.js"),s=d(r),t=a("object.assign"),u=d(t),v=a("./utils/merge-options.js"),w=d(v),x=function(){function a(b,c,d){if(e(this,a),this.player_=!b&&this.play?b=this:b,this.options_=w["default"]({},this.options_),c=this.options_=w["default"](this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var f=b&&b.id&&b.id()||"no_player";this.id_=""+f+"_component_"+m.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),i.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return q["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=w["default"](this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b){return i.createEl(a,b)},a.prototype.localize=function(a){var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){return this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=void 0===arguments[1]?{}:arguments[1],d=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(q["default"].warn("Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var f=c.componentClass||s["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions,a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&(a.forEach(function(a){a.call(this)},this),this.readyQueue_=[]),this.trigger("ready")},1)},a.prototype.hasClass=function(a){return i.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return i.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return i.removeElClass(this.el_,a),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"),this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(void 0!==b)return(null===b||b!==b)&&(b=0),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+s["default"](a)],10)},a.prototype.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=u["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=k.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=k.bind(this,a);var c=g["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){g["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=k.bind(this,a);var c=g["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){g["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){return a.components_||(a.components_={}),a.components_[b]=c,c},a.getComponent=function(b){return a.components_&&a.components_[b]?a.components_[b]:g["default"]&&g["default"].videojs&&g["default"].videojs[b]?(q["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),g["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},q["default"].warn("Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();x.registerComponent("Component",x),c["default"]=x,b.exports=c["default"]},{"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/guid.js":115,"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/to-title-case.js":120,"global/window":2,"object.assign":44}],53:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("./play-toggle.js"),j=(d(i),a("./time-controls/current-time-display.js")),k=(d(j),a("./time-controls/duration-display.js")),l=(d(k),a("./time-controls/time-divider.js")),m=(d(l),a("./time-controls/remaining-time-display.js")),n=(d(m),a("./live-display.js")),o=(d(n),a("./progress-control/progress-control.js")),p=(d(o),a("./fullscreen-toggle.js")),q=(d(p),a("./volume-control/volume-control.js")),r=(d(q),a("./volume-menu-button.js")),s=(d(r),a("./mute-toggle.js")),t=(d(s),a("./text-track-controls/chapters-button.js")),u=(d(t),a("./text-track-controls/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","muteToggle","volumeControl","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]
-},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":52,"./fullscreen-toggle.js":54,"./live-display.js":55,"./mute-toggle.js":56,"./play-toggle.js":57,"./playback-rate-menu/playback-rate-menu-button.js":58,"./progress-control/progress-control.js":62,"./spacer-controls/custom-control-spacer.js":64,"./text-track-controls/captions-button.js":67,"./text-track-controls/chapters-button.js":68,"./text-track-controls/subtitles-button.js":71,"./time-controls/current-time-display.js":74,"./time-controls/duration-display.js":75,"./time-controls/remaining-time-display.js":76,"./time-controls/time-divider.js":77,"./volume-control/volume-control.js":79,"./volume-menu-button.js":81}],54:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.isFullscreen()?(this.player_.exitFullscreen(),this.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":51,"../component.js":52}],55:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../component"),h=d(g),i=a("../utils/dom.js"),j=d(i),k=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=j.createEl("div",{className:"vjs-live-display",innerHTML:''+this.localize("Stream Type")+""+this.localize("LIVE"),"aria-live":"off"}),b.appendChild(this.contentEl_),b},b}(h["default"]);h["default"].registerComponent("LiveDisplay",k),c["default"]=k,b.exports=c["default"]},{"../component":52,"../utils/dom.js":111}],56:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../button"),h=d(g),i=a("../component"),j=d(i),k=a("../utils/dom.js"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.muted(this.player_.muted()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)l.removeElClass(this.el_,"vjs-vol-"+e);l.addElClass(this.el_,"vjs-vol-"+b)},b}(h["default"]);m.prototype.controlText_="Mute",j["default"].registerComponent("MuteToggle",m),c["default"]=m,b.exports=c["default"]},{"../button":51,"../component":52,"../utils/dom.js":111}],57:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"play",this.handlePlay),this.on(c,"pause",this.handlePause)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(h["default"]);k.prototype.controlText_="Play",j["default"].registerComponent("PlayToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":51,"../component.js":52}],58:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../menu/menu-button.js"),h=d(g),i=a("../../menu/menu.js"),j=d(i),k=a("./playback-rate-menu-item.js"),l=d(k),m=a("../../component.js"),n=d(m),o=a("../../utils/dom.js"),p=d(o),q=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=p.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new j["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new l["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(){for(var a=this.player().playbackRate(),b=this.playbackRates(),c=b[0],d=0;da){c=b[d];break}this.player().playbackRate(c)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech&&this.player().tech.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(h["default"]);q.prototype.controlText_="Playback Rate",n["default"].registerComponent("PlaybackRateMenuButton",q),c["default"]=q,b.exports=c["default"]},{"../../component.js":52,"../../menu/menu-button.js":88,"../../menu/menu.js":90,"../../utils/dom.js":111,"./playback-rate-menu-item.js":59}],59:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../menu/menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b);var f=d.rate,g=parseFloat(f,10);d.label=f,d.selected=1===g,a.call(this,c,d),this.label=f,this.rate=g,this.on(c,"ratechange",this.update)}return f(b,a),b.prototype.handleClick=function(){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(){this.selected(this.player().playbackRate()===this.rate)},b}(h["default"]);k.prototype.contentElType="button",j["default"].registerComponent("PlaybackRateMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"../../menu/menu-item.js":89}],60:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("../../utils/dom.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:''+this.localize("Loaded")+": 0%"})},b.prototype.update=function(){var a=this.player_.buffered(),b=this.player_.duration(),c=this.player_.bufferedEnd(),d=this.el_.children,e=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=e(c,b);for(var f=0;fa.length;f--)this.el_.removeChild(d[f-1])},b}(h["default"]);h["default"].registerComponent("LoadProgressBar",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"../../utils/dom.js":111}],61:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("../../utils/fn.js"),j=d(i),k=a("../../utils/format-time.js"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateDataAttr),c.ready(j.bind(this,this.updateDataAttr))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress",innerHTML:''+this.localize("Progress")+": 0%"})},b.prototype.updateDataAttr=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",l["default"](a,this.player_.duration()))},b}(h["default"]);h["default"].registerComponent("PlayProgressBar",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":52,"../../utils/fn.js":113,"../../utils/format-time.js":114}],62:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./seek-bar.js"),j=(d(i),function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:{seekBar:{}}},h["default"].registerComponent("ProgressControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":52,"./seek-bar.js":63}],63:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../slider/slider.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./load-progress-bar.js"),l=(d(k),a("./play-progress-bar.js")),m=(d(l),a("../../utils/fn.js")),n=d(m),o=a("../../utils/format-time.js"),p=d(o),q=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(n.bind(this,this.updateARIAAttributes))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder","aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",p["default"](a,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(h["default"]);q.prototype.options_={children:{loadProgressBar:{},playProgressBar:{}},barName:"playProgressBar"},q.prototype.playerEvent="timeupdate",j["default"].registerComponent("SeekBar",q),c["default"]=q,b.exports=c["default"]},{"../../component.js":52,"../../slider/slider.js":95,"../../utils/fn.js":113,"../../utils/format-time.js":114,"./load-progress-bar.js":60,"./play-progress-bar.js":61}],64:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./spacer.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,{className:this.buildCSSClass()})},b}(h["default"]);j["default"].registerComponent("CustomControlSpacer",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"./spacer.js":65}],65:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":52}],66:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./text-track-menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),d.track={kind:d.kind,player:c,label:d.kind+" settings","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"./text-track-menu-item.js":73}],67:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./caption-settings-menu-item.js"),l=d(k),m=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Captions Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(){var b=2;a.prototype.update.call(this),this.player().tech&&this.player().tech.featuresNativeTextTracks&&(b=1),this.items&&this.items.length>b?this.show():this.hide()},b.prototype.createItems=function(){var b=[];return this.player().tech&&this.player().tech.featuresNativeTextTracks||b.push(new l["default"](this.player_,{kind:this.kind_})),a.prototype.createItems.call(this,b)},b}(h["default"]);m.prototype.kind_="captions",m.prototype.controlText_="Captions",j["default"].registerComponent("CaptionsButton",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":52,"./caption-settings-menu-item.js":66,"./text-track-button.js":72}],68:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./text-track-menu-item.js"),l=d(k),m=a("./chapters-track-menu-item.js"),n=d(m),o=a("../../menu/menu.js"),p=d(o),q=a("../../utils/dom.js"),r=d(q),s=a("../../utils/fn.js"),t=d(s),u=a("../../utils/to-title-case.js"),v=d(u),w=a("global/window"),x=d(w),y=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Chapters Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=[],b=this.player_.textTracks();if(!b)return a;for(var c=0;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",x["default"].setTimeout(t.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new p["default"](this.player_),g.contentEl().appendChild(r.createEl("li",{className:"vjs-menu-title",innerHTML:v["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new n["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(h["default"]);y.prototype.kind_="chapters",y.prototype.controlText_="Chapters",j["default"].registerComponent("ChaptersButton",y),c["default"]=y,b.exports=c["default"]},{"../../component.js":52,"../../menu/menu.js":90,"../../utils/dom.js":111,"../../utils/fn.js":113,"../../utils/to-title-case.js":120,"./chapters-track-menu-item.js":69,"./text-track-button.js":72,"./text-track-menu-item.js":73,"global/window":2}],69:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../menu/menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("../../utils/fn.js"),l=d(k),m=function(a){function b(c,d){e(this,b);var f=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"./text-track-menu-item.js":73}],71:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Subtitles Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(h["default"]);k.prototype.kind_="subtitles",k.prototype.controlText_="Subtitles",j["default"].registerComponent("SubtitlesButton",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"./text-track-button.js":72}],72:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../menu/menu-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("../../utils/fn.js"),l=d(k),m=a("./text-track-menu-item.js"),n=d(m),o=a("./off-text-track-menu-item.js"),p=d(o),q=function(a){function b(c,d){e(this,b),a.call(this,c,d);var f=this.player_.textTracks();if(this.items.length<=1&&this.hide(),f){var g=l.bind(this,this.update);f.addEventListener("removetrack",g),f.addEventListener("addtrack",g),this.player_.on("dispose",function(){f.removeEventListener("removetrack",g),f.removeEventListener("addtrack",g)})}}return f(b,a),b.prototype.createItems=function(){var a=void 0===arguments[0]?[]:arguments[0];a.push(new p["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent Time 0:00',"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),b=this.localize("Current Time"),c=l["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(h["default"]);h["default"].registerComponent("CurrentTimeDisplay",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],75:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("../../utils/dom.js"),j=d(i),k=a("../../utils/format-time.js"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=j.createEl("div",{className:"vjs-duration-display",innerHTML:''+this.localize("Duration Time")+" 0:00","aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.duration();if(a){var b=this.localize("Duration Time"),c=l["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(h["default"]);h["default"].registerComponent("DurationDisplay",m),c["default"]=m,b.exports=c["default"];
+!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g2?c[g-2]:void 0,i=g>2?c[2]:void 0,j=g>1?c[g-1]:void 0;for("function"==typeof h?(h=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],21:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":30,"./isArrayLike":18,"./isIndex":20}],22:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],23:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],24:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{},g=c(b);e&&(g=g.concat(Object.getOwnPropertySymbols(b))),d(g,function(c){j(a,c,b[c],f[c])})};k.supportsDescriptors=!!i,b.exports=k},{foreach:42,"object-keys":43}],42:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],43:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=Array.prototype.slice,f=a("./isArguments"),g=!{toString:null}.propertyIsEnumerable("toString"),h=function(){}.propertyIsEnumerable("prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],j=function(a){var b=a.constructor;return b&&b.prototype===a},k={$window:!0,$console:!0,$parent:!0,$self:!0,$frames:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0},l=function(){if("undefined"==typeof window)return!1;for(var a in window)if(!k["$"+a]&&c.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{j(window[a])}catch(b){return!0}return!1}(),m=function(a){if("undefined"==typeof window&&!l)return j(a);try{return j(a)}catch(b){return!1}},n=function(a){var b=null!==a&&"object"==typeof a,e="[object Function]"===d.call(a),j=f(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!e&&!j)throw new TypeError("Object.keys called on a non-object");var n=h&&e;if(k&&a.length>0&&!c.call(a,0))for(var o=0;o0)for(var p=0;p=0&&"[object Function]"===c.call(a.callee)),d}},{}],45:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],46:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./button.js"),h=d(g),i=a("./component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(){this.player_.play()},b}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":47,"./component.js":48}],47:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=a("./utils/events.js"),m=d(l),n=a("./utils/fn.js"),o=d(n),p=a("global/document"),q=e(p),r=a("object.assign"),s=e(r),t=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.emitTapEvents(),this.on("tap",this.handleClick),this.on("click",this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur)}return g(b,a),b.prototype.createEl=function(){var b=arguments.length<=0||void 0===arguments[0]?"button":arguments[0],c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];c=s["default"]({className:this.buildCSSClass(),role:"button",type:"button","aria-live":"polite",tabIndex:0},c);var d=a.prototype.createEl.call(this,b,c);return this.controlTextEl_=k.createEl("span",{className:"vjs-control-text"}),d.appendChild(this.controlTextEl_),this.controlText(this.controlText_),d},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){m.on(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick())},b.prototype.handleBlur=function(){m.off(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b}(i["default"]);i["default"].registerComponent("Button",t),c["default"]=t,b.exports=c["default"]},{"./component":48,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"global/document":1,"object.assign":40}],48:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a("global/window"),h=e(g),i=a("./utils/dom.js"),j=d(i),k=a("./utils/fn.js"),l=d(k),m=a("./utils/guid.js"),n=d(m),o=a("./utils/events.js"),p=d(o),q=a("./utils/log.js"),r=e(q),s=a("./utils/to-title-case.js"),t=e(s),u=a("object.assign"),v=e(u),w=a("./utils/merge-options.js"),x=e(w),y=function(){function a(b,c,d){if(f(this,a),this.player_=!b&&this.play?b=this:b,this.options_=x["default"]({},this.options_),c=this.options_=x["default"](this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var e=b&&b.id&&b.id()||"no_player";this.id_=e+"_component_"+n.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),j.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return r["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=x["default"](this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b){return j.createEl(a,b)},a.prototype.localize=function(a){var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){return this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(r["default"].warn("Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var f=c.componentClass||t["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions,a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&(a.forEach(function(a){a.call(this)},this),this.readyQueue_=[]),this.trigger("ready")},1)},a.prototype.hasClass=function(a){return j.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return j.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return j.removeElClass(this.el_,a),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"),this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(void 0!==b)return(null===b||b!==b)&&(b=0),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+t["default"](a)],10)},a.prototype.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=v["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=l.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=l.bind(this,a);var c=h["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){h["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=l.bind(this,a);var c=h["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){h["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){return a.components_||(a.components_={}),a.components_[b]=c,c},a.getComponent=function(b){return a.components_&&a.components_[b]?a.components_[b]:h["default"]&&h["default"].videojs&&h["default"].videojs[b]?(r["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),h["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},r["default"].warn("Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();y.registerComponent("Component",y),c["default"]=y,b.exports=c["default"]},{"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/guid.js":111,"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/to-title-case.js":116,"global/window":2,"object.assign":40}],49:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("./play-toggle.js"),j=(d(i),a("./time-controls/current-time-display.js")),k=(d(j),a("./time-controls/duration-display.js")),l=(d(k),a("./time-controls/time-divider.js")),m=(d(l),a("./time-controls/remaining-time-display.js")),n=(d(m),a("./live-display.js")),o=(d(n),a("./progress-control/progress-control.js")),p=(d(o),a("./fullscreen-toggle.js")),q=(d(p),a("./volume-control/volume-control.js")),r=(d(q),a("./volume-menu-button.js")),s=(d(r),a("./mute-toggle.js")),t=(d(s),a("./text-track-controls/chapters-button.js")),u=(d(t),a("./text-track-controls/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","muteToggle","volumeControl","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":48,"./fullscreen-toggle.js":50,"./live-display.js":51,"./mute-toggle.js":52,"./play-toggle.js":53,"./playback-rate-menu/playback-rate-menu-button.js":54,"./progress-control/progress-control.js":58,"./spacer-controls/custom-control-spacer.js":60,"./text-track-controls/captions-button.js":63,
+"./text-track-controls/chapters-button.js":64,"./text-track-controls/subtitles-button.js":67,"./time-controls/current-time-display.js":70,"./time-controls/duration-display.js":71,"./time-controls/remaining-time-display.js":72,"./time-controls/time-divider.js":73,"./volume-control/volume-control.js":75,"./volume-menu-button.js":77}],50:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.isFullscreen()?(this.player_.exitFullscreen(),this.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":47,"../component.js":48}],51:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-live-display",innerHTML:''+this.localize("Stream Type")+""+this.localize("LIVE"),"aria-live":"off"}),b.appendChild(this.contentEl_),b},b}(i["default"]);i["default"].registerComponent("LiveDisplay",l),c["default"]=l,b.exports=c["default"]},{"../component":48,"../utils/dom.js":107}],52:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../button"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.muted(this.player_.muted()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+b)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n,b.exports=c["default"]},{"../button":47,"../component":48,"../utils/dom.js":107}],53:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"play",this.handlePlay),this.on(c,"pause",this.handlePause)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(h["default"]);k.prototype.controlText_="Play",j["default"].registerComponent("PlayToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":47,"../component.js":48}],54:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../menu/menu.js"),k=e(j),l=a("./playback-rate-menu-item.js"),m=e(l),n=a("../../component.js"),o=e(n),p=a("../../utils/dom.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(){for(var a=this.player().playbackRate(),b=this.playbackRates(),c=b[0],d=0;da){c=b[d];break}this.player().playbackRate(c)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech&&this.player().tech.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":48,"../../menu/menu-button.js":84,"../../menu/menu.js":86,"../../utils/dom.js":107,"./playback-rate-menu-item.js":55}],55:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../menu/menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b);var f=d.rate,g=parseFloat(f,10);d.label=f,d.selected=1===g,a.call(this,c,d),this.label=f,this.rate=g,this.on(c,"ratechange",this.update)}return f(b,a),b.prototype.handleClick=function(){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(){this.selected(this.player().playbackRate()===this.rate)},b}(h["default"]);k.prototype.contentElType="button",j["default"].registerComponent("PlaybackRateMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":48,"../../menu/menu-item.js":85}],56:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:''+this.localize("Loaded")+": 0%"})},b.prototype.update=function(){var a=this.player_.buffered(),b=this.player_.duration(),c=this.player_.bufferedEnd(),d=this.el_.children,e=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=e(c,b);for(var f=0;fa.length;f--)this.el_.removeChild(d[f-1])},b}(i["default"]);i["default"].registerComponent("LoadProgressBar",l),c["default"]=l,b.exports=c["default"]},{"../../component.js":48,"../../utils/dom.js":107}],57:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/fn.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateDataAttr),c.ready(k.bind(this,this.updateDataAttr))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress",innerHTML:''+this.localize("Progress")+": 0%"})},b.prototype.updateDataAttr=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",m["default"](a,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":48,"../../utils/fn.js":109,"../../utils/format-time.js":110}],58:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./seek-bar.js"),j=(d(i),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:{seekBar:{}}},h["default"].registerComponent("ProgressControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":48,"./seek-bar.js":59}],59:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./load-progress-bar.js"),m=(e(l),a("./play-progress-bar.js")),n=(e(m),a("../../utils/fn.js")),o=d(n),p=a("../../utils/format-time.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(o.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder","aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",q["default"](a,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(i["default"]);r.prototype.options_={children:{loadProgressBar:{},playProgressBar:{}},barName:"playProgressBar"},r.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":48,"../../slider/slider.js":91,"../../utils/fn.js":109,"../../utils/format-time.js":110,"./load-progress-bar.js":56,"./play-progress-bar.js":57}],60:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./spacer.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,{className:this.buildCSSClass()})},b}(h["default"]);j["default"].registerComponent("CustomControlSpacer",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":48,"./spacer.js":61}],61:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":48}],62:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),d.track={kind:d.kind,player:c,label:d.kind+" settings","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":48,"./text-track-menu-item.js":69}],63:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./caption-settings-menu-item.js"),l=d(k),m=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Captions Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(){var b=2;a.prototype.update.call(this),this.player().tech&&this.player().tech.featuresNativeTextTracks&&(b=1),this.items&&this.items.length>b?this.show():this.hide()},b.prototype.createItems=function(){var b=[];return this.player().tech&&this.player().tech.featuresNativeTextTracks||b.push(new l["default"](this.player_,{kind:this.kind_})),a.prototype.createItems.call(this,b)},b}(h["default"]);m.prototype.kind_="captions",m.prototype.controlText_="Captions",j["default"].registerComponent("CaptionsButton",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":48,"./caption-settings-menu-item.js":62,"./text-track-button.js":68}],64:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./text-track-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./text-track-menu-item.js"),m=e(l),n=a("./chapters-track-menu-item.js"),o=e(n),p=a("../../menu/menu.js"),q=e(p),r=a("../../utils/dom.js"),s=d(r),t=a("../../utils/fn.js"),u=d(t),v=a("../../utils/to-title-case.js"),w=e(v),x=a("global/window"),y=e(x),z=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),this.el_.setAttribute("aria-label","Chapters Menu")}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=[],b=this.player_.textTracks();if(!b)return a;for(var c=0;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",y["default"].setTimeout(u.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new q["default"](this.player_),g.contentEl().appendChild(s.createEl("li",{className:"vjs-menu-title",innerHTML:w["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new o["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(i["default"]);z.prototype.kind_="chapters",z.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",z),c["default"]=z,b.exports=c["default"]},{"../../component.js":48,"../../menu/menu.js":86,"../../utils/dom.js":107,"../../utils/fn.js":109,"../../utils/to-title-case.js":116,"./chapters-track-menu-item.js":65,"./text-track-button.js":68,"./text-track-menu-item.js":69,"global/window":2}],65:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=function(a){function b(c,d){f(this,b);var e=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":48,"./text-track-menu-item.js":69}],67:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Subtitles Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(h["default"]);k.prototype.kind_="subtitles",k.prototype.controlText_="Subtitles",j["default"].registerComponent("SubtitlesButton",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":48,"./text-track-button.js":68}],68:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./text-track-menu-item.js"),o=e(n),p=a("./off-text-track-menu-item.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=this.player_.textTracks();if(this.items.length<=1&&this.hide(),e){var g=m.bind(this,this.update);e.addEventListener("removetrack",g),e.addEventListener("addtrack",g),this.player_.on("dispose",function(){e.removeEventListener("removetrack",g),e.removeEventListener("addtrack",g)})}}return g(b,a),b.prototype.createItems=function(){var a=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];a.push(new q["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent Time 0:00',"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),b=this.localize("Current Time"),c=m["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],71:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-duration-display",innerHTML:''+this.localize("Duration Time")+" 0:00","aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.duration();if(a){var b=this.localize("Duration Time"),c=m["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],72:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-remaining-time-display",innerHTML:''+this.localize("Remaining Time")+" -0:00","aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){if(this.player_.duration()){var a=this.localize("Remaining Time"),b=m["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],73:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"
/
"})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":48}],74:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./volume-level.js"),o=(e(n),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(m.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar","aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(){var a=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",a),this.el_.setAttribute("aria-valuetext",a+"%")},b}(i["default"]));o.prototype.options_={children:{volumeLevel:{}},barName:"volumeLevel"},o.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",o),c["default"]=o,b.exports=c["default"]},{"../../component.js":48,"../../slider/slider.js":91,"../../utils/fn.js":109,"./volume-level.js":76}],75:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./volume-bar.js"),j=(d(i),function(a){function b(c,d){e(this,b),a.call(this,c,d),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:{volumeBar:{}}},h["default"].registerComponent("VolumeControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":48,"./volume-bar.js":74}],76:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":48}],77:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){var d=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];e(this,b),void 0===d.vertical&&(d.vertical=d.inline?!1:!0),d.volumeBar=d.volumeBar||{},d.volumeBar.vertical=!!d.vertical,a.call(this,c,d),this.on(c,"volumechange",this.volumeUpdate),this.on(c,"loadstart",this.volumeUpdate),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}),this.addClass("vjs-menu-button")}return f(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return b.on("focus",function(){a.lockShowing()}),b.on("blur",function(){a.unlockShowing()}),a.addChild(b),a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":47,"../component.js":48,"../menu/menu-button.js":84,"../menu/menu.js":86,"./mute-toggle.js":52,"./volume-control/volume-bar.js":74}],78:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=k.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(i["default"]);i["default"].registerComponent("ErrorDisplay",l),c["default"]=l,b.exports=c["default"]},{"./component":48,"./utils/dom.js":107}],79:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":108}],80:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},h=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=function(){a.apply(this,arguments)},d={};"object"==typeof b?("function"==typeof b.init&&(f["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":112}],81:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new m["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(o.createEl("li",{className:"vjs-menu-title",innerHTML:s["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(i["default"]);k["default"].registerComponent("MenuButton",t),c["default"]=t,b.exports=c["default"]},{"../button.js":47,"../component.js":48,"../utils/dom.js":107,"../utils/fn.js":109,"../utils/to-title-case.js":116,"./menu.js":86}],85:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=a("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}return f(b,a),b.prototype.createEl=function(b,c){return a.prototype.createEl.call(this,"li",l["default"]({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label)},c))},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":47,"../component.js":48,"object.assign":40}],86:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("../utils/fn.js"),m=d(l),n=a("../utils/events.js"),o=d(n),p=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p,b.exports=c["default"]},{"../component.js":48,"../utils/dom.js":107,"../utils/events.js":108,"../utils/fn.js":109}],87:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component.js"),i=e(h),j=a("global/document"),k=e(j),l=a("global/window"),m=e(l),n=a("./utils/events.js"),o=d(n),p=a("./utils/dom.js"),q=d(p),r=a("./utils/fn.js"),s=d(r),t=a("./utils/guid.js"),u=d(t),v=a("./utils/browser.js"),w=(d(v),a("./utils/log.js")),x=e(w),y=a("./utils/to-title-case.js"),z=e(y),A=a("./utils/time-ranges.js"),B=a("./utils/buffer.js"),C=a("./utils/stylesheet.js"),D=d(C),E=a("./fullscreen-api.js"),F=e(E),G=a("./media-error.js"),H=e(G),I=a("safe-json-parse/tuple"),J=e(I),K=a("object.assign"),L=e(K),M=a("./utils/merge-options.js"),N=e(M),O=a("./tracks/text-track-list-converter.js"),P=e(O),Q=a("./tech/loader.js"),R=(e(Q),a("./poster-image.js")),S=(e(R),a("./tracks/text-track-display.js")),T=(e(S),a("./loading-spinner.js")),U=(e(T),a("./big-play-button.js")),V=(e(U),a("./control-bar/control-bar.js")),W=(e(V),a("./error-display.js")),X=(e(W),a("./tracks/text-track-settings.js")),Y=(e(X),a("./tech/html5.js")),Z=(e(Y),function(a){function b(c,d,e){var g=this;if(f(this,b),c.id=c.id||"vjs_video_"+u.newGUID(),d=L["default"](b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,a.call(this,null,d,e),!this.options_||!this.options_.techOrder||!this.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");this.tag=c,this.tagAttributes=c&&q.getElAttributes(c),this.language(this.options_.language),d.languages?!function(){var a={};Object.getOwnPropertyNames(d.languages).forEach(function(b){a[b.toLowerCase()]=d.languages[b]}),g.languages_=a}():this.languages_=b.prototype.options_.languages,this.cache_={},this.poster_=d.poster||"",this.controls_=!!d.controls,c.controls=!1,this.scrubbing_=!1,this.el_=this.createEl();var h=N["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){"function"==typeof this[b]?this[b](a[b]):x["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),b.players[this.id_]=this,this.userActive_=!0,this.reportUserActivity(),this.listenForUserActivity(),this.on("fullscreenchange",this.handleFullscreenChange),this.on("stageclick",this.handleStageClick)}return g(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech&&this.tech.dispose(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.el_=a.prototype.createEl.call(this,"div"),c=this.tag;c.removeAttribute("width"),c.removeAttribute("height");var d=q.getElAttributes(c);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=D.createStyleElement("vjs-styles-dimensions");var e=k["default"].querySelector(".vjs-styles-defaults"),f=k["default"].querySelector("head");return f.insertBefore(this.styleEl_,e?e.nextSibling:f.firstChild),this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),q.insertElFirst(c,b),this.el_=b,b},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a,b){var c=a+"_";if(void 0===b)return this[c]||0;if(""===b)this[c]=void 0;else{var d=parseFloat(b);if(isNaN(d))return x["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid")))},b.prototype.aspectRatio=function(a){if(void 0===a)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),D.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech=function(a,b){this.tech&&this.unloadTech(),"Html5"!==a&&this.tag&&(i["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName=a,this.isReady_=!1;var c=s.bind(this,function(){this.triggerReady()}),d=L["default"]({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:b,playerId:this.id(),techId:this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(d.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(d.startTime=this.cache_.currentTime),this.cache_.src=b.src);var e=i["default"].getComponent(a);this.tech=new e(d),P["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech),this.on(this.tech,"ready",this.handleTechReady),this.on(this.tech,"loadstart",this.handleTechLoadStart),this.on(this.tech,"waiting",this.handleTechWaiting),this.on(this.tech,"canplay",this.handleTechCanPlay),this.on(this.tech,"canplaythrough",this.handleTechCanPlayThrough),this.on(this.tech,"playing",this.handleTechPlaying),this.on(this.tech,"ended",this.handleTechEnded),this.on(this.tech,"seeking",this.handleTechSeeking),this.on(this.tech,"seeked",this.handleTechSeeked),this.on(this.tech,"play",this.handleTechPlay),this.on(this.tech,"firstplay",this.handleTechFirstPlay),this.on(this.tech,"pause",this.handleTechPause),this.on(this.tech,"progress",this.handleTechProgress),this.on(this.tech,"durationchange",this.handleTechDurationChange),this.on(this.tech,"fullscreenchange",this.handleTechFullscreenChange),this.on(this.tech,"error",this.handleTechError),this.on(this.tech,"suspend",this.handleTechSuspend),this.on(this.tech,"abort",this.handleTechAbort),this.on(this.tech,"emptied",this.handleTechEmptied),this.on(this.tech,"stalled",this.handleTechStalled),this.on(this.tech,"loadedmetadata",this.handleTechLoadedMetaData),this.on(this.tech,"loadeddata",this.handleTechLoadedData),this.on(this.tech,"timeupdate",this.handleTechTimeUpdate),this.on(this.tech,"ratechange",this.handleTechRateChange),this.on(this.tech,"volumechange",this.handleTechVolumeChange),this.on(this.tech,"texttrackchange",this.onTextTrackChange),this.on(this.tech,"loadedmetadata",this.updateStyleEl_),this.usingNativeControls(this.techGet("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners(),this.tech.el().parentNode===this.el()||"Html5"===a&&this.tag||q.insertElFirst(this.tech.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null),this.tech.ready(c,!0)},b.prototype.unloadTech=function(){this.textTracks_=this.textTracks(),this.textTracksJson_=P["default"].textTracksToJson(this),this.isReady_=!1,this.tech.dispose(),this.tech=!1},b.prototype.addTechControlsListeners=function(){
+this.removeTechControlsListeners(),this.on(this.tech,"mousedown",this.handleTechClick),this.on(this.tech,"touchstart",this.handleTechTouchStart),this.on(this.tech,"touchmove",this.handleTechTouchMove),this.on(this.tech,"touchend",this.handleTechTouchEnd),this.on(this.tech,"tap",this.handleTechTap)},b.prototype.removeTechControlsListeners=function(){this.off(this.tech,"tap",this.handleTechTap),this.off(this.tech,"touchstart",this.handleTechTouchStart),this.off(this.tech,"touchmove",this.handleTechTouchMove),this.off(this.tech,"touchend",this.handleTechTouchEnd),this.off(this.tech,"mousedown",this.handleTechClick)},b.prototype.handleTechReady=function(){this.triggerReady(),this.cache_.volume&&this.techCall("setVolume",this.cache_.volume),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechLoadStart=function(){this.removeClass("vjs-ended"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){return void 0!==a?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_},b.prototype.handleTechPlay=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting=function(){this.addClass("vjs-waiting"),this.trigger("waiting")},b.prototype.handleTechCanPlay=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay=function(){this.options_.starttime&&this.currentTime(this.options_.starttime),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechProgress=function(){this.trigger("progress"),1===this.bufferedPercent()&&this.trigger("loadedalldata")},b.prototype.handleTechEnded=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange=function(){this.updateDuration(),this.trigger("durationchange")},b.prototype.handleTechClick=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd=function(a){a.preventDefault()},b.prototype.updateDuration=function(){var a=this.techGet("duration");a&&(0>a&&(a=1/0),this.duration(a),a===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"))},b.prototype.handleFullscreenChange=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick=function(){this.reportUserActivity()},b.prototype.handleTechFullscreenChange=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError=function(){var a=this.tech.error();this.error(a&&a.code)},b.prototype.handleTechSuspend=function(){this.trigger("suspend")},b.prototype.handleTechAbort=function(){this.trigger("abort")},b.prototype.handleTechEmptied=function(){this.trigger("emptied")},b.prototype.handleTechStalled=function(){this.trigger("stalled")},b.prototype.handleTechLoadedMetaData=function(){this.trigger("loadedmetadata")},b.prototype.handleTechLoadedData=function(){this.trigger("loadeddata")},b.prototype.handleTechTimeUpdate=function(){this.trigger("timeupdate")},b.prototype.handleTechRateChange=function(){this.trigger("ratechange")},b.prototype.handleTechVolumeChange=function(){this.trigger("volumechange")},b.prototype.onTextTrackChange=function(){this.trigger("texttrackchange")},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall=function(a,b){if(this.tech&&!this.tech.isReady_)this.tech.ready(function(){this[a](b)},!0);else try{this.tech[a](b)}catch(c){throw x["default"](c),c}},b.prototype.techGet=function(a){if(this.tech&&this.tech.isReady_)try{return this.tech[a]()}catch(b){throw void 0===this.tech[a]?x["default"]("Video.js: "+a+" method not defined for "+this.techName+" playback technology.",b):"TypeError"===b.name?(x["default"]("Video.js: "+a+" unavailable on "+this.techName+" playback technology element.",b),this.tech.isReady_=!1):x["default"](b),b}},b.prototype.play=function(){return this.techCall("play"),this},b.prototype.pause=function(){return this.techCall("pause"),this},b.prototype.paused=function(){return this.techGet("paused")===!1?!1:!0},b.prototype.scrubbing=function(a){return void 0!==a?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return void 0!==a?(this.techCall("setCurrentTime",a),this):this.cache_.currentTime=this.techGet("currentTime")||0},b.prototype.duration=function(a){return void 0!==a?(this.cache_.duration=parseFloat(a),this):(void 0===this.cache_.duration&&this.updateDuration(),this.cache_.duration||0)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function c(){var c=this.techGet("buffered");return c&&c.length||(c=A.createTimeRange(0,0)),c},b.prototype.bufferedPercent=function(){return B.bufferedPercent(this.buffered(),this.duration())},b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return void 0!==a?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall("setVolume",b),this):(b=parseFloat(this.techGet("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){return void 0!==a?(this.techCall("setMuted",a),this):this.techGet("muted")||!1},b.prototype.supportsFullScreen=function(){return this.techGet("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return void 0!==a?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=F["default"];return this.isFullscreen(!0),a.requestFullscreen?(o.on(k["default"],a.fullscreenchange,s.bind(this,function b(){this.isFullscreen(k["default"][a.fullscreenElement]),this.isFullscreen()===!1&&o.off(k["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech.supportsFullScreen()?this.techCall("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=F["default"];return this.isFullscreen(!1),a.requestFullscreen?k["default"][a.exitFullscreen]():this.tech.supportsFullScreen()?this.techCall("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=k["default"].documentElement.style.overflow,o.on(k["default"],"keydown",s.bind(this,this.fullWindowOnEscKey)),k["default"].documentElement.style.overflow="hidden",q.addElClass(k["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,o.off(k["default"],"keydown",this.fullWindowOnEscKey),k["default"].documentElement.style.overflow=this.docOrigOverflow,q.removeElClass(k["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)}},b.prototype.playbackRate=function(a){return void 0!==a?(this.techCall("setPlaybackRate",a),this):this.tech&&this.tech.featuresPlaybackRate?this.techGet("playbackRate"):1},b.prototype.isAudio=function(a){return void 0!==a?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.networkState=function(){return this.techGet("networkState")},b.prototype.readyState=function(){return this.techGet("readyState")},b.prototype.textTracks=function(){return this.tech&&this.tech.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech&&this.tech.remoteTextTracks()},b.prototype.addTextTrack=function(a,b,c){return this.tech&&this.tech.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a){return this.tech&&this.tech.addRemoteTextTrack(a)},b.prototype.removeRemoteTextTrack=function(a){this.tech&&this.tech.removeRemoteTextTrack(a)},b.prototype.videoWidth=function(){return this.tech&&this.tech.videoWidth&&this.tech.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech&&this.tech.videoHeight&&this.tech.videoHeight()||0},b.prototype.language=function(a){return void 0===a?this.language_:(this.language_=(""+a).toLowerCase(),this)},b.prototype.languages=function(){return N["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=N["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(q.getElAttributes(k)):"track"===l&&b.tracks.push(q.getElAttributes(k))}return b},b}(i["default"]));Z.players={};var $=m["default"].navigator;Z.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{},errorDisplay:{},textTrackSettings:{}},language:k["default"].getElementsByTagName("html")[0].getAttribute("lang")||$.languages&&$.languages[0]||$.userLanguage||$.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Z.prototype.handleLoadedMetaData,Z.prototype.handleLoadedData,Z.prototype.handleLoadedAllData,Z.prototype.handleUserActive,Z.prototype.handleUserInactive,Z.prototype.handleTimeUpdate,Z.prototype.handleVolumeChange,Z.prototype.handleError,Z.prototype.flexNotSupported_=function(){var a=k["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},i["default"].registerComponent("Player",Z),c["default"]=Z,b.exports=c["default"]},{"./big-play-button.js":46,"./component.js":48,"./control-bar/control-bar.js":49,"./error-display.js":78,"./fullscreen-api.js":81,"./loading-spinner.js":82,"./media-error.js":83,"./poster-image.js":89,"./tech/html5.js":94,"./tech/loader.js":95,"./tracks/text-track-display.js":98,"./tracks/text-track-list-converter.js":100,"./tracks/text-track-settings.js":102,"./utils/browser.js":104,"./utils/buffer.js":105,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/guid.js":111,"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/stylesheet.js":114,"./utils/time-ranges.js":115,"./utils/to-title-case.js":116,"global/document":1,"global/window":2,"object.assign":40,"safe-json-parse/tuple":45}],88:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.js":87}],89:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./button.js"),i=e(h),j=a("./component.js"),k=e(j),l=a("./utils/fn.js"),m=d(l),n=a("./utils/dom.js"),o=d(n),p=a("./utils/browser.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),c.on("posterchange",m.bind(this,this.update))}return g(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=o.createEl("div",{className:"vjs-poster",tabIndex:-1});return q.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=o.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(){var a=this.player().poster();this.setSrc(a),a?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b}(i["default"]);k["default"].registerComponent("PosterImage",r),c["default"]=r,b.exports=c["default"]},{"./button.js":47,"./component.js":48,"./utils/browser.js":104,"./utils/dom.js":107,"./utils/fn.js":109}],90:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var f=a("./utils/events.js"),g=e(f),h=a("global/document"),i=d(h),j=a("global/window"),k=d(j),l=!1,m=void 0,n=function(){var a=i["default"].getElementsByTagName("video"),b=i["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){o(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){m(f)}}}else l||o(1)},o=function(a,b){m=b,setTimeout(n,a)};"complete"===i["default"].readyState?l=!0:g.one(k["default"],"load",function(){l=!0});var p=function(){return l};c.autoSetup=n,c.autoSetupTimeout=o,c.hasLoaded=p},{"./utils/events.js":108,"global/document":1,"global/window":2}],91:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("global/document"),m=e(l),n=a("object.assign"),o=e(n),p=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.bar=this.getChild(this.options_.barName),this.vertical(!!this.options_.vertical),this.on("mousedown",this.handleMouseDown),this.on("touchstart",this.handleMouseDown),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur),this.on("click",this.handleClick),this.on(c,"controlsvisible",this.update),this.on(c,this.playerEvent,this.update)}return g(b,a),b.prototype.createEl=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return c.className=c.className+" vjs-slider",c=o["default"]({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},c),a.prototype.createEl.call(this,b,c)},b.prototype.handleMouseDown=function(a){a.preventDefault(),k.blockTextSelection(),this.addClass("vjs-sliding"),this.on(m["default"],"mousemove",this.handleMouseMove),this.on(m["default"],"mouseup",this.handleMouseUp),this.on(m["default"],"touchmove",this.handleMouseMove),this.on(m["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){k.unblockTextSelection(),this.removeClass("vjs-sliding"),this.off(m["default"],"mousemove",this.handleMouseMove),this.off(m["default"],"mouseup",this.handleMouseUp),this.off(m["default"],"touchmove",this.handleMouseMove),this.off(m["default"],"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||0>a||a===1/0)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=this.el_,c=k.findElPosition(b),d=b.offsetWidth,e=b.offsetHeight;if(this.vertical()){var f=c.top,g=void 0;return g=a.changedTouches?a.changedTouches[0].pageY:a.pageY,Math.max(0,Math.min(1,(f-g+e)/e))}var h=c.left,i=void 0;return i=a.changedTouches?a.changedTouches[0].pageX:a.pageX,Math.max(0,Math.min(1,(i-h)/d))},b.prototype.handleFocus=function(){this.on(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):(38===a.which||39===a.which)&&(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return void 0===a?this.vertical_||!1:(this.vertical_=!!a,this.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(i["default"]);i["default"].registerComponent("Slider",p),c["default"]=p,b.exports=c["default"]},{"../component.js":48,"../utils/dom.js":107,"global/document":1,"object.assign":40}],92:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(c=d=a.length)),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],93:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=a.charAt(0).toUpperCase()+a.slice(1);A["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function i(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a("./tech"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/time-ranges.js"),q=a("./flash-rtmp"),r=e(q),s=a("../component"),t=e(s),u=a("global/window"),v=e(u),w=a("object.assign"),x=e(w),y=v["default"].navigator,z=function(a){function b(c,d){f(this,b),a.call(this,c,d),c.source&&this.ready(function(){this.setSource(c.source)},!0),c.startTime&&this.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["default"].videojs.Flash.onError=b.onError,this.on("seeked",function(){this.lastSeekTarget_=void 0})}return g(b,a),b.prototype.createEl=function(){var a=this.options_,c=a.techId,d=x["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=x["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=x["default"]({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.ended()&&this.setCurrentTime(0),this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){return void 0===a?this.currentSrc():this.setSrc(a)},b.prototype.setSrc=function(a){if(a=o.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()){var b=this;this.setTimeout(function(){b.play()},0)}},b.prototype.seeking=function(){return void 0!==this.lastSeekTarget_},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b=10},k["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=o.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in z.formats?"maybe":""},z.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=m.getEl(a).tech;c.trigger(b)},z.onError=function(a,b){var c=m.getEl(a).tech;return"srcnotfound"===b?c.error(4):void c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d),f=m.createEl("div",{innerHTML:e}).childNodes[0];return f},z.getEmbedCode=function(a,b,c,d){var e=''}),d=x["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=a+'="'+d[a]+'" '}),""+e+h+">"+g+""},r["default"](z),t["default"].registerComponent("Flash",z),c["default"]=z,b.exports=c["default"]},{"../component":48,"../utils/dom.js":107,"../utils/time-ranges.js":115,"../utils/url.js":117,"./flash-rtmp":92,"./tech":96,"global/window":2,"object.assign":40}],94:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./tech.js"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/log.js"),s=e(r),t=a("../utils/browser.js"),u=d(t),v=a("global/document"),w=e(v),x=a("global/window"),y=e(x),z=a("object.assign"),A=e(z),B=a("../utils/merge-options.js"),C=e(B),D=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=c.source;if(e&&(this.el_.currentSrc!==e.src||c.tag&&3===c.tag.initNetworkState_)&&this.setSource(e),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),m.setElAttributes(a,i)}return a},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},b.prototype.pause=function(){this.el_.pause()},b.prototype.paused=function(){return this.el_.paused},b.prototype.currentTime=function(){return this.el_.currentTime},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){s["default"](b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){return this.el_.duration||0},b.prototype.buffered=function(){return this.el_.buffered},b.prototype.volume=function(){return this.el_.volume},b.prototype.setVolume=function(a){this.el_.volume=a},b.prototype.muted=function(){return this.el_.muted},b.prototype.setMuted=function(a){this.el_.muted=a},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=y["default"].navigator.userAgent;if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;"webkitDisplayingFullscreen"in a&&this.one("webkitbeginfullscreen",function(){this.one("webkitendfullscreen",function(){this.trigger("fullscreenchange",{isFullscreen:!1})}),this.trigger("fullscreenchange",{isFullscreen:!0})}),a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){return void 0===a?this.el_.src:void this.setSrc(a)},b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return this.el_.currentSrc},b.prototype.poster=function(){return this.el_.poster},b.prototype.setPoster=function(a){this.el_.poster=a},b.prototype.preload=function(){return this.el_.preload},b.prototype.setPreload=function(a){this.el_.preload=a},b.prototype.autoplay=function(){return this.el_.autoplay},b.prototype.setAutoplay=function(a){this.el_.autoplay=a},b.prototype.controls=function(){return this.el_.controls},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.loop=function(){return this.el_.loop},b.prototype.setLoop=function(a){this.el_.loop=a},b.prototype.error=function(){return this.el_.error},b.prototype.seeking=function(){return this.el_.seeking},b.prototype.seekable=function(){return this.el_.seekable},b.prototype.ended=function(){return this.el_.ended},b.prototype.defaultMuted=function(){return this.el_.defaultMuted},b.prototype.playbackRate=function(){return this.el_.playbackRate},b.prototype.played=function(){return this.el_.played},b.prototype.setPlaybackRate=function(a){this.el_.playbackRate=a},b.prototype.networkState=function(){return this.el_.networkState},b.prototype.readyState=function(){return this.el_.readyState},b.prototype.videoWidth=function(){return this.el_.videoWidth},b.prototype.videoHeight=function(){return this.el_.videoHeight},b.prototype.textTracks=function(){return a.prototype.textTracks.call(this)},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.addRemoteTextTrack=function(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this.featuresNativeTextTracks)return a.prototype.addRemoteTextTrack.call(this,b);var c=w["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),this.el().appendChild(c),this.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(i["default"]);D.TEST_VID=w["default"].createElement("video");var E=w["default"].createElement("track");E.kind="captions",E.srclang="en",E.label="English",D.TEST_VID.appendChild(E),D.isSupported=function(){try{D.TEST_VID.volume=.5}catch(a){return!1}return!!D.TEST_VID.canPlayType},i["default"].withSourceHandlers(D),D.nativeSourceHandler={},D.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return D.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=o.getFileExtension(a.src),b("video/"+c)):""},D.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},D.nativeSourceHandler.dispose=function(){},D.registerSourceHandler(D.nativeSourceHandler),D.canControlVolume=function(){var a=D.TEST_VID.volume;return D.TEST_VID.volume=a/2+.1,a!==D.TEST_VID.volume},D.canControlPlaybackRate=function(){var a=D.TEST_VID.playbackRate;return D.TEST_VID.playbackRate=a/2+.1,a!==D.TEST_VID.playbackRate},D.supportsNativeTextTracks=function(){var a;return a=!!D.TEST_VID.textTracks,a&&D.TEST_VID.textTracks.length>0&&(a="number"!=typeof D.TEST_VID.textTracks[0].mode),a&&u.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in D.TEST_VID.textTracks||(a=!1),a},D.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],D.prototype.featuresVolumeControl=D.canControlVolume(),D.prototype.featuresPlaybackRate=D.canControlPlaybackRate(),D.prototype.movingMediaElementInDOM=!u.IS_IOS,D.prototype.featuresFullscreenResize=!0,D.prototype.featuresProgressEvents=!0,D.prototype.featuresNativeTextTracks=D.supportsNativeTextTracks();var F=void 0,G=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,H=/^video\/mp4/i;D.patchCanPlayType=function(){u.ANDROID_VERSION>=4&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":F.call(this,a)}),u.IS_OLD_ANDROID&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&H.test(a)?"maybe":F.call(this,a)})},D.unpatchCanPlayType=function(){var a=D.TEST_VID.constructor.prototype.canPlayType;return D.TEST_VID.constructor.prototype.canPlayType=F,F=null,a},D.patchCanPlayType(),D.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&!function(){try{a.load()}catch(b){}}()}},k["default"].registerComponent("Html5",D),c["default"]=D,b.exports=c["default"]},{"../component":48,"../utils/browser.js":104,"../utils/dom.js":107,"../utils/fn.js":109,"../utils/log.js":112,"../utils/merge-options.js":113,"../utils/url.js":117,"./tech.js":96,"global/document":1,"global/window":2,"object.assign":40}],95:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component"),h=d(g),i=a("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=function(a){function b(c,d,f){if(e(this,b),a.call(this,c,d,f),d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var g=0,i=d.playerOptions.techOrder;g0&&this.trigger("loadstart")},!0)},b.prototype.manualProgressOn=function(){this.on("durationchange",this.onDurationChange),this.manualProgress=!0,this.one("ready",this.trackProgress)},b.prototype.manualProgressOff=function(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange)},b.prototype.trackProgress=function(){this.stopTrackingProgress(),this.progressInterval=this.setInterval(o.bind(this,function(){var a=this.bufferedPercent();this.bufferedPercent_!==a&&this.trigger("progress"),this.bufferedPercent_=a,1===a&&this.stopTrackingProgress()}),500)},b.prototype.onDurationChange=function(){this.duration_=this.duration()},b.prototype.buffered=function(){return r.createTimeRange(0,0)},b.prototype.bufferedPercent=function(){return s.bufferedPercent(this.buffered(),this.duration_)},b.prototype.stopTrackingProgress=function(){this.clearInterval(this.progressInterval)},b.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime),this.on("pause",this.stopTrackingCurrentTime)},b.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime),this.off("pause",this.stopTrackingCurrentTime)},b.prototype.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)},b.prototype.stopTrackingCurrentTime=function(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},b.prototype.dispose=function(){var b=this.textTracks();if(b)for(var c=b.length;c--;)this.removeRemoteTextTrack(b[c]);this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),a.prototype.dispose.call(this)},b.prototype.error=function(a){return void 0!==a&&(this.error_=a instanceof u["default"]?a:new u["default"](a),this.trigger("error")),this.error_},b.prototype.played=function(){return this.hasStarted_?r.createTimeRange(0,0):r.createTimeRange()},b.prototype.setCurrentTime=function(){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},b.prototype.initTextTrackListeners=function(){var a=o.bind(this,function(){this.trigger("texttrackchange")}),b=this.textTracks();b&&(b.addEventListener("removetrack",a),b.addEventListener("addtrack",a),this.on("dispose",o.bind(this,function(){b.removeEventListener("removetrack",a),b.removeEventListener("addtrack",a)})))},b.prototype.emulateTextTracks=function(){if(!w["default"].WebVTT&&null!=this.el().parentNode){var a=y["default"].createElement("script");a.src=this.options_["vtt.js"]||"../node_modules/vtt.js/dist/vtt.js",this.el().parentNode.appendChild(a),w["default"].WebVTT=!0}var b=this.textTracks();if(b){var c=o.bind(this,function(){var a=this,c=function(){return a.trigger("texttrackchange")};c();for(var d=0;db)for(c=b;d>c;c++)e.call(this,c)},j.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=j,b.exports=c["default"]},{"../utils/browser.js":104,"global/document":1}],98:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){}}c.__esModule=!0;var j=a("../component"),k=e(j),l=a("../menu/menu.js"),m=(e(l),a("../menu/menu-item.js")),n=(e(m),a("../menu/menu-button.js")),o=(e(n),a("../utils/fn.js")),p=d(o),q=a("global/document"),r=(e(q),a("global/window")),s=e(r),t="#222",u="#ccc",v={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'},w=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),c.on("loadstart",p.bind(this,this.toggleDisplay)),c.on("texttrackchange",p.bind(this,this.updateDisplay)),c.ready(p.bind(this,function(){if(c.tech&&c.tech.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",p.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},n.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=n,b.exports=c["default"]},{"../event-target":79,"../utils/browser.js":104,"../utils/fn.js":109,"global/document":1}],102:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=void 0;return a.selectedOptions?b=a.selectedOptions[0]:a.options&&(b=a.options[a.options.selectedIndex]),b.value}function i(a,b){if(b){var c=void 0;for(c=0;c select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),n.on(this.el().querySelector(".vjs-fg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".window-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-text-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-window-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-percent select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-edge-style select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-family select"),"change",p.bind(this,this.updateDisplay)),this.options_.persistTextTrackSettings&&this.restoreSettings()}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-caption-settings vjs-modal-overlay",innerHTML:j()})},b.prototype.getValues=function(){var a=this.el(),b=h(a.querySelector(".vjs-edge-style select")),c=h(a.querySelector(".vjs-font-family select")),d=h(a.querySelector(".vjs-fg-color > select")),e=h(a.querySelector(".vjs-text-opacity > select")),f=h(a.querySelector(".vjs-bg-color > select")),g=h(a.querySelector(".vjs-bg-opacity > select")),i=h(a.querySelector(".window-color > select")),j=h(a.querySelector(".vjs-window-opacity > select")),k=v["default"].parseFloat(h(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:g,textOpacity:e,windowOpacity:j,edgeStyle:b,fontFamily:c,color:d,backgroundColor:f,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();i(b.querySelector(".vjs-edge-style select"),a.edgeStyle),i(b.querySelector(".vjs-font-family select"),a.fontFamily),i(b.querySelector(".vjs-fg-color > select"),a.color),i(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),i(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),i(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),i(b.querySelector(".window-color > select"),a.windowColor),i(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),i(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=t["default"](v["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&r["default"].error(b),c&&this.setValues(c)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.getOwnPropertyNames(a).length>0?v["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):v["default"].localStorage.removeItem("vjs-text-track-settings")}catch(b){}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(l["default"]);l["default"].registerComponent("TextTrackSettings",w),c["default"]=w,b.exports=c["default"]},{"../component":48,"../utils/events.js":108,"../utils/fn.js":109,"../utils/log.js":112,"global/window":2,"safe-json-parse/tuple":45}],103:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var f=a("./text-track-cue-list"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/guid.js"),k=d(j),l=a("../utils/browser.js"),m=d(l),n=a("./text-track-enums"),o=d(n),p=a("../utils/log.js"),q=e(p),r=a("../event-target"),s=e(r),t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("../xhr.js"),y=e(x),z=function D(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(m.IS_IE8){b=u["default"].createElement("custom");for(var c in D.prototype)b[c]=D.prototype[c]}b.tech_=a.tech;var d=o.TextTrackMode[a.mode]||"disabled",e=o.TextTrackKind[a.kind]||"subtitles",f=a.label||"",h=a.language||a.srclang||"",j=a.id||"vjs_text_track_"+k.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var l=new g["default"](b.cues_),n=new g["default"](b.activeCues_),p=!1,q=i.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return f},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return h},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return j},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){o.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?l:null},set:Function.prototype}),Object.defineProperty(b,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return n;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;d>c;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var A=function E(a,b){if("function"!=typeof w["default"].WebVTT)return w["default"].setTimeout(function(){E(a,b)},25);var c=new w["default"].WebVTT.Parser(w["default"],w["default"].vttjs,w["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){q["default"].error(a)},c.parse(a),c.flush()},B=function(a,b){y["default"](a,i.bind(this,function(a,c,d){return a?q["default"].error(a,c):(b.loaded_=!0,void A(d,b))}))},C=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=z,b.exports=c["default"]},{"../event-target":79,"../utils/browser.js":104,"../utils/fn.js":109,"../utils/guid.js":111,"../utils/log.js":112,"../xhr.js":119,"./text-track-cue-list":97,"./text-track-enums":99,"global/document":1,"global/window":2}],104:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=h["default"].navigator.userAgent,j=/AppleWebKit\/([\d.]+)/i.exec(i),k=j?parseFloat(j.pop()):null,l=/iPhone/i.test(i);c.IS_IPHONE=l;var m=/iPad/i.test(i);c.IS_IPAD=m;var n=/iPod/i.test(i);c.IS_IPOD=n;var o=l||m||n;c.IS_IOS=o;var p=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();c.IOS_VERSION=p;var q=/Android/i.test(i);c.IS_ANDROID=q;var r=function(){var a,b,c=i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);return c?(a=c[1]&&parseFloat(c[1]),b=c[2]&&parseFloat(c[2]),a&&b?parseFloat(c[1]+"."+c[2]):a?a:null):null}();c.ANDROID_VERSION=r;var s=q&&/webkit/i.test(i)&&2.3>r;c.IS_OLD_ANDROID=s;var t=q&&5>r&&537>k;c.IS_NATIVE_ANDROID=t;var u=/Firefox/i.test(i);c.IS_FIREFOX=u;var v=/Chrome/i.test(i);c.IS_CHROME=v;var w=/MSIE\s8\.0/.test(i);c.IS_IE8=w;var x=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=x;var y="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=y},{"global/document":1,"global/window":2}],105:[function(a,b,c){"use strict";function d(a,b){var c,d,f=0;if(!b)return 0;a&&a.length||(a=e.createTimeRange(0,0));for(var g=0;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":115}],106:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./log.js"),f=d(e),g={get:function(a,b){return a[b]},set:function(a,b,c){return a[b]=c,!0}};c["default"]=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("function"==typeof Proxy){var c=function(){var c={};return Object.keys(b).forEach(function(a){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":112}],107:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a){return 0===a.indexOf("#")&&(a=a.slice(1)),u["default"].getElementById(a)}function g(){var a=arguments.length<=0||void 0===arguments[0]?"div":arguments[0],b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=u["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var d=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?c.setAttribute(a,d):c[a]=d}),c}function h(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function i(a){var b=a[A];return b||(b=a[A]=y.newGUID()),z[b]||(z[b]={}),z[b]}function j(a){var b=a[A];return b?!!Object.getOwnPropertyNames(z[b]).length:!1}function k(a){var b=a[A];if(b){delete z[b];try{delete a[A]}catch(c){a.removeAttribute?a.removeAttribute(A):a[A]=null}}}function l(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function m(a,b){l(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function n(a,b){if(l(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1);a.className=c.join(" ")}}function o(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d);
-},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],76:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("../../utils/dom.js"),j=d(i),k=a("../../utils/format-time.js"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=j.createEl("div",{className:"vjs-remaining-time-display",innerHTML:''+this.localize("Remaining Time")+" -0:00","aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){if(this.player_.duration()){var a=this.localize("Remaining Time"),b=l["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(h["default"]);h["default"].registerComponent("RemainingTimeDisplay",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],77:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"
/
"})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":52}],78:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../slider/slider.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("../../utils/fn.js"),l=d(k),m=a("./volume-level.js"),n=(d(m),function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(l.bind(this,this.updateARIAAttributes))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar","aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(){var a=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",a),this.el_.setAttribute("aria-valuetext",a+"%")},b}(h["default"]));n.prototype.options_={children:{volumeLevel:{}},barName:"volumeLevel"},n.prototype.playerEvent="volumechange",j["default"].registerComponent("VolumeBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":52,"../../slider/slider.js":95,"../../utils/fn.js":113,"./volume-level.js":80}],79:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./volume-bar.js"),j=(d(i),function(a){function b(c,d){e(this,b),a.call(this,c,d),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:{volumeBar:{}}},h["default"].registerComponent("VolumeControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":52,"./volume-bar.js":78}],80:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":52}],81:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){var d=void 0===arguments[1]?{}:arguments[1];e(this,b),void 0===d.vertical&&(d.vertical=d.inline?!1:!0),d.volumeBar=d.volumeBar||{},d.volumeBar.vertical=!!d.vertical,a.call(this,c,d),this.on(c,"volumechange",this.volumeUpdate),this.on(c,"loadstart",this.volumeUpdate),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}),this.addClass("vjs-menu-button")}return f(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return b.on("focus",function(){a.lockShowing()}),b.on("blur",function(){a.unlockShowing()}),a.addChild(b),a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":51,"../component.js":52,"../menu/menu-button.js":88,"../menu/menu.js":90,"./mute-toggle.js":56,"./volume-control/volume-bar.js":78}],82:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./component"),h=d(g),i=a("./utils/dom.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=j.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(h["default"]);h["default"].registerComponent("ErrorDisplay",k),c["default"]=k,b.exports=c["default"]},{"./component":52,"./utils/dom.js":111}],83:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":112}],84:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},h=function(a){var b=void 0===arguments[1]?{}:arguments[1],c=function(){a.apply(this,arguments)},d={};"object"==typeof b?("function"==typeof b.init&&(f["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":116}],85:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new l["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(n.createEl("li",{className:"vjs-menu-title",innerHTML:r["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(h["default"]);j["default"].registerComponent("MenuButton",s),c["default"]=s,b.exports=c["default"]},{"../button.js":51,"../component.js":52,"../utils/dom.js":111,"../utils/fn.js":113,"../utils/to-title-case.js":120,"./menu.js":90}],89:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=a("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}return f(b,a),b.prototype.createEl=function(b,c){return a.prototype.createEl.call(this,"li",l["default"]({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label)},c))},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))}),b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":51,"../component.js":52,"object.assign":44}],90:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("../utils/dom.js"),j=d(i),k=a("../utils/fn.js"),l=d(k),m=a("../utils/events.js"),n=d(m),o=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",l.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=j.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),n.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(h["default"]);h["default"].registerComponent("Menu",o),c["default"]=o,b.exports=c["default"]},{"../component.js":52,"../utils/dom.js":111,"../utils/events.js":112,"../utils/fn.js":113}],91:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./component.js"),h=d(g),i=a("global/document"),j=d(i),k=a("global/window"),l=d(k),m=a("./utils/events.js"),n=d(m),o=a("./utils/dom.js"),p=d(o),q=a("./utils/fn.js"),r=d(q),s=a("./utils/guid.js"),t=d(s),u=a("./utils/browser.js"),v=(d(u),a("./utils/log.js")),w=d(v),x=a("./utils/to-title-case.js"),y=d(x),z=a("./utils/time-ranges.js"),A=a("./utils/buffer.js"),B=a("./utils/stylesheet.js"),C=d(B),D=a("./fullscreen-api.js"),E=d(D),F=a("./media-error.js"),G=d(F),H=a("safe-json-parse/tuple"),I=d(H),J=a("object.assign"),K=d(J),L=a("./utils/merge-options.js"),M=d(L),N=a("./tracks/text-track-list-converter.js"),O=d(N),P=a("./tech/loader.js"),Q=(d(P),a("./poster-image.js")),R=(d(Q),a("./tracks/text-track-display.js")),S=(d(R),a("./loading-spinner.js")),T=(d(S),a("./big-play-button.js")),U=(d(T),a("./control-bar/control-bar.js")),V=(d(U),a("./error-display.js")),W=(d(V),a("./tracks/text-track-settings.js")),X=(d(W),a("./tech/html5.js")),Y=(d(X),function(a){function b(c,d,f){var g=this;if(e(this,b),c.id=c.id||"vjs_video_"+t.newGUID(),d=K["default"](b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,a.call(this,null,d,f),!this.options_||!this.options_.techOrder||!this.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");this.tag=c,this.tagAttributes=c&&p.getElAttributes(c),this.language(this.options_.language),d.languages?!function(){var a={};Object.getOwnPropertyNames(d.languages).forEach(function(b){a[b.toLowerCase()]=d.languages[b]}),g.languages_=a}():this.languages_=b.prototype.options_.languages,this.cache_={},this.poster_=d.poster||"",this.controls_=!!d.controls,c.controls=!1,this.scrubbing_=!1,this.el_=this.createEl();var h=M["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){a[b].playerOptions=h,"function"==typeof this[b]?this[b](a[b]):w["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),b.players[this.id_]=this,this.userActive_=!0,this.reportUserActivity(),this.listenForUserActivity(),this.on("fullscreenchange",this.handleFullscreenChange),this.on("stageclick",this.handleStageClick)}return f(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech&&this.tech.dispose(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.el_=a.prototype.createEl.call(this,"div"),c=this.tag;c.removeAttribute("width"),c.removeAttribute("height");var d=p.getElAttributes(c);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=C.createStyleElement("vjs-styles-dimensions");var e=j["default"].querySelector(".vjs-styles-defaults"),f=j["default"].querySelector("head");return f.insertBefore(this.styleEl_,e?e.nextSibling:f.firstChild),this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),p.insertElFirst(c,b),this.el_=b,b},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a,b){var c=a+"_";if(void 0===b)return this[c]||0;if(""===b)this[c]=void 0;else{var d=parseFloat(b);if(isNaN(d))return w["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this}),b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid")))},b.prototype.aspectRatio=function(a){if(void 0===a)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),C.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech=function(a,b){this.tech&&this.unloadTech(),"Html5"!==a&&this.tag&&(h["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName=a,this.isReady_=!1;var c=r.bind(this,function(){this.triggerReady()}),d=K["default"]({source:b,playerId:this.id(),techId:""+this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(d.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(d.startTime=this.cache_.currentTime),this.cache_.src=b.src);var e=h["default"].getComponent(a);this.tech=new e(d),O["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech),this.on(this.tech,"ready",this.handleTechReady),this.on(this.tech,"usenativecontrols",this.handleTechUseNativeControls),this.on(this.tech,"loadstart",this.handleTechLoadStart),this.on(this.tech,"waiting",this.handleTechWaiting),this.on(this.tech,"canplay",this.handleTechCanPlay),this.on(this.tech,"canplaythrough",this.handleTechCanPlayThrough),this.on(this.tech,"playing",this.handleTechPlaying),this.on(this.tech,"ended",this.handleTechEnded),this.on(this.tech,"seeking",this.handleTechSeeking),this.on(this.tech,"seeked",this.handleTechSeeked),this.on(this.tech,"play",this.handleTechPlay),this.on(this.tech,"firstplay",this.handleTechFirstPlay),this.on(this.tech,"pause",this.handleTechPause),this.on(this.tech,"progress",this.handleTechProgress),this.on(this.tech,"durationchange",this.handleTechDurationChange),this.on(this.tech,"fullscreenchange",this.handleTechFullscreenChange),this.on(this.tech,"error",this.handleTechError),this.on(this.tech,"suspend",this.handleTechSuspend),this.on(this.tech,"abort",this.handleTechAbort),this.on(this.tech,"emptied",this.handleTechEmptied),this.on(this.tech,"stalled",this.handleTechStalled),this.on(this.tech,"loadedmetadata",this.handleTechLoadedMetaData),this.on(this.tech,"loadeddata",this.handleTechLoadedData),this.on(this.tech,"timeupdate",this.handleTechTimeUpdate),this.on(this.tech,"ratechange",this.handleTechRateChange),this.on(this.tech,"volumechange",this.handleTechVolumeChange),this.on(this.tech,"texttrackchange",this.onTextTrackChange),this.on(this.tech,"loadedmetadata",this.updateStyleEl_),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners(),this.tech.el().parentNode===this.el()||"Html5"===a&&this.tag||p.insertElFirst(this.tech.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null),this.tech.ready(c,!0)},b.prototype.unloadTech=function(){this.textTracks_=this.textTracks(),this.textTracksJson_=O["default"].textTracksToJson(this),this.isReady_=!1,this.tech.dispose(),this.tech=!1},b.prototype.addTechControlsListeners=function(){this.on(this.tech,"mousedown",this.handleTechClick),this.on(this.tech,"touchstart",this.handleTechTouchStart),this.on(this.tech,"touchmove",this.handleTechTouchMove),this.on(this.tech,"touchend",this.handleTechTouchEnd),this.on(this.tech,"tap",this.handleTechTap)},b.prototype.removeTechControlsListeners=function(){this.off(this.tech,"tap",this.handleTechTap),this.off(this.tech,"touchstart",this.handleTechTouchStart),this.off(this.tech,"touchmove",this.handleTechTouchMove),this.off(this.tech,"touchend",this.handleTechTouchEnd),this.off(this.tech,"mousedown",this.handleTechClick)},b.prototype.handleTechReady=function(){this.triggerReady(),this.cache_.volume&&this.techCall("setVolume",this.cache_.volume),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechUseNativeControls=function(){this.usingNativeControls(!0)},b.prototype.handleTechLoadStart=function(){this.removeClass("vjs-ended"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){return void 0!==a?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_}),b.prototype.handleTechPlay=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting=function(){this.addClass("vjs-waiting"),this.trigger("waiting")},b.prototype.handleTechCanPlay=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay=function(){this.options_.starttime&&this.currentTime(this.options_.starttime),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechProgress=function(){this.trigger("progress"),1===this.bufferedPercent()&&this.trigger("loadedalldata")},b.prototype.handleTechEnded=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange=function(){this.updateDuration(),this.trigger("durationchange")},b.prototype.handleTechClick=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd=function(a){a.preventDefault()},b.prototype.updateDuration=function(){var a=this.techGet("duration");a&&(0>a&&(a=1/0),this.duration(a),a===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"))},b.prototype.handleFullscreenChange=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick=function(){
-this.reportUserActivity()},b.prototype.handleTechFullscreenChange=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError=function(){this.error(this.tech.error().code)},b.prototype.handleTechSuspend=function(){this.trigger("suspend")},b.prototype.handleTechAbort=function(){this.trigger("abort")},b.prototype.handleTechEmptied=function(){this.trigger("emptied")},b.prototype.handleTechStalled=function(){this.trigger("stalled")},b.prototype.handleTechLoadedMetaData=function(){this.trigger("loadedmetadata")},b.prototype.handleTechLoadedData=function(){this.trigger("loadeddata")},b.prototype.handleTechTimeUpdate=function(){this.trigger("timeupdate")},b.prototype.handleTechRateChange=function(){this.trigger("ratechange")},b.prototype.handleTechVolumeChange=function(){this.trigger("volumechange")},b.prototype.onTextTrackChange=function(){this.trigger("texttrackchange")},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall=function(a,b){if(this.tech&&!this.tech.isReady_)this.tech.ready(function(){this[a](b)},!0);else try{this.tech[a](b)}catch(c){throw w["default"](c),c}},b.prototype.techGet=function(a){if(this.tech&&this.tech.isReady_)try{return this.tech[a]()}catch(b){throw void 0===this.tech[a]?w["default"]("Video.js: "+a+" method not defined for "+this.techName+" playback technology.",b):"TypeError"===b.name?(w["default"]("Video.js: "+a+" unavailable on "+this.techName+" playback technology element.",b),this.tech.isReady_=!1):w["default"](b),b}},b.prototype.play=function(){return this.techCall("play"),this},b.prototype.pause=function(){return this.techCall("pause"),this},b.prototype.paused=function(){return this.techGet("paused")===!1?!1:!0},b.prototype.scrubbing=function(a){return void 0!==a?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return void 0!==a?(this.techCall("setCurrentTime",a),this):this.cache_.currentTime=this.techGet("currentTime")||0},b.prototype.duration=function(a){return void 0!==a?(this.cache_.duration=parseFloat(a),this):(void 0===this.cache_.duration&&this.updateDuration(),this.cache_.duration||0)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){var a=this.techGet("buffered");return a&&a.length||(a=z.createTimeRange(0,0)),a}),b.prototype.bufferedPercent=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){return A.bufferedPercent(this.buffered(),this.duration())}),b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return void 0!==a?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall("setVolume",b),this):(b=parseFloat(this.techGet("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){return void 0!==a?(this.techCall("setMuted",a),this):this.techGet("muted")||!1}),b.prototype.supportsFullScreen=function(){return this.techGet("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return void 0!==a?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=E["default"];return this.isFullscreen(!0),a.requestFullscreen?(n.on(j["default"],a.fullscreenchange,r.bind(this,function b(){this.isFullscreen(j["default"][a.fullscreenElement]),this.isFullscreen()===!1&&n.off(j["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech.supportsFullScreen()?this.techCall("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=E["default"];return this.isFullscreen(!1),a.requestFullscreen?j["default"][a.exitFullscreen]():this.tech.supportsFullScreen()?this.techCall("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=j["default"].documentElement.style.overflow,n.on(j["default"],"keydown",r.bind(this,this.fullWindowOnEscKey)),j["default"].documentElement.style.overflow="hidden",p.addElClass(j["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,n.off(j["default"],"keydown",this.fullWindowOnEscKey),j["default"].documentElement.style.overflow=this.docOrigOverflow,p.removeElClass(j["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)}},b.prototype.playbackRate=function(a){return void 0!==a?(this.techCall("setPlaybackRate",a),this):this.tech&&this.tech.featuresPlaybackRate?this.techGet("playbackRate"):1},b.prototype.isAudio=function(a){return void 0!==a?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.networkState=function(){return this.techGet("networkState")},b.prototype.readyState=function(){return this.techGet("readyState")},b.prototype.textTracks=function(){return this.tech&&this.tech.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech&&this.tech.remoteTextTracks()},b.prototype.addTextTrack=function(a,b,c){return this.tech&&this.tech.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a){return this.tech&&this.tech.addRemoteTextTrack(a)},b.prototype.removeRemoteTextTrack=function(a){this.tech&&this.tech.removeRemoteTextTrack(a)},b.prototype.videoWidth=function(){return this.tech&&this.tech.videoWidth&&this.tech.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech&&this.tech.videoHeight&&this.tech.videoHeight()||0},b.prototype.language=function(a){return void 0===a?this.language_:(this.language_=(""+a).toLowerCase(),this)},b.prototype.languages=function(){return M["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=M["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(p.getElAttributes(k)):"track"===l&&b.tracks.push(p.getElAttributes(k))}return b},b}(h["default"]));Y.players={};var Z=l["default"].navigator;Y.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{},errorDisplay:{},textTrackSettings:{}},language:j["default"].getElementsByTagName("html")[0].getAttribute("lang")||Z.languages&&Z.languages[0]||Z.userLanguage||Z.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Y.prototype.handleLoadedMetaData,Y.prototype.handleLoadedData,Y.prototype.handleLoadedAllData,Y.prototype.handleUserActive,Y.prototype.handleUserInactive,Y.prototype.handleTimeUpdate,Y.prototype.handleVolumeChange,Y.prototype.handleError,Y.prototype.flexNotSupported_=function(){var a=j["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},h["default"].registerComponent("Player",Y),c["default"]=Y,b.exports=c["default"]},{"./big-play-button.js":50,"./component.js":52,"./control-bar/control-bar.js":53,"./error-display.js":82,"./fullscreen-api.js":85,"./loading-spinner.js":86,"./media-error.js":87,"./poster-image.js":93,"./tech/html5.js":98,"./tech/loader.js":99,"./tracks/text-track-display.js":102,"./tracks/text-track-list-converter.js":104,"./tracks/text-track-settings.js":106,"./utils/browser.js":108,"./utils/buffer.js":109,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/guid.js":115,"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/stylesheet.js":118,"./utils/time-ranges.js":119,"./utils/to-title-case.js":120,"global/document":1,"global/window":2,"object.assign":44,"safe-json-parse/tuple":49}],92:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.js":91}],93:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./button.js"),h=d(g),i=a("./component.js"),j=d(i),k=a("./utils/fn.js"),l=d(k),m=a("./utils/dom.js"),n=d(m),o=a("./utils/browser.js"),p=d(o),q=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.update(),c.on("posterchange",l.bind(this,this.update))}return f(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=n.createEl("div",{className:"vjs-poster",tabIndex:-1});return p.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=n.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(){var a=this.player().poster();this.setSrc(a),a?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b}(h["default"]);j["default"].registerComponent("PosterImage",q),c["default"]=q,b.exports=c["default"]},{"./button.js":51,"./component.js":52,"./utils/browser.js":108,"./utils/dom.js":111,"./utils/fn.js":113}],94:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=a("global/document"),h=d(g),i=a("global/window"),j=d(i),k=!1,l=void 0,m=function(){var a=h["default"].getElementsByTagName("video"),b=h["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){n(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){l(f)}}}else k||n(1)},n=function(a,b){l=b,setTimeout(m,a)};"complete"===h["default"].readyState?k=!0:f.one(j["default"],"load",function(){k=!0});var o=function(){return k};c.autoSetup=m,c.autoSetupTimeout=n,c.hasLoaded=o},{"./utils/events.js":112,"global/document":1,"global/window":2}],95:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("../utils/dom.js"),j=d(i),k=a("global/document"),l=d(k),m=a("object.assign"),n=d(m),o=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.bar=this.getChild(this.options_.barName),this.vertical(!!this.options_.vertical),this.on("mousedown",this.handleMouseDown),this.on("touchstart",this.handleMouseDown),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur),this.on("click",this.handleClick),this.on(c,"controlsvisible",this.update),this.on(c,this.playerEvent,this.update)}return f(b,a),b.prototype.createEl=function(b){var c=void 0===arguments[1]?{}:arguments[1];return c.className=c.className+" vjs-slider",c=n["default"]({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},c),a.prototype.createEl.call(this,b,c)},b.prototype.handleMouseDown=function(a){a.preventDefault(),j.blockTextSelection(),this.addClass("vjs-sliding"),this.on(l["default"],"mousemove",this.handleMouseMove),this.on(l["default"],"mouseup",this.handleMouseUp),this.on(l["default"],"touchmove",this.handleMouseMove),this.on(l["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){j.unblockTextSelection(),this.removeClass("vjs-sliding"),this.off(l["default"],"mousemove",this.handleMouseMove),this.off(l["default"],"mouseup",this.handleMouseUp),this.off(l["default"],"touchmove",this.handleMouseMove),this.off(l["default"],"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||0>a||a===1/0)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=this.el_,c=j.findElPosition(b),d=b.offsetWidth,e=b.offsetHeight;if(this.vertical()){var f=c.top,g=void 0;return g=a.changedTouches?a.changedTouches[0].pageY:a.pageY,Math.max(0,Math.min(1,(f-g+e)/e))}var h=c.left,i=void 0;return i=a.changedTouches?a.changedTouches[0].pageX:a.pageX,Math.max(0,Math.min(1,(i-h)/d))},b.prototype.handleFocus=function(){this.on(l["default"],"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):(38===a.which||39===a.which)&&(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(l["default"],"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return void 0===a?this.vertical_||!1:(this.vertical_=!!a,this.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(h["default"]);h["default"].registerComponent("Slider",o),c["default"]=o,b.exports=c["default"]},{"../component.js":52,"../utils/dom.js":111,"global/document":1,"object.assign":44}],96:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(c=d=a.length)),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],97:[function(a,b,c){"use strict";function d(a){var b=a.charAt(0).toUpperCase()+a.slice(1);z["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function e(a){z[a]=function(){return this.el_.vjs_getProperty(a)}}var f=function(a){return a&&a.__esModule?a:{"default":a}},g=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},h=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;for(var i=a("./tech"),j=f(i),k=a("../utils/dom.js"),l=f(k),m=a("../utils/url.js"),n=f(m),o=a("../utils/time-ranges.js"),p=a("./flash-rtmp"),q=f(p),r=a("../component"),s=f(r),t=a("global/window"),u=f(t),v=a("object.assign"),w=f(v),x=u["default"].navigator,y=function(a){function b(c,d){g(this,b),a.call(this,c,d),c.source&&this.ready(function(){this.setSource(c.source)},!0),c.startTime&&this.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),u["default"].videojs=u["default"].videojs||{},u["default"].videojs.Flash=u["default"].videojs.Flash||{},u["default"].videojs.Flash.onReady=b.onReady,u["default"].videojs.Flash.onEvent=b.onEvent,u["default"].videojs.Flash.onError=b.onError,this.on("seeked",function(){this.lastSeekTarget_=void 0})}return h(b,a),b.prototype.createEl=function(){var a=this.options_,c=a.techId,d=w["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=w["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=w["default"]({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){return void 0===a?this.currentSrc():this.setSrc(a)}),b.prototype.setSrc=function(a){if(a=n.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()){var b=this;this.setTimeout(function(){b.play()},0)}},b.prototype.seeking=function(){return void 0!==this.lastSeekTarget_},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b=10},j["default"].withSourceHandlers(y),y.nativeSourceHandler={},y.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=n.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in y.formats?"maybe":""},y.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},y.nativeSourceHandler.dispose=function(){},y.registerSourceHandler(y.nativeSourceHandler),y.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},y.onReady=function(a){var b=l.getEl(a),c=b&&b.tech;c&&c.el()&&y.checkReady(c)},y.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){y.checkReady(a)},50))},y.onEvent=function(a,b){var c=l.getEl(a).tech;c.trigger(b)},y.onError=function(a,b){var c=l.getEl(a).tech,d="FLASH: "+b;"srcnotfound"===b?c.trigger("error",{code:4,message:d}):c.trigger("error",d)},y.version=function(){var a="0,0,0";try{a=new u["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{x.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(x.plugins["Shockwave Flash 2.0"]||x.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},y.embed=function(a,b,c,d){var e=y.getEmbedCode(a,b,c,d),f=l.createEl("div",{innerHTML:e}).childNodes[0];return f},y.getEmbedCode=function(a,b,c,d){var e=''}),d=w["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=""+a+'="'+d[a]+'" '}),""+e+h+">"+g+""},q["default"](y),s["default"].registerComponent("Flash",y),c["default"]=y,b.exports=c["default"]},{"../component":52,"../utils/dom.js":111,"../utils/time-ranges.js":119,"../utils/url.js":121,"./flash-rtmp":96,"./tech":100,"global/window":2,"object.assign":44}],98:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./tech.js"),h=d(g),i=a("../component"),j=d(i),k=a("../utils/dom.js"),l=d(k),m=a("../utils/url.js"),n=d(m),o=a("../utils/fn.js"),p=d(o),q=a("../utils/log.js"),r=d(q),s=a("../utils/browser.js"),t=d(s),u=a("global/document"),v=d(u),w=a("global/window"),x=d(w),y=a("object.assign"),z=d(y),A=a("../utils/merge-options.js"),B=d(A),C=function(a){function b(c,d){e(this,b),a.call(this,c,d);var f=c.source;if(f&&(this.el_.currentSrc!==f.src||c.tag&&3===c.tag.initNetworkState_)&&this.setSource(f),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),l.setElAttributes(a,i)}return a},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},b.prototype.pause=function(){this.el_.pause()},b.prototype.paused=function(){return this.el_.paused},b.prototype.currentTime=function(){return this.el_.currentTime},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){r["default"](b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){return this.el_.duration||0},b.prototype.buffered=function(){return this.el_.buffered},b.prototype.volume=function(){return this.el_.volume},b.prototype.setVolume=function(a){this.el_.volume=a},b.prototype.muted=function(){return this.el_.muted},b.prototype.setMuted=function(a){this.el_.muted=a},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=x["default"].navigator.userAgent;if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;"webkitDisplayingFullscreen"in a&&this.one("webkitbeginfullscreen",function(){this.one("webkitendfullscreen",function(){this.trigger("fullscreenchange",{isFullscreen:!1})}),this.trigger("fullscreenchange",{isFullscreen:!0})}),a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){return void 0===a?this.el_.src:void this.setSrc(a)}),b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return this.el_.currentSrc},b.prototype.poster=function(){return this.el_.poster},b.prototype.setPoster=function(a){this.el_.poster=a},b.prototype.preload=function(){return this.el_.preload},b.prototype.setPreload=function(a){this.el_.preload=a},b.prototype.autoplay=function(){return this.el_.autoplay},b.prototype.setAutoplay=function(a){this.el_.autoplay=a},b.prototype.controls=function(){return this.el_.controls},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.loop=function(){return this.el_.loop},b.prototype.setLoop=function(a){this.el_.loop=a},b.prototype.error=function(){return this.el_.error;
-
-},b.prototype.seeking=function(){return this.el_.seeking},b.prototype.seekable=function(){return this.el_.seekable},b.prototype.ended=function(){return this.el_.ended},b.prototype.defaultMuted=function(){return this.el_.defaultMuted},b.prototype.playbackRate=function(){return this.el_.playbackRate},b.prototype.played=function(){return this.el_.played},b.prototype.setPlaybackRate=function(a){this.el_.playbackRate=a},b.prototype.networkState=function(){return this.el_.networkState},b.prototype.readyState=function(){return this.el_.readyState},b.prototype.videoWidth=function(){return this.el_.videoWidth},b.prototype.videoHeight=function(){return this.el_.videoHeight},b.prototype.textTracks=function(){return a.prototype.textTracks.call(this)},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.addRemoteTextTrack=function(){var b=void 0===arguments[0]?{}:arguments[0];if(!this.featuresNativeTextTracks)return a.prototype.addRemoteTextTrack.call(this,b);var c=v["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),this.el().appendChild(c),this.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(h["default"]);C.TEST_VID=v["default"].createElement("video");var D=v["default"].createElement("track");D.kind="captions",D.srclang="en",D.label="English",C.TEST_VID.appendChild(D),C.isSupported=function(){try{C.TEST_VID.volume=.5}catch(a){return!1}return!!C.TEST_VID.canPlayType},h["default"].withSourceHandlers(C),C.nativeSourceHandler={},C.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return C.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=n.getFileExtension(a.src),b("video/"+c)):""},C.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},C.nativeSourceHandler.dispose=function(){},C.registerSourceHandler(C.nativeSourceHandler),C.canControlVolume=function(){var a=C.TEST_VID.volume;return C.TEST_VID.volume=a/2+.1,a!==C.TEST_VID.volume},C.canControlPlaybackRate=function(){var a=C.TEST_VID.playbackRate;return C.TEST_VID.playbackRate=a/2+.1,a!==C.TEST_VID.playbackRate},C.supportsNativeTextTracks=function(){var a;return a=!!C.TEST_VID.textTracks,a&&C.TEST_VID.textTracks.length>0&&(a="number"!=typeof C.TEST_VID.textTracks[0].mode),a&&t.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in C.TEST_VID.textTracks||(a=!1),a},C.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],C.prototype.featuresVolumeControl=C.canControlVolume(),C.prototype.featuresPlaybackRate=C.canControlPlaybackRate(),C.prototype.movingMediaElementInDOM=!t.IS_IOS,C.prototype.featuresFullscreenResize=!0,C.prototype.featuresProgressEvents=!0,C.prototype.featuresNativeTextTracks=C.supportsNativeTextTracks();var E=void 0,F=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,G=/^video\/mp4/i;C.patchCanPlayType=function(){t.ANDROID_VERSION>=4&&(E||(E=C.TEST_VID.constructor.prototype.canPlayType),C.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&F.test(a)?"maybe":E.call(this,a)}),t.IS_OLD_ANDROID&&(E||(E=C.TEST_VID.constructor.prototype.canPlayType),C.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":E.call(this,a)})},C.unpatchCanPlayType=function(){var a=C.TEST_VID.constructor.prototype.canPlayType;return C.TEST_VID.constructor.prototype.canPlayType=E,E=null,a},C.patchCanPlayType(),C.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&!function(){try{a.load()}catch(b){}}()}},j["default"].registerComponent("Html5",C),c["default"]=C,b.exports=c["default"]},{"../component":52,"../utils/browser.js":108,"../utils/dom.js":111,"../utils/fn.js":113,"../utils/log.js":116,"../utils/merge-options.js":117,"../utils/url.js":121,"./tech.js":100,"global/document":1,"global/window":2,"object.assign":44}],99:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../component"),h=d(g),i=a("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=function(a){function b(c,d,f){if(e(this,b),a.call(this,c,d,f),d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var g=0,i=d.playerOptions.techOrder;g0&&this.trigger("loadstart")},!0)},b.prototype.manualProgressOn=function(){this.on("durationchange",this.onDurationChange),this.manualProgress=!0,this.one("ready",this.trackProgress)},b.prototype.manualProgressOff=function(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange)},b.prototype.trackProgress=function(){this.stopTrackingProgress(),this.progressInterval=this.setInterval(n.bind(this,function(){var a=this.bufferedPercent();this.bufferedPercent_!==a&&this.trigger("progress"),this.bufferedPercent_=a,1===a&&this.stopTrackingProgress()}),500)},b.prototype.onDurationChange=function(){this.duration_=this.duration()},b.prototype.buffered=function(){return q.createTimeRange(0,0)},b.prototype.bufferedPercent=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){return r.bufferedPercent(this.buffered(),this.duration_)}),b.prototype.stopTrackingProgress=function(){this.clearInterval(this.progressInterval)},b.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime),this.on("pause",this.stopTrackingCurrentTime)},b.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime),this.off("pause",this.stopTrackingCurrentTime)},b.prototype.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)},b.prototype.stopTrackingCurrentTime=function(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},b.prototype.dispose=function(){for(var b=this.textTracks(),c=b.length;c--;)this.removeRemoteTextTrack(b[c]);this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),a.prototype.dispose.call(this)},b.prototype.played=function(){return this.hasStarted_?q.createTimeRange(0,0):q.createTimeRange()},b.prototype.setCurrentTime=function(){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},b.prototype.initTextTrackListeners=function(){var a=n.bind(this,function(){this.trigger("texttrackchange")}),b=this.textTracks();b&&(b.addEventListener("removetrack",a),b.addEventListener("addtrack",a),this.on("dispose",n.bind(this,function(){b.removeEventListener("removetrack",a),b.removeEventListener("addtrack",a)})))},b.prototype.emulateTextTracks=function(){if(!t["default"].WebVTT&&null!=this.el().parentNode){var a=v["default"].createElement("script");a.src=this.options_["vtt.js"]||"../node_modules/vtt.js/dist/vtt.js",this.el().parentNode.appendChild(a),t["default"].WebVTT=!0}var b=this.textTracks();if(b){var c=n.bind(this,function(){var a=this,c=function(){return a.trigger("texttrackchange")};c();for(var d=0;db)for(c=b;d>c;c++)e.call(this,c)},i.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=i,b.exports=c["default"]},{"../utils/browser.js":108,"global/document":1}],102:[function(a,b,c){"use strict";function d(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function e(a,b,c){try{a.style[b]=c}catch(d){}}var f=function(a){return a&&a.__esModule?a:{"default":a}},g=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},h=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var i=a("../component"),j=f(i),k=a("../menu/menu.js"),l=(f(k),a("../menu/menu-item.js")),m=(f(l),a("../menu/menu-button.js")),n=(f(m),a("../utils/fn.js")),o=f(n),p=a("global/document"),q=(f(p),a("global/window")),r=f(q),s="#222",t="#ccc",u={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'},v=function(a){function b(c,d,e){g(this,b),a.call(this,c,d,e),c.on("loadstart",o.bind(this,this.toggleDisplay)),c.on("texttrackchange",o.bind(this,this.updateDisplay)),c.ready(o.bind(this,function(){if(c.tech&&c.tech.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",o.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},m.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=m,b.exports=c["default"]},{"../event-target":83,"../utils/browser.js":108,"../utils/fn.js":113,"global/document":1}],106:[function(a,b,c){"use strict";function d(a){var b=void 0;return a.selectedOptions?b=a.selectedOptions[0]:a.options&&(b=a.options[a.options.selectedIndex]),b.value}function e(a,b){if(b){var c=void 0;for(c=0;c select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),m.on(this.el().querySelector(".vjs-fg-color > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-bg-color > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".window-color > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-text-opacity > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-window-opacity > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-font-percent select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-edge-style select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-font-family select"),"change",o.bind(this,this.updateDisplay)),this.options_.persistTextTrackSettings&&this.restoreSettings()}return i(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-caption-settings vjs-modal-overlay",innerHTML:f()})},b.prototype.getValues=function(){var a=this.el(),b=d(a.querySelector(".vjs-edge-style select")),c=d(a.querySelector(".vjs-font-family select")),e=d(a.querySelector(".vjs-fg-color > select")),f=d(a.querySelector(".vjs-text-opacity > select")),g=d(a.querySelector(".vjs-bg-color > select")),h=d(a.querySelector(".vjs-bg-opacity > select")),i=d(a.querySelector(".window-color > select")),j=d(a.querySelector(".vjs-window-opacity > select")),k=u["default"].parseFloat(d(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:h,textOpacity:f,windowOpacity:j,edgeStyle:b,fontFamily:c,color:e,backgroundColor:g,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();e(b.querySelector(".vjs-edge-style select"),a.edgeStyle),e(b.querySelector(".vjs-font-family select"),a.fontFamily),e(b.querySelector(".vjs-fg-color > select"),a.color),e(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),e(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),e(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),e(b.querySelector(".window-color > select"),a.windowColor),e(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),e(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=s["default"](u["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&q["default"].error(b),c&&this.setValues(c)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.getOwnPropertyNames(a).length>0?u["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):u["default"].localStorage.removeItem("vjs-text-track-settings")}catch(b){}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(k["default"]);k["default"].registerComponent("TextTrackSettings",v),c["default"]=v,b.exports=c["default"]},{"../component":52,"../utils/events.js":112,"../utils/fn.js":113,"../utils/log.js":116,"global/window":2,"safe-json-parse/tuple":49}],107:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./text-track-cue-list"),f=d(e),g=a("../utils/fn.js"),h=d(g),i=a("../utils/guid.js"),j=d(i),k=a("../utils/browser.js"),l=d(k),m=a("./text-track-enums"),n=d(m),o=a("../utils/log.js"),p=d(o),q=a("../event-target"),r=d(q),s=a("global/document"),t=d(s),u=a("global/window"),v=d(u),w=a("../xhr.js"),x=d(w),y=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){var a=void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(l.IS_IE8){b=t["default"].createElement("custom");for(var c in y.prototype)b[c]=y.prototype[c]}b.tech_=a.tech;var d=n.TextTrackMode[a.mode]||"disabled",e=n.TextTrackKind[a.kind]||"subtitles",g=a.label||"",i=a.language||a.srclang||"",k=a.id||"vjs_text_track_"+j.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var m=new f["default"](b.cues_),o=new f["default"](b.activeCues_),p=!1,q=h.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return g},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return i},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return k},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){n.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?m:null},set:Function.prototype}),Object.defineProperty(b,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return o;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;d>c;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var z=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a,b){if("function"!=typeof v["default"].WebVTT)return v["default"].setTimeout(function(){z(a,b)},25);var c=new v["default"].WebVTT.Parser(v["default"],v["default"].vttjs,v["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){p["default"].error(a)},c.parse(a),c.flush()}),A=function(a,b){x["default"](a,h.bind(this,function(a,c,d){return a?p["default"].error(a):(b.loaded_=!0,void z(d,b))}))},B=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=y,b.exports=c["default"]},{"../event-target":83,"../utils/browser.js":108,"../utils/fn.js":113,"../utils/guid.js":115,"../utils/log.js":116,"../xhr.js":123,"./text-track-cue-list":101,"./text-track-enums":103,"global/document":1,"global/window":2}],108:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=h["default"].navigator.userAgent,j=/iPhone/i.test(i);c.IS_IPHONE=j;var k=/iPad/i.test(i);c.IS_IPAD=k;var l=/iPod/i.test(i);c.IS_IPOD=l;var m=j||k||l;c.IS_IOS=m;var n=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();c.IOS_VERSION=n;var o=/Android/i.test(i);c.IS_ANDROID=o;var p=function(){var a,b,c=i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);return c?(a=c[1]&&parseFloat(c[1]),b=c[2]&&parseFloat(c[2]),a&&b?parseFloat(c[1]+"."+c[2]):a?a:null):null}();c.ANDROID_VERSION=p;var q=o&&/webkit/i.test(i)&&2.3>p;c.IS_OLD_ANDROID=q;var r=/Firefox/i.test(i);c.IS_FIREFOX=r;var s=/Chrome/i.test(i);c.IS_CHROME=s;var t=/MSIE\s8\.0/.test(i);c.IS_IE8=t;var u=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=u;var v="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=v},{"global/document":1,"global/window":2}],109:[function(a,b,c){"use strict";function d(a,b){var c,d,f=0;if(!b)return 0;a&&a.length||(a=e.createTimeRange(0,0));for(var g=0;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":119}],110:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./log.js"),f=d(e),g={get:function(a,b){return a[b]},set:function(a,b,c){return a[b]=c,!0}};c["default"]=function(a){var b=void 0===arguments[1]?{}:arguments[1];if("function"==typeof Proxy){var c=function(){var c={};return Object.keys(b).forEach(function(a){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":116}],111:[function(a,b,c){"use strict";function d(a){return 0===a.indexOf("#")&&(a=a.slice(1)),t["default"].getElementById(a)}function e(){var a=void 0===arguments[0]?"div":arguments[0],b=void 0===arguments[1]?{}:arguments[1],c=t["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var d=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?c.setAttribute(a,d):c[a]=d}),c}function f(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function g(a){var b=a[z];return b||(b=a[z]=x.newGUID()),y[b]||(y[b]={}),y[b]}function h(a){var b=a[z];return b?!!Object.getOwnPropertyNames(y[b]).length:!1}function i(a){var b=a[z];if(b){delete y[b];try{delete a[z]}catch(c){a.removeAttribute?a.removeAttribute(z):a[z]=null}}}function j(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function k(a,b){j(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function l(a,b){if(j(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1);a.className=c.join(" ")}}function m(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function n(a){var b,c,d,e,f;if(b={},c=",autoplay,controls,loop,muted,default,",a&&a.attributes&&a.attributes.length>0){d=a.attributes;for(var g=d.length-1;g>=0;g--)e=d[g].name,f=d[g].value,("boolean"==typeof a[e]||-1!==c.indexOf(","+e+","))&&(f=null!==f?!0:!1),b[e]=f}return b}function o(){t["default"].body.focus(),t["default"].onselectstart=function(){return!1}}function p(){t["default"].onselectstart=function(){return!0}}function q(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=t["default"].documentElement,d=t["default"].body,e=c.clientLeft||d.clientLeft||0,f=v["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=v["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)
-}}var r=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0,c.getEl=d,c.createEl=e,c.insertElFirst=f,c.getElData=g,c.hasElData=h,c.removeElData=i,c.hasElClass=j,c.addElClass=k,c.removeElClass=l,c.setElAttributes=m,c.getElAttributes=n,c.blockTextSelection=o,c.unblockTextSelection=p,c.findElPosition=q;var s=a("global/document"),t=r(s),u=a("global/window"),v=r(u),w=a("./guid.js"),x=r(w),y={},z="vdata"+(new Date).getTime()},{"./guid.js":115,"global/document":1,"global/window":2}],112:[function(a,b,c){"use strict";function d(a,b,c){if(Array.isArray(b))return j(d,a,b,c);var e=m.getElData(a);e.handlers||(e.handlers={}),e.handlers[b]||(e.handlers[b]=[]),c.guid||(c.guid=o.newGUID()),e.handlers[b].push(c),e.dispatcher||(e.disabled=!1,e.dispatcher=function(b,c){if(!e.disabled){b=h(b);var d=e.handlers[b.type];if(d)for(var f=d.slice(0),g=0,i=f.length;i>g&&!b.isImmediatePropagationStopped();g++)f[g].call(a,b,c)}}),1===e.handlers[b].length&&(a.addEventListener?a.addEventListener(b,e.dispatcher,!1):a.attachEvent&&a.attachEvent("on"+b,e.dispatcher))}function e(a,b,c){if(m.hasElData(a)){var d=m.getElData(a);if(d.handlers){if(Array.isArray(b))return j(e,a,b,c);var f=function(b){d.handlers[b]=[],i(a,b)};if(b){var g=d.handlers[b];if(g){if(!c)return void f(b);if(c.guid)for(var h=0;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],115:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],116:[function(a,b,c){"use strict";function d(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}var e=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var f=a("global/window"),g=e(f),h=function(){d(null,arguments)};h.history=[],h.error=function(){d("error",arguments)},h.warn=function(){d("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],117:[function(a,b,c){"use strict";function d(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function e(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}var f=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0,c["default"]=e;var g=a("lodash-compat/object/merge"),h=f(g),i=function(a,b){return d(b)?d(a)?void 0:e(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":40}],118:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],119:[function(a,b,c){"use strict";function d(a,b){return void 0===a&&void 0===b?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:1,start:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){return a}),end:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){return b})}}c.__esModule=!0,c.createTimeRange=d},{}],120:[function(a,b,c){"use strict";function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],121:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;hx',a=b.firstChild.href}return a};c.getAbsoluteURL=h;var i=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""};c.getFileExtension=i},{"global/document":1}],122:[function(b,c,d){"use strict";var e=function(a){return a&&a.__esModule?a:{"default":a}};d.__esModule=!0;{var f=b("global/document"),g=e(f),h=b("./setup"),i=e(h),j=b("./utils/stylesheet.js"),k=e(j),l=b("./component"),m=e(l),n=b("./event-target"),o=e(n),p=b("./utils/events.js"),q=e(p),r=b("./player"),s=e(r),t=b("./plugins.js"),u=e(t),v=b("../../src/js/utils/merge-options.js"),w=e(v),x=b("./utils/fn.js"),y=e(x),z=b("object.assign"),A=(e(z),b("./utils/time-ranges.js")),B=b("./utils/format-time.js"),C=e(B),D=b("./utils/log.js"),E=e(D),F=b("./xhr.js"),G=e(F),H=b("./utils/dom.js"),I=e(H),J=b("./utils/browser.js"),K=e(J),L=b("./utils/url.js"),M=e(L),N=b("./extends.js"),O=e(N),P=b("lodash-compat/object/merge"),Q=e(P),R=b("./utils/create-deprecation-proxy.js"),S=e(R),T=b("./tech/html5.js"),U=(e(T),b("./tech/flash.js"));e(U)}"undefined"==typeof HTMLVideoElement&&(g["default"].createElement("video"),g["default"].createElement("audio"),g["default"].createElement("track"));var V=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),V.getPlayers()[a])return b&&E["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&V.getPlayers()[a].ready(c),V.getPlayers()[a];d=I.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new s["default"](d,b,c)}),W=k.createStyleElement("vjs-styles-defaults"),X=g["default"].querySelector("head");X.insertBefore(W,X.firstChild),k.setTextContent(W,"\n .video-js {\n width: 300px;\n height: 150px;\n"),i.autoSetupTimeout(1,V),V.VERSION="5.0.0-rc.59",V.options=s["default"].prototype.options_,V.getPlayers=function(){return s["default"].players},V.players=S["default"](s["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),V.getComponent=m["default"].getComponent,V.registerComponent=m["default"].registerComponent,V.browser=K,V.TOUCH_ENABLED=K.TOUCH_ENABLED,V["extends"]=O["default"],V.mergeOptions=w["default"],V.bind=y.bind,V.plugin=u["default"],V.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),Q["default"](V.options.languages,(c={},c[a]=b,c))[a]},V.log=E["default"],V.createTimeRange=A.createTimeRange,V.formatTime=C["default"],V.xhr=G["default"],V.parseUrl=M.parseUrl,V.EventTarget=o["default"],V.on=q.on,V.one=q.one,V.off=q.off,V.trigger=q.trigger,"function"==typeof a&&a.amd?a("videojs",[],function(){return V}):"object"==typeof d&&"object"==typeof c&&(c.exports=V),d["default"]=V,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":117,"./component":52,"./event-target":83,"./extends.js":84,"./player":91,"./plugins.js":92,"./setup":94,"./tech/flash.js":97,"./tech/html5.js":98,"./utils/browser.js":108,"./utils/create-deprecation-proxy.js":110,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/format-time.js":114,"./utils/log.js":116,"./utils/stylesheet.js":118,"./utils/time-ranges.js":119,"./utils/url.js":121,"./xhr.js":123,"global/document":1,"lodash-compat/object/merge":40,"object.assign":44}],123:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./utils/url.js"),f=d(e),g=a("./utils/log.js"),h=(d(g),a("./utils/merge-options.js")),i=d(h),j=a("global/window"),k=d(j),l=function(a,b){var c=void 0;"string"==typeof a&&(a={uri:a}),a=i["default"]({method:"GET",timeout:45e3},a),b=b||function(){};var d=k["default"].XMLHttpRequest;"undefined"==typeof d&&(d=function(){try{return new k["default"].ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new k["default"].ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(b){}try{return new k["default"].ActiveXObject("Msxml2.XMLHTTP")}catch(c){}throw new Error("This browser does not support XMLHttpRequest.")});var e=new d;e.uri=a.uri;var g=f.parseUrl(a.uri),h=k["default"].location,j=function(){k["default"].clearTimeout(c),b(null,e,e.response||e.responseText)},l=function(a){k["default"].clearTimeout(c),a&&"string"!=typeof a||(a=new Error(a)),b(a,e)},m=g.protocol+g.host!==h.protocol+h.host;!m||!k["default"].XDomainRequest||"withCredentials"in e?!function(){var b="file:"===g.protocol||"file:"===h.protocol;e.onreadystatechange=function(){if(4===e.readyState){if(e.timedout)return l("timeout");200===e.status||b&&0===e.status?j():l()}},a.timeout&&(c=k["default"].setTimeout(function(){4!==e.readyState&&(e.timedout=!0,e.abort())},a.timeout))}():(e=new k["default"].XDomainRequest,e.onload=j,e.onerror=l,e.onprogress=function(){},e.ontimeout=function(){});try{e.open(a.method||"GET",a.uri,!0)}catch(n){return l(n)}a.withCredentials&&(e.withCredentials=!0),a.responseType&&(e.responseType=a.responseType);try{e.send()}catch(n){return l(n)}return e};c["default"]=l,b.exports=c["default"]},{"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/url.js":121,"global/window":2}]},{},[122])(122)});
+})}function p(a){var b,c,d,e,f;if(b={},c=",autoplay,controls,loop,muted,default,",a&&a.attributes&&a.attributes.length>0){d=a.attributes;for(var g=d.length-1;g>=0;g--)e=d[g].name,f=d[g].value,("boolean"==typeof a[e]||-1!==c.indexOf(","+e+","))&&(f=null!==f?!0:!1),b[e]=f}return b}function q(){u["default"].body.focus(),u["default"].onselectstart=function(){return!1}}function r(){u["default"].onselectstart=function(){return!0}}function s(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=u["default"].documentElement,d=u["default"].body,e=c.clientLeft||d.clientLeft||0,f=w["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=w["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}c.__esModule=!0,c.getEl=f,c.createEl=g,c.insertElFirst=h,c.getElData=i,c.hasElData=j,c.removeElData=k,c.hasElClass=l,c.addElClass=m,c.removeElClass=n,c.setElAttributes=o,c.getElAttributes=p,c.blockTextSelection=q,c.unblockTextSelection=r,c.findElPosition=s;var t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("./guid.js"),y=d(x),z={},A="vdata"+(new Date).getTime()},{"./guid.js":111,"global/document":1,"global/window":2}],108:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b,c){if(Array.isArray(b))return l(f,a,b,c);var d=n.getElData(a);d.handlers||(d.handlers={}),d.handlers[b]||(d.handlers[b]=[]),c.guid||(c.guid=p.newGUID()),d.handlers[b].push(c),d.dispatcher||(d.disabled=!1,d.dispatcher=function(b,c){if(!d.disabled){b=j(b);var e=d.handlers[b.type];if(e)for(var f=e.slice(0),g=0,h=f.length;h>g&&!b.isImmediatePropagationStopped();g++)f[g].call(a,b,c)}}),1===d.handlers[b].length&&(a.addEventListener?a.addEventListener(b,d.dispatcher,!1):a.attachEvent&&a.attachEvent("on"+b,d.dispatcher))}function g(a,b,c){if(n.hasElData(a)){var d=n.getElData(a);if(d.handlers){if(Array.isArray(b))return l(g,a,b,c);var e=function(b){d.handlers[b]=[],k(a,b)};if(b){var f=d.handlers[b];if(f){if(!c)return void e(b);if(c.guid)for(var h=0;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],111:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],112:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}c.__esModule=!0;var f=a("global/window"),g=d(f),h=function(){e(null,arguments)};h.history=[],h.error=function(){e("error",arguments)},h.warn=function(){e("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],113:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function f(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}c.__esModule=!0,c["default"]=f;var g=a("lodash-compat/object/merge"),h=d(g),i=function(a,b){return e(b)?e(a)?void 0:f(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":37}],114:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],115:[function(a,b,c){"use strict";function d(a,b){return void 0===a&&void 0===b?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:1,start:function(){return a},end:function(){return b}}}c.__esModule=!0,c.createTimeRange=d},{}],116:[function(a,b,c){"use strict";function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],117:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;hx',a=b.firstChild.href}return a};c.getAbsoluteURL=h;var i=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""};c.getFileExtension=i},{"global/document":1}],118:[function(b,c,d){"use strict";function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a){return a&&a.__esModule?a:{"default":a}}d.__esModule=!0;{var g=b("global/document"),h=f(g),i=b("./setup"),j=e(i),k=b("./utils/stylesheet.js"),l=e(k),m=b("./component"),n=f(m),o=b("./event-target"),p=f(o),q=b("./utils/events.js"),r=e(q),s=b("./player"),t=f(s),u=b("./plugins.js"),v=f(u),w=b("../../src/js/utils/merge-options.js"),x=f(w),y=b("./utils/fn.js"),z=e(y),A=b("object.assign"),B=(f(A),b("./utils/time-ranges.js")),C=b("./utils/format-time.js"),D=f(C),E=b("./utils/log.js"),F=f(E),G=b("./xhr.js"),H=f(G),I=b("./utils/dom.js"),J=e(I),K=b("./utils/browser.js"),L=e(K),M=b("./utils/url.js"),N=e(M),O=b("./extends.js"),P=f(O),Q=b("lodash-compat/object/merge"),R=f(Q),S=b("./utils/create-deprecation-proxy.js"),T=f(S),U=b("./tech/html5.js"),V=(f(U),b("./tech/flash.js"));f(V)}"undefined"==typeof HTMLVideoElement&&(h["default"].createElement("video"),h["default"].createElement("audio"),h["default"].createElement("track"));var W=function Z(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),Z.getPlayers()[a])return b&&F["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&Z.getPlayers()[a].ready(c),Z.getPlayers()[a];d=J.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new t["default"](d,b,c)},X=l.createStyleElement("vjs-styles-defaults"),Y=h["default"].querySelector("head");Y.insertBefore(X,Y.firstChild),l.setTextContent(X,"\n .video-js {\n width: 300px;\n height: 150px;\n"),j.autoSetupTimeout(1,W),W.VERSION="5.0.0-rc.72",W.options=t["default"].prototype.options_,W.getPlayers=function(){return t["default"].players},W.players=T["default"](t["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),W.getComponent=n["default"].getComponent,W.registerComponent=n["default"].registerComponent,W.browser=L,W.TOUCH_ENABLED=L.TOUCH_ENABLED,W["extends"]=P["default"],W.mergeOptions=x["default"],W.bind=z.bind,W.plugin=v["default"],W.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),R["default"](W.options.languages,(c={},c[a]=b,c))[a]},W.log=F["default"],W.createTimeRange=B.createTimeRange,W.formatTime=D["default"],W.xhr=H["default"],W.parseUrl=N.parseUrl,W.EventTarget=p["default"],W.on=r.on,W.one=r.one,W.off=r.off,W.trigger=r.trigger,"function"==typeof a&&a.amd?a("videojs",[],function(){return W}):"object"==typeof d&&"object"==typeof c&&(c.exports=W),d["default"]=W,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":113,"./component":48,"./event-target":79,"./extends.js":80,"./player":87,"./plugins.js":88,"./setup":90,"./tech/flash.js":93,"./tech/html5.js":94,"./utils/browser.js":104,"./utils/create-deprecation-proxy.js":106,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/format-time.js":110,"./utils/log.js":112,"./utils/stylesheet.js":114,"./utils/time-ranges.js":115,"./utils/url.js":117,"./xhr.js":119,"global/document":1,"lodash-compat/object/merge":37,"object.assign":40}],119:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var f=a("./utils/url.js"),g=e(f),h=a("./utils/log.js"),i=(d(h),a("./utils/merge-options.js")),j=d(i),k=a("global/window"),l=d(k),m=function(a,b){var c=void 0;"string"==typeof a&&(a={uri:a}),a=j["default"]({method:"GET",timeout:45e3},a),b=b||function(){};var d=l["default"].XMLHttpRequest;"undefined"==typeof d&&(d=function(){try{return new l["default"].ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new l["default"].ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(b){}try{return new l["default"].ActiveXObject("Msxml2.XMLHTTP")}catch(c){}throw new Error("This browser does not support XMLHttpRequest.")});var e=new d;e.uri=a.uri;var f=g.parseUrl(a.uri),h=l["default"].location,i=function(){l["default"].clearTimeout(c),b(null,e,e.response||e.responseText)},k=function(a){l["default"].clearTimeout(c),a&&"string"!=typeof a||(a=new Error(a||"XHR Failed with a response of: "+(e&&(e.response||e.responseText)))),b(a,e)},m=f.protocol+f.host!==h.protocol+h.host;!m||!l["default"].XDomainRequest||"withCredentials"in e?!function(){var b="file:"===f.protocol||"file:"===h.protocol;e.onreadystatechange=function(){if(4===e.readyState){if(e.timedout)return k("timeout");200===e.status||b&&0===e.status?i():k()}},a.timeout&&(c=l["default"].setTimeout(function(){4!==e.readyState&&(e.timedout=!0,e.abort())},a.timeout))}():(e=new l["default"].XDomainRequest,e.onload=i,e.onerror=k,e.onprogress=function(){},e.ontimeout=function(){});try{e.open(a.method||"GET",a.uri,!0)}catch(n){return k(n)}a.withCredentials&&(e.withCredentials=!0),a.responseType&&(e.responseType=a.responseType);try{e.send()}catch(n){return k(n)}return e};c["default"]=m,b.exports=c["default"]},{"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/url.js":117,"global/window":2}]},{},[118])(118)});
//# sourceMappingURL=video.novtt.min.js.map
diff --git a/node_modules/video.js/dist/alt/video.novtt.min.js.map b/node_modules/video.js/dist/alt/video.novtt.min.js.map
index 834d5a0..25a836f 100644
--- a/node_modules/video.js/dist/alt/video.novtt.min.js.map
+++ b/node_modules/video.js/dist/alt/video.novtt.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"generated.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseIsFunction.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/baseToString.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimIsPlainObject.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/string/escapeRegExp.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/safe-json-parse/tuple.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extends.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js","src/js/xhr.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","document","doccy","min-document",2,3,4,"restParam","func","start","TypeError","FUNC_ERROR_TEXT","nativeMax","undefined","args","arguments","index","rest","Array","otherArgs","apply","Math","max",5,"arrayCopy","source","array",6,"arrayEach","iteratee",7,"baseCopy","props","object","key",8,"createBaseFor","baseFor","./createBaseFor",9,"baseForIn","keysIn","../object/keysIn","./baseFor",10,"value","baseIsFunction",11,"baseMerge","customizer","stackA","stackB","isObject","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","result","isCommon","../lang/isArray","../lang/isObject","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",12,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",13,"toObject","baseProperty","./toObject",14,"baseToString",15,"bindCallback","thisArg","argCount","identity","collection","accumulator","other","../utility/identity",16,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",17,"fromRight","keysFunc","iterable",18,"getLength","./baseProperty",19,"getNative","isNative","../lang/isNative",20,"isLength","./getLength","./isLength",21,"isHostObject","Object","toString",22,"reIsUint","test","MAX_SAFE_INTEGER","isIndex",23,"type","./isIndex",24,25,26,"shimIsPlainObject","Ctor","objToString","objectTag","hasOwnProperty","constructor","support","argsTag","ownLast","subValue","objectProto","prototype","../support","./baseForIn","./isHostObject",27,"shimKeys","propsLength","allowIndexes","isString","../lang/isString",28,"unindexedChars","charAt",29,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",30,"arrayTag","nativeIsArray","../internal/getNative","../internal/isLength",31,"funcTag","Uint8Array","isFunction","../internal/baseIsFunction",32,"reIsNative","fnToString","reIsHostCtor","escapeRegExp","Function","RegExp","replace","../internal/isHostObject","../string/escapeRegExp",33,34,"getPrototypeOf","valueOf","objProto","../internal/shimIsPlainObject","./isArguments",35,"stringTag",36,"typedArrayTags","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",37,"../internal/baseCopy",38,"nativeKeys","../internal/shimKeys",39,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","enumPrototypes","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","../internal/arrayEach","../internal/isIndex","../lang/isFunction",40,"merge","../internal/baseMerge","../internal/createAssigner",41,"string","reRegExpChars","reHasRegExpChars","../internal/baseToString",42,"arrayProto","splice","x","0","y","nodeTag","spliceObjects",43,44,"canBeObject","obj","hasSymbols","Symbol","defineProperties","propIsEnumerable","isEnumerableOn","prop","assignShim","target","objTarget","getOwnPropertySymbols","filter","shim","assign","preventExtensions","assignHasPendingExceptions","thrower","define-properties","object-keys",45,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","supportsDescriptors","name","predicate","configurable","enumerable","writable","map","predicates",46,"hasOwn","ctx","k",47,"has","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","keysShim","theKeys","j","ctor","skipConstructor",48,"str","callee",49,"SafeParseTuple","reviver","json","error","player_","play","_Component3","_interopRequireWildcard","_Component2","Dom","_import","Button","_Component","player","options","_classCallCheck","createEl","_assign2","role","aria-live","el","controlTextEl_","className","handleClick","_window2","_window","Fn","_import2","Component","ready","options_","_mergeOptions2","id_","id","Guid","newGUID","el_","childIndex_","initChildren","dispose","trigger","bubbles","children_","childNameIndex_","off","_log2","warn","tagName","attributes","localize","languages","language","primaryCode","split","addChild","child","component","componentName","childFound","parentOptions","_this","opts","children","_name","handleAdd","_this2","first","guid","cleanRemover","Events","on","second","bind","third","nodeName","_this3","_arguments","_newFunc","newFunc","sync","isReady_","setTimeout","triggerReady","readyQueue","readyQueue_","dimension","widthOrHeight","num","skipListeners","style","pxIndex","touchStart","touchTimeThreshold","couldBeTap","event","touches","firstTouch","Date","getTime","xdiff","pageX","touchDistance","sqrt","ydiff","tapMovementThreshold","noTap","touchTime","preventDefault","clearInterval","touchHolding","touchEnd","report","timeout","timeoutId","disposeFn","clearTimeout","intervalId","setInterval","interval","getComponent","components_","extend","subObj","_name2","ControlBar","exitFullscreen","requestFullscreen","LiveDisplay","contentEl_","appendChild","_Button3","_Button2","MuteToggle","update","tech","featuresVolumeControl","addClass","vol","volume","level","toMute","muted","localizedMute","controlText","removeElClass","addElClass","PlayToggle","_Button","removeClass","_PlaybackRateMenuItem2","_PlaybackRateMenuItem","PlaybackRateMenuButton","labelEl_","createMenu","rates","playbackRates","currentRate","playbackRate","newRate","playbackRateSupported","PlaybackRateMenuItem","_MenuItem","label","rate","parseFloat","_inherits","selected","LoadProgressBar","buffered","duration","percent","time","end","width","percentify","bufferedEnd","part","left","PlayProgressBar","updateDataAttr","scrubbing","getCache","currentTime","_LoadProgressBar","newTime","calculateDistance","SeekBar","stepBack","_Slider3","loadProgressBar","_Spacer","buildCSSClass","CaptionSettingsMenuItem","_TextTrackMenuItem","track","kind","_TextTrackButton","threshold","featuresNativeTextTracks","createItems","_ChaptersTrackMenuItem2","_ChaptersTrackMenuItem","_Menu2","_Menu","items","tracks","textTracks","kind_","ChaptersButton","cues","chaptersTrack","mode","menu","contentEl","tabIndex","cue","mi","_MenuItem3","_MenuItem2","ChaptersTrackMenuItem","startTime","endTime","OffTextTrackMenuItem","handleTracksChange","SubtitlesButton","_MenuButton3","_MenuButton2","TextTrackButton","_MenuButton","hide","updateHandler","removeEventListener","_OffTextTrackMenuItem2","TextTrackMenuItem","onchange","Event","err","_document2","createEvent","CurrentTimeDisplay","updateContent","localizedText","_formatTime2","DurationDisplay","formattedTime","innerHTML","RemainingTimeDisplay","_Slider2","toFixed","setAttribute","VolumeBar","VolumeControl","VolumeMenuButton","vertical","volumeUpdate","orientationClass","contentElType","vc","_VolumeBar2","volumeBar","_MuteToggle2","ErrorDisplay","message","EventTarget","allowedEvents_","ael","addEventListener","one","subClass","superClass","extendsFn","subClassMethods","methods","init","FullscreenApi","apiMap","specApi","browserApi","LoadingSpinner","_MediaError","status","MediaError","errorTypes","MenuButton","title","unlockShowing","handleKeyPress","which","buttonPressed_","unpressButton","pressButton","_selected","append","create","__proto__","_document","_import3","_log","_toTitleCase2","_toTitleCase","_mergeOptions","_textTrackConverter","_ErrorDisplay","reportTouchActivity","languagesToLower","poster_","poster","controls","scrubbing_","playerOptionsCopy","plugins","playerOptions","isAudio","toLowerCase","Player","players","styleEl_","parentNode","removeChild","attrs","getElAttributes","getOwnPropertyNames","forEach","attr","stylesheet","createStyleElement","defaultsStyleEl","querySelector","fluid","aspectRatio","initNetworkState_","networkState","_dimension","privDimension","parsedVal","isNaN","bool","fluid_","ratio","updateStyleEl_","aspectRatio_","videoWidth","videoHeight","ratioParts","ratioMultiplier","width_","height_","loadTech","techName","unloadTech","disposeMediaElement","techReady","techOptions","playerId","techId","textTracks_","preload","loop","vtt.js","src","cache_","techComponent","_textTrackConverter2","jsonToTextTracks","textTracksJson_","handleTechReady","handleTechUseNativeControls","handleTechLoadStart","handleTechWaiting","handleTechCanPlay","handleTechCanPlayThrough","handleTechPlaying","handleTechEnded","handleTechSeeking","handleTechSeeked","handleTechPlay","handleTechFirstPlay","handleTechPause","handleTechProgress","handleTechDurationChange","handleTechFullscreenChange","handleTechError","handleTechSuspend","handleTechAbort","handleTechEmptied","handleTechLoadedMetaData","handleTechLoadedData","handleTechTimeUpdate","usingNativeControls","removeTechControlsListeners","techCall","paused","_hasStarted","hasStarted","hasStarted_","handleTechClick","button","updateDuration","techGet","method","arg","isScrubbing","seconds","_buffered","_bufferedPercent","percentAsDecimal","min","_muted","fsApi","fullscreenchange","documentFullscreenChange","isFullscreen","fullscreenElement","supportsFullScreen","_FullscreenApi2","fullWindowOnEscKey","exitFullWindow","documentElement","overflow","docOrigOverflow","selectSource","techOrder","isSupported","b","canPlaySource","sourceList_","currentTech","load","sourceTech","controls_","addTechControlsListeners","error_","userActive","userActive_","stopPropagation","lastMoveX","lastMoveY","handleActivity","reportUserActivity","handleMouseMove","screenX","screenY","mouseInProgress","handleMouseUp","inactivityTimeout","userActivity_","_safeParseTuple","_safeParseTuple3","dataSetup","data","hasChildNodes","childNodes","childName","baseOptions","mediaLoader","textTrackDisplay","controlBar","notSupportedMessage","handleError","flexNotSupported_","createElement","PosterImage","url","setSrc","fallbackImg_","backgroundImage","autoSetup","vids","getElementsByTagName","audios","mediaEls","mediaEl","getAttribute","autoSetupTimeout","_windowLoaded","wait","vjs","readyState","Slider","bar","getChild","barName","handleMouseDown","handleFocus","blockTextSelection","unblockTextSelection","progress","getPercent","percentage","box","findElPosition","boxW","offsetWidth","boxH","offsetHeight","pageY","changedTouches","boxY","vertical_","../component.js","../utils/dom.js","global/document","object.assign",96,"FlashRtmpDecorator","Flash","rtmp/mp4","rtmp/flv","streamFromParts","connection","stream","parts","streamBegin","connEnd","substring","isStreamingType","srcType","streamingFormats","isStreamingSrc","rtmpSourceHandler","handleSource","setRtmpConnection","srcParts","__esModule","_createSetter","attrUpper","toUpperCase","slice","_api","val","_createGetter","vjs_getProperty","_Tech3","_Tech2","_Tech","setSource","onEvent","objId","flashVars","readyFunction","errorEventProxyFunction","autoplay","params","wmode","bgcolor","_src","Url","getAbsoluteURL","vjs_src","setCurrentTime","seekable","enterFullScreen","_readWrite","_readOnly","nativeSourceHandler","canHandleSource","guessMimeType","ext","getFileExtension","formats","video/flv","onReady","currSwf","getEl","checkReady","swfID","eventName","onError","msg","version","ActiveXObject","GetVariable","match","navigator","description","getEmbedCode","swf","objTag","flashVarsString","paramsString","movie","flashvars","allowNetworking","currentSrc","nodes","node","nodesLength","remoteTextTracks","addTrack_","removeNodes","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","Html5","tt","handleTextTrackChange_","handleTextTrackAdd_","emulatedTt","movingMediaElementInDOM","clone","cloneNode","insertBefore","tagAttributes","browser","TOUCH_ENABLED","nativeControlsForTouch","setElAttributes","class","settingsAttrs","overwriteAttrs","handleTextTrackChange","srcElement","webkitEnterFullScreen","video","HAVE_METADATA","addRemoteTextTrack","srclang","removeTrack_","querySelectorAll","canPlayType","TEST_VID","supportsNativeTextTracks","supportsTextTracks","IS_FIREFOX","featuresPlaybackRate","canControlPlaybackRate","patchCanPlayType","ANDROID_VERSION","mpegurlRE","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","removeAttribute","MediaLoader","_TextTrack2","_TextTrack","Tech","manualProgressOn","featuresTimeupdateEvents","initControlsListeners","nativeCaptions","nativeTextTracks","trackProgress","stopTrackingProgress","numBufferedPercent","bufferedPercent","bufferedPercent_","removeRemoteTextTrack","manualProgress","manualProgressOff","initTextTrackListeners","textTrackListChanges","emulateTextTracks","WebVTT","script","updateDisplay","createTrackHelper","featuresFullscreenResize","handlers","sourceHandlers","selectSourceHandler","can","srcObj","originalSeekable","sh","disposeSourceHandler","sourceHandler_","_TextTrackCueList","TextTrackCueList","list","IS_IE8","setCues_","get","oldLength","length_","defineProp","getCueById","rule","darkGray","lightGray","fontMap","monospace","sansSerif","serif","toggleDisplay","TextTrackDisplay","clearDisplay","updateForTrack","activeCues","_i","processCues","cueDiv","displayState","overrides","color","firstChild","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","height","top","bottom","fontFamily","fontVariant","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","trackEl","addedTrack","addCue","_EventTarget2","_EventTarget","_TextTrackList","TextTrackList","tracks_","change","removetrack","_event","rtrack","getTrackById","selectedOption","selectedOptions","selectedIndex","setSelectedOption","option","TextTrackSettings","persistTextTrackSettings","saveSettings","getValues","textEdge","getSelectedOptionValue","fgColor","bgColor","bgOpacity","setValues","values","restoreSettings","ttDisplay","registerComponent","_TextTrackCueList2","TextTrack","tech_","TextTrackEnum","TextTrackMode","cues_","activeCues_","changed","timeupdateHandler","set","newMode","loaded_","ct","active","loadTrack","cuechange","removeCue","removed","_parseCues","parseCues","srcContent","parser","oncue","onparsingerror","parse","_XHR2","response","responseBody","O","len","fromIndex","abs","searchElement","USER_AGENT","IS_IPHONE","IS_IPAD","IS_IPOD","IS_IOS","IOS_VERSION","IS_ANDROID","major","minor","bufferedDuration","_createTimeRange","createTimeRange","defaultBehaviors","messages","Proxy","_ret","handler","indexOf","propName","getElData","elIdAttr","elData","hasElData","removeElData","hasElClass","element","classToCheck","classToAdd","classToRemove","classNames","join","attrName","attrValue","attrVal","knownBooleans","body","focus","onselectstart","getBoundingClientRect","docEl","scrollLeft","pageXOffset","clientLeft","clientTop","scrollTop","pageYOffset","elem","_handleMultipleEvents","dispatcher","fixEvent","handlersCopy","m","isImmediatePropagationStopped","hash","attachEvent","removeType","_cleanUpEvents","elemData","parent","isPropagationStopped","defaultPrevented","targetData","disabled","_func","old","relatedTarget","fromElement","toElement","returnValue","cancelBubble","returnTrue","returnFalse","stopImmediatePropagation","doc","clientY","detachEvent","global/window",113,"context","uid","h","floor","gm","guide","argsArray","noop","console","log","history","unshift","_logType","default","_start","_end","href","addToBody","host","protocol","div","details","path","splitPathRe","pathParts","exec","_plugin2","_plugin","_import4","_assign","_xhr2","_xhr","_import5","_merge2","_createDeprecationProxy","_Flash","_Html5","_videojs","getPlayers","_merge3","_merge","xhr","callback","uri","XHR","XMLHttpRequest","request","urlInfo","parseUrl","winLoc","location","successHandler","abortTimeout","responseText","errorHandler","crossOrigin","fileUrl","onreadystatechange","timedout","abort","onload","onprogress","ontimeout","open","withCredentials","responseType"],"mappings":"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;A1H5IH;AACA;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACTA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;uBCXmB,aAAa;;;;yBACV,gBAAgB;;;;;;;;;;;;;;IAWhC,aAAa;AAEN,WAFP,aAAa,CAEL,MAAM,EAAE,OAAO,EAAE;0BAFzB,aAAa;;AAGf,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;GACxB;;YAJG,aAAa;;;;;;;;;AAAb,eAAa,WAYjB,aAAa,GAAA,yBAAG;AACd,WAAO,qBAAqB,CAAC;GAC9B;;;;;;;;AAdG,eAAa,WAqBjB,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;GACrB;;SAvBG,aAAa;;;AA2BnB,aAAa,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;;AAEpD,uBAAU,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;qBAC7C,aAAa;;;;;;;;;;;;;;;;;0BC1CN,aAAa;;;;sBACd,gBAAgB;;IAAzB,GAAG;;uBACS,mBAAmB;;IAA/B,MAAM;;uBACE,eAAe;;IAAvB,EAAE;;wBACO,iBAAiB;;;;sBACnB,eAAe;;;;;;;;;;;;;IAU5B,MAAM;AAEC,WAFP,MAAM,CAEE,MAAM,EAAE,OAAO,EAAE;0BAFzB,MAAM;;AAGR,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,aAAa,EAAE,CAAC;;AAErB,QAAI,CAAC,EAAE,CAAC,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACjC,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACnC,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACnC,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAClC;;YAXG,MAAM;;;;;;;;;;;AAAN,QAAM,WAqBV,QAAQ,GAAA,oBAAyB;QAAxB,GAAG,gCAAC,QAAQ;QAAE,KAAK,gCAAC,EAAE;;;AAE7B,SAAK,GAAG,oBAAO;AACb,eAAS,EAAE,IAAI,CAAC,aAAa,EAAE;AAC/B,YAAQ,QAAQ;AAChB,YAAQ,QAAQ;AAChB,iBAAW,EAAE,QAAQ;AACrB,cAAQ,EAAE,CAAC;KACZ,EAAE,KAAK,CAAC,CAAC;;AAEV,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,GAAG,EAAE,KAAK,CAAC,CAAC;;AAEpC,QAAI,CAAC,cAAc,GAAG,GAAG,CAAC,QAAQ,CAAC,MAAM,EAAE;AACzC,eAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;;AAEpC,QAAI,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;;AAEpC,WAAO,EAAE,CAAC;GACX;;;;;;;;;;AA1CG,QAAM,WAmDV,WAAW,GAAA,qBAAC,IAAI,EAAE;AAChB,QAAI,CAAC,IAAI;AAAE,aAAO,IAAI,CAAC,YAAY,IAAI,WAAW,CAAC;KAAA,AAEnD,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC;AACzB,QAAI,CAAC,cAAc,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;;AAEjE,WAAO,IAAI,CAAC;GACb;;;;;;;;;AA1DG,QAAM,WAkEV,aAAa,GAAA,yBAAG;AACd,uCAAiC,qBAAM,aAAa,KAAA,MAAE,CAAG;GAC1D;;;;;;;;AApEG,QAAM,WA2EV,WAAW,GAAA,uBAAG,EAAE;;;;;;;;AA3EZ,QAAM,WAkFV,WAAW,GAAA,uBAAG;AACZ,UAAM,CAAC,EAAE,wBAAW,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;GACpE;;;;;;;;AApFG,QAAM,WA2FV,cAAc,GAAA,wBAAC,KAAK,EAAE;;AAEpB,QAAI,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;AAC5C,WAAK,CAAC,cAAc,EAAE,CAAC;AACvB,UAAI,CAAC,WAAW,EAAE,CAAC;KACpB;GACF;;;;;;;;AAjGG,QAAM,WAwGV,UAAU,GAAA,sBAAG;AACX,UAAM,CAAC,GAAG,wBAAW,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;GACrE;;SA1GG,MAAM;;;AA+GZ,uBAAU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;qBAC/B,MAAM;;;;;;;;;;;;;;;;;sBC5HF,eAAe;;;;sBACb,gBAAgB;;IAAzB,GAAG;;uBACK,eAAe;;IAAvB,EAAE;;uBACQ,iBAAiB;;IAA3B,IAAI;;uBACQ,mBAAmB;;IAA/B,MAAM;;mBACF,gBAAgB;;;;2BACR,0BAA0B;;;;sBAC/B,eAAe;;;;4BACT,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IA+B7C,SAAS;AAEF,WAFP,SAAS,CAED,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE;0BAFhC,SAAS;;;AAKX,QAAI,CAAC,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE;AACxB,UAAI,CAAC,OAAO,GAAG,MAAM,GAAG,IAAI,CAAC;KAC9B,MAAM;AACL,UAAI,CAAC,OAAO,GAAG,MAAM,CAAC;KACvB;;;AAGD,QAAI,CAAC,QAAQ,GAAG,0BAAa,EAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;;;AAGhD,WAAO,GAAG,IAAI,CAAC,QAAQ,GAAG,0BAAa,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;;;AAG/D,QAAI,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,IAAK,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,CAAC,EAAE,AAAC,CAAC;;;AAGvD,QAAI,CAAC,IAAI,CAAC,GAAG,EAAE;;AAEb,UAAI,EAAE,GAAG,MAAM,IAAI,MAAM,CAAC,EAAE,IAAI,MAAM,CAAC,EAAE,EAAE,IAAI,WAAW,CAAC;;AAE3D,UAAI,CAAC,GAAG,QAAM,EAAE,mBAAc,IAAI,CAAC,OAAO,EAAE,AAAE,CAAC;KAChD;;AAED,QAAI,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;;;AAGlC,QAAI,OAAO,CAAC,EAAE,EAAE;AACd,UAAI,CAAC,GAAG,GAAG,OAAO,CAAC,EAAE,CAAC;KACvB,MAAM,IAAI,OAAO,CAAC,QAAQ,KAAK,KAAK,EAAE;AACrC,UAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;KAC5B;;AAED,QAAI,CAAC,SAAS,GAAG,EAAE,CAAC;AACpB,QAAI,CAAC,WAAW,GAAG,EAAE,CAAC;AACtB,QAAI,CAAC,eAAe,GAAG,EAAE,CAAC;;;AAG1B,QAAI,OAAO,CAAC,YAAY,KAAK,KAAK,EAAE;AAClC,UAAI,CAAC,YAAY,EAAE,CAAC;KACrB;;AAED,QAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;;;;AAIlB,QAAI,OAAO,CAAC,mBAAmB,KAAK,KAAK,EAAE;AACzC,UAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;GACF;;;;;;;;AArDG,WAAS,WA4Db,OAAO,GAAA,mBAAG;AACR,QAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC,CAAC;;;AAGlD,QAAI,IAAI,CAAC,SAAS,EAAE;AAClB,WAAK,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,YAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE;AAC7B,cAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC;SAC7B;OACF;KACF;;;AAGD,QAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACtB,QAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAI,CAAC,eAAe,GAAG,IAAI,CAAC;;;AAG5B,QAAI,CAAC,GAAG,EAAE,CAAC;;;AAGX,QAAI,IAAI,CAAC,GAAG,CAAC,UAAU,EAAE;AACvB,UAAI,CAAC,GAAG,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAC3C;;AAED,OAAG,CAAC,YAAY,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3B,QAAI,CAAC,GAAG,GAAG,IAAI,CAAC;GACjB;;;;;;;;;AAvFG,WAAS,WA+Fb,MAAM,GAAA,kBAAG;AACP,WAAO,IAAI,CAAC,OAAO,CAAC;GACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAjGG,WAAS,WA4Ib,OAAO,GAAA,iBAAC,GAAG,EAAE;AACX,qBAAI,IAAI,CAAC,gFAAgF,CAAC,CAAC;;AAE3F,QAAI,CAAC,GAAG,EAAE;AACR,aAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;;AAED,QAAI,CAAC,QAAQ,GAAG,0BAAa,IAAI,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;AACjD,WAAO,IAAI,CAAC,QAAQ,CAAC;GACtB;;;;;;;;;;;;AArJG,WAAS,WAgKb,EAAE,GAAA,cAAG;AACH,WAAO,IAAI,CAAC,GAAG,CAAC;GACjB;;;;;;;;;;;AAlKG,WAAS,WA4Kb,QAAQ,GAAA,kBAAC,OAAO,EAAE,UAAU,EAAE;AAC5B,WAAO,GAAG,CAAC,QAAQ,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;GAC1C;;AA9KG,WAAS,WAgLb,QAAQ,GAAA,kBAAC,MAAM,EAAE;AACf,QAAI,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AAC5D,QAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,CAAC;;AAEnE,QAAI,CAAC,IAAI,IAAI,CAAC,SAAS,EAAE;AACvB,aAAO,MAAM,CAAC;KACf;;AAED,QAAI,QAAQ,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;;AAE/B,QAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,CAAC,EAAE;AAChC,aAAO,QAAQ,CAAC,MAAM,CAAC,CAAC;KACzB;;AAED,QAAI,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACrC,QAAI,WAAW,GAAG,SAAS,CAAC,WAAW,CAAC,CAAC;;AAEzC,QAAI,WAAW,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE;AACtC,aAAO,WAAW,CAAC,MAAM,CAAC,CAAC;KAC5B;;AAED,WAAO,MAAM,CAAC;GACf;;;;;;;;;;AAtMG,WAAS,WA+Mb,SAAS,GAAA,qBAAG;AACV,WAAO,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC;GACpC;;;;;;;;;;;;AAjNG,WAAS,WA4Nb,EAAE,GAAA,cAAG;AACH,WAAO,IAAI,CAAC,GAAG,CAAC;GACjB;;;;;;;;;;;;AA9NG,WAAS,WAyOb,IAAI,GAAA,gBAAG;AACL,WAAO,IAAI,CAAC,KAAK,CAAC;GACnB;;;;;;;;;;;;AA3OG,WAAS,WAsPb,QAAQ,GAAA,oBAAG;AACT,WAAO,IAAI,CAAC,SAAS,CAAC;GACvB;;;;;;;;;AAxPG,WAAS,WAgQb,YAAY,GAAA,sBAAC,EAAE,EAAE;AACf,WAAO,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;GAC7B;;;;;;;;;AAlQG,WAAS,WA0Qb,QAAQ,GAAA,kBAAC,IAAI,EAAE;AACb,WAAO,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;GACnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA5QG,WAAS,WA2Sb,QAAQ,GAAA,kBAAC,KAAK,EAAc;QAAZ,OAAO,gCAAC,EAAE;;AACxB,QAAI,SAAS,YAAA,CAAC;AACd,QAAI,aAAa,YAAA,CAAC;;;AAGlB,QAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,mBAAa,GAAG,KAAK,CAAC;;;AAGtB,UAAI,CAAC,OAAO,EAAE;AACZ,eAAO,GAAG,EAAE,CAAC;OACd;;;AAGD,UAAI,OAAO,KAAK,IAAI,EAAE;AACpB,yBAAI,IAAI,CAAC,mKAAmK,CAAC,CAAC;AAC9K,eAAO,GAAG,EAAE,CAAC;OACd;;;;AAID,UAAI,kBAAkB,GAAG,OAAO,CAAC,cAAc,IAAI,yBAAY,aAAa,CAAC,CAAC;;;AAG9E,aAAO,CAAC,IAAI,GAAG,aAAa,CAAC;;;;AAI7B,UAAI,cAAc,GAAG,SAAS,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;;AAEhE,eAAS,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,EAAE,OAAO,CAAC,CAAC;;;KAG/D,MAAM;AACL,eAAS,GAAG,KAAK,CAAC;KACnB;;AAED,QAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;AAE/B,QAAI,OAAO,SAAS,CAAC,EAAE,KAAK,UAAU,EAAE;AACtC,UAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,SAAS,CAAC;KAC9C;;;;AAID,iBAAa,GAAG,aAAa,IAAK,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,IAAI,EAAE,AAAC,CAAC;;AAEtE,QAAI,aAAa,EAAE;AACjB,UAAI,CAAC,eAAe,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;KACjD;;;;AAID,QAAI,OAAO,SAAS,CAAC,EAAE,KAAK,UAAU,IAAI,SAAS,CAAC,EAAE,EAAE,EAAE;AACxD,UAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;KAC9C;;;AAGD,WAAO,SAAS,CAAC;GAClB;;;;;;;;;;AAtWG,WAAS,WA+Wb,WAAW,GAAA,qBAAC,SAAS,EAAE;AACrB,QAAI,OAAO,SAAS,KAAK,QAAQ,EAAE;AACjC,eAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KACtC;;AAED,QAAI,CAAC,SAAS,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE;AACjC,aAAO;KACR;;AAED,QAAI,UAAU,GAAG,KAAK,CAAC;;AAEvB,SAAK,IAAI,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,UAAI,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,SAAS,EAAE;AACnC,kBAAU,GAAG,IAAI,CAAC;AAClB,YAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC5B,cAAM;OACP;KACF;;AAED,QAAI,CAAC,UAAU,EAAE;AACf,aAAO;KACR;;AAED,QAAI,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC;AACxC,QAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;;AAE9C,QAAI,MAAM,GAAG,SAAS,CAAC,EAAE,EAAE,CAAC;;AAE5B,QAAI,MAAM,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI,CAAC,SAAS,EAAE,EAAE;AACpD,UAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,SAAS,CAAC,EAAE,EAAE,CAAC,CAAC;KAC9C;GACF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA9YG,WAAS,WAqbb,YAAY,GAAA,wBAAG;;;AACb,QAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;;AAEtC,QAAI,QAAQ,EAAE;;;AAEZ,YAAI,aAAa,GAAG,MAAK,QAAQ,CAAC;;AAElC,YAAI,SAAS,GAAG,mBAAC,IAAI,EAAE,IAAI,EAAK;;;;AAI9B,cAAI,aAAa,CAAC,IAAI,CAAC,KAAK,SAAS,EAAE;AACrC,gBAAI,GAAG,aAAa,CAAC,IAAI,CAAC,CAAC;WAC5B;;;;AAID,cAAI,IAAI,KAAK,KAAK,EAAE;AAClB,mBAAO;WACR;;;;AAID,cAAI,IAAI,KAAK,IAAI,EAAE;AACjB,gBAAI,GAAG,EAAE,CAAC;WACX;;;;AAID,cAAI,CAAC,aAAa,GAAG,MAAK,QAAQ,CAAC,aAAa,CAAC;;;;;;AAMjD,gBAAK,IAAI,CAAC,GAAG,MAAK,QAAQ,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;SACxC,CAAC;;;AAGF,YAAI,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE;AAC3B,eAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,gBAAI,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;AACxB,gBAAI,KAAI,YAAA,CAAC;AACT,gBAAI,IAAI,YAAA,CAAC;;AAET,gBAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;;AAE7B,mBAAI,GAAG,KAAK,CAAC;AACb,kBAAI,GAAG,EAAE,CAAC;aACX,MAAM;;AAEL,mBAAI,GAAG,KAAK,CAAC,IAAI,CAAC;AAClB,kBAAI,GAAG,KAAK,CAAC;aACd;;AAED,qBAAS,CAAC,KAAI,EAAE,IAAI,CAAC,CAAC;WACvB;SACF,MAAM;AACL,gBAAM,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI,EAAC;AACzD,qBAAS,CAAC,IAAI,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC;WACjC,CAAC,CAAC;SACJ;;KACF;GACF;;;;;;;;;AApfG,WAAS,WA4fb,aAAa,GAAA,yBAAG;;;AAGd,WAAO,EAAE,CAAC;GACX;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAhgBG,WAAS,WAiiBb,EAAE,GAAA,YAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;;;AACvB,QAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrD,YAAM,CAAC,EAAE,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;;;KAGnD,MAAM;;AACL,YAAM,MAAM,GAAG,KAAK,CAAC;AACrB,YAAM,IAAI,GAAG,MAAM,CAAC;AACpB,YAAM,EAAE,GAAG,EAAE,CAAC,IAAI,SAAO,KAAK,CAAC,CAAC;;;AAGhC,YAAM,eAAe,GAAG;iBAAM,OAAK,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC;SAAA,CAAC;;;;AAIzD,uBAAe,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;AAC/B,eAAK,EAAE,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;;;;;AAKpC,YAAM,YAAY,GAAG;iBAAM,OAAK,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC;SAAA,CAAC;;;AAGhE,oBAAY,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;;;AAG5B,YAAI,KAAK,CAAC,QAAQ,EAAE;;AAElB,gBAAM,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC5B,gBAAM,CAAC,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,YAAY,CAAC,CAAC;;;;SAI5C,MAAM,IAAI,OAAO,KAAK,CAAC,EAAE,KAAK,UAAU,EAAE;;AAEzC,gBAAM,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACpB,gBAAM,CAAC,EAAE,CAAC,SAAS,EAAE,YAAY,CAAC,CAAC;SACpC;;KACF;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;;;;;;;;;;;;AA3kBG,WAAS,WAkmBb,GAAG,GAAA,aAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;AACxB,QAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AAC/D,YAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC;KACrC,MAAM;AACL,UAAM,MAAM,GAAG,KAAK,CAAC;AACrB,UAAM,IAAI,GAAG,MAAM,CAAC;;AAEpB,UAAM,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;;;;AAIhC,UAAI,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;;AAExB,UAAI,KAAK,CAAC,QAAQ,EAAE;;AAElB,cAAM,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;;AAE7B,cAAM,CAAC,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,CAAC;OACnC,MAAM;AACL,cAAM,CAAC,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;AACrB,cAAM,CAAC,GAAG,CAAC,SAAS,EAAE,EAAE,CAAC,CAAC;OAC3B;KACF;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;;;;;;;;;AA3nBG,WAAS,WA+oBb,GAAG,GAAA,aAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE;;;;;AACxB,QAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE;AACrD,YAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;KACpD,MAAM;;AACL,YAAM,MAAM,GAAG,KAAK,CAAC;AACrB,YAAM,IAAI,GAAG,MAAM,CAAC;AACpB,YAAM,EAAE,GAAG,EAAE,CAAC,IAAI,SAAO,KAAK,CAAC,CAAC;;AAEhC,YAAM,OAAO;;;;;;;;;;WAAG,YAAM;AACpB,iBAAK,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;AAChC,YAAE,CAAC,KAAK,CAAC,IAAI,aAAY,CAAC;SAC3B,CAAA,CAAC;;;AAGF,eAAO,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEvB,eAAK,EAAE,CAAC,MAAM,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;;KAChC;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;;;;;AAnqBG,WAAS,WAmrBb,OAAO,GAAA,iBAAC,KAAK,EAAE,IAAI,EAAE;AACnB,UAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;AACtC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;AAtrBG,WAAS,WAksBb,KAAK,GAAA,eAAC,EAAE,EAAc;QAAZ,IAAI,gCAAC,KAAK;;AAClB,QAAI,EAAE,EAAE;AACN,UAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAI,IAAI,EAAE;AACR,YAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACf,MAAM;;AAEL,cAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;SACxB;OACF,MAAM;AACL,YAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC;AAC1C,YAAI,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;OAC3B;KACF;AACD,WAAO,IAAI,CAAC;GACb;;;;;;;;;AAjtBG,WAAS,WAytBb,YAAY,GAAA,wBAAG;AACb,QAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;;;AAGrB,QAAI,CAAC,UAAU,CAAC,YAAU;AACxB,UAAI,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC;;AAElC,UAAI,UAAU,IAAI,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,kBAAU,CAAC,OAAO,CAAC,UAAS,EAAE,EAAC;AAC7B,YAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SACf,EAAE,IAAI,CAAC,CAAC;;;AAGT,YAAI,CAAC,WAAW,GAAG,EAAE,CAAC;OACvB;;;AAGD,UAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACvB,EAAE,CAAC,CAAC,CAAC;GACP;;;;;;;;;;AA5uBG,WAAS,WAqvBb,QAAQ,GAAA,kBAAC,YAAY,EAAE;AACrB,WAAO,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,YAAY,CAAC,CAAC;GAC/C;;;;;;;;;;AAvvBG,WAAS,WAgwBb,QAAQ,GAAA,kBAAC,UAAU,EAAE;AACnB,OAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;AACrC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;AAnwBG,WAAS,WA4wBb,WAAW,GAAA,qBAAC,aAAa,EAAE;AACzB,OAAG,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;AAC3C,WAAO,IAAI,CAAC;GACb;;;;;;;;;AA/wBG,WAAS,WAuxBb,IAAI,GAAA,gBAAG;AACL,QAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC/B,WAAO,IAAI,CAAC;GACb;;;;;;;;;AA1xBG,WAAS,WAkyBb,IAAI,GAAA,gBAAG;AACL,QAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5B,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;AAryBG,WAAS,WA+yBb,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAClC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;AAlzBG,WAAS,WA4zBb,aAAa,GAAA,yBAAG;AACd,QAAI,CAAC,WAAW,CAAC,kBAAkB,CAAC,CAAC;AACrC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;;;;AA/zBG,WAAS,WA80Bb,KAAK,GAAA,eAAC,GAAG,EAAE,aAAa,EAAE;AACxB,WAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;GACpD;;;;;;;;;;;;;;;;AAh1BG,WAAS,WA+1Bb,MAAM,GAAA,gBAAC,GAAG,EAAE,aAAa,EAAE;AACzB,WAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,GAAG,EAAE,aAAa,CAAC,CAAC;GACrD;;;;;;;;;;;AAj2BG,WAAS,WA22Bb,UAAU,GAAA,oBAAC,KAAK,EAAE,MAAM,EAAE;;AAExB,WAAO,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;GAC/C;;;;;;;;;;;;;;;;;;;;AA92BG,WAAS,WAi4Bb,SAAS,GAAA,mBAAC,aAAa,EAAE,GAAG,EAAE,aAAa,EAAE;AAC3C,QAAI,GAAG,KAAK,SAAS,EAAE;;AAErB,UAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,GAAG,EAAE;AAC/B,WAAG,GAAG,CAAC,CAAC;OACT;;;AAGD,UAAI,CAAC,EAAE,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,EAAE,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE;AACrE,YAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,GAAG,CAAC;OACrC,MAAM,IAAI,GAAG,KAAK,MAAM,EAAE;AACzB,YAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,EAAE,CAAC;OACpC,MAAM;AACL,YAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC;OAC5C;;;AAGD,UAAI,CAAC,aAAa,EAAE;AAClB,YAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;OACxB;;;AAGD,aAAO,IAAI,CAAC;KACb;;;;AAID,QAAI,CAAC,IAAI,CAAC,GAAG,EAAE;AACb,aAAO,CAAC,CAAC;KACV;;;AAGD,QAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;AACxC,QAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;;AAEhC,QAAI,OAAO,KAAK,CAAC,CAAC,EAAE;;AAElB,aAAO,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,CAAC,CAAC;KAC5C;;;;;AAKD,WAAO,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,yBAAY,aAAa,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;GACtE;;;;;;;;;;;;;AA76BG,WAAS,WAy7Bb,aAAa,GAAA,yBAAG;;AAEd,QAAI,UAAU,GAAG,CAAC,CAAC;AACnB,QAAI,UAAU,GAAG,IAAI,CAAC;;;;AAItB,QAAM,oBAAoB,GAAG,EAAE,CAAC;;;AAGhC,QAAM,kBAAkB,GAAG,GAAG,CAAC;;AAE/B,QAAI,UAAU,YAAA,CAAC;;AAEf,QAAI,CAAC,EAAE,CAAC,YAAY,EAAE,UAAS,KAAK,EAAE;;AAEpC,UAAI,KAAK,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;;AAE9B,kBAAU,GAAG,oBAAO,EAAE,EAAE,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;;AAE1C,kBAAU,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;;AAElC,kBAAU,GAAG,IAAI,CAAC;OACnB;KACF,CAAC,CAAC;;AAEH,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,UAAS,KAAK,EAAE;;AAEnC,UAAI,KAAK,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE;AAC5B,kBAAU,GAAG,KAAK,CAAC;OACpB,MAAM,IAAI,UAAU,EAAE;;;AAGrB,YAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;AACxD,YAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC;AACxD,YAAM,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,GAAI,KAAK,GAAG,KAAK,GAAI,KAAK,CAAC,CAAC;;AAEjE,YAAI,aAAa,GAAG,oBAAoB,EAAE;AACxC,oBAAU,GAAG,KAAK,CAAC;SACpB;OACF;KACF,CAAC,CAAC;;AAEH,QAAM,KAAK,GAAG,iBAAW;AACvB,gBAAU,GAAG,KAAK,CAAC;KACpB,CAAC;;;AAGF,QAAI,CAAC,EAAE,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AAC7B,QAAI,CAAC,EAAE,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;;;;AAI9B,QAAI,CAAC,EAAE,CAAC,UAAU,EAAE,UAAS,KAAK,EAAE;AAClC,gBAAU,GAAG,IAAI,CAAC;;AAElB,UAAI,UAAU,KAAK,IAAI,EAAE;;AAEvB,YAAM,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC;;;AAGpD,YAAI,SAAS,GAAG,kBAAkB,EAAE;;AAElC,eAAK,CAAC,cAAc,EAAE,CAAC;AACvB,cAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;;;;SAIrB;OACF;KACF,CAAC,CAAC;GACJ;;;;;;;;;;;;;;;;;;;;;;;;AAhgCG,WAAS,WAuhCb,mBAAmB,GAAA,+BAAG;;AAEpB,QAAI,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAkB,EAAE;AACvD,aAAO;KACR;;;AAGD,QAAM,MAAM,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,kBAAkB,CAAC,CAAC;;AAExE,QAAI,YAAY,YAAA,CAAC;;AAEjB,QAAI,CAAC,EAAE,CAAC,YAAY,EAAE,YAAW;AAC/B,YAAM,EAAE,CAAC;;;;AAIT,UAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;;AAEjC,kBAAY,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;KAC9C,CAAC,CAAC;;AAEH,QAAM,QAAQ,GAAG,kBAAS,KAAK,EAAE;AAC/B,YAAM,EAAE,CAAC;;AAET,UAAI,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;KAClC,CAAC;;AAEF,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;AAC7B,QAAI,CAAC,EAAE,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;AAC9B,QAAI,CAAC,EAAE,CAAC,aAAa,EAAE,QAAQ,CAAC,CAAC;GAClC;;;;;;;;;;;AArjCG,WAAS,WA+jCb,UAAU,GAAA,oBAAC,EAAE,EAAE,OAAO,EAAE;AACtB,MAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;;;AAGvB,QAAI,SAAS,GAAG,oBAAO,UAAU,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC;;AAE/C,QAAM,SAAS,GAAG,qBAAW;AAC3B,UAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;KAC9B,CAAC;;AAEF,aAAS,CAAC,IAAI,oBAAkB,SAAS,AAAE,CAAC;;AAE5C,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;AAE9B,WAAO,SAAS,CAAC;GAClB;;;;;;;;;;AA9kCG,WAAS,WAulCb,YAAY,GAAA,sBAAC,SAAS,EAAE;AACtB,wBAAO,YAAY,CAAC,SAAS,CAAC,CAAC;;AAE/B,QAAM,SAAS,GAAG,qBAAW,EAAE,CAAC;;AAEhC,aAAS,CAAC,IAAI,oBAAkB,SAAS,AAAE,CAAC;;AAE5C,QAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;AAE/B,WAAO,SAAS,CAAC;GAClB;;;;;;;;;;;AAjmCG,WAAS,WA2mCb,WAAW,GAAA,qBAAC,EAAE,EAAE,QAAQ,EAAE;AACxB,MAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;;AAEvB,QAAI,UAAU,GAAG,oBAAO,WAAW,CAAC,EAAE,EAAE,QAAQ,CAAC,CAAC;;AAElD,QAAM,SAAS,GAAG,qBAAW;AAC3B,UAAI,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;KAChC,CAAC;;AAEF,aAAS,CAAC,IAAI,qBAAmB,UAAU,AAAE,CAAC;;AAE9C,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;AAE9B,WAAO,UAAU,CAAC;GACnB;;;;;;;;;;AAznCG,WAAS,WAkoCb,aAAa,GAAA,uBAAC,UAAU,EAAE;AACxB,wBAAO,aAAa,CAAC,UAAU,CAAC,CAAC;;AAEjC,QAAM,SAAS,GAAG,qBAAW,EAAE,CAAC;;AAEhC,aAAS,CAAC,IAAI,qBAAmB,UAAU,AAAE,CAAC;;AAE9C,QAAI,CAAC,GAAG,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;;AAE/B,WAAO,UAAU,CAAC;GACnB;;;;;;;;;;;AA5oCG,WAAS,CAspCN,iBAAiB,GAAA,2BAAC,IAAI,EAAE,IAAI,EAAE;AACnC,QAAI,CAAC,SAAS,CAAC,WAAW,EAAE;AAC1B,eAAS,CAAC,WAAW,GAAG,EAAE,CAAC;KAC5B;;AAED,aAAS,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;AACnC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;AA7pCG,WAAS,CAuqCN,YAAY,GAAA,sBAAC,IAAI,EAAE;AACxB,QAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,EAAE;AACxD,aAAO,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACpC;;AAED,QAAI,uBAAU,oBAAO,OAAO,IAAI,oBAAO,OAAO,CAAC,IAAI,CAAC,EAAE;AACpD,uBAAI,IAAI,UAAQ,IAAI,8HAA2H,CAAC;AAChJ,aAAO,oBAAO,OAAO,CAAC,IAAI,CAAC,CAAC;KAC7B;GACF;;;;;;;;;;;;AAhrCG,WAAS,CA2rCN,MAAM,GAAA,gBAAC,KAAK,EAAE;AACnB,SAAK,GAAG,KAAK,IAAI,EAAE,CAAC;;AAEpB,qBAAI,IAAI,CAAC,sFAAsF,CAAC,CAAC;;;;;AAKjG,QAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,IAAI,IAAI,YAAW,EAAE,CAAC;;;;;;;;;;AAUnG,QAAI,MAAM,GAAG,kBAAW;AACtB,UAAI,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;KAC7B,CAAC;;;AAGF,UAAM,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;AAGjD,UAAM,CAAC,SAAS,CAAC,WAAW,GAAG,MAAM,CAAC;;;AAGtC,UAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;;;AAGjC,SAAK,IAAI,MAAI,IAAI,KAAK,EAAE;AACtB,UAAI,KAAK,CAAC,cAAc,CAAC,MAAI,CAAC,EAAE;AAC9B,cAAM,CAAC,SAAS,CAAC,MAAI,CAAC,GAAG,KAAK,CAAC,MAAI,CAAC,CAAC;OACtC;KACF;;AAED,WAAO,MAAM,CAAC;GACf;;SAluCG,SAAS;;;AAquCf,SAAS,CAAC,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;qBACrC,SAAS;;;;;;;;;;;;;;;;;0BChxCF,iBAAiB;;;;;;0BAGhB,kBAAkB;;;;kCACV,yCAAyC;;;;+BAC5C,qCAAqC;;;;2BACzC,iCAAiC;;;;oCACxB,2CAA2C;;;;2BACpD,mBAAmB;;;;+BACf,wCAAwC;;;;gCACvC,wBAAwB;;;;6BAC3B,oCAAoC;;;;gCACjC,yBAAyB;;;;0BAC/B,kBAAkB;;;;8BACd,0CAA0C;;;;+BACzC,2CAA2C;;;;8BAC5C,0CAA0C;;;;sCAClC,mDAAmD;;;;mCACtD,4CAA4C;;;;;;;;;;;IAQtE,UAAU;WAAV,UAAU;0BAAV,UAAU;;;;;;;YAAV,UAAU;;;;;;;;;AAAV,YAAU,WAQd,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,iBAAiB;KAC7B,CAAC,CAAC;GACJ;;SAZG,UAAU;;;AAehB,UAAU,CAAC,SAAS,CAAC,QAAQ,GAAG;AAC9B,WAAS,EAAE,MAAM;AACjB,UAAQ,EAAE,CACR,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,aAAa,EACb,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,sBAAsB,EACtB,qBAAqB,EACrB,wBAAwB,EACxB,YAAY,EACZ,eAAe,EACf,gBAAgB,EAChB,iBAAiB,EACjB,gBAAgB,EAChB,kBAAkB,CACnB;CACF,CAAC;;AAEF,uBAAU,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;qBACvC,UAAU;;;;;;;;;;;;;;;;;uBChEN,cAAc;;;;yBACX,iBAAiB;;;;;;;;;;;IAQjC,gBAAgB;WAAhB,gBAAgB;0BAAhB,gBAAgB;;;;;;;YAAhB,gBAAgB;;;;;;;;;AAAhB,kBAAgB,WAQpB,aAAa,GAAA,yBAAG;AACd,uCAAiC,kBAAM,aAAa,KAAA,MAAE,CAAG;GAC1D;;;;;;;;AAVG,kBAAgB,WAiBpB,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE;AAChC,UAAI,CAAC,OAAO,CAAC,iBAAiB,EAAE,CAAC;AACjC,UAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;KACpC,MAAM;AACL,UAAI,CAAC,OAAO,CAAC,cAAc,EAAE,CAAC;AAC9B,UAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;KAChC;GACF;;SAzBG,gBAAgB;;;AA6BtB,gBAAgB,CAAC,SAAS,CAAC,YAAY,GAAG,YAAY,CAAC;;AAEvD,uBAAU,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;qBACnD,gBAAgB;;;;;;;;;;;;;;;;;0BCzCT,cAAc;;;;sBACf,iBAAiB;;IAA1B,GAAG;;;;;;;;;;IAST,WAAW;WAAX,WAAW;0BAAX,WAAW;;;;;;;YAAX,WAAW;;;;;;;;;AAAX,aAAW,WAQf,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,eAAS,EAAE,8BAA8B;KAC1C,CAAC,CAAC;;AAEH,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AACpC,eAAS,EAAE,kBAAkB;AAC7B,eAAS,sCAAoC,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,eAAU,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,AAAE;AAC1G,iBAAW,EAAE,KAAK;KACnB,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;AAEhC,WAAO,EAAE,CAAC;GACX;;SAtBG,WAAW;;;AA0BjB,uBAAU,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;qBACzC,WAAW;;;;;;;;;;;;;;;;;uBCrCP,WAAW;;;;yBACR,cAAc;;;;sBACf,iBAAiB;;IAA1B,GAAG;;;;;;;;;;;IAUT,UAAU;AAEH,WAFP,UAAU,CAEF,MAAM,EAAE,OAAO,EAAE;0BAFzB,UAAU;;AAGZ,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;;AAG7C,QAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,sBAAyB,KAAK,KAAK,EAAE;AACjE,UAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KAC7B;;AAED,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAW;AACtC,UAAI,CAAC,MAAM,EAAE,CAAC;;AAEd,UAAI,MAAM,CAAC,IAAI,sBAAyB,KAAK,KAAK,EAAE;AAClD,YAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;OAC7B,MAAM;AACL,YAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;OAChC;KACF,CAAC,CAAC;GACJ;;YArBG,UAAU;;;;;;;;;AAAV,YAAU,WA6Bd,aAAa,GAAA,yBAAG;AACd,iCAA2B,kBAAM,aAAa,KAAA,MAAE,CAAG;GACpD;;;;;;;;AA/BG,YAAU,WAsCd,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,OAAO,CAAC,KAAK,CAAE,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,KAAK,GAAG,IAAI,CAAE,CAAC;GAC3D;;;;;;;;AAxCG,YAAU,WA+Cd,MAAM,GAAA,kBAAG;AACP,QAAI,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;QAC3B,KAAK,GAAG,CAAC,CAAC;;AAEd,QAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;AACrC,WAAK,GAAG,CAAC,CAAC;KACX,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE;AACrB,WAAK,GAAG,CAAC,CAAC;KACX,MAAM,IAAI,GAAG,GAAG,IAAI,EAAE;AACrB,WAAK,GAAG,CAAC,CAAC;KACX;;;;;AAKD,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,QAAQ,GAAG,MAAM,CAAC;AACtD,QAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAI,IAAI,CAAC,WAAW,EAAE,KAAK,aAAa,EAAE;AACxC,UAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;KACjC;;;AAGD,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1B,SAAG,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,eAAa,CAAC,CAAG,CAAC;KAC7C;AACD,OAAG,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,eAAa,KAAK,CAAG,CAAC;GAC9C;;SAzEG,UAAU;;;AA6EhB,UAAU,CAAC,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC;;AAE3C,uBAAU,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;qBACvC,UAAU;;;;;;;;;;;;;;;;;uBC5FN,cAAc;;;;yBACX,iBAAiB;;;;;;;;;;;;;IAUjC,UAAU;AAEH,WAFP,UAAU,CAEF,MAAM,EAAE,OAAO,EAAC;0BAFxB,UAAU;;AAGZ,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACzC,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;GAC5C;;YAPG,UAAU;;;;;;;;;AAAV,YAAU,WAed,aAAa,GAAA,yBAAG;AACd,iCAA2B,kBAAM,aAAa,KAAA,MAAE,CAAG;GACpD;;;;;;;;AAjBG,YAAU,WAwBd,WAAW,GAAA,uBAAG;AACZ,QAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AACzB,UAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB,MAAM;AACL,UAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KACtB;GACF;;;;;;;;AA9BG,YAAU,WAqCd,UAAU,GAAA,sBAAG;AACX,QAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC/B,QAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7B,QAAI,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;GAC3B;;;;;;;;AAzCG,YAAU,WAgDd,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5B,QAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;GAC1B;;SApDG,UAAU;;;AAwDhB,UAAU,CAAC,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC;;AAE3C,uBAAU,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;qBACvC,UAAU;;;;;;;;;;;;;;;;;2BCtEF,2BAA2B;;;;oBACjC,oBAAoB;;;;oCACJ,8BAA8B;;;;yBACzC,oBAAoB;;;;sBACrB,oBAAoB;;IAA7B,GAAG;;;;;;;;;;;IAUT,sBAAsB;AAEf,WAFP,sBAAsB,CAEd,MAAM,EAAE,OAAO,EAAC;0BAFxB,sBAAsB;;AAGxB,2BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,gBAAgB,EAAE,CAAC;AACxB,QAAI,CAAC,WAAW,EAAE,CAAC;;AAEnB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;GACjD;;YAVG,sBAAsB;;;;;;;;;AAAtB,wBAAsB,WAkB1B,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,sBAAM,QAAQ,KAAA,MAAE,CAAC;;AAE1B,QAAI,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AAClC,eAAS,EAAE,yBAAyB;AACpC,eAAS,EAAE,CAAG;KACf,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;AAE9B,WAAO,EAAE,CAAC;GACX;;;;;;;;;AA7BG,wBAAsB,WAqC1B,aAAa,GAAA,yBAAG;AACd,kCAA4B,sBAAM,aAAa,KAAA,MAAE,CAAG;GACrD;;;;;;;;;AAvCG,wBAAsB,WA+C1B,UAAU,GAAA,sBAAG;AACX,QAAI,IAAI,GAAG,sBAAS,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;AACnC,QAAI,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;;AAEjC,QAAI,KAAK,EAAE;AACT,WAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAI,CAAC,QAAQ,CACX,sCAAyB,IAAI,CAAC,MAAM,EAAE,EAAE,EAAE,MAAQ,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,EAAC,CAAC,CACnE,CAAC;OACH;KACF;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;AA5DG,wBAAsB,WAmE1B,oBAAoB,GAAA,gCAAG;;AAErB,QAAI,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC,CAAC;GACvE;;;;;;;;AAtEG,wBAAsB,WA6E1B,WAAW,GAAA,uBAAG;;AAEZ,QAAI,WAAW,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,CAAC;AAC/C,QAAI,KAAK,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;;;AAGjC,QAAI,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACvB,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAG,CAAC,EAAE,EAAE;AACtC,UAAI,KAAK,CAAC,CAAC,CAAC,GAAG,WAAW,EAAE;AAC1B,eAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;AACnB,cAAM;OACP;KACF;AACD,QAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;GACrC;;;;;;;;;AA3FG,wBAAsB,WAmG1B,aAAa,GAAA,yBAAG;AACd,WAAO,IAAI,CAAC,QAAQ,cAAiB,IAAK,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,aAAa,cAAiB,AAAC,CAAC;GACxH;;;;;;;;;AArGG,wBAAsB,WA6G1B,qBAAqB,GAAA,iCAAG;AACtB,WAAO,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,IACpB,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,qBAAwB,IAC1C,IAAI,CAAC,aAAa,EAAE,IACpB,IAAI,CAAC,aAAa,EAAE,CAAC,MAAM,GAAG,CAAC,CACnC;GACF;;;;;;;;AAnHG,wBAAsB,WA0H1B,gBAAgB,GAAA,4BAAG;AACjB,QAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAChC,UAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;KAChC,MAAM;AACL,UAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KAC7B;GACF;;;;;;;;AAhIG,wBAAsB,WAuI1B,WAAW,GAAA,uBAAG;AACZ,QAAI,IAAI,CAAC,qBAAqB,EAAE,EAAE;AAChC,UAAI,CAAC,QAAQ,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,GAAG,GAAG,CAAC;KAC9D;GACF;;SA3IG,sBAAsB;;;AA+I5B,sBAAsB,CAAC,SAAS,CAAC,YAAY,GAAG,eAAe,CAAC;;AAEhE,uBAAU,iBAAiB,CAAC,wBAAwB,EAAE,sBAAsB,CAAC,CAAC;qBAC/D,sBAAsB;;;;;;;;;;;;;;;;;yBChKhB,yBAAyB;;;;yBACxB,oBAAoB;;;;;;;;;;;;;IAUpC,oBAAoB;AAEb,WAFP,oBAAoB,CAEZ,MAAM,EAAE,OAAO,EAAC;0BAFxB,oBAAoB;;AAGtB,QAAI,KAAK,GAAG,OAAO,KAAQ,CAAC;AAC5B,QAAI,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;;;AAGjC,WAAO,MAAS,GAAG,KAAK,CAAC;AACzB,WAAO,SAAY,GAAG,IAAI,KAAK,CAAC,CAAC;AACjC,yBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAI,CAAC,IAAI,GAAG,IAAI,CAAC;;AAEjB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;GAC5C;;YAfG,oBAAoB;;;;;;;;AAApB,sBAAoB,WAsBxB,WAAW,GAAA,uBAAG;AACZ,wBAAM,WAAW,KAAA,MAAE,CAAC;AACpB,QAAI,CAAC,MAAM,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;GACvC;;;;;;;;AAzBG,sBAAoB,WAgCxB,MAAM,GAAA,kBAAG;AACP,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,YAAY,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,CAAC;GAC3D;;SAlCG,oBAAoB;;;AAsC1B,oBAAoB,CAAC,SAAS,CAAC,aAAa,GAAG,QAAQ,CAAC;;AAExD,uBAAU,iBAAiB,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;qBAC3D,oBAAoB;;;;;;;;;;;;;;;;;0BCpDb,oBAAoB;;;;sBACrB,oBAAoB;;IAA7B,GAAG;;;;;;;;;;;IAUT,eAAe;AAER,WAFP,eAAe,CAEP,MAAM,EAAE,OAAO,EAAC;0BAFxB,eAAe;;AAGjB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;GAC1C;;YALG,eAAe;;;;;;;;;AAAf,iBAAe,WAanB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,mBAAmB;AAC9B,eAAS,4CAA0C,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,uBAAoB;KAC/F,CAAC,CAAC;GACJ;;;;;;;;AAlBG,iBAAe,WAyBnB,MAAM,GAAA,kBAAG;AACP,QAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACvC,QAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACvC,QAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AAC7C,QAAI,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;;;AAGjC,QAAI,UAAU,GAAG,oBAAU,IAAI,EAAE,GAAG,EAAC;AACnC,UAAI,OAAO,GAAG,AAAC,IAAI,GAAG,GAAG,IAAK,CAAC,CAAC;AAChC,aAAO,AAAC,CAAC,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAA,GAAI,GAAG,GAAI,GAAG,CAAC;KACnD,CAAC;;;AAGF,QAAI,CAAC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;;;AAGzD,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,UAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC9B,UAAI,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1B,UAAI,IAAI,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;;AAEvB,UAAI,CAAC,IAAI,EAAE;AACT,YAAI,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAC;OAC7C;;;AAGD,UAAI,CAAC,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;AACjD,UAAI,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,GAAG,KAAK,EAAE,WAAW,CAAC,CAAC;KACzD;;;AAGD,SAAK,IAAI,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtD,UAAI,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC,GAAC,CAAC,CAAC,CAAC,CAAC;KACrC;GACF;;SA3DG,eAAe;;;AA+DrB,uBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;0BC3ER,oBAAoB;;;;sBACtB,mBAAmB;;IAA3B,EAAE;;0BACS,4BAA4B;;;;;;;;;;;;;IAU7C,eAAe;AAER,WAFP,eAAe,CAEP,MAAM,EAAE,OAAO,EAAC;0BAFxB,eAAe;;AAGjB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACnD,UAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC;GAClD;;YANG,eAAe;;;;;;;;;AAAf,iBAAe,WAcnB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,mBAAmB;AAC9B,eAAS,4CAA0C,IAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,uBAAoB;KACjG,CAAC,CAAC;GACJ;;AAnBG,iBAAe,WAqBnB,cAAc,GAAA,0BAAG;AACf,QAAI,IAAI,GAAG,AAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AACzG,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,mBAAmB,EAAE,wBAAW,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;GACvF;;SAxBG,eAAe;;;AA4BrB,uBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;0BCzCR,oBAAoB;;;;uBACtB,eAAe;;;;;;;;;;;;;;IAW7B,eAAe;WAAf,eAAe;0BAAf,eAAe;;;;;;;YAAf,eAAe;;;;;;;;;AAAf,iBAAe,WAQnB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,kCAAkC;KAC9C,CAAC,CAAC;GACJ;;SAZG,eAAe;;;AAerB,eAAe,CAAC,SAAS,CAAC,QAAQ,GAAG;AACnC,UAAQ,EAAE;AACR,aAAW,EAAE;GACd;CACF,CAAC;;AAEF,uBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;uBClCX,wBAAwB;;;;yBACrB,oBAAoB;;;;+BACd,wBAAwB;;;;+BACxB,wBAAwB;;;;sBAChC,mBAAmB;;IAA3B,EAAE;;0BACS,4BAA4B;;;;;;;;;;;;;IAU7C,OAAO;AAEA,WAFP,OAAO,CAEC,MAAM,EAAE,OAAO,EAAC;0BAFxB,OAAO;;AAGT,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AACzD,UAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;GACxD;;YANG,OAAO;;;;;;;;;AAAP,SAAO,WAcX,QAAQ,GAAA,oBAAG;AACT,WAAO,kBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,qBAAqB;AAChC,kBAAY,EAAE,oBAAoB;KACnC,CAAC,CAAC;GACJ;;;;;;;;AAnBG,SAAO,WA0BX,oBAAoB,GAAA,gCAAG;;AAEnB,QAAI,IAAI,GAAG,AAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AACzG,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAE,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,EAAE,wBAAW,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC,CAAC;GACtF;;;;;;;;;AA/BG,SAAO,WAuCX,UAAU,GAAA,sBAAG;AACX,QAAI,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACnE,WAAO,OAAO,IAAI,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC;GACnC;;;;;;;;AA1CG,SAAO,WAiDX,eAAe,GAAA,yBAAC,KAAK,EAAE;AACrB,sBAAM,eAAe,KAAA,OAAC,KAAK,CAAC,CAAC;;AAE7B,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;AAE7B,QAAI,CAAC,eAAe,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;AAC9C,QAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;GACtB;;;;;;;;AAxDG,SAAO,WA+DX,eAAe,GAAA,yBAAC,KAAK,EAAE;AACrB,QAAI,OAAO,GAAG,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;;;AAGtE,QAAI,OAAO,KAAK,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;AAAE,aAAO,GAAG,OAAO,GAAG,GAAG,CAAC;KAAE;;;AAGrE,QAAI,CAAC,OAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;GACnC;;;;;;;;AAvEG,SAAO,WA8EX,aAAa,GAAA,uBAAC,KAAK,EAAE;AACnB,sBAAM,aAAa,KAAA,OAAC,KAAK,CAAC,CAAC;;AAE3B,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AAC9B,QAAI,IAAI,CAAC,eAAe,EAAE;AACxB,UAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB;GACF;;;;;;;;AArFG,SAAO,WA4FX,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;GAC1D;;;;;;;;AA9FG,SAAO,WAqGX,QAAQ,GAAA,oBAAG;AACT,QAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;GAC1D;;SAvGG,OAAO;;;AA2Gb,OAAO,CAAC,SAAS,CAAC,QAAQ,GAAG;AAC3B,UAAQ,EAAE;AACR,qBAAmB,EAAE;AACrB,qBAAmB,EAAE;GACtB;AACD,WAAW,iBAAiB;CAC7B,CAAC;;AAEF,OAAO,CAAC,SAAS,CAAC,WAAW,GAAG,YAAY,CAAC;;AAE7C,uBAAU,iBAAiB,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;qBACjC,OAAO;;;;;;;;;;;;;;;;;uBCrIH,aAAa;;;;yBACV,oBAAoB;;;;;;;;;;;IAQpC,mBAAmB;WAAnB,mBAAmB;0BAAnB,mBAAmB;;;;;;;YAAnB,mBAAmB;;;;;;;;;AAAnB,qBAAmB,WAQvB,aAAa,GAAA,yBAAG;AACd,0CAAoC,kBAAM,aAAa,KAAA,MAAE,CAAG;GAC7D;;;;;;;;;AAVG,qBAAmB,WAkBvB,QAAQ,GAAA,oBAAG;AACT,WAAO,kBAAM,QAAQ,KAAA,OAAC;AACpB,eAAS,EAAE,IAAI,CAAC,aAAa,EAAE;KAChC,CAAC,CAAC;GACJ;;SAtBG,mBAAmB;;;AAyBzB,uBAAU,iBAAiB,CAAC,qBAAqB,EAAE,mBAAmB,CAAC,CAAC;qBACzD,mBAAmB;;;;;;;;;;;;;;;;;0BCnCZ,oBAAoB;;;;;;;;;;;;IASpC,MAAM;WAAN,MAAM;0BAAN,MAAM;;;;;;;YAAN,MAAM;;;;;;;;;AAAN,QAAM,WAQV,aAAa,GAAA,yBAAG;AACd,2BAAqB,qBAAM,aAAa,KAAA,MAAE,CAAG;GAC9C;;;;;;;;;;AAVG,QAAM,WAmBV,QAAQ,GAAA,kBAAC,KAAK,EAAE;AACd,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,IAAI,CAAC,aAAa,EAAE;KAChC,CAAC,CAAC;GACJ;;SAvBG,MAAM;;;AA0BZ,uBAAU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;;qBAE/B,MAAM;;;;;;;;;;;;;;;;;kCCrCS,2BAA2B;;;;yBACnC,oBAAoB;;;;;;;;;;;;;IAUnC,uBAAuB;AAEjB,WAFN,uBAAuB,CAEhB,MAAM,EAAE,OAAO,EAAE;0BAFxB,uBAAuB;;AAG1B,WAAO,MAAS,GAAG;AACjB,YAAQ,OAAO,KAAQ;AACvB,cAAU,MAAM;AAChB,aAAS,OAAO,KAAQ,GAAG,WAAW;AACtC,eAAS,EAAE,KAAK;AAChB,UAAI,EAAE,UAAU;KACjB,CAAC;;AAEF,kCAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,QAAQ,CAAC,wBAAwB,CAAC,CAAC;GACzC;;YAbI,uBAAuB;;;;;;;;AAAvB,yBAAuB,WAoB5B,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC,IAAI,EAAE,CAAC;GACpD;;SAtBI,uBAAuB;;;AA0B9B,uBAAU,iBAAiB,CAAC,yBAAyB,EAAE,uBAAuB,CAAC,CAAC;qBACjE,uBAAuB;;;;;;;;;;;;;;;;;gCCtCV,wBAAwB;;;;yBAC9B,oBAAoB;;;;uCACN,iCAAiC;;;;;;;;;;;;;;IAW/D,cAAc;AAEP,WAFP,cAAc,CAEN,MAAM,EAAE,OAAO,EAAE,KAAK,EAAC;0BAF/B,cAAc;;AAGhB,gCAAM,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9B,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,EAAC,eAAe,CAAC,CAAC;GACrD;;YALG,cAAc;;;;;;;;;AAAd,gBAAc,WAalB,aAAa,GAAA,yBAAG;AACd,oCAA8B,2BAAM,aAAa,KAAA,MAAE,CAAG;GACvD;;;;;;;;AAfG,gBAAc,WAsBlB,MAAM,GAAA,kBAAG;AACP,QAAI,SAAS,GAAG,CAAC,CAAC;AAClB,+BAAM,MAAM,KAAA,MAAE,CAAC;;;AAGf,QAAI,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,yBAA4B,EAAE;AACxE,eAAS,GAAG,CAAC,CAAC;KACf;;AAED,QAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,SAAS,EAAE;AAC/C,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,MAAM;AACL,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;;;;;;;;AApCG,gBAAc,WA4ClB,WAAW,GAAA,uBAAG;AACZ,QAAI,KAAK,GAAG,EAAE,CAAC;;AAEf,QAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC,IAAI,yBAA4B,CAAA,AAAC,EAAE;AAC3E,WAAK,CAAC,IAAI,CAAC,yCAA4B,IAAI,CAAC,OAAO,EAAE,EAAE,MAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;KAC/E;;AAED,WAAO,2BAAM,WAAW,KAAA,OAAC,KAAK,CAAC,CAAC;GACjC;;SApDG,cAAc;;;AAwDpB,cAAc,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC;AAC5C,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,CAAC;;AAEnD,uBAAU,iBAAiB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;qBAC/C,cAAc;;;;;;;;;;;;;;;;;gCCzED,wBAAwB;;;;yBAC9B,oBAAoB;;;;iCACZ,2BAA2B;;;;qCACvB,+BAA+B;;;;oBAChD,oBAAoB;;;;sBAChB,oBAAoB;;IAA7B,GAAG;;uBACK,mBAAmB;;IAA3B,EAAE;;2BACU,8BAA8B;;;;sBACnC,eAAe;;;;;;;;;;;;;;;;IAa5B,cAAc;AAEP,WAFP,cAAc,CAEN,MAAM,EAAE,OAAO,EAAE,KAAK,EAAC;0BAF/B,cAAc;;AAGhB,gCAAM,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9B,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,EAAC,eAAe,CAAC,CAAC;GACrD;;YALG,cAAc;;;;;;;;;AAAd,gBAAc,WAalB,aAAa,GAAA,yBAAG;AACd,oCAA8B,2BAAM,aAAa,KAAA,MAAE,CAAG;GACvD;;;;;;;;;AAfG,gBAAc,WAuBlB,WAAW,GAAA,uBAAG;AACZ,QAAI,KAAK,GAAG,EAAE,CAAC;;AAEf,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;;AAEvC,QAAI,CAAC,MAAM,EAAE;AACX,aAAO,KAAK,CAAC;KACd;;AAED,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,UAAI,KAAK,KAAQ,KAAK,IAAI,CAAC,KAAK,EAAE;AAChC,aAAK,CAAC,IAAI,CAAC,mCAAsB,IAAI,CAAC,OAAO,EAAE;AAC7C,iBAAS,KAAK;SACf,CAAC,CAAC,CAAC;OACL;KACF;;AAED,WAAO,KAAK,CAAC;GACd;;;;;;;;;AA1CG,gBAAc,WAkDlB,UAAU,GAAA,sBAAG;AACX,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,IAAI,EAAE,CAAC;AAC7C,QAAI,aAAa,YAAA,CAAC;AAClB,QAAI,KAAK,GAAG,IAAI,CAAC,KAAK,GAAG,EAAE,CAAC;;AAE5B,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,UAAI,KAAK,KAAQ,KAAK,IAAI,CAAC,KAAK,EAAE;AAChC,YAAI,CAAC,KAAK,CAAC,IAAI,EAAE;AACf,eAAK,KAAQ,GAAG,QAAQ,CAAC;;;AAGzB,8BAAO,UAAU,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AACzC,gBAAI,CAAC,UAAU,EAAE,CAAC;WACnB,CAAC,EAAE,GAAG,CAAC,CAAC;;SAEV,MAAM;AACL,uBAAa,GAAG,KAAK,CAAC;AACtB,gBAAM;SACP;OACF;KACF;;AAED,QAAI,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AACrB,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,GAAG,sBAAS,IAAI,CAAC,OAAO,CAAC,CAAC;AAC9B,UAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9C,iBAAS,EAAE,gBAAgB;AAC3B,iBAAS,EAAE,yBAAY,IAAI,CAAC,KAAK,CAAC;AAClC,gBAAQ,EAAE,CAAC,CAAC;OACb,CAAC,CAAC,CAAC;KACL;;AAED,QAAI,aAAa,EAAE;AACjB,UAAI,IAAI,GAAG,aAAa,KAAQ;UAAE,GAAG,YAAA,CAAC;;AAEtC,WAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,WAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;;AAEd,YAAI,EAAE,GAAG,uCAA0B,IAAI,CAAC,OAAO,EAAE;AAC/C,iBAAS,aAAa;AACtB,eAAO,GAAG;SACX,CAAC,CAAC;;AAEH,aAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;AAEf,YAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;OACnB;AACD,UAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;KACrB;;AAED,QAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACzB,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;;AAED,WAAO,IAAI,CAAC;GACb;;SA1GG,cAAc;;;AA8GpB,cAAc,CAAC,SAAS,CAAC,KAAK,GAAG,UAAU,CAAC;AAC5C,cAAc,CAAC,SAAS,CAAC,YAAY,GAAG,UAAU,CAAC;;AAEnD,uBAAU,iBAAiB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;qBAC/C,cAAc;;;;;;;;;;;;;;;;;yBCvIR,yBAAyB;;;;yBACxB,oBAAoB;;;;sBACtB,mBAAmB;;IAA3B,EAAE;;;;;;;;;;;IAUR,qBAAqB;AAEd,WAFP,qBAAqB,CAEb,MAAM,EAAE,OAAO,EAAC;0BAFxB,qBAAqB;;AAGvB,QAAI,KAAK,GAAG,OAAO,MAAS,CAAC;AAC7B,QAAI,GAAG,GAAG,OAAO,IAAO,CAAC;AACzB,QAAI,WAAW,GAAG,MAAM,CAAC,WAAW,EAAE,CAAC;;;AAGvC,WAAO,MAAS,GAAG,GAAG,CAAC,IAAI,CAAC;AAC5B,WAAO,SAAY,GAAI,GAAG,UAAa,IAAI,WAAW,IAAI,WAAW,GAAG,GAAG,QAAW,AAAC,CAAC;AACxF,yBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACnB,QAAI,CAAC,GAAG,GAAG,GAAG,CAAC;AACf,SAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;GACjE;;YAfG,qBAAqB;;;;;;;;AAArB,uBAAqB,WAsBzB,WAAW,GAAA,uBAAG;AACZ,wBAAM,WAAW,KAAA,MAAE,CAAC;AACpB,QAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAC7C,QAAI,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;GACjC;;;;;;;;AA1BG,uBAAqB,WAiCzB,MAAM,GAAA,kBAAG;AACP,QAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;AACnB,QAAI,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;;;AAG7C,QAAI,CAAC,QAAQ,CAAC,GAAG,UAAa,IAAI,WAAW,IAAI,WAAW,GAAG,GAAG,QAAW,CAAC,CAAC;GAChF;;SAvCG,qBAAqB;;;AA2C3B,uBAAU,iBAAiB,CAAC,uBAAuB,EAAE,qBAAqB,CAAC,CAAC;qBAC7D,qBAAqB;;;;;;;;;;;;;;;;;kCCxDN,2BAA2B;;;;yBACnC,oBAAoB;;;;;;;;;;;;;IAUpC,oBAAoB;AAEb,WAFP,oBAAoB,CAEZ,MAAM,EAAE,OAAO,EAAC;0BAFxB,oBAAoB;;;;AAKtB,WAAO,MAAS,GAAG;AACjB,YAAQ,OAAO,KAAQ;AACvB,cAAU,MAAM;AAChB,aAAS,OAAO,KAAQ,GAAG,MAAM;AACjC,eAAS,EAAE,KAAK;AAChB,YAAQ,UAAU;KACnB,CAAC;;AAEF,kCAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;GACrB;;YAfG,oBAAoB;;;;;;;;;AAApB,sBAAoB,WAuBxB,kBAAkB,GAAA,4BAAC,KAAK,EAAC;AACvB,QAAI,MAAM,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,UAAU,EAAE,CAAC;AACxC,QAAI,QAAQ,GAAG,IAAI,CAAC;;AAEpB,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC7C,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,UAAI,KAAK,KAAQ,KAAK,IAAI,CAAC,KAAK,KAAQ,IAAI,KAAK,KAAQ,KAAK,SAAS,EAAE;AACvE,gBAAQ,GAAG,KAAK,CAAC;AACjB,cAAM;OACP;KACF;;AAED,QAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;GACzB;;SApCG,oBAAoB;;;AAwC1B,uBAAU,iBAAiB,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;qBAC3D,oBAAoB;;;;;;;;;;;;;;;;;gCCpDP,wBAAwB;;;;yBAC9B,oBAAoB;;;;;;;;;;;;;;IAWpC,eAAe;AAER,WAFP,eAAe,CAEP,MAAM,EAAE,OAAO,EAAE,KAAK,EAAC;0BAF/B,eAAe;;AAGjB,gCAAM,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;AAC9B,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,YAAY,EAAC,gBAAgB,CAAC,CAAC;GACtD;;YALG,eAAe;;;;;;;;;AAAf,iBAAe,WAanB,aAAa,GAAA,yBAAG;AACd,qCAA+B,2BAAM,aAAa,KAAA,MAAE,CAAG;GACxD;;SAfG,eAAe;;;AAmBrB,eAAe,CAAC,SAAS,CAAC,KAAK,GAAG,WAAW,CAAC;AAC9C,eAAe,CAAC,SAAS,CAAC,YAAY,GAAG,WAAW,CAAC;;AAErD,uBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;2BCnCP,2BAA2B;;;;yBAC5B,oBAAoB;;;;sBACtB,mBAAmB;;IAA3B,EAAE;;iCACgB,2BAA2B;;;;oCACxB,+BAA+B;;;;;;;;;;;;;IAU1D,eAAe;AAER,WAFP,eAAe,CAEP,MAAM,EAAE,OAAO,EAAC;0BAFxB,eAAe;;AAGjB,2BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;;AAEvC,QAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,CAAC,EAAE;AAC1B,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;;AAED,QAAI,CAAC,MAAM,EAAE;AACX,aAAO;KACR;;AAED,QAAI,aAAa,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,UAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACtD,UAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;;AAEnD,QAAI,CAAC,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,YAAW;AACpC,YAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,aAAa,CAAC,CAAC;AACzD,YAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;KACvD,CAAC,CAAC;GACJ;;YAvBG,eAAe;;;;AAAf,iBAAe,WA0BnB,WAAW,GAAA,uBAAW;QAAV,KAAK,gCAAC,EAAE;;;AAElB,SAAK,CAAC,IAAI,CAAC,sCAAyB,IAAI,CAAC,OAAO,EAAE,EAAE,MAAQ,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;;AAE3E,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;;AAEvC,QAAI,CAAC,MAAM,EAAE;AACX,aAAO,KAAK,CAAC;KACd;;AAED,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;;AAGtB,UAAI,KAAK,KAAQ,KAAK,IAAI,CAAC,KAAK,EAAE;AAChC,aAAK,CAAC,IAAI,CAAC,mCAAsB,IAAI,CAAC,OAAO,EAAE;AAC7C,iBAAS,KAAK;SACf,CAAC,CAAC,CAAC;OACL;KACF;;AAED,WAAO,KAAK,CAAC;GACd;;SAhDG,eAAe;;;AAoDrB,uBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;yBCnET,yBAAyB;;;;yBACxB,oBAAoB;;;;sBACtB,mBAAmB;;IAA3B,EAAE;;sBACK,eAAe;;;;wBACb,iBAAiB;;;;;;;;;;;;;IAUhC,iBAAiB;AAEV,WAFP,iBAAiB,CAET,MAAM,EAAE,OAAO,EAAC;;;0BAFxB,iBAAiB;;AAGnB,QAAI,KAAK,GAAG,OAAO,MAAS,CAAC;AAC7B,QAAI,MAAM,GAAG,MAAM,CAAC,UAAU,EAAE,CAAC;;;AAGjC,WAAO,MAAS,GAAG,KAAK,MAAS,IAAI,KAAK,SAAY,IAAI,SAAS,CAAC;AACpE,WAAO,SAAY,GAAG,KAAK,CAAC,SAAS,CAAC,IAAI,KAAK,KAAQ,KAAK,SAAS,CAAC;AACtE,yBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,KAAK,GAAG,KAAK,CAAC;;AAEnB,QAAI,MAAM,EAAE;;AACV,YAAI,aAAa,GAAG,EAAE,CAAC,IAAI,QAAO,MAAK,kBAAkB,CAAC,CAAC;;AAE3D,cAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;AACjD,cAAK,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5B,gBAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,aAAa,CAAC,CAAC;SACrD,CAAC,CAAC;;KACJ;;;;;;;;AAQD,QAAI,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;;AAC3C,YAAI,KAAK,YAAA,CAAC;;AAEV,cAAK,EAAE,CAAC,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,YAAW;AACnC,cAAI,OAAO,oBAAO,KAAK,KAAK,QAAQ,EAAE;;AAEpC,gBAAI;AACF,mBAAK,GAAG,IAAI,oBAAO,KAAK,CAAC,QAAQ,CAAC,CAAC;aACpC,CAAC,OAAM,GAAG,EAAC,EAAE;WACf;;AAED,cAAI,CAAC,KAAK,EAAE;AACV,iBAAK,GAAG,sBAAS,WAAW,CAAC,OAAO,CAAC,CAAC;AACtC,iBAAK,CAAC,SAAS,CAAC,QAAQ,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;WACvC;;AAED,gBAAM,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;SAC7B,CAAC,CAAC;;KACJ;GACF;;YA/CG,iBAAiB;;;;;;;;AAAjB,mBAAiB,WAsDrB,WAAW,GAAA,qBAAC,KAAK,EAAE;AACjB,QAAI,IAAI,GAAG,IAAI,CAAC,KAAK,KAAQ,CAAC;AAC9B,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;;AAEvC,wBAAM,WAAW,KAAA,OAAC,KAAK,CAAC,CAAC;;AAEzB,QAAI,CAAC,MAAM;AAAE,aAAO;KAAA,AAEpB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;AAEtB,UAAI,KAAK,KAAQ,KAAK,IAAI,EAAE;AAC1B,iBAAS;OACV;;AAED,UAAI,KAAK,KAAK,IAAI,CAAC,KAAK,EAAE;AACxB,aAAK,KAAQ,GAAG,SAAS,CAAC;OAC3B,MAAM;AACL,aAAK,KAAQ,GAAG,UAAU,CAAC;OAC5B;KACF;GACF;;;;;;;;AA3EG,mBAAiB,WAkFrB,kBAAkB,GAAA,4BAAC,KAAK,EAAC;AACvB,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,KAAQ,KAAK,SAAS,CAAC,CAAC;GACjD;;SApFG,iBAAiB;;;AAwFvB,uBAAU,iBAAiB,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;qBACrD,iBAAiB;;;;;;;;;;;;;;;;;0BCvGV,oBAAoB;;;;sBACrB,oBAAoB;;IAA7B,GAAG;;0BACQ,4BAA4B;;;;;;;;;;;;;IAU7C,kBAAkB;AAEX,WAFP,kBAAkB,CAEV,MAAM,EAAE,OAAO,EAAC;0BAFxB,kBAAkB;;AAGpB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;GACnD;;YANG,kBAAkB;;;;;;;;;AAAlB,oBAAkB,WActB,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,eAAS,EAAE,+CAA+C;KAC3D,CAAC,CAAC;;AAEH,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AACpC,eAAS,EAAE,0BAA0B;AACrC,eAAS,EAAE,qDAAqD,GAAG,MAAM;AACzE,iBAAW,EAAE,KAAK;AAAA,KACnB,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,WAAO,EAAE,CAAC;GACX;;;;;;;;AA3BG,oBAAkB,WAkCtB,aAAa,GAAA,yBAAG;;AAEd,QAAI,IAAI,GAAG,AAAC,IAAI,CAAC,OAAO,CAAC,SAAS,EAAE,GAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;AACzG,QAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAClD,QAAI,aAAa,GAAG,wBAAW,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC9D,QAAI,CAAC,UAAU,CAAC,SAAS,uCAAqC,aAAa,gBAAW,aAAa,AAAE,CAAC;GACvG;;SAxCG,kBAAkB;;;AA4CxB,uBAAU,iBAAiB,CAAC,oBAAoB,EAAE,kBAAkB,CAAC,CAAC;qBACvD,kBAAkB;;;;;;;;;;;;;;;;;0BCzDX,oBAAoB;;;;sBACrB,oBAAoB;;IAA7B,GAAG;;0BACQ,4BAA4B;;;;;;;;;;;;;IAU7C,eAAe;AAER,WAFP,eAAe,CAEP,MAAM,EAAE,OAAO,EAAC;0BAFxB,eAAe;;AAGjB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;;;;;;AAOvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAClD,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,gBAAgB,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;GACvD;;YAZG,eAAe;;;;;;;;;AAAf,iBAAe,WAoBnB,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,eAAS,EAAE,2CAA2C;KACvD,CAAC,CAAC;;AAEH,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AACpC,eAAS,EAAE,sBAAsB;AACjC,eAAS,sCAAoC,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,iBAAc;AACzF,iBAAW,EAAE,KAAK;AAAA,KACnB,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,WAAO,EAAE,CAAC;GACX;;;;;;;;AAjCG,iBAAe,WAwCnB,aAAa,GAAA,yBAAG;AACd,QAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;AACvC,QAAI,QAAQ,EAAE;AACZ,UAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;AACnD,UAAI,aAAa,GAAG,wBAAW,QAAQ,CAAC,CAAC;AACzC,UAAI,CAAC,UAAU,CAAC,SAAS,uCAAqC,aAAa,gBAAW,aAAa,AAAE,CAAC;KACvG;GACF;;SA/CG,eAAe;;;AAmDrB,uBAAU,iBAAiB,CAAC,iBAAiB,EAAE,eAAe,CAAC,CAAC;qBACjD,eAAe;;;;;;;;;;;;;;;;;0BChER,oBAAoB;;;;sBACrB,oBAAoB;;IAA7B,GAAG;;0BACQ,4BAA4B;;;;;;;;;;;;;IAU7C,oBAAoB;AAEb,WAFP,oBAAoB,CAEZ,MAAM,EAAE,OAAO,EAAC;0BAFxB,oBAAoB;;AAGtB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;GACnD;;YANG,oBAAoB;;;;;;;;;AAApB,sBAAoB,WAcxB,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,eAAS,EAAE,iDAAiD;KAC7D,CAAC,CAAC;;AAEH,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AACpC,eAAS,EAAE,4BAA4B;AACvC,eAAS,sCAAoC,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,kBAAe;AAC3F,iBAAW,EAAE,KAAK;AAAA,KACnB,CAAC,CAAC;;AAEH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChC,WAAO,EAAE,CAAC;GACX;;;;;;;;AA3BG,sBAAoB,WAkCxB,aAAa,GAAA,yBAAG;AACd,QAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,EAAE;AAC3B,UAAM,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;AACtD,UAAM,aAAa,GAAG,wBAAW,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC,CAAC;AAC/D,UAAI,CAAC,UAAU,CAAC,SAAS,uCAAqC,aAAa,iBAAY,aAAa,AAAE,CAAC;KACxG;;;;;AAAA,GAKF;;SA5CG,oBAAoB;;;AAgD1B,uBAAU,iBAAiB,CAAC,sBAAsB,EAAE,oBAAoB,CAAC,CAAC;qBAC3D,oBAAoB;;;;;;;;;;;;;;;;;0BC7Db,oBAAoB;;;;;;;;;;;;;;IAWpC,WAAW;WAAX,WAAW;0BAAX,WAAW;;;;;;;YAAX,WAAW;;;;;;;;;AAAX,aAAW,WAQf,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,mCAAmC;AAC9C,eAAS,EAAE,2BAA2B;KACvC,CAAC,CAAC;GACJ;;SAbG,WAAW;;;AAiBjB,uBAAU,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;qBACzC,WAAW;;;;;;;;;;;;;;;;;uBC7BP,wBAAwB;;;;yBACrB,oBAAoB;;;;sBACtB,mBAAmB;;IAA3B,EAAE;;;;2BAGU,mBAAmB;;;;;;;;;;;;;IAUrC,SAAS;AAEF,WAFP,SAAS,CAED,MAAM,EAAE,OAAO,EAAC;0BAFxB,SAAS;;AAGX,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC3D,UAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC,CAAC;GACxD;;YANG,SAAS;;;;;;;;;AAAT,WAAS,WAcb,QAAQ,GAAA,oBAAG;AACT,WAAO,kBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,gBAAgB;AAC3B,kBAAY,EAAE,cAAc;KAC7B,CAAC,CAAC;GACJ;;;;;;;;AAnBG,WAAS,WA0Bb,eAAe,GAAA,yBAAC,KAAK,EAAE;AACrB,QAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;AACxB,UAAI,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;KAC3B;;AAED,QAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC,CAAC;GACpD;;;;;;;;;AAhCG,WAAS,WAwCb,UAAU,GAAA,sBAAG;AACX,QAAI,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE;AACxB,aAAO,CAAC,CAAC;KACV,MAAM;AACL,aAAO,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;KAC9B;GACF;;;;;;;;AA9CG,WAAS,WAqDb,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;GAClD;;;;;;;;AAvDG,WAAS,WA8Db,QAAQ,GAAA,oBAAG;AACT,QAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;GAClD;;;;;;;;AAhEG,WAAS,WAuEb,oBAAoB,GAAA,gCAAG;;AAErB,QAAI,MAAM,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,CAAC,CAAC,CAAC;AACtD,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC,CAAC;AAC/C,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,gBAAgB,EAAE,MAAM,GAAG,GAAG,CAAC,CAAC;GACvD;;SA5EG,SAAS;;;AAgFf,SAAS,CAAC,SAAS,CAAC,QAAQ,GAAG;AAC7B,UAAQ,EAAE;AACR,iBAAe,EAAE;GAClB;AACD,WAAW,aAAa;CACzB,CAAC;;AAEF,SAAS,CAAC,SAAS,CAAC,WAAW,GAAG,cAAc,CAAC;;AAEjD,uBAAU,iBAAiB,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC;qBACrC,SAAS;;;;;;;;;;;;;;;;;0BCzGF,oBAAoB;;;;;;yBAGpB,iBAAiB;;;;;;;;;;;;;IAUjC,aAAa;AAEN,WAFP,aAAa,CAEL,MAAM,EAAE,OAAO,EAAC;0BAFxB,aAAa;;AAGf,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;;AAGvB,QAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,sBAAyB,KAAK,KAAK,EAAE;AACjE,UAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KAC7B;AACD,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAU;AACrC,UAAI,MAAM,CAAC,IAAI,sBAAyB,KAAK,KAAK,EAAE;AAClD,YAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;OAC7B,MAAM;AACL,YAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;OAChC;KACF,CAAC,CAAC;GACJ;;YAhBG,aAAa;;;;;;;;;AAAb,eAAa,WAwBjB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,gCAAgC;KAC5C,CAAC,CAAC;GACJ;;SA5BG,aAAa;;;AAgCnB,aAAa,CAAC,SAAS,CAAC,QAAQ,GAAG;AACjC,UAAQ,EAAE;AACR,eAAa,EAAE;GAChB;CACF,CAAC;;AAEF,uBAAU,iBAAiB,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC;qBAC7C,aAAa;;;;;;;;;;;;;;;;;0BCpDN,oBAAoB;;;;;;;;;;;;;IAUpC,WAAW;WAAX,WAAW;0BAAX,WAAW;;;;;;;YAAX,WAAW;;;;;;;;;AAAX,aAAW,WAQf,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,kBAAkB;AAC7B,eAAS,EAAE,wCAAwC;KACpD,CAAC,CAAC;GACJ;;SAbG,WAAW;;;AAiBjB,uBAAU,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;qBACzC,WAAW;;;;;;;;;;;;;;;;;sBC5BP,cAAc;;;;yBACX,iBAAiB;;;;oBACtB,iBAAiB;;;;2BACX,wBAAwB;;;;0BACxB,kBAAkB;;;;yBACnB,gCAAgC;;;;;;;;;;;;;IAUhD,gBAAgB;AAET,WAFP,gBAAgB,CAER,MAAM,EAAa;QAAX,OAAO,gCAAC,EAAE;;0BAF1B,gBAAgB;;;AAIlB,QAAI,OAAO,CAAC,QAAQ,KAAK,SAAS,EAAE;;;AAGlC,UAAI,OAAO,CAAC,MAAM,EAAE;AAClB,eAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;OAC1B,MAAM;AACL,eAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;OACzB;KACF;;;;AAID,WAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,EAAE,CAAC;AAC5C,WAAO,CAAC,SAAS,CAAC,QAAQ,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;;AAEhD,2BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;;AAGvB,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,cAAc,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;AACnD,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;;;AAGhD,QAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,sBAAyB,KAAK,KAAK,EAAE;AACjE,UAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;KAC7B;AACD,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,EAAE,YAAU;AACrC,UAAI,MAAM,CAAC,IAAI,sBAAyB,KAAK,KAAK,EAAE;AAClD,YAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;OAC7B,MAAM;AACL,YAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;OAChC;KACF,CAAC,CAAC;AACH,QAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;GAClC;;YArCG,gBAAgB;;;;;;;;;AAAhB,kBAAgB,WA6CpB,aAAa,GAAA,yBAAG;AACd,QAAI,gBAAgB,GAAG,EAAE,CAAC;AAC1B,QAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC5B,sBAAgB,GAAG,iCAAiC,CAAC;KACtD,MAAM;AACL,sBAAgB,GAAG,mCAAmC,CAAC;KACxD;;AAED,uCAAiC,sBAAM,aAAa,KAAA,MAAE,SAAI,gBAAgB,CAAG;GAC9E;;;;;;;;;AAtDG,kBAAgB,WA8DpB,UAAU,GAAA,sBAAG;AACX,QAAI,IAAI,GAAG,sBAAS,IAAI,CAAC,OAAO,EAAE;AAChC,mBAAa,EAAE,KAAK;KACrB,CAAC,CAAC;;AAEH,QAAI,EAAE,GAAG,2BAAc,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;;AAE9D,MAAE,CAAC,EAAE,CAAC,OAAO,EAAE,YAAW;AACxB,UAAI,CAAC,WAAW,EAAE,CAAC;KACpB,CAAC,CAAC;AACH,MAAE,CAAC,EAAE,CAAC,MAAM,EAAE,YAAW;AACvB,UAAI,CAAC,aAAa,EAAE,CAAC;KACtB,CAAC,CAAC;AACH,QAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;AAClB,WAAO,IAAI,CAAC;GACb;;;;;;;;AA7EG,kBAAgB,WAoFpB,WAAW,GAAA,uBAAG;AACZ,4BAAW,SAAS,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC5C,0BAAM,WAAW,KAAA,MAAE,CAAC;GACrB;;SAvFG,gBAAgB;;;AA2FtB,gBAAgB,CAAC,SAAS,CAAC,YAAY,GAAG,wBAAW,SAAS,CAAC,MAAM,CAAC;AACtE,gBAAgB,CAAC,SAAS,CAAC,YAAY,GAAG,MAAM,CAAC;;AAEjD,uBAAU,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;qBACnD,gBAAgB;;;;;;;;;;;;;;;;;0BC9GT,aAAa;;;;sBACb,gBAAgB;;IAAzB,GAAG;;;;;;;;;;;IAUV,YAAY;AAEL,WAFP,YAAY,CAEJ,MAAM,EAAE,OAAO,EAAE;0BAFzB,YAAY;;AAGd,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,MAAM,EAAE,CAAC;AACd,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;GACvC;;YAPG,YAAY;;;;;;;;;AAAZ,cAAY,WAehB,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,eAAS,EAAE,mBAAmB;KAC/B,CAAC,CAAC;;AAEH,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACtC,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;AAEhC,WAAO,EAAE,CAAC;GACX;;;;;;;;AAxBG,cAAY,WA+BhB,MAAM,GAAA,kBAAG;AACP,QAAI,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,EAAE;AACzB,UAAI,CAAC,UAAU,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,EAAE,CAAC,OAAO,CAAC,CAAC;KAC1E;GACF;;SAnCG,YAAY;;;AAsClB,uBAAU,iBAAiB,CAAC,cAAc,EAAE,YAAY,CAAC,CAAC;qBAC3C,YAAY;;;;;;;;;;;;;sBClDH,mBAAmB;;IAA/B,MAAM;;AAElB,IAAI,WAAW,GAAG,uBAAW,EAAE,CAAC;;AAEhC,WAAW,CAAC,SAAS,CAAC,cAAc,GAAG,EAAE,CAAC;;AAE1C,WAAW,CAAC,SAAS,CAAC,EAAE,GAAG,UAAS,IAAI,EAAE,EAAE,EAAE;;;AAG5C,MAAI,GAAG,GAAG,IAAI,CAAC,gBAAgB,CAAC;AAChC,MAAI,CAAC,gBAAgB,GAAG,QAAQ,CAAC,SAAS,CAAC;AAC3C,QAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;AAC1B,MAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;CAC7B,CAAC;AACF,WAAW,CAAC,SAAS,CAAC,gBAAgB,GAAG,WAAW,CAAC,SAAS,CAAC,EAAE,CAAC;;AAElE,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,IAAI,EAAE,EAAE,EAAE;AAC7C,QAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;CAC5B,CAAC;AACF,WAAW,CAAC,SAAS,CAAC,mBAAmB,GAAG,WAAW,CAAC,SAAS,CAAC,GAAG,CAAC;;AAEtE,WAAW,CAAC,SAAS,CAAC,GAAG,GAAG,UAAS,IAAI,EAAE,EAAE,EAAE;AAC7C,QAAM,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;CAC5B,CAAC;;AAEF,WAAW,CAAC,SAAS,CAAC,OAAO,GAAG,UAAS,KAAK,EAAE;AAC9C,MAAI,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC;;AAE/B,MAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,SAAK,GAAG;AACN,UAAI,EAAE,IAAI;KACX,CAAC;GACH;AACD,OAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;;AAE/B,MAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE;AAClD,QAAI,CAAC,IAAI,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;GAC1B;;AAED,QAAM,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;CAC7B,CAAC;;AAEF,WAAW,CAAC,SAAS,CAAC,aAAa,GAAG,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC;;qBAErD,WAAW;;;;;;;;;;mBC/CV,aAAa;;;;;;;;;;;AAS7B,IAAM,SAAS,GAAG,mBAAU,QAAQ,EAAE,UAAU,EAAE;AAChD,MAAI,OAAO,UAAU,KAAK,UAAU,IAAI,UAAU,KAAK,IAAI,EAAE;AAC3D,UAAM,IAAI,SAAS,CAAC,0DAA0D,GAAG,OAAO,UAAU,CAAC,CAAC;GACrG;;AAED,UAAQ,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,UAAU,CAAC,SAAS,EAAE;AACrE,eAAW,EAAE;AACX,WAAK,EAAE,QAAQ;AACf,gBAAU,EAAE,KAAK;AACjB,cAAQ,EAAE,IAAI;AACd,kBAAY,EAAE,IAAI;KACnB;GACF,CAAC,CAAC;;AAEH,MAAI,UAAU,EAAE;;AAEd,YAAQ,CAAC,MAAM,GAAG,UAAU,CAAC;GAC9B;CACF,CAAC;;;;;;;;;;;;;;;;;;;AAmBF,IAAM,SAAS,GAAG,mBAAS,UAAU,EAAsB;MAApB,eAAe,gCAAC,EAAE;;AACvD,MAAI,QAAQ,GAAG,oBAAW;AACxB,cAAU,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;GACnC,CAAC;AACF,MAAI,OAAO,GAAG,EAAE,CAAC;;AAEjB,MAAI,OAAO,eAAe,KAAK,QAAQ,EAAE;AACvC,QAAI,OAAO,eAAe,CAAC,IAAI,KAAK,UAAU,EAAE;AAC9C,uBAAI,IAAI,CAAC,+EAA+E,CAAC,CAAC;AAC1F,qBAAe,CAAC,WAAW,GAAG,eAAe,CAAC,IAAI,CAAC;KACpD;AACD,QAAI,eAAe,CAAC,WAAW,KAAK,MAAM,CAAC,SAAS,CAAC,WAAW,EAAE;AAChE,cAAQ,GAAG,eAAe,CAAC,WAAW,CAAC;KACxC;AACD,WAAO,GAAG,eAAe,CAAC;GAC3B,MAAM,IAAI,OAAO,eAAe,KAAK,UAAU,EAAE;AAChD,YAAQ,GAAG,eAAe,CAAC;GAC5B;;AAED,WAAS,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC;;;AAGhC,OAAK,IAAI,IAAI,IAAI,OAAO,EAAE;AACxB,QAAI,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE;AAChC,cAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;KAC1C;GACF;;AAED,SAAO,QAAQ,CAAC;CACjB,CAAC;;qBAEa,SAAS;;;;;;;;;;;;;wBC1EH,iBAAiB;;;;;;;;;AAOtC,IAAI,aAAa,GAAG,EAAE,CAAC;;;;AAIvB,IAAM,MAAM,GAAG;;AAEb,CACE,mBAAmB,EACnB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,CAClB;;AAED,CACE,yBAAyB,EACzB,sBAAsB,EACtB,yBAAyB,EACzB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,CACxB;;AAED,CACE,yBAAyB,EACzB,wBAAwB,EACxB,gCAAgC,EAChC,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,CACxB;;AAED,CACE,sBAAsB,EACtB,qBAAqB,EACrB,sBAAsB,EACtB,sBAAsB,EACtB,qBAAqB,EACrB,oBAAoB,CACrB;;AAED,CACE,qBAAqB,EACrB,kBAAkB,EAClB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,CACpB,CACF,CAAC;;AAEF,IAAI,OAAO,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACxB,IAAI,UAAU,YAAA,CAAC;;;AAGf,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;;AAEtC,MAAI,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,yBAAY,EAAE;AAC5B,cAAU,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACvB,UAAM;GACP;CACF;;;AAGD,IAAI,UAAU,EAAE;AACd,OAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,iBAAa,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;GAC3C;CACF;;qBAEc,aAAa;;;;;;;;;;;;;;;;;0BC9EN,aAAa;;;;;;;;;;;;;IAU7B,cAAc;WAAd,cAAc;0BAAd,cAAc;;;;;;;YAAd,cAAc;;;;;;;;AAAd,gBAAc,WAOlB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,qBAAqB;KACjC,CAAC,CAAC;GACJ;;SAXG,cAAc;;;AAcpB,uBAAU,iBAAiB,CAAC,gBAAgB,EAAE,cAAc,CAAC,CAAC;qBAC/C,cAAc;;;;;;;;;;;;;sBCzBV,eAAe;;;;;;;;;AAOlC,IAAI,UAAU;;;;;;;;;;GAAG,UAAS,IAAI,EAAC;AAC7B,MAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;AAC5B,QAAI,CAAC,IAAI,GAAG,IAAI,CAAC;GAClB,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;;AAEnC,QAAI,CAAC,OAAO,GAAG,IAAI,CAAC;GACrB,MAAM,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE;;AACnC,wBAAO,IAAI,EAAE,IAAI,CAAC,CAAC;GACpB;;AAED,MAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,QAAI,CAAC,OAAO,GAAG,UAAU,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;GAC5D;CACF,CAAA,CAAC;;;;;;;;AAQF,UAAU,CAAC,SAAS,CAAC,IAAI,GAAG,CAAC,CAAC;;;;;;;;;AAS9B,UAAU,CAAC,SAAS,CAAC,OAAO,GAAG,EAAE,CAAC;;;;;;;;;;;;AAYlC,UAAU,CAAC,SAAS,CAAC,MAAM,GAAG,IAAI,CAAC;;AAEnC,UAAU,CAAC,UAAU,GAAG,CACtB,kBAAkB;AAClB,mBAAmB;AACnB,mBAAmB;AACnB,kBAAkB;AAClB,6BAA6B;AAC7B,qBAAqB;CACtB,CAAC;;AAEF,UAAU,CAAC,eAAe,GAAG;AAC3B,GAAC,EAAE,gCAAgC;AACnC,GAAC,EAAE,6DAA6D;AAChE,GAAC,EAAE,6HAA6H;AAChI,GAAC,EAAE,oHAAoH;AACvH,GAAC,EAAE,mEAAmE;CACvE,CAAC;;;;AAIF,KAAK,IAAI,MAAM,GAAG,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,EAAE;AACpE,YAAU,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;;AAEnD,YAAU,CAAC,SAAS,CAAC,UAAU,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC;CAC9D;;qBAEc,UAAU;;;;;;;;;;;;;;;;;uBC5EN,cAAc;;;;yBACX,iBAAiB;;;;oBACtB,WAAW;;;;sBACP,iBAAiB;;IAA1B,GAAG;;uBACK,gBAAgB;;IAAxB,EAAE;;2BACU,2BAA2B;;;;;;;;;;;;;IAU7C,UAAU;AAEH,WAFP,UAAU,CAEF,MAAM,EAAa;QAAX,OAAO,gCAAC,EAAE;;0BAF1B,UAAU;;AAGZ,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,MAAM,EAAE,CAAC;;AAEd,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AACxC,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAE,IAAI,CAAC,CAAC;AAC7C,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;GACzC;;YAVG,UAAU;;;;;;;;AAAV,YAAU,WAiBd,MAAM,GAAA,kBAAG;AACP,QAAI,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;;AAE7B,QAAI,IAAI,CAAC,IAAI,EAAE;AACb,UAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;KAC7B;;AAED,QAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACjB,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;;;;;AAQpB,QAAI,CAAC,cAAc,GAAG,KAAK,CAAC;;AAE5B,QAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,KAAK,CAAC,EAAE;AACzC,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,MAAM,IAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9C,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;;;;;;;;AAxCG,YAAU,WAgDd,UAAU,GAAA,sBAAG;AACX,QAAI,IAAI,GAAG,sBAAS,IAAI,CAAC,OAAO,CAAC,CAAC;;;AAGlC,QAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;AACvB,UAAI,CAAC,SAAS,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;AAC9C,iBAAS,EAAE,gBAAgB;AAC3B,iBAAS,EAAE,yBAAY,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;AAC3C,gBAAQ,EAAE,CAAC,CAAC;OACb,CAAC,CAAC,CAAC;KACL;;AAED,QAAI,CAAC,KAAK,GAAG,IAAI,YAAe,EAAE,CAAC;;AAEnC,QAAI,IAAI,CAAC,KAAK,EAAE;;AAEd,WAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,YAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;OAC7B;KACF;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;AAtEG,YAAU,WA6Ed,WAAW,GAAA,uBAAE,EAAE;;;;;;;;;AA7EX,YAAU,WAqFd,QAAQ,GAAA,oBAAG;AACT,WAAO,kBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,IAAI,CAAC,aAAa,EAAE;KAChC,CAAC,CAAC;GACJ;;;;;;;;;AAzFG,YAAU,WAiGd,aAAa,GAAA,yBAAG;AACd,QAAI,eAAe,GAAG,iBAAiB,CAAC;;;AAGxC,QAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,IAAI,EAAE;AACjC,qBAAe,IAAI,SAAS,CAAC;KAC9B,MAAM;AACL,qBAAe,IAAI,QAAQ,CAAC;KAC7B;;AAED,gCAA0B,eAAe,SAAI,kBAAM,aAAa,KAAA,MAAE,CAAG;GACtE;;;;;;;;;;;;;;AA5GG,YAAU,WAyHd,WAAW,GAAA,uBAAG,EAAE;;;;;;;;;AAzHZ,YAAU,WAiId,UAAU,GAAA,sBAAG,EAAE;;;;;;;;;;;;AAjIX,YAAU,WA4Id,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,GAAG,CAAC,UAAU,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAU;AAC3C,UAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC1B,UAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;KACjB,CAAC,CAAC,CAAC;AACJ,QAAI,IAAI,CAAC,cAAc,EAAC;AACtB,UAAI,CAAC,aAAa,EAAE,CAAC;KACtB,MAAM;AACL,UAAI,CAAC,WAAW,EAAE,CAAC;KACpB;GACF;;;;;;;;;AAtJG,YAAU,WA8Jd,cAAc,GAAA,wBAAC,KAAK,EAAE;;;AAGpB,QAAI,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;AAC5C,UAAI,IAAI,CAAC,cAAc,EAAC;AACtB,YAAI,CAAC,aAAa,EAAE,CAAC;OACtB,MAAM;AACL,YAAI,CAAC,WAAW,EAAE,CAAC;OACpB;AACD,WAAK,CAAC,cAAc,EAAE,CAAC;;KAExB,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAC;AAC5B,UAAI,IAAI,CAAC,cAAc,EAAC;AACtB,YAAI,CAAC,aAAa,EAAE,CAAC;OACtB;AACD,WAAK,CAAC,cAAc,EAAE,CAAC;KACxB;GACF;;;;;;;;AA/KG,YAAU,WAsLd,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,cAAc,GAAG,IAAI,CAAC;AAC3B,QAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;AACxB,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,cAAc,EAAE,IAAI,CAAC,CAAC;AAC5C,QAAI,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE;AACvC,UAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC;KAC5B;GACF;;;;;;;;AA7LG,YAAU,WAoMd,aAAa,GAAA,yBAAG;AACd,QAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAI,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC;AAC1B,QAAI,CAAC,GAAG,CAAC,YAAY,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC;GAC9C;;SAxMG,UAAU;;;AA2MhB,uBAAU,iBAAiB,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;qBACvC,UAAU;;;;;;;;;;;;;;;;;uBC3NN,cAAc;;;;yBACX,iBAAiB;;;;sBACpB,eAAe;;;;;;;;;;;;;IAU5B,QAAQ;AAED,WAFP,QAAQ,CAEA,MAAM,EAAE,OAAO,EAAE;0BAFzB,QAAQ;;AAGV,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,QAAQ,CAAC,OAAO,SAAY,CAAC,CAAC;GACpC;;YALG,QAAQ;;;;;;;;;;;AAAR,UAAQ,WAeZ,QAAQ,GAAA,kBAAC,IAAI,EAAE,KAAK,EAAE;AACpB,WAAO,kBAAM,QAAQ,KAAA,OAAC,IAAI,EAAE,oBAAO;AACjC,eAAS,EAAE,eAAe;AAC1B,eAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,MAAS,CAAC;KACjD,EAAE,KAAK,CAAC,CAAC,CAAC;GACZ;;;;;;;;AApBG,UAAQ,WA2BZ,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;GACrB;;;;;;;;;AA7BG,UAAQ,WAqCZ,QAAQ;;;;;;;;;;KAAA,UAAC,QAAQ,EAAE;AACjB,QAAI,QAAQ,EAAE;AACZ,UAAI,CAAC,QAAQ,CAAC,cAAc,CAAC,CAAC;AAC9B,UAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAC,IAAI,CAAC,CAAC;KAC7C,MAAM;AACL,UAAI,CAAC,WAAW,CAAC,cAAc,CAAC,CAAC;AACjC,UAAI,CAAC,GAAG,CAAC,YAAY,CAAC,eAAe,EAAC,KAAK,CAAC,CAAC;KAC9C;GACF;;SA7CG,QAAQ;;;AAiDd,uBAAU,iBAAiB,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;qBACnC,QAAQ;;;;;;;;;;;;;;;;;0BC9DD,iBAAiB;;;;sBAClB,iBAAiB;;IAA1B,GAAG;;uBACK,gBAAgB;;IAAxB,EAAE;;uBACU,oBAAoB;;IAAhC,MAAM;;;;;;;;;;IASZ,IAAI;WAAJ,IAAI;0BAAJ,IAAI;;;;;;;YAAJ,IAAI;;;;;;;;;AAAJ,MAAI,WAQR,OAAO,GAAA,iBAAC,SAAS,EAAE;AACjB,QAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AACzB,aAAS,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAU;AAC5C,UAAI,CAAC,aAAa,EAAE,CAAC;KACtB,CAAC,CAAC,CAAC;GACL;;;;;;;;;AAbG,MAAI,WAqBR,QAAQ,GAAA,oBAAG;AACT,QAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,IAAI,IAAI,CAAC;AACxD,QAAI,CAAC,UAAU,GAAG,GAAG,CAAC,QAAQ,CAAC,aAAa,EAAE;AAC5C,eAAS,EAAE,kBAAkB;KAC9B,CAAC,CAAC;AACH,QAAI,EAAE,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC7B,YAAM,EAAE,IAAI,CAAC,UAAU;AACvB,eAAS,EAAE,UAAU;KACtB,CAAC,CAAC;AACH,MAAE,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;;;AAIhC,UAAM,CAAC,EAAE,CAAC,EAAE,EAAE,OAAO,EAAE,UAAS,KAAK,EAAC;AACpC,WAAK,CAAC,cAAc,EAAE,CAAC;AACvB,WAAK,CAAC,wBAAwB,EAAE,CAAC;KAClC,CAAC,CAAC;;AAEH,WAAO,EAAE,CAAC;GACX;;SAxCG,IAAI;;;AA2CV,uBAAU,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;qBAC3B,IAAI;;;;;;;;;;;;;;;;;;0BCvDG,gBAAgB;;;;wBAEjB,iBAAiB;;;;sBACnB,eAAe;;;;sBACV,mBAAmB;;IAA/B,MAAM;;uBACG,gBAAgB;;IAAzB,GAAG;;uBACK,eAAe;;IAAvB,EAAE;;uBACQ,iBAAiB;;IAA3B,IAAI;;uBACS,oBAAoB;;IAAjC,OAAO;;mBACH,gBAAgB;;;;2BACR,0BAA0B;;;;+BAClB,wBAAwB;;gCACxB,mBAAmB;;uBACvB,uBAAuB;;IAAvC,UAAU;;6BACI,qBAAqB;;;;0BACxB,kBAAkB;;;;+BACd,uBAAuB;;;;sBAC/B,eAAe;;;;4BACT,0BAA0B;;;;kCACpB,uCAAuC;;;;;;2BAG9C,kBAAkB;;;;2BAClB,mBAAmB;;;;gCACd,gCAAgC;;;;8BAClC,sBAAsB;;;;6BACvB,sBAAsB;;;;0BACzB,8BAA8B;;;;4BAC5B,oBAAoB;;;;iCACf,iCAAiC;;;;;;qBAG7C,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;IAqB7B,MAAM;;;;;;;;;;;;AAWC,WAXP,MAAM,CAWE,GAAG,EAAE,OAAO,EAAE,KAAK,EAAC;;;0BAX5B,MAAM;;;AAaR,OAAG,CAAC,EAAE,GAAG,GAAG,CAAC,EAAE,mBAAiB,IAAI,CAAC,OAAO,EAAE,AAAE,CAAC;;;;;;;AAOjD,WAAO,GAAG,oBAAO,MAAM,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,OAAO,CAAC,CAAC;;;;AAItD,WAAO,CAAC,YAAY,GAAG,KAAK,CAAC;;;AAG7B,WAAO,CAAC,QAAQ,GAAG,KAAK,CAAC;;;;AAIzB,WAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;;;AAGpC,0BAAM,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;;;;AAI5B,QAAI,CAAC,IAAI,CAAC,QAAQ,IACd,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,IACxB,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,MAAM,EAAE;AACnC,YAAM,IAAI,KAAK,CAAC,4CAA4C,GAC5C,+CAA+C,GAC/C,kCAAkC,CAAC,CAAC;KACrD;;AAED,QAAI,CAAC,GAAG,GAAG,GAAG,CAAC;;;AAGf,QAAI,CAAC,aAAa,GAAG,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;;;AAGrD,QAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;;;AAGtC,QAAI,OAAO,CAAC,SAAS,EAAE;;;AAErB,YAAI,gBAAgB,GAAG,EAAE,CAAC;;AAE1B,cAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI,EAAE;AACnE,0BAAgB,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SAChE,CAAC,CAAC;AACH,cAAK,UAAU,GAAG,gBAAgB,CAAC;;KACpC,MAAM;AACL,UAAI,CAAC,UAAU,GAAG,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,CAAC;KACvD;;;AAGD,QAAI,CAAC,MAAM,GAAG,EAAE,CAAC;;;AAGjB,QAAI,CAAC,OAAO,GAAG,OAAO,CAAC,MAAM,IAAI,EAAE,CAAC;;;AAGpC,QAAI,CAAC,SAAS,GAAG,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC;;;;;AAKpC,OAAG,CAAC,QAAQ,GAAG,KAAK,CAAC;;;;;;;;AAQrB,QAAI,CAAC,UAAU,GAAG,KAAK,CAAC;;AAExB,QAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;;;;;;AAM3B,QAAI,iBAAiB,GAAG,0BAAa,IAAI,CAAC,QAAQ,CAAC,CAAC;;;AAGpD,QAAI,OAAO,CAAC,OAAO,EAAE;;AACnB,YAAI,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;;AAE9B,cAAM,CAAC,mBAAmB,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI,EAAC;AACxD,iBAAO,CAAC,IAAI,CAAC,CAAC,aAAa,GAAG,iBAAiB,CAAC;AAChD,cAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;AACpC,gBAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC;WAC3B,MAAM;AACL,6BAAI,KAAK,CAAC,wBAAwB,EAAE,IAAI,CAAC,CAAC;WAC3C;SACF,QAAO,CAAC;;KACV;;AAED,QAAI,CAAC,QAAQ,CAAC,aAAa,GAAG,iBAAiB,CAAC;;AAEhD,QAAI,CAAC,YAAY,EAAE,CAAC;;;AAGpB,QAAI,CAAC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,CAAC;;;;AAIrD,QAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,UAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;KACvC,MAAM;AACL,UAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;KACxC;;AAED,QAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,UAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;KAC5B;;AAED,QAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC5B,UAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;KAC9B;;;;;;;;;AASD,UAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;;;;AAIhC,QAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,QAAI,CAAC,kBAAkB,EAAE,CAAC;AAC1B,QAAI,CAAC,qBAAqB,EAAE,CAAC;;AAE7B,QAAI,CAAC,EAAE,CAAC,kBAAkB,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;AACzD,QAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;GAC9C;;YAvJG,MAAM;;;;;;;;;;;;;AAAN,QAAM,WAmKV,OAAO,GAAA,mBAAG;AACR,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;;AAExB,QAAI,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;;AAEpB,QAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,UAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;KACrD;;;AAGD,UAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC;AAChC,QAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AAAE,UAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;KAAE;AAC5D,QAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE;AAAE,UAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;KAAE;;AAE5D,QAAI,IAAI,CAAC,IAAI,EAAE;AAAE,UAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;KAAE;;AAEvC,yBAAM,OAAO,KAAA,MAAE,CAAC;GACjB;;;;;;;;;AApLG,QAAM,WA4LV,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,IAAI,CAAC,GAAG,GAAG,qBAAM,QAAQ,KAAA,OAAC,KAAK,CAAC,CAAC;AAC1C,QAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;;;AAGnB,OAAG,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC7B,OAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;;;;AAI9B,QAAM,KAAK,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;;AAEvC,UAAM,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC,UAAS,IAAI,EAAC;;;AAGtD,UAAI,IAAI,KAAK,OAAO,EAAE;AACpB,UAAE,CAAC,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,CAAC;OAC5B,MAAM;AACL,UAAE,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;OACpC;KACF,CAAC,CAAC;;;;;AAKH,OAAG,CAAC,EAAE,IAAI,YAAY,CAAC;AACvB,OAAG,CAAC,SAAS,GAAG,UAAU,CAAC;;;AAG3B,OAAG,CAAC,MAAM,GAAG,EAAE,CAAC,MAAM,GAAG,IAAI,CAAC;;AAE9B,QAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;;;;;AAK5B,QAAI,CAAC,QAAQ,GAAG,UAAU,CAAC,kBAAkB,CAAC,uBAAuB,CAAC,CAAC;AACvE,QAAI,eAAe,GAAG,sBAAS,aAAa,CAAC,sBAAsB,CAAC,CAAC;AACrE,QAAI,IAAI,GAAG,sBAAS,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1C,QAAI,CAAC,YAAY,CAAC,IAAI,CAAC,QAAQ,EAAE,eAAe,GAAG,eAAe,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;;;AAGlG,QAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,QAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AAClC,QAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AAChC,QAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;;;;AAI5C,OAAG,CAAC,iBAAiB,GAAG,GAAG,CAAC,YAAY,CAAC;;;AAGzC,QAAI,GAAG,CAAC,UAAU,EAAE;AAClB,SAAG,CAAC,UAAU,CAAC,YAAY,CAAC,EAAE,EAAE,GAAG,CAAC,CAAC;KACtC;AACD,OAAG,CAAC,aAAa,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;;AAE3B,QAAI,CAAC,GAAG,GAAG,EAAE,CAAC;;AAEd,WAAO,EAAE,CAAC;GACX;;;;;;;;;;AAxPG,QAAM,WAiQV,KAAK,GAAA,eAAC,KAAK,EAAE;AACX,WAAO,IAAI,CAAC,SAAS,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;GACvC;;;;;;;;;;AAnQG,QAAM,WA4QV,MAAM,GAAA,gBAAC,KAAK,EAAE;AACZ,WAAO,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;GACxC;;;;;;;;;;;AA9QG,QAAM,WAwRV,SAAS;;;;;;;;;;KAAA,UAAC,SAAS,EAAE,KAAK,EAAE;AAC1B,QAAI,aAAa,GAAG,SAAS,GAAG,GAAG,CAAC;;AAEpC,QAAI,KAAK,KAAK,SAAS,EAAE;AACvB,aAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;KACjC;;AAED,QAAI,KAAK,KAAK,EAAE,EAAE;;AAEhB,UAAI,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;KACjC,MAAM;AACL,UAAI,SAAS,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;;AAElC,UAAI,KAAK,CAAC,SAAS,CAAC,EAAE;AACpB,yBAAI,KAAK,sBAAoB,KAAK,2BAAsB,SAAS,CAAG,CAAC;AACrE,eAAO,IAAI,CAAC;OACb;;AAED,UAAI,CAAC,aAAa,CAAC,GAAG,SAAS,CAAC;KACjC;;AAED,QAAI,CAAC,cAAc,EAAE,CAAC;AACtB,WAAO,IAAI,CAAC;GACb;;;;;;;;;AA/SG,QAAM,WAuTV,KAAK,GAAA,eAAC,IAAI,EAAE;AACV,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,aAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC;KACtB;;AAED,QAAI,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,CAAC;;AAErB,QAAI,IAAI,EAAE;AACR,UAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;KAC5B,MAAM;AACL,UAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;KAC/B;GACF;;;;;;;;;;AAnUG,QAAM,WA4UV,WAAW,GAAA,qBAAC,KAAK,EAAE;AACjB,QAAI,KAAK,KAAK,SAAS,EAAE;AACvB,aAAO,IAAI,CAAC,YAAY,CAAC;KAC1B;;;AAGD,QAAI,CAAC,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;AAC7B,YAAM,IAAI,KAAK,CAAC,gGAAgG,CAAC,CAAC;KACnH;AACD,QAAI,CAAC,YAAY,GAAG,KAAK,CAAC;;;;AAI1B,QAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;AAEjB,QAAI,CAAC,cAAc,EAAE,CAAC;GACvB;;;;;;;;AA5VG,QAAM,WAmWV,cAAc,GAAA,0BAAG;AACf,QAAI,KAAK,YAAA,CAAC;AACV,QAAI,MAAM,YAAA,CAAC;AACX,QAAI,WAAW,YAAA,CAAC;;;AAGhB,QAAI,IAAI,CAAC,YAAY,KAAK,SAAS,IAAI,IAAI,CAAC,YAAY,KAAK,MAAM,EAAE;;AAEnE,iBAAW,GAAG,IAAI,CAAC,YAAY,CAAC;KACjC,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,EAAE;;AAE5B,iBAAW,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,GAAG,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;KAC5D,MAAM;;AAEL,iBAAW,GAAG,MAAM,CAAC;KACtB;;;AAGD,QAAI,UAAU,GAAG,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AACxC,QAAI,eAAe,GAAG,UAAU,CAAC,CAAC,CAAC,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;;AAEpD,QAAI,IAAI,CAAC,MAAM,KAAK,SAAS,EAAE;;AAE7B,WAAK,GAAG,IAAI,CAAC,MAAM,CAAC;KACrB,MAAM,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;;AAErC,WAAK,GAAG,IAAI,CAAC,OAAO,GAAG,eAAe,CAAC;KACxC,MAAM;;AAEL,WAAK,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,GAAG,CAAC;KAClC;;AAED,QAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE;;AAE9B,YAAM,GAAG,IAAI,CAAC,OAAO,CAAC;KACvB,MAAM;;AAEL,YAAM,GAAG,KAAK,GAAI,eAAe,CAAC;KACnC;;AAED,QAAI,OAAO,GAAG,IAAI,CAAC,EAAE,EAAE,GAAC,aAAa,CAAC;;;AAGtC,QAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;;AAEvB,cAAU,CAAC,cAAc,CAAC,IAAI,CAAC,QAAQ,gBAClC,OAAO,2BACC,KAAK,6BACJ,MAAM,+BAGf,OAAO,2CACO,eAAe,GAAG,GAAG,uBAEtC,CAAC;GACJ;;;;;;;;;;;;AA1ZG,QAAM,WAqaV,QAAQ,GAAA,kBAAC,QAAQ,EAAE,MAAM,EAAE;;;AAGzB,QAAI,IAAI,CAAC,IAAI,EAAE;AACb,UAAI,CAAC,UAAU,EAAE,CAAC;KACnB;;;AAGD,QAAI,QAAQ,KAAK,OAAO,IAAI,IAAI,CAAC,GAAG,EAAE;AACpC,6BAAU,YAAY,CAAC,OAAO,CAAC,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC9D,UAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,UAAI,CAAC,GAAG,GAAG,IAAI,CAAC;KACjB;;AAED,QAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;;;AAGzB,QAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;;AAEtB,QAAI,SAAS,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AACvC,UAAI,CAAC,YAAY,EAAE,CAAC;KACrB,CAAC,CAAC;;;AAGH,QAAI,WAAW,GAAG,oBAAO;AACvB,cAAU,MAAM;AAChB,gBAAY,IAAI,CAAC,EAAE,EAAE;AACrB,mBAAa,IAAI,CAAC,EAAE,EAAE,SAAI,QAAQ,SAAM;AACxC,kBAAc,IAAI,CAAC,WAAW;AAC9B,gBAAY,IAAI,CAAC,QAAQ,CAAC,QAAQ;AAClC,eAAW,IAAI,CAAC,QAAQ,CAAC,OAAO;AAChC,YAAQ,IAAI,CAAC,QAAQ,CAAC,IAAI;AAC1B,aAAS,IAAI,CAAC,QAAQ,CAAC,KAAK;AAC5B,cAAU,IAAI,CAAC,MAAM,EAAE;AACvB,gBAAY,IAAI,CAAC,QAAQ,EAAE;AAC3B,cAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC;KAClC,EAAE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;;AAE1C,QAAI,IAAI,CAAC,GAAG,EAAE;AACZ,iBAAW,CAAC,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;KAC5B;;AAED,QAAI,MAAM,EAAE;AACV,UAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,CAAC;AAChC,UAAI,MAAM,CAAC,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,GAAG,CAAC,EAAE;AACjE,mBAAW,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC;OACjD;;AAED,UAAI,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;KAC9B;;;AAGD,QAAI,aAAa,GAAG,uBAAU,YAAY,CAAC,QAAQ,CAAC,CAAC;AACrD,QAAI,CAAC,IAAI,GAAG,IAAI,aAAa,CAAC,WAAW,CAAC,CAAC;;AAE3C,oCAAmB,gBAAgB,CAAC,IAAI,CAAC,eAAe,IAAI,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;;AAE3E,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAClD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,mBAAmB,EAAE,IAAI,CAAC,2BAA2B,CAAC,CAAC;;;AAG1E,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC1D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACpE,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAClD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACpD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;AAChD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC1D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAClD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACxD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACpE,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,IAAI,CAAC,0BAA0B,CAAC,CAAC;AACxE,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAClD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAClD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AACtD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,wBAAwB,CAAC,CAAC;AACpE,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC5D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC5D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC5D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAChE,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,iBAAiB,EAAE,IAAI,CAAC,iBAAiB,CAAC,CAAC;AAC9D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;;AAE1D,QAAI,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAClD,UAAI,CAAC,wBAAwB,EAAE,CAAC;KACjC;;;;AAID,QAAI,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,KAAK,IAAI,CAAC,EAAE,EAAE,KAAK,QAAQ,KAAK,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAA,AAAC,EAAE;AAClF,SAAG,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;KAC9C;;;AAGD,QAAI,IAAI,CAAC,GAAG,EAAE;AACZ,UAAI,CAAC,GAAG,CAAC,MAAM,GAAG,IAAI,CAAC;AACvB,UAAI,CAAC,GAAG,GAAG,IAAI,CAAC;KACjB;;;AAGD,QAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;GAClC;;;;;;;;AA/gBG,QAAM,WAshBV,UAAU,GAAA,sBAAG;;AAEX,QAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACrC,QAAI,CAAC,eAAe,GAAG,gCAAmB,gBAAgB,CAAC,IAAI,CAAC,CAAC;;AAEjE,QAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;;AAEtB,QAAI,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC;;AAEpB,QAAI,CAAC,IAAI,GAAG,KAAK,CAAC;GACnB;;;;;;;;AAhiBG,QAAM,WAuiBV,wBAAwB,GAAA,oCAAG;;;;;AAKzB,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;;;;;AAKtD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC5D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC1D,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;;;;AAIxD,QAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;GAC/C;;;;;;;;;AAxjBG,QAAM,WAgkBV,2BAA2B,GAAA,uCAAG;;;AAG5B,QAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAC/C,QAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,YAAY,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;AAC7D,QAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC3D,QAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACzD,QAAI,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,EAAE,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;GACxD;;;;;;;;;AAxkBG,QAAM,WAglBV,eAAe,GAAA,2BAAG;AAChB,QAAI,CAAC,YAAY,EAAE,CAAC;;;AAGpB,QAAI,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACtB,UAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KAChD;;;;;;AAMD,QAAI,IAAI,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,IAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACvD,aAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;AACvB,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;;;;;;;;AAhmBG,QAAM,WAwmBV,2BAA2B,GAAA,uCAAG;AAC5B,QAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC;GAChC;;;;;;;;AA1mBG,QAAM,WAinBV,mBAAmB,GAAA,+BAAG;;;AAGpB,QAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;;;AAG9B,QAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;;;;AAKjB,QAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AAClB,UAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;AAC1B,UAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KAC3B,MAAM;;AAEL,UAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;AACvB,UAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;KAC3B;GACF;;;;;;;;;;AApoBG,QAAM,WA6oBV,UAAU;;;;;;;;;;KAAA,UAAC,UAAU,EAAE;AACrB,QAAI,UAAU,KAAK,SAAS,EAAE;;AAE5B,UAAI,IAAI,CAAC,WAAW,KAAK,UAAU,EAAE;AACnC,YAAI,CAAC,WAAW,GAAG,UAAU,CAAC;AAC9B,YAAI,UAAU,EAAE;AACd,cAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;;AAEjC,cAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;SAC3B,MAAM;AACL,cAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;SACrC;OACF;AACD,aAAO,IAAI,CAAC;KACb;AACD,WAAO,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC;GAC3B;;;;;;;;AA7pBG,QAAM,WAoqBV,cAAc,GAAA,0BAAG;AACf,QAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC9B,QAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AAC/B,QAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;;;;AAI7B,QAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;;AAEtB,QAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;GACtB;;;;;;;;AA9qBG,QAAM,WAqrBV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7B,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;;AAxrBG,QAAM,WAgsBV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;;AAnsBG,QAAM,WA2sBV,wBAAwB,GAAA,oCAAG;AACzB,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;GAChC;;;;;;;;;AA9sBG,QAAM,WAstBV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;AAztBG,QAAM,WAguBV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;AAC7B,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;AAnuBG,QAAM,WA0uBV,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;GACxB;;;;;;;;;;;AA7uBG,QAAM,WAuvBV,mBAAmB,GAAA,+BAAG;;;AAGpB,QAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAC;AACzB,UAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;KAC3C;;AAED,QAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACjC,QAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;GAC3B;;;;;;;;AAhwBG,QAAM,WAuwBV,eAAe,GAAA,2BAAG;AAChB,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;AAChC,QAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;AAC5B,QAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;GACvB;;;;;;;;AA3wBG,QAAM,WAkxBV,kBAAkB,GAAA,8BAAG;AACnB,QAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;;AAGzB,QAAI,IAAI,CAAC,eAAe,EAAE,KAAK,CAAC,EAAE;AAChC,UAAI,CAAC,OAAO,CAAC,eAAe,CAAC,CAAC;KAC/B;GACF;;;;;;;;AAzxBG,QAAM,WAgyBV,eAAe,GAAA,2BAAG;AAChB,QAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;AAC3B,QAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE;AACtB,UAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;AACpB,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,MAAM,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE;AACzB,UAAI,CAAC,KAAK,EAAE,CAAC;KACd;;AAED,QAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;GACvB;;;;;;;;AA1yBG,QAAM,WAizBV,wBAAwB,GAAA,oCAAG;AACzB,QAAI,CAAC,cAAc,EAAE,CAAC;AACtB,QAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;GAChC;;;;;;;;;AApzBG,QAAM,WA4zBV,eAAe,GAAA,yBAAC,KAAK,EAAE;;;AAGrB,QAAI,KAAK,CAAC,MAAM,KAAK,CAAC;AAAE,aAAO;KAAA;;AAI/B,QAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,UAAI,IAAI,CAAC,MAAM,EAAE,EAAE;AACjB,YAAI,CAAC,IAAI,EAAE,CAAC;OACb,MAAM;AACL,YAAI,CAAC,KAAK,EAAE,CAAC;OACd;KACF;GACF;;;;;;;;;AA10BG,QAAM,WAk1BV,aAAa,GAAA,yBAAG;AACd,QAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC;GACrC;;;;;;;;AAp1BG,QAAM,WA21BV,oBAAoB,GAAA,gCAAG;AACrB,QAAI,CAAC,aAAa,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;GACxC;;;;;;;;AA71BG,QAAM,WAo2BV,mBAAmB,GAAA,+BAAG;AACpB,QAAI,IAAI,CAAC,aAAa,EAAC;AACrB,UAAI,CAAC,kBAAkB,EAAE,CAAC;KAC3B;GACF;;;;;;;;AAx2BG,QAAM,WA+2BV,kBAAkB,GAAA,4BAAC,KAAK,EAAE;;AAExB,SAAK,CAAC,cAAc,EAAE,CAAC;GACxB;;;;;;;;;AAl3BG,QAAM,WA03BV,cAAc,GAAA,0BAAG;;;;AAIf,QAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AACxC,QAAI,QAAQ,EAAE;AACZ,UAAI,QAAQ,GAAG,CAAC,EAAE;AAChB,gBAAQ,GAAG,QAAQ,CAAC;OACrB;AACD,UAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;;AAExB,UAAI,QAAQ,KAAK,QAAQ,EAAE;AACzB,YAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;OAC3B,MAAM;AACL,YAAI,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;OAC9B;KACF;GACF;;;;;;;;AA34BG,QAAM,WAk5BV,sBAAsB,GAAA,kCAAG;AACvB,QAAI,IAAI,CAAC,YAAY,EAAE,EAAE;AACvB,UAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;KACjC,MAAM;AACL,UAAI,CAAC,WAAW,CAAC,gBAAgB,CAAC,CAAC;KACpC;GACF;;;;;;;;;;AAx5BG,QAAM,WAi6BV,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,kBAAkB,EAAE,CAAC;GAC3B;;;;;;;;AAn6BG,QAAM,WA06BV,0BAA0B,GAAA,oCAAC,KAAK,EAAE,IAAI,EAAE;AACtC,QAAI,IAAI,EAAE;AACR,UAAI,CAAC,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACtC;AACD,QAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;GAClC;;;;;;;;AA/6BG,QAAM,WAs7BV,eAAe,GAAA,2BAAG;AAChB,QAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,CAAC;GACpC;;;;;;;;AAx7BG,QAAM,WA+7BV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;AAj8BG,QAAM,WAw8BV,eAAe,GAAA,2BAAG;AAChB,QAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;GACvB;;;;;;;;AA18BG,QAAM,WAi9BV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;AAn9BG,QAAM,WA09BV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GACzB;;;;;;;;AA59BG,QAAM,WAm+BV,wBAAwB,GAAA,oCAAG;AACzB,QAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;GAChC;;;;;;;;AAr+BG,QAAM,WA4+BV,oBAAoB,GAAA,gCAAG;AACrB,QAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;GAC5B;;;;;;;;AA9+BG,QAAM,WAq/BV,oBAAoB,GAAA,gCAAG;AACrB,QAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;GAC5B;;;;;;;;AAv/BG,QAAM,WA8/BV,oBAAoB,GAAA,gCAAG;AACrB,QAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;GAC5B;;;;;;;;AAhgCG,QAAM,WAugCV,sBAAsB,GAAA,kCAAG;AACvB,QAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;GAC9B;;;;;;;;AAzgCG,QAAM,WAghCV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;GACjC;;;;;;;;;AAlhCG,QAAM,WA0hCV,QAAQ,GAAA,oBAAG;AACT,WAAO,IAAI,CAAC,MAAM,CAAC;GACpB;;;;;;;;;;AA5hCG,QAAM,WAqiCV,QAAQ,GAAA,kBAAC,MAAM,EAAE,GAAG,EAAE;;AAEpB,QAAI,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AACpC,UAAI,CAAC,IAAI,CAAC,KAAK,CAAC,YAAU;AACxB,YAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;OACnB,EAAE,IAAI,CAAC,CAAC;;;KAGV,MAAM;AACL,UAAI;AACF,YAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;OACxB,CAAC,OAAM,CAAC,EAAE;AACT,yBAAI,CAAC,CAAC,CAAC;AACP,cAAM,CAAC,CAAC;OACT;KACF;GACF;;;;;;;;;;AArjCG,QAAM,WA8jCV,OAAO,GAAA,iBAAC,MAAM,EAAE;AACd,QAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;;;;;AAKnC,UAAI;AACF,eAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;OAC5B,CAAC,OAAM,CAAC,EAAE;;AAET,YAAI,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,SAAS,EAAE;AACnC,0CAAiB,MAAM,gCAA2B,IAAI,CAAC,QAAQ,4BAAyB,CAAC,CAAC,CAAC;SAC5F,MAAM;;AAEL,cAAI,CAAC,CAAC,IAAI,KAAK,WAAW,EAAE;AAC1B,4CAAiB,MAAM,wBAAmB,IAAI,CAAC,QAAQ,oCAAiC,CAAC,CAAC,CAAC;AAC3F,gBAAI,CAAC,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;WAC5B,MAAM;AACL,6BAAI,CAAC,CAAC,CAAC;WACR;SACF;AACD,cAAM,CAAC,CAAC;OACT;KACF;;AAED,WAAO;GACR;;;;;;;;;;;;AAxlCG,QAAM,WAmmCV,IAAI,GAAA,gBAAG;AACL,QAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtB,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;AAtmCG,QAAM,WAinCV,KAAK,GAAA,iBAAG;AACN,QAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;AACvB,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;;AApnCG,QAAM,WAgoCV,MAAM,GAAA,kBAAG;;AAEP,WAAO,AAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,KAAK,GAAI,KAAK,GAAG,IAAI,CAAC;GAC1D;;;;;;;;;;;;AAnoCG,QAAM,WA8oCV,SAAS,GAAA,mBAAC,WAAW,EAAE;AACrB,QAAI,WAAW,KAAK,SAAS,EAAE;AAC7B,UAAI,CAAC,UAAU,GAAG,CAAC,CAAC,WAAW,CAAC;;AAEhC,UAAI,WAAW,EAAE;AACf,YAAI,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAC;OAChC,MAAM;AACL,YAAI,CAAC,WAAW,CAAC,eAAe,CAAC,CAAC;OACnC;;AAED,aAAO,IAAI,CAAC;KACb;;AAED,WAAO,IAAI,CAAC,UAAU,CAAC;GACxB;;;;;;;;;;;;;;;;;AA5pCG,QAAM,WA4qCV,WAAW,GAAA,qBAAC,OAAO,EAAE;AACnB,QAAI,OAAO,KAAK,SAAS,EAAE;;AAEzB,UAAI,CAAC,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;;AAEzC,aAAO,IAAI,CAAC;KACb;;;;;;;;AAQD,WAAO,IAAI,CAAC,MAAM,CAAC,WAAW,GAAI,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,IAAI,CAAC,AAAC,CAAC;GACrE;;;;;;;;;;;;;;;;AA3rCG,QAAM,WA0sCV,QAAQ,GAAA,kBAAC,OAAO,EAAE;AAChB,QAAI,OAAO,KAAK,SAAS,EAAE;;;AAGzB,UAAI,CAAC,MAAM,CAAC,QAAQ,GAAG,UAAU,CAAC,OAAO,CAAC,CAAC;;AAE3C,aAAO,IAAI,CAAC;KACb;;AAED,QAAI,IAAI,CAAC,MAAM,CAAC,QAAQ,KAAK,SAAS,EAAE;AACtC,UAAI,CAAC,cAAc,EAAE,CAAC;KACvB;;AAED,WAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;GAClC;;;;;;;;;;;;;AAxtCG,QAAM,WAouCV,aAAa,GAAA,yBAAG;AACd,WAAO,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;GAC7C;;;;;;;;;;;;;;;;;;;;;;;;;AAtuCG,QAAM,WA8vCV,QAAQ;;;;;;;;;;KAAA,YAAG;AACT,QAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;AAExC,QAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACjC,cAAQ,GAAG,iBA5yCR,eAAe,CA4yCS,CAAC,EAAC,CAAC,CAAC,CAAC;KACjC;;AAED,WAAO,QAAQ,CAAC;GACjB;;;;;;;;;;;;;;AAtwCG,QAAM,WAmxCV,eAAe;;;;;;;;;;KAAA,YAAG;AAChB,WAAO,kBA7zCF,eAAe,CA6zCG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,CAAC,CAAC;GAC1D;;;;;;;;;;AArxCG,QAAM,WA8xCV,WAAW,GAAA,uBAAG;AACZ,QAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC1B,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE;QAC1B,GAAG,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAC,CAAC,CAAC,CAAC;;AAE1C,QAAI,GAAG,GAAG,QAAQ,EAAE;AAClB,SAAG,GAAG,QAAQ,CAAC;KAChB;;AAED,WAAO,GAAG,CAAC;GACZ;;;;;;;;;;;;;;;;;;AAxyCG,QAAM,WAyzCV,MAAM,GAAA,gBAAC,gBAAgB,EAAE;AACvB,QAAI,GAAG,YAAA,CAAC;;AAER,QAAI,gBAAgB,KAAK,SAAS,EAAE;AAClC,SAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,CAAC,gBAAgB,CAAC,CAAC,CAAC,CAAC;AAC7D,UAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,CAAC;AACzB,UAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;;AAEhC,aAAO,IAAI,CAAC;KACb;;;AAGD,OAAG,GAAG,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;AACzC,WAAO,AAAC,KAAK,CAAC,GAAG,CAAC,GAAI,CAAC,GAAG,GAAG,CAAC;GAC/B;;;;;;;;;;;;;;;;;AAv0CG,QAAM,WAw1CV,KAAK;;;;;;;;;;KAAA,UAAC,KAAK,EAAE;AACX,QAAI,KAAK,KAAK,SAAS,EAAE;AACvB,UAAI,CAAC,QAAQ,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;AACjC,aAAO,IAAI,CAAC;KACb;AACD,WAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,KAAK,CAAC;GACvC;;;;;;;;;;;AA91CG,QAAM,WAw2CV,kBAAkB,GAAA,8BAAG;AACnB,WAAO,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,IAAI,KAAK,CAAC;GACpD;;;;;;;;;;;;;;;;;;;;AA12CG,QAAM,WA63CV,YAAY,GAAA,sBAAC,IAAI,EAAE;AACjB,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,CAAC,aAAa,GAAG,CAAC,CAAC,IAAI,CAAC;AAC5B,aAAO,IAAI,CAAC;KACb;AACD,WAAO,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC;GAC7B;;;;;;;;;;;;;;;;;;AAn4CG,QAAM,WAo5CV,iBAAiB,GAAA,6BAAG;AAClB,QAAI,KAAK,6BAAgB,CAAC;;AAE1B,QAAI,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;;AAExB,QAAI,KAAK,CAAC,iBAAiB,EAAE;;;;;;;;;AAS3B,YAAM,CAAC,EAAE,wBAAW,KAAK,CAAC,gBAAgB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,SAAS,wBAAwB,CAAC,CAAC,EAAC;AAC5F,YAAI,CAAC,YAAY,CAAC,sBAAS,KAAK,CAAC,iBAAiB,CAAC,CAAC,CAAC;;;AAGrD,YAAI,IAAI,CAAC,YAAY,EAAE,KAAK,KAAK,EAAE;AACjC,gBAAM,CAAC,GAAG,wBAAW,KAAK,CAAC,gBAAgB,EAAE,wBAAwB,CAAC,CAAC;SACxE;;AAED,YAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;OAClC,CAAC,CAAC,CAAC;;AAEJ,UAAI,CAAC,GAAG,CAAC,KAAK,CAAC,iBAAiB,CAAC,EAAE,CAAC;KAErC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;;;AAGzC,UAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;KAClC,MAAM;;;AAGL,UAAI,CAAC,eAAe,EAAE,CAAC;AACvB,UAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;KAClC;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;;AA37CG,QAAM,WAs8CV,cAAc,GAAA,0BAAG;AACf,QAAI,KAAK,6BAAgB,CAAC;AAC1B,QAAI,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;;AAGzB,QAAI,KAAK,CAAC,iBAAiB,EAAE;AAC3B,4BAAS,KAAK,CAAC,cAAc,CAAC,EAAE,CAAC;KAClC,MAAM,IAAI,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,EAAE;AAC1C,UAAI,CAAC,QAAQ,CAAC,gBAAgB,CAAC,CAAC;KAChC,MAAM;AACN,UAAI,CAAC,cAAc,EAAE,CAAC;AACtB,UAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;KACjC;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;AAr9CG,QAAM,WA49CV,eAAe,GAAA,2BAAG;AAChB,QAAI,CAAC,YAAY,GAAG,IAAI,CAAC;;;AAGzB,QAAI,CAAC,eAAe,GAAG,sBAAS,eAAe,CAAC,KAAK,CAAC,QAAQ,CAAC;;;AAG/D,UAAM,CAAC,EAAE,wBAAW,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC,CAAC;;;AAGvE,0BAAS,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;;;AAGnD,OAAG,CAAC,UAAU,CAAC,sBAAS,IAAI,EAAE,iBAAiB,CAAC,CAAC;;AAEjD,QAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;GACjC;;;;;;;;;AA5+CG,QAAM,WAo/CV,kBAAkB,GAAA,4BAAC,KAAK,EAAE;AACxB,QAAI,KAAK,CAAC,OAAO,KAAK,EAAE,EAAE;AACxB,UAAI,IAAI,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE;AAChC,YAAI,CAAC,cAAc,EAAE,CAAC;OACvB,MAAM;AACL,YAAI,CAAC,cAAc,EAAE,CAAC;OACvB;KACF;GACF;;;;;;;;AA5/CG,QAAM,WAmgDV,cAAc,GAAA,0BAAG;AACf,QAAI,CAAC,YAAY,GAAG,KAAK,CAAC;AAC1B,UAAM,CAAC,GAAG,wBAAW,SAAS,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;;;AAGzD,0BAAS,eAAe,CAAC,KAAK,CAAC,QAAQ,GAAG,IAAI,CAAC,eAAe,CAAC;;;AAG/D,OAAG,CAAC,aAAa,CAAC,sBAAS,IAAI,EAAE,iBAAiB,CAAC,CAAC;;;;AAIpD,QAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;GAChC;;;;;;;;;;AAhhDG,QAAM,WAyhDV,YAAY,GAAA,sBAAC,OAAO,EAAE;;AAEpB,SAAK,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAE,EAAE;AACrD,UAAI,QAAQ,GAAG,yBAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,UAAI,IAAI,GAAG,uBAAU,YAAY,CAAC,QAAQ,CAAC,CAAC;;;AAG5C,UAAI,CAAC,IAAI,EAAE;AACT,yBAAI,KAAK,WAAS,QAAQ,uEAAoE,CAAC;AAC/F,iBAAS;OACV;;;AAGD,UAAI,IAAI,CAAC,WAAW,EAAE,EAAE;;AAEtB,aAAK,IAAI,CAAC,GAAC,CAAC,EAAC,CAAC,GAAC,OAAO,EAAC,CAAC,GAAC,CAAC,CAAC,MAAM,EAAC,CAAC,EAAE,EAAE;AACrC,cAAI,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;;;AAGlB,cAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;AAC9B,mBAAO,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;WAC3C;SACF;OACF;KACF;;AAED,WAAO,KAAK,CAAC;GACd;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AApjDG,QAAM,WAslDV,GAAG,GAAA,aAAC,MAAM,EAAE;AACV,QAAI,MAAM,KAAK,SAAS,EAAE;AACxB,aAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;KAC5B;;AAED,QAAI,WAAW,GAAG,uBAAU,YAAY,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;;;AAGxD,QAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACzB,UAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;;;KAG1B,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;;AAErC,UAAI,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC,CAAC;;;KAG3B,MAAM,IAAI,MAAM,YAAY,MAAM,EAAE;;;AAGnC,UAAI,MAAM,CAAC,IAAI,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC,MAAM,CAAC,EAAE;;;AAGrD,YAAI,CAAC,WAAW,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;OAC5B,MAAM;AACL,YAAI,CAAC,MAAM,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;AAC7B,YAAI,CAAC,YAAY,GAAG,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;;;AAGtC,YAAI,CAAC,KAAK,CAAC,YAAU;;;;;;AAMnB,cAAI,WAAW,CAAC,SAAS,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE;AACrD,gBAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC;WACpC,MAAM;AACL,gBAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC,CAAC;WAClC;;AAED,cAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,KAAK,MAAM,EAAE;AACpC,gBAAI,CAAC,IAAI,EAAE,CAAC;WACb;;AAED,cAAI,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC1B,gBAAI,CAAC,IAAI,EAAE,CAAC;WACb;;;AAAA,SAGF,EAAE,IAAI,CAAC,CAAC;OACV;KACF;;AAED,WAAO,IAAI,CAAC;GACb;;;;;;;;;;AA7oDG,QAAM,WAspDV,WAAW,GAAA,qBAAC,OAAO,EAAE;AACnB,QAAI,UAAU,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;;AAE5C,QAAI,UAAU,EAAE;AACd,UAAI,UAAU,CAAC,IAAI,KAAK,IAAI,CAAC,QAAQ,EAAE;;AAErC,YAAI,CAAC,GAAG,CAAC,UAAU,CAAC,MAAM,CAAC,CAAC;OAC7B,MAAM;;AAEL,YAAI,CAAC,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,UAAU,CAAC,MAAM,CAAC,CAAC;OACnD;KACF,MAAM;;AAEL,UAAI,CAAC,UAAU,CAAE,YAAW;AAC1B,YAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;OACpF,EAAE,CAAC,CAAC,CAAC;;;;AAIN,UAAI,CAAC,YAAY,EAAE,CAAC;KACrB;GACF;;;;;;;;;AA3qDG,QAAM,WAmrDV,IAAI,GAAA,gBAAG;AACL,QAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;AACtB,WAAO,IAAI,CAAC;GACb;;;;;;;;;;AAtrDG,QAAM,WA+rDV,UAAU,GAAA,sBAAG;AACX,WAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG,IAAI,EAAE,CAAC;GAC5D;;;;;;;;;;;AAjsDG,QAAM,WA2sDV,WAAW,GAAA,uBAAG;AACV,WAAO,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC;GAClC;;;;;;;;;;;AA7sDG,QAAM,WAutDV,OAAO,GAAA,iBAAC,KAAK,EAAE;AACb,QAAI,KAAK,KAAK,SAAS,EAAE;AACvB,UAAI,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;AACnC,UAAI,CAAC,QAAQ,CAAC,OAAO,GAAG,KAAK,CAAC;AAC9B,aAAO,IAAI,CAAC;KACb;AACD,WAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GAChC;;;;;;;;;;;AA9tDG,QAAM,WAwuDV,QAAQ,GAAA,kBAAC,KAAK,EAAE;AACd,QAAI,KAAK,KAAK,SAAS,EAAE;AACvB,UAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,KAAK,CAAC,CAAC;AACpC,UAAI,CAAC,QAAQ,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC/B,aAAO,IAAI,CAAC;KACb;AACD,WAAO,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;GACxC;;;;;;;;;;;AA/uDG,QAAM,WAyvDV,IAAI,GAAA,cAAC,KAAK,EAAE;AACV,QAAI,KAAK,KAAK,SAAS,EAAE;AACvB,UAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;AAChC,UAAI,CAAC,QAAQ,KAAQ,GAAG,KAAK,CAAC;AAC9B,aAAO,IAAI,CAAC;KACb;AACD,WAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;GAC7B;;;;;;;;;;;;;;;;;;AAhwDG,QAAM,WAixDV,MAAM,GAAA,gBAAC,GAAG,EAAE;AACV,QAAI,GAAG,KAAK,SAAS,EAAE;AACrB,aAAO,IAAI,CAAC,OAAO,CAAC;KACrB;;;;AAID,QAAI,CAAC,GAAG,EAAE;AACR,SAAG,GAAG,EAAE,CAAC;KACV;;;AAGD,QAAI,CAAC,OAAO,GAAG,GAAG,CAAC;;;AAGnB,QAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC;;;AAGhC,QAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;;AAE7B,WAAO,IAAI,CAAC;GACb;;;;;;;;;;AAtyDG,QAAM,WA+yDV,QAAQ,GAAA,kBAAC,IAAI,EAAE;AACb,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,GAAG,CAAC,CAAC,IAAI,CAAC;;AAEd,UAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE;AAC3B,YAAI,CAAC,SAAS,GAAG,IAAI,CAAC;;AAEtB,YAAI,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAC9B,cAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;SACpC;;AAED,YAAI,IAAI,EAAE;AACR,cAAI,CAAC,WAAW,CAAC,uBAAuB,CAAC,CAAC;AAC1C,cAAI,CAAC,QAAQ,CAAC,sBAAsB,CAAC,CAAC;AACtC,cAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;;AAEhC,cAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAC/B,gBAAI,CAAC,wBAAwB,EAAE,CAAC;WACjC;SACF,MAAM;AACL,cAAI,CAAC,WAAW,CAAC,sBAAsB,CAAC,CAAC;AACzC,cAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;AACvC,cAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,CAAC;;AAEjC,cAAI,CAAC,IAAI,CAAC,mBAAmB,EAAE,EAAE;AAC/B,gBAAI,CAAC,2BAA2B,EAAE,CAAC;WACpC;SACF;OACF;AACD,aAAO,IAAI,CAAC;KACb;AACD,WAAO,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC;GACzB;;;;;;;;;;;;;;;AA/0DG,QAAM,WA61DV,mBAAmB,GAAA,6BAAC,IAAI,EAAE;AACxB,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,GAAG,CAAC,CAAC,IAAI,CAAC;;AAEd,UAAI,IAAI,CAAC,oBAAoB,KAAK,IAAI,EAAE;AACtC,YAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;AACjC,YAAI,IAAI,EAAE;AACR,cAAI,CAAC,QAAQ,CAAC,2BAA2B,CAAC,CAAC;;;;;;;;;;AAU3C,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;SACrC,MAAM;AACL,cAAI,CAAC,WAAW,CAAC,2BAA2B,CAAC,CAAC;;;;;;;;;;AAU9C,cAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;SACrC;OACF;AACD,aAAO,IAAI,CAAC;KACb;AACD,WAAO,CAAC,CAAC,IAAI,CAAC,oBAAoB,CAAC;GACpC;;;;;;;;;;;AAh4DG,QAAM,WA04DV,KAAK,GAAA,eAAC,GAAG,EAAE;AACT,QAAI,GAAG,KAAK,SAAS,EAAE;AACrB,aAAO,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC;KAC5B;;;AAGD,QAAI,GAAG,KAAK,IAAI,EAAE;AAChB,UAAI,CAAC,MAAM,GAAG,GAAG,CAAC;AAClB,UAAI,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;AAC9B,aAAO,IAAI,CAAC;KACb;;;AAGD,QAAI,GAAG,mCAAsB,EAAE;AAC7B,UAAI,CAAC,MAAM,GAAG,GAAG,CAAC;KACnB,MAAM;AACL,UAAI,CAAC,MAAM,GAAG,4BAAe,GAAG,CAAC,CAAC;KACnC;;;AAGD,QAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;;;AAGtB,QAAI,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;;;;AAI3B,qBAAI,KAAK,YAAU,IAAI,CAAC,MAAM,CAAC,IAAI,SAAI,wBAAW,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAK,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;;AAErH,WAAO,IAAI,CAAC;GACb;;;;;;;;;AAx6DG,QAAM,WAg7DV,KAAK,GAAA,iBAAG;AAAE,WAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;GAAE;;;;;;;;;AAh7DrC,QAAM,WAw7DV,OAAO,GAAA,mBAAG;AAAE,WAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;GAAE;;;;;;;;;;AAx7DzC,QAAM,WAi8DV,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;GAAE;;;;;;;;;AAj8D3C,QAAM,WAy8DV,kBAAkB,GAAA,4BAAC,KAAK,EAAE;AACxB,QAAI,CAAC,aAAa,GAAG,IAAI,CAAC;GAC3B;;;;;;;;;;AA38DG,QAAM,WAo9DV,UAAU,GAAA,oBAAC,IAAI,EAAE;AACf,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,GAAG,CAAC,CAAC,IAAI,CAAC;AACd,UAAI,IAAI,KAAK,IAAI,CAAC,WAAW,EAAE;AAC7B,YAAI,CAAC,WAAW,GAAG,IAAI,CAAC;AACxB,YAAI,IAAI,EAAE;;;AAGR,cAAI,CAAC,aAAa,GAAG,IAAI,CAAC;AAC1B,cAAI,CAAC,WAAW,CAAC,mBAAmB,CAAC,CAAC;AACtC,cAAI,CAAC,QAAQ,CAAC,iBAAiB,CAAC,CAAC;AACjC,cAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;SAC5B,MAAM;;;AAGL,cAAI,CAAC,aAAa,GAAG,KAAK,CAAC;;;;;;;;;;AAU3B,cAAG,IAAI,CAAC,IAAI,EAAE;AACZ,gBAAI,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,UAAS,CAAC,EAAC;AACpC,eAAC,CAAC,eAAe,EAAE,CAAC;AACpB,eAAC,CAAC,cAAc,EAAE,CAAC;aACpB,CAAC,CAAC;WACJ;;AAED,cAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,CAAC;AACpC,cAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;AACnC,cAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;SAC9B;OACF;AACD,aAAO,IAAI,CAAC;KACb;AACD,WAAO,IAAI,CAAC,WAAW,CAAC;GACzB;;;;;;;;AA5/DG,QAAM,WAmgEV,qBAAqB,GAAA,iCAAG;AACtB,QAAI,eAAe,YAAA;QAAE,SAAS,YAAA;QAAE,SAAS,YAAA,CAAC;;AAE1C,QAAI,cAAc,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;;AAE5D,QAAI,eAAe,GAAG,yBAAS,CAAC,EAAE;;;AAGhC,UAAG,CAAC,CAAC,OAAO,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,KAAK,SAAS,EAAE;AACrD,iBAAS,GAAG,CAAC,CAAC,OAAO,CAAC;AACtB,iBAAS,GAAG,CAAC,CAAC,OAAO,CAAC;AACtB,sBAAc,EAAE,CAAC;OAClB;KACF,CAAC;;AAEF,QAAI,eAAe,GAAG,2BAAW;AAC/B,oBAAc,EAAE,CAAC;;;;AAIjB,UAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;;;;AAIpC,qBAAe,GAAG,IAAI,CAAC,WAAW,CAAC,cAAc,EAAE,GAAG,CAAC,CAAC;KACzD,CAAC;;AAEF,QAAI,aAAa,GAAG,uBAAS,KAAK,EAAE;AAClC,oBAAc,EAAE,CAAC;;AAEjB,UAAI,CAAC,aAAa,CAAC,eAAe,CAAC,CAAC;KACrC,CAAC;;;AAGF,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACtC,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACtC,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;;;;AAIlC,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;AACnC,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,cAAc,CAAC,CAAC;;;;;;;AAOjC,QAAI,iBAAiB,YAAA,CAAC;AACtB,QAAI,aAAa,GAAG,IAAI,CAAC,WAAW,CAAC,YAAW;;AAE9C,UAAI,IAAI,CAAC,aAAa,EAAE;;AAEtB,YAAI,CAAC,aAAa,GAAG,KAAK,CAAC;;;AAG3B,YAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;;;AAGtB,YAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;;AAErC,YAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,kBAAqB,CAAC;AACjD,YAAI,OAAO,GAAG,CAAC,EAAE;;;AAGf,2BAAiB,GAAG,IAAI,CAAC,UAAU,CAAC,YAAY;;;;AAI9C,gBAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACrB,kBAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;aAC1B;WACF,EAAE,OAAO,CAAC,CAAC;SACb;OACF;KACF,EAAE,GAAG,CAAC,CAAC;GACT;;;;;;;;;;;;;;AA/kEG,QAAM,WA4lEV,YAAY,GAAA,sBAAC,IAAI,EAAE;AACjB,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,CAAC,QAAQ,CAAC,iBAAiB,EAAE,IAAI,CAAC,CAAC;AACvC,aAAO,IAAI,CAAC;KACb;;AAED,QAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,qBAAwB,EAAE;AAClD,aAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;KACrC,MAAM;AACL,aAAO,CAAG,CAAC;KACZ;GACF;;;;;;;;;;;;AAvmEG,QAAM,WAknEV,OAAO,GAAA,iBAAC,IAAI,EAAE;AACZ,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,UAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,IAAI,CAAC;AACvB,aAAO,IAAI,CAAC;KACb;;AAED,WAAO,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC;GACxB;;;;;;;;;;;;;;;;;;;;;;;AAznEG,QAAM,WA+oEV,YAAY,GAAA,wBAAG;AACb,WAAO,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC,CAAC;GACrC;;;;;;;;;;;;;;;;;;;;;;;;;;AAjpEG,QAAM,WA0qEV,UAAU,GAAA,sBAAG;AACX,WAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;GACnC;;;;;;;;;;;;;;;;;;AA5qEG,QAAM,WA6rEV,UAAU,GAAA,sBAAG;;;AAGX,WAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,WAAc,EAAE,CAAC;GAC/C;;;;;;;;;AAjsEG,QAAM,WAysEV,gBAAgB,GAAA,4BAAG;AACjB,WAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,iBAAoB,EAAE,CAAC;GACrD;;;;;;;;;;;;;AA3sEG,QAAM,WAutEV,YAAY,GAAA,sBAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AAClC,WAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,aAAgB,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;GACtE;;;;;;;;;AAztEG,QAAM,WAiuEV,kBAAkB,GAAA,4BAAC,OAAO,EAAE;AAC1B,WAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,mBAAsB,CAAC,OAAO,CAAC,CAAC;GAC9D;;;;;;;;;AAnuEG,QAAM,WA2uEV,qBAAqB,GAAA,+BAAC,KAAK,EAAE;AAC3B,QAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,sBAAyB,CAAC,KAAK,CAAC,CAAC;GACxD;;;;;;;;;AA7uEG,QAAM,WAqvEV,UAAU,GAAA,sBAAG;AACX,WAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;GACzE;;;;;;;;;AAvvEG,QAAM,WA+vEV,WAAW,GAAA,uBAAG;AACZ,WAAO,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,IAAI,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAC;GAC3E;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAjwEG,QAAM,WA8xEV,QAAQ,GAAA,kBAAC,IAAI,EAAE;AACb,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,aAAO,IAAI,CAAC,SAAS,CAAC;KACvB;;AAED,QAAI,CAAC,SAAS,GAAG,CAAC,EAAE,GAAC,IAAI,CAAA,CAAE,WAAW,EAAE,CAAC;AACzC,WAAO,IAAI,CAAC;GACb;;;;;;;;;;;AAryEG,QAAM,WA+yEV,SAAS,GAAA,qBAAG;AACV,WAAQ,0BAAa,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,SAAS,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;GAC5E;;;;;;;;;AAjzEG,QAAM,WAyzEV,MAAM,GAAA,kBAAG;AACP,QAAI,OAAO,GAAG,0BAAa,IAAI,CAAC,QAAQ,CAAC,CAAC;AAC1C,QAAI,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;;AAE5B,WAAO,CAAC,MAAM,GAAG,EAAE,CAAC;;AAEpB,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;;;AAGtB,WAAK,GAAG,0BAAa,KAAK,CAAC,CAAC;AAC5B,WAAK,CAAC,MAAM,GAAG,SAAS,CAAC;AACzB,aAAO,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC;KAC3B;;AAED,WAAO,OAAO,CAAC;GAChB;;;;;;;;;;;AAz0EG,QAAM,CAm1EH,cAAc,GAAA,wBAAC,GAAG,EAAE;AACzB,QAAI,WAAW,GAAG;AAChB,eAAW,EAAE;AACb,cAAU,EAAE;KACb,CAAC;;AAEF,QAAM,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC;AAC5C,QAAM,SAAS,GAAG,UAAU,CAAC,YAAY,CAAC,CAAC;;;AAG3C,QAAI,SAAS,KAAK,IAAI,EAAC;;;;4BAGD,4BAAe,SAAS,IAAI,IAAI,CAAC;;UAA9C,GAAG;UAAE,IAAI;;AAChB,UAAI,GAAG,EAAE;AACP,yBAAI,KAAK,CAAC,GAAG,CAAC,CAAC;OAChB;AACD,0BAAO,UAAU,EAAE,IAAI,CAAC,CAAC;KAC1B;;AAED,wBAAO,WAAW,EAAE,UAAU,CAAC,CAAC;;;AAGhC,QAAI,GAAG,CAAC,aAAa,EAAE,EAAE;AACvB,UAAM,QAAQ,GAAG,GAAG,CAAC,UAAU,CAAC;;AAEhC,WAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,YAAM,KAAK,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;;AAE1B,YAAM,SAAS,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC/C,YAAI,SAAS,KAAK,QAAQ,EAAE;AAC1B,qBAAW,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;SACtD,MAAM,IAAI,SAAS,KAAK,OAAO,EAAE;AAChC,qBAAW,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC,CAAC;SACrD;OACF;KACF;;AAED,WAAO,WAAW,CAAC;GACpB;;SA13EG,MAAM;;;;;;;;AAm4EZ,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;;AAEpB,IAAI,SAAS,GAAG,oBAAO,SAAS,CAAC;;;;;;;;;AASjC,MAAM,CAAC,SAAS,CAAC,QAAQ,GAAG;;AAE1B,WAAS,EAAE,CAAC,OAAO,EAAC,OAAO,CAAC;;;AAG5B,OAAK,EAAE,EAAE;AACT,OAAK,EAAE,EAAE;;;AAGT,eAAa,EAAE,CAAI;;;AAGnB,mBAAiB,EAAE,IAAI;;;AAGvB,eAAa,EAAE,EAAE;;;;;AAKjB,UAAQ,EAAE;AACR,eAAW,EAAE,EAAE;AACf,eAAW,EAAE,EAAE;AACf,oBAAgB,EAAE,EAAE;AACpB,kBAAc,EAAE,EAAE;AAClB,iBAAa,EAAE,EAAE;AACjB,cAAU,EAAE,EAAE;AACd,gBAAY,EAAE,EAAE;AAChB,qBAAiB,EAAE,EAAE;GACtB;;AAED,UAAQ,EAAE,sBAAS,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,SAAS,CAAC,SAAS,IAAI,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,SAAS,CAAC,YAAY,IAAI,SAAS,CAAC,QAAQ,IAAI,IAAI;;;AAGhL,WAAS,EAAE,EAAE;;;AAGb,qBAAmB,EAAE,gDAAgD;CACtE,CAAC;;;;;;;AAOF,MAAM,CAAC,SAAS,CAAC,oBAAoB,CAAC;;;;;;;AAOtC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;;;;;;;AAOlC,MAAM,CAAC,SAAS,CAAC,mBAAmB,CAAC;;;;;;;AAOrC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;;;;;;;AAOlC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;;;;;;;;;AASpC,MAAM,CAAC,SAAS,CAAC,gBAAgB,CAAC;;;;;;;AAOlC,MAAM,CAAC,SAAS,CAAC,kBAAkB,CAAC;;;;;;;AAOpC,MAAM,CAAC,SAAS,CAAC,WAAW,CAAC;;AAE7B,MAAM,CAAC,SAAS,CAAC,iBAAiB,GAAG,YAAW;AAC9C,MAAI,IAAI,GAAG,sBAAS,aAAa,CAAC,GAAG,CAAC,CAAC;;;;AAIvC,SAAO,EAAE,WAAW,IAAI,IAAI,CAAC,KAAK,IAC1B,iBAAiB,IAAI,IAAI,CAAC,KAAK,IAC/B,cAAc,IAAI,IAAI,CAAC,KAAK,IAC5B,aAAa,IAAI,IAAI,CAAC,KAAK,IAC3B,aAAa,IAAI,IAAI,CAAC,KAAK,sCAAA,CAAA,AAAuC,CAAC;CAC5E,CAAC;;AAEF,uBAAU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;qBAC/B,MAAM;;;;;;;;;;;;;sBCnjFF,aAAa;;;;;;;;;;;AAShC,IAAI,MAAM,GAAG,gBAAS,IAAI,EAAE,IAAI,EAAC;AAC/B,sBAAO,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC/B,CAAC;;qBAEa,MAAM;;;;;;;;;;;;;;;;;uBCbF,aAAa;;;;yBACV,gBAAgB;;;;sBAClB,eAAe;;IAAvB,EAAE;;uBACO,gBAAgB;;IAAzB,GAAG;;uBACU,oBAAoB;;IAAjC,OAAO;;;;;;;;;;;IAUb,WAAW;AAEJ,WAFP,WAAW,CAEH,MAAM,EAAE,OAAO,EAAC;0BAFxB,WAAW;;AAGb,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;AAEvB,QAAI,CAAC,MAAM,EAAE,CAAC;AACd,UAAM,CAAC,EAAE,CAAC,cAAc,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;GACvD;;YAPG,WAAW;;;;;;;;AAAX,aAAW,WAcf,OAAO,GAAA,mBAAG;AACR,QAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,sBAAM,OAAO,KAAA,MAAE,CAAC;GACjB;;;;;;;;;AAjBG,aAAW,WAyBf,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,YAAY;;;AAGvB,cAAQ,EAAE,CAAC,CAAC;KACb,CAAC,CAAC;;;;;;AAMH,QAAI,CAAC,OAAO,CAAC,yBAAyB,EAAE;AACtC,UAAI,CAAC,YAAY,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;AACxC,QAAE,CAAC,WAAW,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;KACnC;;AAED,WAAO,EAAE,CAAC;GACX;;;;;;;;AA3CG,aAAW,WAkDf,MAAM,GAAA,kBAAG;AACP,QAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,EAAE,CAAC;;AAEjC,QAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;;;AAIjB,QAAI,GAAG,EAAE;AACP,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,MAAM;AACL,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;;;;;;;;AA9DG,aAAW,WAsEf,MAAM,GAAA,gBAAC,GAAG,EAAE;AACV,QAAI,IAAI,CAAC,YAAY,EAAE;AACrB,UAAI,CAAC,YAAY,CAAC,GAAG,GAAG,GAAG,CAAC;KAC7B,MAAM;AACL,UAAI,eAAe,GAAG,EAAE,CAAC;;;AAGzB,UAAI,GAAG,EAAE;AACP,uBAAe,aAAW,GAAG,OAAI,CAAC;OACnC;;AAED,UAAI,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,GAAG,eAAe,CAAC;KAClD;GACF;;;;;;;;AAnFG,aAAW,WA0Ff,WAAW,GAAA,uBAAG;;;AAGZ,QAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE;AACzB,UAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;KACrB,MAAM;AACL,UAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;KACtB;GACF;;SAlGG,WAAW;;;AAsGjB,uBAAU,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;qBACzC,WAAW;;;;;;;;;;;;;;;;sBClHF,mBAAmB;;IAA/B,MAAM;;wBACG,iBAAiB;;;;sBACnB,eAAe;;;;AAElC,IAAI,aAAa,GAAG,KAAK,CAAC;AAC1B,IAAI,OAAO,YAAA,CAAC;;;AAIZ,IAAI,SAAS,GAAG,qBAAU;;;;;;;;AAQxB,MAAI,IAAI,GAAG,sBAAS,oBAAoB,CAAC,OAAO,CAAC,CAAC;AAClD,MAAI,MAAM,GAAG,sBAAS,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACpD,MAAI,QAAQ,GAAG,EAAE,CAAC;AAClB,MAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,EAAE;AAC3B,SAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,IAAI,CAAC,MAAM,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACpC,cAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;KACxB;GACF;AACD,MAAI,MAAM,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;AAC/B,SAAI,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,MAAM,CAAC,MAAM,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACtC,cAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;KAC1B;GACF;;;AAGD,MAAI,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE;;AAEnC,SAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,GAAC,CAAC,EAAE,CAAC,EAAE,EAAE;AACzC,UAAI,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC;;;;AAI1B,UAAI,OAAO,IAAI,OAAO,CAAC,YAAY,EAAE;;;AAGnC,YAAI,OAAO,OAAU,KAAK,SAAS,EAAE;AACnC,cAAI,OAAO,GAAG,OAAO,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;;;;AAIjD,cAAI,OAAO,KAAK,IAAI,EAAE;;AAEpB,gBAAI,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;WAC/B;SACF;;;AAAA,OAGF,MAAM;AACL,wBAAgB,CAAC,CAAC,CAAC,CAAC;AACpB,cAAM;OACP;KACF;;;AAAA,GAGF,MAAM,IAAI,CAAC,aAAa,EAAE;AACzB,oBAAgB,CAAC,CAAC,CAAC,CAAC;GACrB;CACF,CAAC;;;AAGF,IAAI,gBAAgB,GAAG,0BAAS,IAAI,EAAE,GAAG,EAAC;AACxC,SAAO,GAAG,GAAG,CAAC;AACd,YAAU,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;CAC7B,CAAC;;AAEF,IAAI,sBAAS,UAAU,KAAK,UAAU,EAAE;AACtC,eAAa,GAAG,IAAI,CAAC;CACtB,MAAM;AACL,QAAM,CAAC,GAAG,sBAAS,MAAM,EAAE,YAAU;AACnC,iBAAa,GAAG,IAAI,CAAC;GACtB,CAAC,CAAC;CACJ;;AAED,IAAI,SAAS,GAAG,qBAAW;AACzB,SAAO,aAAa,CAAC;CACtB,CAAC;;QAEO,SAAS,GAAT,SAAS;QAAE,gBAAgB,GAAhB,gBAAgB;QAAE,SAAS,GAAT,SAAS;;;;;;;;;;;;;;;;0BCvFzB,iBAAiB;;;;sBAClB,iBAAiB;;IAA1B,GAAG;;wBACM,iBAAiB;;;;sBACnB,eAAe;;;;;;;;;;;;;IAU5B,MAAM;AAEC,WAFP,MAAM,CAEE,MAAM,EAAE,OAAO,EAAE;0BAFzB,MAAM;;AAGR,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;;;AAGvB,QAAI,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;;;AAGhD,QAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;;AAExC,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC3C,QAAI,CAAC,EAAE,CAAC,YAAY,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AAC5C,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;AACnC,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AACjC,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC;;AAEnC,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;AAChD,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;GAChD;;YAnBG,MAAM;;;;;;;;;;;AAAN,QAAM,WA6BV,QAAQ,GAAA,kBAAC,IAAI,EAAY;QAAV,KAAK,gCAAC,EAAE;;;AAErB,SAAK,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,GAAG,aAAa,CAAC;AAClD,SAAK,GAAG,oBAAO;AACb,YAAQ,QAAQ;AAChB,qBAAe,EAAE,CAAC;AAClB,qBAAe,EAAE,CAAC;AAClB,qBAAe,EAAE,GAAG;AACpB,cAAQ,EAAE,CAAC;KACZ,EAAE,KAAK,CAAC,CAAC;;AAEV,WAAO,qBAAM,QAAQ,KAAA,OAAC,IAAI,EAAE,KAAK,CAAC,CAAC;GACpC;;;;;;;;;AAzCG,QAAM,WAiDV,eAAe,GAAA,yBAAC,KAAK,EAAE;AACrB,SAAK,CAAC,cAAc,EAAE,CAAC;AACvB,OAAG,CAAC,kBAAkB,EAAE,CAAC;AACzB,QAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,CAAC;;AAE7B,QAAI,CAAC,EAAE,wBAAW,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACrD,QAAI,CAAC,EAAE,wBAAW,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AACjD,QAAI,CAAC,EAAE,wBAAW,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACrD,QAAI,CAAC,EAAE,wBAAW,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;;AAElD,QAAI,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;GAC7B;;;;;;;;AA5DG,QAAM,WAmEV,eAAe,GAAA,2BAAG,EAAE;;;;;;;;AAnEhB,QAAM,WA0EV,aAAa,GAAA,yBAAG;AACd,OAAG,CAAC,oBAAoB,EAAE,CAAC;AAC3B,QAAI,CAAC,WAAW,CAAC,aAAa,CAAC,CAAC;;AAEhC,QAAI,CAAC,GAAG,wBAAW,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACtD,QAAI,CAAC,GAAG,wBAAW,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;AAClD,QAAI,CAAC,GAAG,wBAAW,WAAW,EAAE,IAAI,CAAC,eAAe,CAAC,CAAC;AACtD,QAAI,CAAC,GAAG,wBAAW,UAAU,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;;AAEnD,QAAI,CAAC,MAAM,EAAE,CAAC;GACf;;;;;;;;AApFG,QAAM,WA2FV,MAAM,GAAA,kBAAG;;;AAGP,QAAI,CAAC,IAAI,CAAC,GAAG;AAAE,aAAO;KAAA;;;AAKtB,QAAI,QAAQ,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AACjC,QAAI,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC;;;AAGnB,QAAI,CAAC,GAAG;AAAE,aAAO;KAAA;AAGjB,QAAI,OAAO,QAAQ,KAAK,QAAQ,IAC5B,QAAQ,KAAK,QAAQ,IACrB,QAAQ,GAAG,CAAC,IACZ,QAAQ,KAAK,QAAQ,EAAE;AACrB,cAAQ,GAAG,CAAC,CAAC;KAClB;;;AAGD,QAAI,UAAU,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;;;AAGnD,QAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,SAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,UAAU,CAAC;KACpC,MAAM;AACL,SAAG,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,UAAU,CAAC;KACnC;GACF;;;;;;;;;AA1HG,QAAM,WAkIV,iBAAiB,GAAA,2BAAC,KAAK,EAAC;AACtB,QAAI,EAAE,GAAG,IAAI,CAAC,GAAG,CAAC;AAClB,QAAI,GAAG,GAAG,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,CAAC;AACjC,QAAI,IAAI,GAAG,EAAE,CAAC,WAAW,CAAC;AAC1B,QAAI,IAAI,GAAG,EAAE,CAAC,YAAY,CAAC;;AAE3B,QAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,UAAI,IAAI,GAAG,GAAG,CAAC,GAAG,CAAC;;AAEnB,UAAI,KAAK,YAAA,CAAC;AACV,UAAI,KAAK,CAAC,cAAc,EAAE;AACxB,aAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;OACvC,MAAM;AACL,aAAK,GAAG,KAAK,CAAC,KAAK,CAAC;OACrB;;;AAGD,aAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,AAAC,IAAI,GAAG,KAAK,GAAI,IAAI,CAAA,GAAI,IAAI,CAAC,CAAC,CAAC;KAEjE,MAAM;AACL,UAAI,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;;AAEpB,UAAI,KAAK,YAAA,CAAC;AACV,UAAI,KAAK,CAAC,cAAc,EAAE;AACxB,aAAK,GAAG,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;OACvC,MAAM;AACL,aAAK,GAAG,KAAK,CAAC,KAAK,CAAC;OACrB;;;AAGD,aAAO,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,KAAK,GAAG,IAAI,CAAA,GAAI,IAAI,CAAC,CAAC,CAAC;KACxD;GACF;;;;;;;;AAlKG,QAAM,WAyKV,WAAW,GAAA,uBAAG;AACZ,QAAI,CAAC,EAAE,wBAAW,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;GACnD;;;;;;;;;AA3KG,QAAM,WAmLV,cAAc,GAAA,wBAAC,KAAK,EAAE;AACpB,QAAI,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;;AAC5C,WAAK,CAAC,cAAc,EAAE,CAAC;AACvB,UAAI,CAAC,QAAQ,EAAE,CAAC;KACjB,MAAM,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,EAAE,EAAE;;AACnD,WAAK,CAAC,cAAc,EAAE,CAAC;AACvB,UAAI,CAAC,WAAW,EAAE,CAAC;KACpB;GACF;;;;;;;;AA3LG,QAAM,WAkMV,UAAU,GAAA,sBAAG;AACX,QAAI,CAAC,GAAG,wBAAW,SAAS,EAAE,IAAI,CAAC,cAAc,CAAC,CAAC;GACpD;;;;;;;;;;AApMG,QAAM,WA6MV,WAAW,GAAA,qBAAC,KAAK,EAAE;AACjB,SAAK,CAAC,wBAAwB,EAAE,CAAC;AACjC,SAAK,CAAC,cAAc,EAAE,CAAC;GACxB;;;;;;;;;;AAhNG,QAAM,WAyNV,QAAQ,GAAA,kBAAC,IAAI,EAAE;AACb,QAAI,IAAI,KAAK,SAAS,EAAE;AACtB,aAAO,IAAI,CAAC,SAAS,IAAI,KAAK,CAAC;KAChC;;AAED,QAAI,CAAC,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC;;AAExB,QAAI,IAAI,CAAC,SAAS,EAAE;AAClB,UAAI,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;KACtC,MAAM;AACL,UAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,CAAC;KACxC;;AAED,WAAO,IAAI,CAAC;GACb;;SAvOG,MAAM;;;AA2OZ,uBAAU,iBAAiB,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;qBAC/B,MAAM;;;;;;;;;;ACzPrB,SAAS,kBAAkB,CAAC,KAAK,EAAE;AACjC,OAAK,CAAC,gBAAgB,GAAG;AACvB,cAAU,EAAE,KAAK;AACjB,cAAU,EAAE,KAAK;GAClB,CAAC;;AAEF,OAAK,CAAC,eAAe,GAAG,UAAS,UAAU,EAAE,MAAM,EAAE;AACnD,WAAO,UAAU,GAAG,GAAG,GAAG,MAAM,CAAC;GAClC,CAAC;;AAEF,OAAK,CAAC,aAAa,GAAG,UAAS,GAAG,EAAE;AAClC,QAAI,KAAK,GAAG;AACV,gBAAU,EAAE,EAAE;AACd,YAAM,EAAE,EAAE;KACX,CAAC;;AAEF,QAAI,CAAC,GAAG,EAAE,OAAO,KAAK,CAAC;;;;;AAKvB,QAAI,OAAO,GAAG,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC/B,QAAI,WAAW,YAAA,CAAC;AAChB,QAAI,OAAO,KAAK,CAAC,CAAC,EAAE;AAClB,iBAAW,GAAG,OAAO,GAAG,CAAC,CAAC;KAC3B,MACI;;AAEH,aAAO,GAAG,WAAW,GAAG,GAAG,CAAC,WAAW,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;AACjD,UAAI,OAAO,KAAK,CAAC,EAAE;;AAEjB,eAAO,GAAG,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC;OACpC;KACF;AACD,SAAK,CAAC,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;AAC7C,SAAK,CAAC,MAAM,GAAG,GAAG,CAAC,SAAS,CAAC,WAAW,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;;AAEtD,WAAO,KAAK,CAAC;GACd,CAAC;;AAEF,OAAK,CAAC,eAAe,GAAG,UAAS,OAAO,EAAE;AACxC,WAAO,OAAO,IAAI,KAAK,CAAC,gBAAgB,CAAC;GAC1C,CAAC;;;;AAIF,OAAK,CAAC,OAAO,GAAG,mBAAmB,CAAC;;AAEpC,OAAK,CAAC,cAAc,GAAG,UAAS,GAAG,EAAE;AACnC,WAAO,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;GAChC,CAAC;;;;;;AAMF,OAAK,CAAC,iBAAiB,GAAG,EAAE,CAAC;;;;;;;AAO7B,OAAK,CAAC,iBAAiB,CAAC,eAAe,GAAG,UAAS,MAAM,EAAC;AACxD,QAAI,KAAK,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,KAAK,CAAC,cAAc,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;AAC1E,aAAO,OAAO,CAAC;KAChB;;AAED,WAAO,EAAE,CAAC;GACX,CAAC;;;;;;;;;AASF,OAAK,CAAC,iBAAiB,CAAC,YAAY,GAAG,UAAS,MAAM,EAAE,IAAI,EAAC;AAC3D,QAAI,QAAQ,GAAG,KAAK,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;AAE/C,QAAI,kBAAqB,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;AAC/C,QAAI,cAAiB,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;GACxC,CAAC;;;AAGF,OAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,iBAAiB,CAAC,CAAC;;AAErD,SAAO,KAAK,CAAC;CACd;;qBAEc,kBAAkB;;;;;;;;;;;;;;;;;;;;qBCvFhB,QAAQ;;;;sBACJ,iBAAiB;;IAA1B,GAAG;;uBACM,iBAAiB;;IAA1B,GAAG;;+BACiB,yBAAyB;;kCAC1B,cAAc;;;;yBACvB,cAAc;;;;sBACjB,eAAe;;;;sBACf,eAAe;;;;AAElC,IAAI,SAAS,GAAG,oBAAO,SAAS,CAAC;;;;;;;;;;IAS3B,KAAK;AAEE,WAFP,KAAK,CAEG,OAAO,EAAE,KAAK,EAAC;0BAFvB,KAAK;;AAGP,qBAAM,OAAO,EAAE,KAAK,CAAC,CAAC;;;AAGtB,QAAI,OAAO,CAAC,MAAM,EAAE;AAClB,UAAI,CAAC,KAAK,CAAC,YAAU;AACnB,YAAI,CAAC,SAAS,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;OAChC,EAAE,IAAI,CAAC,CAAC;KACV;;;;AAID,QAAI,OAAO,CAAC,SAAS,EAAE;AACrB,UAAI,CAAC,KAAK,CAAC,YAAU;AACnB,YAAI,CAAC,IAAI,EAAE,CAAC;AACZ,YAAI,CAAC,IAAI,EAAE,CAAC;AACZ,YAAI,CAAC,WAAW,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;OACrC,EAAE,IAAI,CAAC,CAAC;KACV;;;;;;AAMD,wBAAO,OAAO,GAAG,oBAAO,OAAO,IAAI,EAAE,CAAC;AACtC,wBAAO,OAAO,CAAC,KAAK,GAAG,oBAAO,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;AAClD,wBAAO,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7C,wBAAO,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;AAC7C,wBAAO,OAAO,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;;AAE7C,QAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAW;AAC3B,UAAI,CAAC,eAAe,GAAG,SAAS,CAAC;KAClC,CAAC,CAAC;GACJ;;YAnCG,KAAK;;;;;;;;;AAAL,OAAK,WA2CT,QAAQ,GAAA,oBAAG;AACT,QAAI,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;;;AAG5B,QAAI,KAAK,GAAG,OAAO,CAAC,MAAM,CAAC;;;AAG3B,QAAI,SAAS,GAAG,oBAAO;;;AAGrB,qBAAiB,uBAAuB;AACxC,0BAAsB,uBAAuB;AAC7C,+BAA2B,uBAAuB;;;AAGlD,gBAAY,OAAO,CAAC,QAAQ;AAC5B,eAAW,OAAO,CAAC,OAAO;AAC1B,YAAQ,OAAO,CAAC,IAAI;AACpB,aAAS,OAAO,CAAC,KAAK;;KAEvB,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;;;AAGtB,QAAI,MAAM,GAAG,oBAAO;AAClB,aAAS,QAAQ;AACjB,eAAW,SAAS;AAAA,KACrB,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;;;AAGnB,QAAI,UAAU,GAAG,oBAAO;AACtB,UAAM,KAAK;AACX,YAAQ,KAAK;AACb,aAAO,EAAE,UAAU;KACpB,EAAE,OAAO,CAAC,UAAU,CAAC,CAAC;;AAEvB,QAAI,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;AACnE,QAAI,CAAC,GAAG,CAAC,IAAI,GAAG,IAAI,CAAC;;AAErB,WAAO,IAAI,CAAC,GAAG,CAAC;GACjB;;;;;;;;AAlFG,OAAK,WAyFT,IAAI,GAAA,gBAAG;AACL,QAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;GACrB;;;;;;;;AA3FG,OAAK,WAkGT,KAAK,GAAA,iBAAG;AACN,QAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC;GACtB;;;;;;;;;;AApGG,OAAK,WA6GT,GAAG;;;;;;;;;;KAAA,UAAC,GAAG,EAAE;AACP,QAAI,GAAG,KAAK,SAAS,EAAE;AACrB,aAAO,IAAI,CAAC,UAAU,EAAE,CAAC;KAC1B;;;AAGD,WAAO,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;GACzB;;;;;;;;;;AApHG,OAAK,WA6HT,MAAM,GAAA,gBAAC,GAAG,EAAE;;AAEV,OAAG,GAAG,GAAG,CAAC,cAAc,CAAC,GAAG,CAAC,CAAC;AAC9B,QAAI,CAAC,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;;;;AAItB,QAAI,IAAI,CAAC,QAAQ,EAAE,EAAE;AACnB,UAAI,IAAI,GAAG,IAAI,CAAC;AAChB,UAAI,CAAC,UAAU,CAAC,YAAU;AAAE,YAAI,CAAC,IAAI,EAAE,CAAC;OAAE,EAAE,CAAC,CAAC,CAAC;KAChD;GACF;;;;;;;AAxIG,OAAK,WA8IT,OAAO,GAAA,mBAAG;AACR,WAAO,IAAI,CAAC,eAAe,KAAK,SAAS,CAAC;GAC3C;;;;;;;;;AAhJG,OAAK,WAwJT,cAAc,GAAA,wBAAC,IAAI,EAAE;AACnB,QAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AAC/B,QAAI,QAAQ,CAAC,MAAM,EAAE;;AAEnB,UAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC3D,UAAI,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;;AAE3F,UAAI,CAAC,eAAe,GAAG,IAAI,CAAC;AAC5B,UAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACxB,UAAI,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,CAAC;AAC9C,sBAAM,cAAc,KAAA,MAAE,CAAC;KACxB;GACF;;;;;;;;;;AApKG,OAAK,WA6KT,WAAW,GAAA,qBAAC,IAAI,EAAE;;;AAGhB,QAAI,IAAI,CAAC,OAAO,EAAE,EAAE;AAClB,aAAO,IAAI,CAAC,eAAe,IAAI,CAAC,CAAC;KAClC;AACD,WAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,aAAa,CAAC,CAAC;GAChD;;;;;;;;AApLG,OAAK,WA2LT,UAAU,GAAA,sBAAG;AACX,QAAI,IAAI,CAAC,cAAc,EAAE;AACvB,aAAO,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC;KAChC,MAAM;AACL,aAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,YAAY,CAAC,CAAC;KAC/C;GACF;;;;;;;;AAjMG,OAAK,WAwMT,IAAI,GAAA,gBAAG;AACL,QAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;GACrB;;;;;;;;AA1MG,OAAK,WAiNT,MAAM,GAAA,kBAAG;AACP,QAAI,CAAC,GAAG,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;GACpC;;;;;;;;AAnNG,OAAK,WA0NT,SAAS,GAAA,qBAAG,EAAE;;;;;;;;;AA1NV,OAAK,WAkOT,QAAQ,GAAA,oBAAG;AACT,QAAM,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;AACjC,QAAI,QAAQ,KAAK,CAAC,EAAE;AAClB,aAAO,iBApPJ,eAAe,EAoPM,CAAC;KAC1B;AACD,WAAO,iBAtPF,eAAe,CAsPG,CAAC,EAAE,QAAQ,CAAC,CAAC;GACrC;;;;;;;;;AAxOG,OAAK,WAgPT,QAAQ,GAAA,oBAAG;AACT,WAAO,iBAhQF,eAAe,CAgQG,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC,CAAC;GACjE;;;;;;;;;;;AAlPG,OAAK,WA4PT,kBAAkB,GAAA,8BAAG;AACnB,WAAO,KAAK,CAAC;GACd;;;;;;;;;;;AA9PG,OAAK,WAwQT,eAAe,GAAA,2BAAG;AAChB,WAAO,KAAK,CAAC;GACd;;SA1QG,KAAK;;;;AAgRX,IAAM,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC;AAC7B,IAAM,UAAU,GAAG,2IAA2I,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC1K,IAAM,SAAS,GAAG,gIAAgI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;AAE9J,SAAS,aAAa,CAAC,IAAI,EAAC;AAC1B,MAAI,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAI,CAAC,KAAK,GAAC,SAAS,CAAC,GAAG,UAAS,GAAG,EAAC;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;GAAE,CAAC;CACtF;AACD,SAAS,aAAa,CAAC,IAAI,EAAE;AAC3B,MAAI,CAAC,IAAI,CAAC,GAAG,YAAU;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;GAAE,CAAC;CACnE;;;AAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,eAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7B,eAAa,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;CAC9B;;;AAGD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACzC,eAAa,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;CAC7B;;;;AAID,KAAK,CAAC,WAAW,GAAG,YAAU;AAC5B,SAAO,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;;CAEjC,CAAC;;;AAGF,kBAAK,kBAAkB,CAAC,KAAK,CAAC,CAAC;;;;;;;;;AAS/B,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC;;;;;;;;AAQ/B,KAAK,CAAC,mBAAmB,CAAC,eAAe,GAAG,UAAS,MAAM,EAAC;AAC1D,MAAI,IAAI,CAAC;;AAET,WAAS,aAAa,CAAC,GAAG,EAAE;AAC1B,QAAI,GAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC;AACpC,QAAI,GAAG,EAAE;AACP,wBAAgB,GAAG,CAAG;KACvB;AACD,WAAO,EAAE,CAAC;GACX;;AAED,MAAI,CAAC,MAAM,CAAC,IAAI,EAAE;AAChB,QAAI,GAAG,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;GAClC,MAAM;;AAEL,QAAI,GAAG,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC;GACrD;;AAED,MAAI,IAAI,IAAI,KAAK,CAAC,OAAO,EAAE;AACzB,WAAO,OAAO,CAAC;GAChB;;AAED,SAAO,EAAE,CAAC;CACX,CAAC;;;;;;;;;;AAUF,KAAK,CAAC,mBAAmB,CAAC,YAAY,GAAG,UAAS,MAAM,EAAE,IAAI,EAAC;AAC7D,MAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CACzB,CAAC;;;;;;AAMF,KAAK,CAAC,mBAAmB,CAAC,OAAO,GAAG,YAAU,EAAE,CAAC;;;AAGjD,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;;AAEvD,KAAK,CAAC,OAAO,GAAG;AACd,aAAW,EAAE,KAAK;AAClB,eAAa,EAAE,KAAK;AACpB,aAAW,EAAE,KAAK;AAClB,aAAW,EAAE,KAAK;CACnB,CAAC;;AAEF,KAAK,CAAC,OAAO,GAAG,UAAS,OAAO,EAAC;AAC/B,MAAI,EAAE,GAAG,GAAG,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;AAC5B,MAAI,IAAI,GAAG,EAAE,IAAI,EAAE,CAAC,IAAI,CAAC;;;;AAIzB,MAAI,IAAI,IAAI,IAAI,CAAC,EAAE,EAAE,EAAE;;AAErB,SAAK,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;GACxB;CACF,CAAC;;;;AAIF,KAAK,CAAC,UAAU,GAAG,UAAS,IAAI,EAAC;;AAE/B,MAAI,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE;AACd,WAAO;GACR;;;AAGD,MAAI,IAAI,CAAC,EAAE,EAAE,CAAC,eAAe,EAAE;;AAE7B,QAAI,CAAC,YAAY,EAAE,CAAC;GACrB,MAAM;;AAEL,QAAI,CAAC,UAAU,CAAC,YAAU;AACxB,WAAK,WAAc,CAAC,IAAI,CAAC,CAAC;KAC3B,EAAE,EAAE,CAAC,CAAC;GACR;CACF,CAAC;;;AAGF,KAAK,CAAC,OAAO,GAAG,UAAS,KAAK,EAAE,SAAS,EAAC;AACxC,MAAI,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACjC,MAAI,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;CACzB,CAAC;;;AAGF,KAAK,CAAC,OAAO,GAAG,UAAS,KAAK,EAAE,GAAG,EAAC;AAClC,MAAM,IAAI,GAAG,GAAG,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC;AACnC,MAAM,GAAG,GAAG,SAAS,GAAC,GAAG,CAAC;;AAE1B,MAAI,GAAG,KAAK,aAAa,EAAE;AACzB,QAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;;;GAGlD,MAAM;AACL,QAAI,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;GAC5B;CACF,CAAC;;;AAGF,KAAK,CAAC,OAAO,GAAG,YAAU;AACxB,MAAI,OAAO,GAAG,OAAO,CAAC;;;AAGtB,MAAI;AACF,WAAO,GAAG,IAAI,oBAAO,aAAa,CAAC,+BAA+B,CAAC,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;;;GAGzI,CAAC,OAAM,CAAC,EAAE;AACT,QAAI;AACF,UAAI,SAAS,CAAC,SAAS,CAAC,+BAA+B,CAAC,CAAC,aAAa,EAAC;AACrE,eAAO,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,qBAAqB,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAA,CAAE,WAAW,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC;OACtJ;KACF,CAAC,OAAM,GAAG,EAAE,EAAE;GAChB;AACD,SAAO,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;CAC3B,CAAC;;;AAGF,KAAK,CAAC,KAAK,GAAG,UAAS,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAC;AACxD,MAAM,IAAI,GAAG,KAAK,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,CAAC,CAAC;;;AAGpE,MAAM,GAAG,GAAG,GAAG,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;;AAEnE,SAAO,GAAG,CAAC;CACZ,CAAC;;AAEF,KAAK,CAAC,YAAY,GAAG,UAAS,GAAG,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAC;AAC/D,MAAM,MAAM,GAAG,+CAA+C,CAAC;AAC/D,MAAI,eAAe,GAAG,EAAE,CAAC;AACzB,MAAI,YAAY,GAAG,EAAE,CAAC;AACtB,MAAI,WAAW,GAAG,EAAE,CAAC;;;AAGrB,MAAI,SAAS,EAAE;AACb,UAAM,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG,EAAC;AACzD,qBAAe,SAAO,GAAG,SAAI,SAAS,CAAC,GAAG,CAAC,UAAO,CAAC;KACpD,CAAC,CAAC;GACJ;;;AAGD,QAAM,GAAG,oBAAO;AACd,WAAS,GAAG;AACZ,eAAa,eAAe;AAC5B,uBAAqB,QAAQ;AAC7B,qBAAmB,KAAK;AAAA,GACzB,EAAE,MAAM,CAAC,CAAC;;;AAGX,QAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG,EAAC;AACtD,gBAAY,sBAAoB,GAAG,iBAAY,MAAM,CAAC,GAAG,CAAC,SAAM,CAAC;GAClE,CAAC,CAAC;;AAEH,YAAU,GAAG,oBAAO;;AAElB,UAAQ,GAAG;;;AAGX,WAAS,MAAM;AACf,YAAU,MAAM;;GAEjB,EAAE,UAAU,CAAC,CAAC;;;AAGf,QAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAS,GAAG,EAAC;AAC1D,eAAW,SAAO,GAAG,UAAK,UAAU,CAAC,GAAG,CAAC,OAAI,CAAC;GAC/C,CAAC,CAAC;;AAEH,cAAU,MAAM,QAAG,WAAW,SAAI,YAAY,eAAY;CAC3D,CAAC;;;AAGF,gCAAmB,KAAK,CAAC,CAAC;;AAE1B,uBAAU,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;qBAC7B,KAAK;;;;;;;;;;;;;;;;;;qBC1gBH,WAAW;;;;yBACN,cAAc;;;;sBACf,iBAAiB;;IAA1B,GAAG;;uBACM,iBAAiB;;IAA1B,GAAG;;uBACK,gBAAgB;;IAAxB,EAAE;;mBACE,iBAAiB;;;;uBACR,qBAAqB;;IAAlC,OAAO;;wBACE,iBAAiB;;;;sBACnB,eAAe;;;;sBACf,eAAe;;;;4BACT,2BAA2B;;;;;;;;;;;;;IAU9C,KAAK;AAEE,WAFP,KAAK,CAEG,OAAO,EAAE,KAAK,EAAC;0BAFvB,KAAK;;AAGP,qBAAM,OAAO,EAAE,KAAK,CAAC,CAAC;;AAEtB,QAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;;;;;;AAM9B,QAAI,MAAM,KAAK,IAAI,CAAC,GAAG,CAAC,UAAU,KAAK,MAAM,CAAC,GAAG,IAAK,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,KAAK,CAAC,CAAC,AAAC,EAAE;AAC1G,UAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KACxB;;AAED,QAAI,IAAI,CAAC,GAAG,CAAC,aAAa,EAAE,EAAE;;AAE5B,UAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;AAChC,UAAI,WAAW,GAAG,KAAK,CAAC,MAAM,CAAC;AAC/B,UAAI,WAAW,GAAG,EAAE,CAAC;;AAErB,aAAO,WAAW,EAAE,EAAE;AACpB,YAAI,IAAI,GAAG,KAAK,CAAC,WAAW,CAAC,CAAC;AAC9B,YAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC;AAC3C,YAAI,QAAQ,KAAK,OAAO,EAAE;AACxB,cAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;;;;;AAKlC,uBAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;WACxB,MAAM;AACL,gBAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;WAC/C;SACF;OACF;;AAED,WAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,WAAW,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACvC,YAAI,CAAC,GAAG,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC;OACtC;KACF;;AAED,QAAI,IAAI,CAAC,wBAAwB,EAAE;AACjC,UAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACxE,UAAI,CAAC,mBAAmB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,kBAAkB,CAAC,CAAC;AAClE,UAAI,CAAC,sBAAsB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,qBAAqB,CAAC,CAAC;AACxE,UAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;;;;;;AAMD,QAAI,OAAO,CAAC,aAAa,IAAI,OAAO,CAAC,sBAAsB,KAAK,IAAI,EAAE;AACpE,UAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;KACnC;;AAED,QAAI,CAAC,YAAY,EAAE,CAAC;GACrB;;YA1DG,KAAK;;;;;;;;AAAL,OAAK,WAiET,OAAO,GAAA,mBAAG;AACR,QAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;AAC9B,QAAI,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;;;AAGnC,QAAI,EAAE,IAAI,EAAE,CAAC,mBAAmB,EAAE;AAChC,QAAE,CAAC,mBAAmB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC9D,QAAE,CAAC,mBAAmB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC7D,QAAE,CAAC,mBAAmB,CAAC,aAAa,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACpE;;;AAGD,QAAI,CAAC,GAAG,UAAU,CAAC,MAAM,CAAC;;AAE1B,WAAO,CAAC,EAAE,EAAE;AACV,gBAAU,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;KACxC;;AAGD,SAAK,CAAC,mBAAmB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACpC,oBAAM,OAAO,KAAA,MAAE,CAAC;GACjB;;;;;;;;;AAtFG,OAAK,WA8FT,QAAQ,GAAA,oBAAG;AACT,QAAI,EAAE,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC;;;;;AAK3B,QAAI,CAAC,EAAE,IAAI,IAAI,wBAA2B,KAAK,KAAK,EAAE;;;AAGpD,UAAI,EAAE,EAAE;AACN,YAAM,KAAK,GAAG,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;AACjC,UAAE,CAAC,UAAU,CAAC,YAAY,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;AACtC,aAAK,CAAC,mBAAmB,CAAC,EAAE,CAAC,CAAC;AAC9B,UAAE,GAAG,KAAK,CAAC;OACZ,MAAM;AACL,UAAE,GAAG,sBAAS,aAAa,CAAC,OAAO,CAAC,CAAC;;;AAGrC,YAAI,aAAa,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,IAAI,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC;AAChF,YAAI,UAAU,GAAG,0BAAa,EAAE,EAAE,aAAa,CAAC,CAAC;AACjD,YAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,QAAQ,CAAC,sBAAsB,KAAK,IAAI,EAAE;AAC3E,iBAAO,UAAU,CAAC,QAAQ,CAAC;SAC5B;;AAED,WAAG,CAAC,eAAe,CAAC,EAAE,EACpB,oBAAO,UAAU,EAAE;AACjB,YAAE,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM;AACxB,mBAAO,UAAU;SAClB,CAAC,CACH,CAAC;OACH;KACF;;;AAGD,QAAI,aAAa,GAAG,CAAC,UAAU,EAAC,SAAS,EAAC,MAAM,EAAC,OAAO,CAAC,CAAC;AAC1D,SAAK,IAAI,CAAC,GAAG,aAAa,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAClD,UAAM,IAAI,GAAG,aAAa,CAAC,CAAC,CAAC,CAAC;AAC9B,UAAI,cAAc,GAAG,EAAE,CAAC;AACxB,UAAI,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,WAAW,EAAE;AAC9C,sBAAc,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;OAC5C;AACD,SAAG,CAAC,eAAe,CAAC,EAAE,EAAE,cAAc,CAAC,CAAC;KACzC;;AAED,WAAO,EAAE,CAAC;;GAEX;;AA5IG,OAAK,WA+IT,sBAAsB,GAAA,kCAAG;AACvB,QAAI,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC;;AAE9B,QAAI,EAAE,IAAI,EAAE,CAAC,gBAAgB,EAAE;AAC7B,QAAE,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;AAC3D,QAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,mBAAmB,CAAC,CAAC;AAC1D,QAAE,CAAC,gBAAgB,CAAC,aAAa,EAAE,IAAI,CAAC,sBAAsB,CAAC,CAAC;KACjE;GACF;;AAvJG,OAAK,WAyJT,qBAAqB,GAAA,+BAAC,CAAC,EAAE;AACvB,QAAI,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC3B,QAAI,CAAC,UAAU,EAAE,CAAC,OAAO,CAAC;AACxB,UAAI,EAAE,QAAQ;AACd,YAAM,EAAE,EAAE;AACV,mBAAa,EAAE,EAAE;AACjB,gBAAU,EAAE,EAAE;KACf,CAAC,CAAC;GACJ;;AAjKG,OAAK,WAmKT,kBAAkB,GAAA,4BAAC,CAAC,EAAE;AACpB,QAAI,CAAC,UAAU,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GACtC;;AArKG,OAAK,WAuKT,qBAAqB,GAAA,+BAAC,CAAC,EAAE;AACvB,QAAI,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;GACzC;;;;;;;;AAzKG,OAAK,WAgLT,IAAI,GAAA,gBAAG;AAAE,QAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;GAAE;;;;;;;;AAhLvB,OAAK,WAuLT,KAAK,GAAA,iBAAG;AAAE,QAAI,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC;GAAE;;;;;;;;;AAvLzB,OAAK,WA+LT,MAAM,GAAA,kBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;GAAE;;;;;;;;;AA/LhC,OAAK,WAuMT,WAAW,GAAA,uBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;GAAE;;;;;;;;;AAvM1C,OAAK,WA+MT,cAAc,GAAA,wBAAC,OAAO,EAAE;AACtB,QAAI;AACF,UAAI,CAAC,GAAG,CAAC,WAAW,GAAG,OAAO,CAAC;KAChC,CAAC,OAAM,CAAC,EAAE;AACT,uBAAI,CAAC,EAAE,gCAAgC,CAAC,CAAC;;KAE1C;GACF;;;;;;;;;AAtNG,OAAK,WA8NT,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,IAAI,CAAC,CAAC;GAAE;;;;;;;;;;;AA9NzC,OAAK,WAwOT,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;GAAE;;;;;;;;;AAxOpC,OAAK,WAgPT,MAAM,GAAA,kBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;GAAE;;;;;;;;;AAhPhC,OAAK,WAwPT,SAAS,GAAA,mBAAC,gBAAgB,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,MAAM,GAAG,gBAAgB,CAAC;GAAE;;;;;;;;;AAxP/D,OAAK,WAgQT,KAAK,GAAA,iBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;GAAE;;;;;;;;;AAhQ9B,OAAK,WAwQT,QAAQ,GAAA,kBAAC,KAAK,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,KAAK,GAAG,KAAK,CAAC;GAAE;;;;;;;;;AAxQvC,OAAK,WAgRT,KAAK,GAAA,iBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;GAAE;;;;;;;;;AAhRpC,OAAK,WAwRT,MAAM,GAAA,kBAAG;AAAG,WAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;GAAE;;;;;;;;;AAxRvC,OAAK,WAgST,kBAAkB,GAAA,8BAAG;AACnB,QAAI,OAAO,IAAI,CAAC,GAAG,CAAC,qBAAqB,KAAK,UAAU,EAAE;AACxD,UAAI,SAAS,GAAG,oBAAO,SAAS,CAAC,SAAS,CAAC;;AAE3C,UAAI,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE;AACxE,eAAO,IAAI,CAAC;OACb;KACF;AACD,WAAO,KAAK,CAAC;GACd;;;;;;;;AAzSG,OAAK,WAgTT,eAAe,GAAA,2BAAG;AAChB,QAAI,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC;;AAErB,QAAI,4BAA4B,IAAI,KAAK,EAAE;AACzC,UAAI,CAAC,GAAG,CAAC,uBAAuB,EAAE,YAAW;AAC3C,YAAI,CAAC,GAAG,CAAC,qBAAqB,EAAE,YAAW;AACzC,cAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,KAAK,EAAE,CAAC,CAAC;SAC3D,CAAC,CAAC;;AAEH,YAAI,CAAC,OAAO,CAAC,kBAAkB,EAAE,EAAE,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC;OAC1D,CAAC,CAAC;KACJ;;AAED,QAAI,KAAK,CAAC,MAAM,IAAI,KAAK,CAAC,YAAY,IAAI,KAAK,CAAC,aAAa,EAAE;;;AAG7D,UAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;;;;AAIhB,UAAI,CAAC,UAAU,CAAC,YAAU;AACxB,aAAK,CAAC,KAAK,EAAE,CAAC;AACd,aAAK,CAAC,qBAAqB,EAAE,CAAC;OAC/B,EAAE,CAAC,CAAC,CAAC;KACP,MAAM;AACL,WAAK,CAAC,qBAAqB,EAAE,CAAC;KAC/B;GACF;;;;;;;;AA3UG,OAAK,WAkVT,cAAc,GAAA,0BAAG;AACf,QAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,CAAC;GACjC;;;;;;;;;;AApVG,OAAK,WA6VT,GAAG;;;;;;;;;;KAAA,UAAC,GAAG,EAAE;AACP,QAAI,GAAG,KAAK,SAAS,EAAE;AACrB,aAAO,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC;KACrB,MAAM;;AAEL,UAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KAClB;GACF;;;;;;;;;;AApWG,OAAK,WA6WT,MAAM,GAAA,gBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC;GAAE;;;;;;;;AA7W/B,OAAK,WAoXT,IAAI,GAAA,gBAAE;AAAE,QAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;GAAE;;;;;;;;;AApXtB,OAAK,WA4XT,UAAU,GAAA,sBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;GAAE;;;;;;;;;AA5XxC,OAAK,WAoYT,MAAM,GAAA,kBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;GAAE;;;;;;;;;AApYhC,OAAK,WA4YT,SAAS,GAAA,mBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,MAAM,GAAG,GAAG,CAAC;GAAE;;;;;;;;;AA5YrC,OAAK,WAoZT,OAAO,GAAA,mBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;GAAE;;;;;;;;;AApZlC,OAAK,WA4ZT,UAAU,GAAA,oBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,OAAO,GAAG,GAAG,CAAC;GAAE;;;;;;;;;AA5ZvC,OAAK,WAoaT,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;GAAE;;;;;;;;;AApapC,OAAK,WA4aT,WAAW,GAAA,qBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,GAAG,CAAC;GAAE;;;;;;;;;AA5azC,OAAK,WAobT,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;GAAE;;;;;;;;;AApbpC,OAAK,WA4bT,WAAW,GAAA,qBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC;GAAE;;;;;;;;;AA5b3C,OAAK,WAocT,IAAI,GAAA,gBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;GAAE;;;;;;;;;AApc5B,OAAK,WA4cT,OAAO,GAAA,iBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;GAAE;;;;;;;;;AA5cjC,OAAK,WAodT,KAAK,GAAA,iBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;GAAE;;;;;;;;;AApd9B,OAAK,WA4dT,OAAO,GAAA,mBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;GAAE;;;;;;;;;;;AA5dlC,OAAK,WAseT,QAAQ,GAAA,oBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC;GAAE;;;;;;;;;AAtepC,OAAK,WA8eT,KAAK,GAAA,iBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC;GAAE;;;;;;;;;;;AA9e9B,OAAK,WAwfT,YAAY,GAAA,wBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;GAAE;;;;;;;;;AAxf5C,OAAK,WAggBT,YAAY,GAAA,wBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;GAAE;;;;;;;;;;AAhgB5C,OAAK,WAygBT,MAAM,GAAA,kBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC;GAAE;;;;;;;;;AAzgBhC,OAAK,WAihBT,eAAe,GAAA,yBAAC,GAAG,EAAE;AAAE,QAAI,CAAC,GAAG,CAAC,YAAY,GAAG,GAAG,CAAC;GAAE;;;;;;;;;;;;;;AAjhBjD,OAAK,WA8hBT,YAAY,GAAA,wBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC;GAAE;;;;;;;;;;;;;;;;AA9hB5C,OAAK,WA6iBT,UAAU,GAAA,sBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;GAAE;;;;;;;;;AA7iBxC,OAAK,WAqjBT,UAAU,GAAA,sBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,UAAU,CAAC;GAAE;;;;;;;;;AArjBxC,OAAK,WA6jBT,WAAW,GAAA,uBAAG;AAAE,WAAO,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;GAAE;;;;;;;;;AA7jB1C,OAAK,WAqkBT,UAAU,GAAA,sBAAG;AACX,WAAO,gBAAM,UAAU,KAAA,MAAE,CAAC;GAC3B;;;;;;;;;;;;;AAvkBG,OAAK,WAmlBT,YAAY,GAAA,sBAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AAClC,QAAI,CAAC,IAAI,yBAA4B,EAAE;AACrC,aAAO,gBAAM,YAAY,KAAA,OAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;KAClD;;AAED,WAAO,IAAI,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;GACrD;;;;;;;;;;;AAzlBG,OAAK,WAmmBT,kBAAkB,GAAA,8BAAa;QAAZ,OAAO,gCAAC,EAAE;;AAC3B,QAAI,CAAC,IAAI,yBAA4B,EAAE;AACrC,aAAO,gBAAM,kBAAkB,KAAA,OAAC,OAAO,CAAC,CAAC;KAC1C;;AAED,QAAI,KAAK,GAAG,sBAAS,aAAa,CAAC,OAAO,CAAC,CAAC;;AAE5C,QAAI,OAAO,KAAQ,EAAE;AACnB,WAAK,KAAQ,GAAG,OAAO,KAAQ,CAAC;KACjC;AACD,QAAI,OAAO,MAAS,EAAE;AACpB,WAAK,MAAS,GAAG,OAAO,MAAS,CAAC;KACnC;AACD,QAAI,OAAO,SAAY,IAAI,OAAO,QAAW,EAAE;AAC7C,WAAK,QAAW,GAAG,OAAO,SAAY,IAAI,OAAO,QAAW,CAAC;KAC9D;AACD,QAAI,OAAO,CAAC,SAAS,CAAC,EAAE;AACtB,WAAK,CAAC,SAAS,CAAC,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;KACvC;AACD,QAAI,OAAO,GAAM,EAAE;AACjB,WAAK,GAAM,GAAG,OAAO,GAAM,CAAC;KAC7B;AACD,QAAI,OAAO,IAAO,EAAE;AAClB,WAAK,IAAO,GAAG,OAAO,IAAO,CAAC;KAC/B;;AAED,QAAI,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;AAE7B,QAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;;AAE/C,WAAO,KAAK,CAAC;GACd;;;;;;;;;AAloBG,OAAK,WA0oBT,qBAAqB,GAAA,+BAAC,KAAK,EAAE;AAC3B,QAAI,CAAC,IAAI,yBAA4B,EAAE;AACrC,aAAO,gBAAM,qBAAqB,KAAA,OAAC,KAAK,CAAC,CAAC;KAC3C;;AAED,QAAI,MAAM,EAAE,CAAC,CAAC;;AAEd,QAAI,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;;AAE5C,UAAM,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;;AAE7C,KAAC,GAAG,MAAM,CAAC,MAAM,CAAC;AAClB,WAAO,CAAC,EAAE,EAAE;AACV,UAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;AACpD,YAAI,CAAC,EAAE,EAAE,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;OAClC;KACF;GACF;;SA3pBG,KAAK;;;;;;;;;;;;AAyqBX,KAAK,CAAC,QAAQ,GAAG,sBAAS,aAAa,CAAC,OAAO,CAAC,CAAC;AACjD,IAAI,KAAK,GAAG,sBAAS,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5C,KAAK,CAAC,IAAI,GAAG,UAAU,CAAC;AACxB,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC;AACxB,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;;;;;;;AAOlC,KAAK,CAAC,WAAW,GAAG,YAAU;;AAE5B,MAAI;AACF,SAAK,CAAC,QAAQ,OAAU,GAAG,GAAG,CAAC;GAChC,CAAC,OAAO,CAAC,EAAE;AACV,WAAO,KAAK,CAAC;GACd;;AAED,SAAO,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC;CACrC,CAAC;;;AAGF,kBAAK,kBAAkB,CAAC,KAAK,CAAC,CAAC;;;;;;;;;AAS/B,KAAK,CAAC,mBAAmB,GAAG,EAAE,CAAC;;;;;;;;AAQ/B,KAAK,CAAC,mBAAmB,CAAC,eAAe,GAAG,UAAS,MAAM,EAAC;AAC1D,MAAI,KAAK,EAAE,GAAG,CAAC;;AAEf,WAAS,WAAW,CAAC,IAAI,EAAC;;;AAGxB,QAAI;AACF,aAAO,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;KACzC,CAAC,OAAM,CAAC,EAAE;AACT,aAAO,EAAE,CAAC;KACX;GACF;;;AAGD,MAAI,MAAM,CAAC,IAAI,EAAE;AACf,WAAO,WAAW,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;GACjC,MAAM,IAAI,MAAM,CAAC,GAAG,EAAE;;AAErB,OAAG,GAAG,GAAG,CAAC,gBAAgB,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;;AAEvC,WAAO,WAAW,YAAU,GAAG,CAAG,CAAC;GACpC;;AAED,SAAO,EAAE,CAAC;CACX,CAAC;;;;;;;;;;AAUF,KAAK,CAAC,mBAAmB,CAAC,YAAY,GAAG,UAAS,MAAM,EAAE,IAAI,EAAC;AAC7D,MAAI,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;CACzB,CAAC;;;;;;AAMF,KAAK,CAAC,mBAAmB,CAAC,OAAO,GAAG,YAAU,EAAE,CAAC;;;AAGjD,KAAK,CAAC,qBAAqB,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;;;;;;;;;AASvD,KAAK,CAAC,gBAAgB,GAAG,YAAU;AACjC,MAAI,MAAM,GAAI,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;AACpC,OAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,AAAC,MAAM,GAAG,CAAC,GAAI,GAAG,CAAC;AAC3C,SAAO,MAAM,KAAK,KAAK,CAAC,QAAQ,CAAC,MAAM,CAAC;CACzC,CAAC;;;;;;;AAOF,KAAK,CAAC,sBAAsB,GAAG,YAAU;AACvC,MAAI,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;AAC/C,OAAK,CAAC,QAAQ,CAAC,YAAY,GAAG,AAAC,YAAY,GAAG,CAAC,GAAI,GAAG,CAAC;AACvD,SAAO,YAAY,KAAK,KAAK,CAAC,QAAQ,CAAC,YAAY,CAAC;CACrD,CAAC;;;;;;;AAOF,KAAK,CAAC,wBAAwB,GAAG,YAAW;AAC1C,MAAI,kBAAkB,CAAC;;;;;;;AAOvB,oBAAkB,GAAG,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC;AACjD,MAAI,kBAAkB,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AAC9D,sBAAkB,GAAG,OAAO,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC,CAAC,KAAQ,KAAK,QAAQ,CAAC;GAC/E;AACD,MAAI,kBAAkB,IAAI,OAAO,CAAC,UAAU,EAAE;AAC5C,sBAAkB,GAAG,KAAK,CAAC;GAC5B;AACD,MAAI,kBAAkB,IAAI,EAAE,eAAe,IAAI,KAAK,CAAC,QAAQ,CAAC,UAAU,CAAA,AAAC,EAAE;AACzE,sBAAkB,GAAG,KAAK,CAAC;GAC5B;;AAED,SAAO,kBAAkB,CAAC;CAC3B,CAAC;;;;;;;;AAQF,KAAK,CAAC,MAAM,GAAG,CACb,WAAW,EACX,SAAS,EACT,OAAO,EACP,OAAO,EACP,SAAS,EACT,SAAS,EACT,gBAAgB,EAChB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,SAAS,EACT,SAAS,EACT,SAAS,EACT,QAAQ,EACR,OAAO,EACP,gBAAgB,EAChB,YAAY,EACZ,UAAU,EACV,MAAM,EACN,OAAO,EACP,YAAY,EACZ,cAAc,CACf,CAAC;;;;;;;AAOF,KAAK,CAAC,SAAS,sBAAyB,GAAG,KAAK,CAAC,gBAAgB,EAAE,CAAC;;;;;;;AAOpE,KAAK,CAAC,SAAS,qBAAwB,GAAG,KAAK,CAAC,sBAAsB,EAAE,CAAC;;;;;;;;AAQzE,KAAK,CAAC,SAAS,wBAA2B,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;;;;;;;AAO7D,KAAK,CAAC,SAAS,yBAA4B,GAAG,IAAI,CAAC;;;;;;AAMnD,KAAK,CAAC,SAAS,uBAA0B,GAAG,IAAI,CAAC;;;;;;;AAOjD,KAAK,CAAC,SAAS,yBAA4B,GAAG,KAAK,CAAC,wBAAwB,EAAE,CAAC;;;AAG/E,IAAI,WAAW,YAAA,CAAC;AAChB,IAAM,SAAS,GAAG,2CAA2C,CAAC;AAC9D,IAAM,KAAK,GAAG,cAAc,CAAC;;AAE7B,KAAK,CAAC,gBAAgB,GAAG,YAAW;;AAElC,MAAI,OAAO,CAAC,eAAe,IAAI,CAAG,EAAE;AAClC,QAAI,CAAC,WAAW,EAAE;AAChB,iBAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC;KAChE;;AAED,SAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,IAAI,EAAE;AAChE,UAAI,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAChC,eAAO,OAAO,CAAC;OAChB;AACD,aAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACrC,CAAC;GACH;;;AAGD,MAAI,OAAO,CAAC,cAAc,EAAE;AAC1B,QAAI,CAAC,WAAW,EAAE;AAChB,iBAAW,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC;KAChE;;AAED,SAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,UAAS,IAAI,EAAC;AAC/D,UAAI,IAAI,IAAI,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;AAC5B,eAAO,OAAO,CAAC;OAChB;AACD,aAAO,WAAW,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;KACrC,CAAC;GACH;CACF,CAAC;;AAEF,KAAK,CAAC,kBAAkB,GAAG,YAAW;AACpC,MAAI,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,CAAC;AACzD,OAAK,CAAC,QAAQ,CAAC,WAAW,CAAC,SAAS,CAAC,WAAW,GAAG,WAAW,CAAC;AAC/D,aAAW,GAAG,IAAI,CAAC;AACnB,SAAO,CAAC,CAAC;CACV,CAAC;;;AAGF,KAAK,CAAC,gBAAgB,EAAE,CAAC;;AAEzB,KAAK,CAAC,mBAAmB,GAAG,UAAS,EAAE,EAAC;AACtC,MAAI,CAAC,EAAE,EAAE;AAAE,WAAO;GAAE;;AAEpB,MAAI,EAAE,CAAC,UAAU,EAAE;AACjB,MAAE,CAAC,UAAU,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;GAC/B;;;AAGD,SAAM,EAAE,CAAC,aAAa,EAAE,EAAE;AACxB,MAAE,CAAC,WAAW,CAAC,EAAE,CAAC,UAAU,CAAC,CAAC;GAC/B;;;;AAID,IAAE,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;;;;AAI1B,MAAI,OAAO,EAAE,CAAC,IAAI,KAAK,UAAU,EAAE;;AAEjC,KAAC,YAAW;AACV,UAAI;AACF,UAAE,CAAC,IAAI,EAAE,CAAC;OACX,CAAC,OAAO,CAAC,EAAE,EAEX;KACF,CAAA,EAAG,CAAC;GACN;CACF,CAAC;;AAEF,uBAAU,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;qBAC7B,KAAK;;;;;;;;;;;;;;;;;;;0BC/9BE,cAAc;;;;sBACjB,eAAe;;;;2BACV,2BAA2B;;;;;;;;;;;;;;;IAY7C,WAAW;AAEJ,WAFP,WAAW,CAEH,MAAM,EAAE,OAAO,EAAE,KAAK,EAAC;0BAF/B,WAAW;;AAGb,0BAAM,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;;;;;AAK9B,QAAI,CAAC,OAAO,CAAC,aAAa,QAAW,IAAI,OAAO,CAAC,aAAa,QAAW,CAAC,MAAM,KAAK,CAAC,EAAE;AACtF,WAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAC,OAAO,CAAC,aAAa,UAAa,EAAE,CAAC,GAAC,CAAC,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACnE,YAAI,QAAQ,GAAG,yBAAY,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACjC,YAAI,IAAI,GAAG,uBAAU,YAAY,CAAC,QAAQ,CAAC,CAAC;;;AAG5C,YAAI,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAC9B,gBAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;AAC1B,gBAAM;SACP;OACF;KACF,MAAM;;;;;AAKL,YAAM,CAAC,GAAG,CAAC,OAAO,CAAC,aAAa,QAAW,CAAC,CAAC;KAC9C;GACF;;YA1BG,WAAW;;SAAX,WAAW;;;AA6BjB,uBAAU,iBAAiB,CAAC,aAAa,EAAE,WAAW,CAAC,CAAC;qBACzC,WAAW;;;;;;;;;;;;;;;;;;;0BCzCJ,cAAc;;;;yBACd,sBAAsB;;;;6BAClB,2BAA2B;;;;sBACjC,gBAAgB;;IAAxB,EAAE;;mBACE,iBAAiB;;;;+BACD,yBAAyB;;gCACzB,oBAAoB;;sBACjC,eAAe;;;;wBACb,iBAAiB;;;;;;;;;;;;;IAUhC,IAAI;AAEG,WAFP,IAAI,GAEmC;QAA/B,OAAO,gCAAC,EAAE;QAAE,KAAK,gCAAC,YAAU,EAAE;;0BAFtC,IAAI;;;;AAKN,WAAO,CAAC,mBAAmB,GAAG,KAAK,CAAC;AACpC,0BAAM,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;;;;AAI5B,QAAI,CAAC,WAAW,GAAG,KAAK,CAAC;AACzB,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5B,UAAI,CAAC,WAAW,GAAG,IAAI,CAAC;KACzB,CAAC,CAAC;AACH,QAAI,CAAC,EAAE,CAAC,WAAW,EAAE,YAAW;AAC9B,UAAI,CAAC,WAAW,GAAG,KAAK,CAAC;KAC1B,CAAC,CAAC;;AAEH,QAAI,CAAC,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;;;AAGtC,QAAI,CAAC,IAAI,CAAC,sBAAsB,EAAE;AAChC,UAAI,CAAC,gBAAgB,EAAE,CAAC;KACzB;;;AAGD,QAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAClC,UAAI,CAAC,mBAAmB,EAAE,CAAC;KAC5B;;AAED,QAAI,CAAC,qBAAqB,EAAE,CAAC;;AAE7B,QAAI,OAAO,CAAC,cAAc,KAAK,KAAK,IAAI,OAAO,CAAC,gBAAgB,KAAK,KAAK,EAAE;AAC1E,UAAI,CAAC,wBAAwB,GAAG,KAAK,CAAC;KACvC;;AAED,QAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE;AAClC,UAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;;AAED,QAAI,CAAC,sBAAsB,EAAE,CAAC;;;AAG9B,QAAI,CAAC,aAAa,EAAE,CAAC;GACtB;;YA5CG,IAAI;;;;;;;;;;;;;;;;;;;;;;AAAJ,MAAI,WAiER,qBAAqB,GAAA,iCAAG;;;;;;AAMtB,QAAI,CAAC,KAAK,CAAC,YAAU;AACnB,UAAI,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,YAAY,EAAE,GAAG,CAAC,EAAE;AAChD,YAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;OAC3B;;AAAA,KAEF,EAAE,IAAI,CAAC,CAAC;GACV;;;;;;;;;;;;AA7EG,MAAI,WAwFR,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,EAAE,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;;AAEjD,QAAI,CAAC,cAAc,GAAG,IAAI,CAAC;;;AAG3B,QAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC;GACvC;;;;;;;;AA/FG,MAAI,WAsGR,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,cAAc,GAAG,KAAK,CAAC;AAC5B,QAAI,CAAC,oBAAoB,EAAE,CAAC;;AAE5B,QAAI,CAAC,GAAG,CAAC,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;GACnD;;;;;;;;AA3GG,MAAI,WAkHR,aAAa,GAAA,yBAAG;AACd,QAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,QAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAU;;;AAG/D,UAAI,kBAAkB,GAAG,IAAI,CAAC,eAAe,EAAE,CAAC;;AAEhD,UAAI,IAAI,CAAC,gBAAgB,KAAK,kBAAkB,EAAE;AAChD,YAAI,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;OAC1B;;AAED,UAAI,CAAC,gBAAgB,GAAG,kBAAkB,CAAC;;AAE3C,UAAI,kBAAkB,KAAK,CAAC,EAAE;AAC5B,YAAI,CAAC,oBAAoB,EAAE,CAAC;OAC7B;KACF,CAAC,EAAE,GAAG,CAAC,CAAC;GACV;;;;;;;;AAnIG,MAAI,WA0IR,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,SAAS,GAAG,IAAI,CAAC,QAAQ,EAAE,CAAC;GAClC;;;;;;;;;AA5IG,MAAI,WAoJR,QAAQ,GAAA,oBAAG;AACT,WAAO,iBAlKF,eAAe,CAkKG,CAAC,EAAE,CAAC,CAAC,CAAC;GAC9B;;;;;;;;;AAtJG,MAAI,WA8JR,eAAe;;;;;;;;;;KAAA,YAAG;AAChB,WAAO,kBA3KF,eAAe,CA2KG,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC;GACzD;;;;;;;;AAhKG,MAAI,WAuKR,oBAAoB,GAAA,gCAAG;AACrB,QAAI,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;GAC3C;;;;;;;;;AAzKG,MAAI,WAiLR,mBAAmB,GAAA,+BAAG;AACpB,QAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;;AAE9B,QAAI,CAAC,EAAE,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACvC,QAAI,CAAC,EAAE,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;GAChD;;;;;;;;AAtLG,MAAI,WA6LR,oBAAoB,GAAA,gCAAG;AACrB,QAAI,CAAC,iBAAiB,GAAG,KAAK,CAAC;AAC/B,QAAI,CAAC,uBAAuB,EAAE,CAAC;AAC/B,QAAI,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,gBAAgB,CAAC,CAAC;AACxC,QAAI,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,uBAAuB,CAAC,CAAC;GACjD;;;;;;;;AAlMG,MAAI,WAyMR,gBAAgB,GAAA,4BAAG;AACjB,QAAI,IAAI,CAAC,mBAAmB,EAAE;AAAE,UAAI,CAAC,uBAAuB,EAAE,CAAC;KAAE;AACjE,QAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC,WAAW,CAAC,YAAU;AACpD,UAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;KAC7E,EAAE,GAAG,CAAC,CAAC;GACT;;;;;;;;AA9MG,MAAI,WAqNR,uBAAuB,GAAA,mCAAG;AACxB,QAAI,CAAC,aAAa,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC;;;;AAI7C,QAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;GAC7E;;;;;;;;AA3NG,MAAI,WAkOR,OAAO,GAAA,mBAAG;;AAER,QAAI,EAAE,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC3B,QAAI,CAAC,GAAG,EAAE,CAAC,MAAM,CAAC;AAClB,WAAM,CAAC,EAAE,EAAE;AACT,UAAI,CAAC,qBAAqB,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;KACnC;;;AAID,QAAI,IAAI,CAAC,cAAc,EAAE;AAAE,UAAI,CAAC,iBAAiB,EAAE,CAAC;KAAE;;AAEtD,QAAI,IAAI,CAAC,iBAAiB,EAAE;AAAE,UAAI,CAAC,oBAAoB,EAAE,CAAC;KAAE;;AAE5D,yBAAM,OAAO,KAAA,MAAE,CAAC;GACjB;;;;;;;;;;;;AAjPG,MAAI,WA4PR,MAAM,GAAA,kBAAG;AACP,QAAI,IAAI,CAAC,WAAW,EAAE;AACpB,aAAO,iBA3QJ,eAAe,CA2QK,CAAC,EAAE,CAAC,CAAC,CAAC;KAC9B;AACD,WAAO,iBA7QF,eAAe,EA6QI,CAAC;GAC1B;;;;;;;;AAjQG,MAAI,WAwQR,cAAc,GAAA,0BAAG;;AAEf,QAAI,IAAI,CAAC,iBAAiB,EAAE;AAAE,UAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,CAAC,CAAC;KAAE;GAC7G;;;;;;;;AA3QG,MAAI,WAkRR,sBAAsB,GAAA,kCAAG;AACvB,QAAI,oBAAoB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AAClD,UAAI,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAAC;KACjC,CAAC,CAAC;;AAEH,QAAI,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;;AAE/B,QAAI,CAAC,MAAM;AAAE,aAAO;KAAA,AAEpB,MAAM,CAAC,gBAAgB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;AAC7D,UAAM,CAAC,gBAAgB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;;AAE1D,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AAC1C,YAAM,CAAC,mBAAmB,CAAC,aAAa,EAAE,oBAAoB,CAAC,CAAC;AAChE,YAAM,CAAC,mBAAmB,CAAC,UAAU,EAAE,oBAAoB,CAAC,CAAC;KAC9D,CAAC,CAAC,CAAC;GACL;;;;;;;;AAlSG,MAAI,WAySR,iBAAiB,GAAA,6BAAG;AAClB,QAAI,CAAC,0BAAgB,IAAI,IAAI,CAAC,EAAE,EAAE,CAAC,UAAU,IAAI,IAAI,EAAE;AACrD,UAAI,MAAM,GAAG,sBAAS,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC9C,YAAM,CAAC,GAAG,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,oCAAoC,CAAC;AAC7E,UAAI,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;AACzC,gCAAgB,GAAG,IAAI,CAAC;KACzB;;AAED,QAAI,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;AAC/B,QAAI,CAAC,MAAM,EAAE;AACX,aAAO;KACR;;AAED,QAAI,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;;;AAC/C,UAAI,aAAa,GAAG;eAAM,MAAK,OAAO,CAAC,iBAAiB,CAAC;OAAA,CAAC;;AAE1D,mBAAa,EAAE,CAAC;;AAEhB,WAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,YAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,aAAK,CAAC,mBAAmB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;AACtD,YAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE;AAC5B,eAAK,CAAC,gBAAgB,CAAC,WAAW,EAAE,aAAa,CAAC,CAAC;SACpD;OACF;KACF,CAAC,CAAC;;AAEH,UAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;;AAErD,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,YAAW;AAC5B,YAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,iBAAiB,CAAC,CAAC;KACzD,CAAC,CAAC;GACJ;;;;;;;;;;;;;;;AAzUG,MAAI,WAuVR,UAAU,GAAA,sBAAG;AACX,QAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,gCAAmB,CAAC;AAC3D,WAAO,IAAI,CAAC,WAAW,CAAC;GACzB;;;;;;;;;AA1VG,MAAI,WAkWR,gBAAgB,GAAA,4BAAG;AACjB,QAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC,iBAAiB,IAAI,gCAAmB,CAAC;AACvE,WAAO,IAAI,CAAC,iBAAiB,CAAC;GAC/B;;;;;;;;;;;;;AArWG,MAAI,WAiXR,YAAY,GAAA,sBAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AAClC,QAAI,CAAC,IAAI,EAAE;AACT,YAAM,IAAI,KAAK,CAAC,iDAAiD,CAAC,CAAC;KACpE;;AAED,WAAO,iBAAiB,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;GACvD;;;;;;;;;;;AAvXG,MAAI,WAiYR,kBAAkB,GAAA,4BAAC,OAAO,EAAE;AAC1B,QAAI,KAAK,GAAG,iBAAiB,CAAC,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AAC5F,QAAI,CAAC,gBAAgB,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;AACzC,WAAO;AACL,WAAK,EAAE,KAAK;KACb,CAAC;GACH;;;;;;;;;AAvYG,MAAI,WA+YR,qBAAqB,GAAA,+BAAC,KAAK,EAAE;AAC3B,QAAI,CAAC,UAAU,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;AACtC,QAAI,CAAC,gBAAgB,EAAE,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC;GAC7C;;;;;;;;;;AAlZG,MAAI,WA2ZR,SAAS,GAAA,qBAAG,EAAE;;SA3ZV,IAAI;;;;;;;;;AAqaV,IAAI,CAAC,SAAS,CAAC,WAAW,CAAC;;AAE3B,IAAI,iBAAiB,GAAG,2BAAS,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAc;MAAZ,OAAO,gCAAC,EAAE;;AACtE,MAAI,MAAM,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;;AAE/B,SAAO,CAAC,IAAI,GAAG,IAAI,CAAC;;AAEpB,MAAI,KAAK,EAAE;AACT,WAAO,CAAC,KAAK,GAAG,KAAK,CAAC;GACvB;AACD,MAAI,QAAQ,EAAE;AACZ,WAAO,CAAC,QAAQ,GAAG,QAAQ,CAAC;GAC7B;AACD,SAAO,CAAC,IAAI,GAAG,IAAI,CAAC;;AAEpB,MAAI,KAAK,GAAG,2BAAc,OAAO,CAAC,CAAC;AACnC,QAAM,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;;AAExB,SAAO,KAAK,CAAC;CACd,CAAC;;AAEF,IAAI,CAAC,SAAS,CAAC,qBAAqB,GAAG,IAAI,CAAC;;;AAG5C,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,KAAK,CAAC;AAChD,IAAI,CAAC,SAAS,CAAC,oBAAoB,GAAG,KAAK,CAAC;;;;AAI5C,IAAI,CAAC,SAAS,CAAC,sBAAsB,GAAG,KAAK,CAAC;AAC9C,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,KAAK,CAAC;;AAEhD,IAAI,CAAC,SAAS,CAAC,wBAAwB,GAAG,KAAK,CAAC;;;;;;;;;;AAUhD,IAAI,CAAC,kBAAkB,GAAG,UAAS,KAAK,EAAC;;;;;;;;;AAStC,OAAK,CAAC,qBAAqB,GAAG,UAAS,OAAO,EAAE,KAAK,EAAC;AACrD,QAAI,QAAQ,GAAG,KAAK,CAAC,cAAc,CAAC;;AAEpC,QAAI,CAAC,QAAQ,EAAE;AACb,cAAQ,GAAG,KAAK,CAAC,cAAc,GAAG,EAAE,CAAC;KACtC;;AAED,QAAI,KAAK,KAAK,SAAS,EAAE;;AAEvB,WAAK,GAAG,QAAQ,CAAC,MAAM,CAAC;KACzB;;AAED,YAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,EAAE,OAAO,CAAC,CAAC;GACpC,CAAC;;;;;;;;;AASD,OAAK,CAAC,mBAAmB,GAAG,UAAS,MAAM,EAAC;AAC3C,QAAI,QAAQ,GAAG,KAAK,CAAC,cAAc,IAAI,EAAE,CAAC;AAC1C,QAAI,GAAG,YAAA,CAAC;;AAER,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,SAAG,GAAG,QAAQ,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;;AAE1C,UAAI,GAAG,EAAE;AACP,eAAO,QAAQ,CAAC,CAAC,CAAC,CAAC;OACpB;KACF;;AAED,WAAO,IAAI,CAAC;GACb,CAAC;;;;;;;AAOF,OAAK,CAAC,aAAa,GAAG,UAAS,MAAM,EAAC;AACpC,QAAI,EAAE,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;;AAE3C,QAAI,EAAE,EAAE;AACN,aAAO,EAAE,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;KACnC;;AAED,WAAO,EAAE,CAAC;GACX,CAAC;;AAEF,MAAI,gBAAgB,GAAG,KAAK,CAAC,SAAS,CAAC,QAAQ,CAAC;;;;AAIhD,OAAK,CAAC,SAAS,CAAC,QAAQ,GAAG,YAAW;AACpC,QAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE;AACvD,aAAO,IAAI,CAAC,cAAc,CAAC,QAAQ,EAAE,CAAC;KACvC;AACD,WAAO,gBAAgB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;GACpC,CAAC;;;;;;;;;AASD,OAAK,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,MAAM,EAAC;AAC3C,QAAI,EAAE,GAAG,KAAK,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;;AAE3C,QAAI,CAAC,EAAE,EAAE;;;AAGP,UAAI,KAAK,CAAC,mBAAmB,EAAE;AAC7B,UAAE,GAAG,KAAK,CAAC,mBAAmB,CAAC;OAChC,MAAM;AACL,yBAAI,KAAK,CAAC,gDAAgD,CAAC,CAAC;OAC7D;KACF;;;AAGD,QAAI,CAAC,oBAAoB,EAAE,CAAC;AAC5B,QAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;;AAE/C,QAAI,CAAC,cAAc,GAAG,MAAM,CAAC;AAC7B,QAAI,CAAC,cAAc,GAAG,EAAE,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;AACpD,QAAI,CAAC,EAAE,CAAC,SAAS,EAAE,IAAI,CAAC,oBAAoB,CAAC,CAAC;;AAE9C,WAAO,IAAI,CAAC;GACb,CAAC;;;;;AAKD,OAAK,CAAC,SAAS,CAAC,oBAAoB,GAAG,YAAU;AAChD,QAAI,IAAI,CAAC,cAAc,IAAI,IAAI,CAAC,cAAc,CAAC,OAAO,EAAE;AACtD,UAAI,CAAC,cAAc,CAAC,OAAO,EAAE,CAAC;KAC/B;GACF,CAAC;CAEH,CAAC;;AAEF,uBAAU,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;;AAE1C,uBAAU,iBAAiB,CAAC,qBAAqB,EAAE,IAAI,CAAC,CAAC;qBAC1C,IAAI;;;;;;;;;;;;;sBCzlBM,qBAAqB;;IAAlC,OAAO;;wBACE,iBAAiB;;;;;;;;;;;;;;AAYtC,IAAI,gBAAgB;;;;;;;;;;GAAG,UAAS,IAAI,EAAE;AACpC,MAAI,IAAI,GAAG,IAAI,CAAC;;AAEhB,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAI,GAAG,sBAAS,aAAa,CAAC,QAAQ,CAAC,CAAC;;AAExC,SAAK,IAAI,IAAI,IAAI,gBAAgB,CAAC,SAAS,EAAE;AAC3C,UAAI,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC/C;GACF;;AAED,kBAAgB,CAAC,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;AAErD,QAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;AACpC,OAAG,EAAE,eAAW;AACd,aAAO,IAAI,CAAC,OAAO,CAAC;KACrB;GACF,CAAC,CAAC;;AAEH,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,WAAO,IAAI,CAAC;GACb;CACF,CAAA,CAAC;;AAEF,gBAAgB,CAAC,SAAS,CAAC,QAAQ,GAAG,UAAS,IAAI,EAAE;AACnD,MAAI,SAAS,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC,CAAC;AACjC,MAAI,CAAC,GAAG,CAAC,CAAC;AACV,MAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;;AAEpB,MAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,MAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC;;AAE3B,MAAI,UAAU,GAAG,oBAAS,CAAC,EAAE;AAC3B,QAAI,EAAE,EAAE,GAAC,CAAC,IAAI,IAAI,CAAA,AAAC,EAAE;AACnB,YAAM,CAAC,cAAc,CAAC,IAAI,EAAE,EAAE,GAAG,CAAC,EAAE;AAClC,WAAG,EAAE,eAAW;AACd,iBAAO,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;SACtB;OACF,CAAC,CAAC;KACJ;GACF,CAAC;;AAEF,MAAI,SAAS,GAAG,CAAC,EAAE;AACjB,KAAC,GAAG,SAAS,CAAC;;AAEd,WAAM,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAChB,gBAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;KAC1B;GACF;CACF,CAAC;;AAEF,gBAAgB,CAAC,SAAS,CAAC,UAAU,GAAG,UAAS,EAAE,EAAE;AACnD,MAAI,MAAM,GAAG,IAAI,CAAC;AAClB,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAI,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,QAAI,GAAG,CAAC,EAAE,KAAK,EAAE,EAAE;AACjB,YAAM,GAAG,GAAG,CAAC;AACb,YAAM;KACP;GACF;;AAED,SAAO,MAAM,CAAC;CACf,CAAC;;qBAEa,gBAAgB;;;;;;;;;;;;;;;;;0BC7ET,cAAc;;;;oBACnB,iBAAiB;;;;wBACb,sBAAsB;;;;0BACpB,wBAAwB;;;;sBAC3B,gBAAgB;;IAAxB,EAAE;;wBACO,iBAAiB;;;;sBACnB,eAAe;;;;AAElC,IAAM,QAAQ,GAAG,MAAM,CAAC;AACxB,IAAM,SAAS,GAAG,MAAM,CAAC;AACzB,IAAM,OAAO,GAAG;AACd,WAAS,EAAc,WAAW;AAClC,WAAS,EAAc,YAAY;AACnC,OAAK,EAAkB,OAAO;AAC9B,oBAAkB,EAAK,4CAA4C;AACnE,gBAAc,EAAS,0BAA0B;AACjD,uBAAqB,EAAE,YAAY;AACnC,mBAAiB,EAAM,OAAO;AAC9B,QAAM,EAAiB,kCAAkC;AACzD,QAAM,EAAiB,6BAA6B;AACpD,WAAS,EAAc,wDAAwD;CAChF,CAAC;;;;;;;;;;;;IAWI,gBAAgB;AAET,WAFP,gBAAgB,CAER,MAAM,EAAE,OAAO,EAAE,KAAK,EAAC;0BAF/B,gBAAgB;;AAGlB,0BAAM,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;;AAE9B,UAAM,CAAC,EAAE,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1D,UAAM,CAAC,EAAE,CAAC,iBAAiB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;;;;;AAMhE,UAAM,CAAC,KAAK,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AACpC,UAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,yBAA4B,EAAE;AAC1D,YAAI,CAAC,IAAI,EAAE,CAAC;AACZ,eAAO;OACR;;AAED,YAAM,CAAC,EAAE,CAAC,kBAAkB,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;AAEjE,UAAI,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,OAAU,IAAI,EAAE,CAAC;AACzD,WAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,YAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,YAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;OACxC;KACF,CAAC,CAAC,CAAC;GACL;;YA1BG,gBAAgB;;;;;;;;AAAhB,kBAAgB,WAiCpB,aAAa,GAAA,yBAAG;AACd,QAAI,IAAI,CAAC,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,yBAA4B,EAAE;AACtE,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,MAAM;AACL,UAAI,CAAC,IAAI,EAAE,CAAC;KACb;GACF;;;;;;;;;AAvCG,kBAAgB,WA+CpB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,wBAAwB;KACpC,CAAC,CAAC;GACJ;;;;;;;;AAnDG,kBAAgB,WA0DpB,YAAY,GAAA,wBAAG;AACb,QAAI,OAAO,0BAAgB,KAAK,UAAU,EAAE;AAC1C,gCAAgB,YAAe,sBAAS,EAAE,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;KACvD;GACF;;;;;;;;AA9DG,kBAAgB,WAqEpB,aAAa,GAAA,yBAAG;AACd,QAAI,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;;AAEvC,QAAI,CAAC,YAAY,EAAE,CAAC;;AAEpB,QAAI,CAAC,MAAM,EAAE;AACX,aAAO;KACR;;AAED,SAAK,IAAI,CAAC,GAAC,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACpC,UAAI,KAAK,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC;AACtB,UAAI,KAAK,KAAQ,KAAK,SAAS,EAAE;AAC/B,YAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;OAC5B;KACF;GACF;;;;;;;;;AApFG,kBAAgB,WA4FpB,cAAc,GAAA,wBAAC,KAAK,EAAE;AACpB,QAAI,OAAO,0BAAgB,KAAK,UAAU,IAAI,CAAC,KAAK,WAAc,EAAE;AAClE,aAAO;KACR;;AAED,QAAI,SAAS,GAAG,IAAI,CAAC,OAAO,kBAAqB,CAAC,SAAS,EAAE,CAAC;;AAE9D,QAAI,IAAI,GAAG,EAAE,CAAC;AACd,SAAK,IAAI,EAAC,GAAG,CAAC,EAAE,EAAC,GAAG,KAAK,WAAc,CAAC,MAAM,EAAE,EAAC,EAAE,EAAE;AACnD,UAAI,CAAC,IAAI,CAAC,KAAK,WAAc,CAAC,EAAC,CAAC,CAAC,CAAC;KACnC;;AAED,8BAAgB,YAAe,sBAAS,KAAK,WAAc,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC;;AAEvE,QAAI,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;AACpB,WAAO,CAAC,EAAE,EAAE;AACV,UAAI,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;AAClC,UAAI,SAAS,CAAC,KAAK,EAAE;AACnB,cAAM,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;OACjD;AACD,UAAI,SAAS,CAAC,WAAW,EAAE;AACzB,sBAAc,CAAC,MAAM,CAAC,UAAU,EACjB,OAAO,EACP,cAAc,CAAC,SAAS,CAAC,KAAK,IAAI,MAAM,EACzB,SAAS,CAAC,WAAW,CAAC,CAAC,CAAC;OACvD;AACD,UAAI,SAAS,CAAC,eAAe,EAAE;AAC7B,cAAM,CAAC,UAAU,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC,eAAe,CAAC;OACrE;AACD,UAAI,SAAS,CAAC,iBAAiB,EAAE;AAC/B,sBAAc,CAAC,MAAM,CAAC,UAAU,EACjB,iBAAiB,EACjB,cAAc,CAAC,SAAS,CAAC,eAAe,IAAI,MAAM,EACnC,SAAS,CAAC,iBAAiB,CAAC,CAAC,CAAC;OAC7D;AACD,UAAI,SAAS,CAAC,WAAW,EAAE;AACzB,YAAI,SAAS,CAAC,aAAa,EAAE;AAC3B,wBAAc,CAAC,MAAM,EACN,iBAAiB,EACjB,cAAc,CAAC,SAAS,CAAC,WAAW,EAAE,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;SAChF,MAAM;AACL,gBAAM,CAAC,KAAK,CAAC,eAAe,GAAG,SAAS,CAAC,WAAW,CAAC;SACtD;OACF;AACD,UAAI,SAAS,CAAC,SAAS,EAAE;AACvB,YAAI,SAAS,CAAC,SAAS,KAAK,YAAY,EAAE;AACxC,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,oBAAkB,QAAQ,sBAAiB,QAAQ,sBAAiB,QAAQ,AAAE,CAAC;SAClH,MAAM,IAAI,SAAS,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC3C,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,gBAAc,QAAQ,kBAAa,QAAQ,kBAAa,QAAQ,AAAE,CAAC;SACtG,MAAM,IAAI,SAAS,CAAC,SAAS,KAAK,WAAW,EAAE;AAC9C,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,gBAAc,SAAS,gBAAW,SAAS,oBAAe,QAAQ,iBAAY,QAAQ,AAAE,CAAC;SAC5H,MAAM,IAAI,SAAS,CAAC,SAAS,KAAK,SAAS,EAAE;AAC5C,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,gBAAc,QAAQ,kBAAa,QAAQ,kBAAa,QAAQ,kBAAa,QAAQ,AAAE,CAAC;SAC3H;OACF;AACD,UAAI,SAAS,CAAC,WAAW,IAAI,SAAS,CAAC,WAAW,KAAK,CAAC,EAAE;AACxD,YAAM,QAAQ,GAAG,oBAAO,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;AAC1D,cAAM,CAAC,KAAK,CAAC,QAAQ,GAAG,AAAC,QAAQ,GAAG,SAAS,CAAC,WAAW,GAAI,IAAI,CAAC;AAClE,cAAM,CAAC,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,cAAM,CAAC,KAAK,CAAC,GAAG,GAAG,MAAM,CAAC;AAC1B,cAAM,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;OAC7B;AACD,UAAI,SAAS,CAAC,UAAU,IAAI,SAAS,CAAC,UAAU,KAAK,SAAS,EAAE;AAC9D,YAAI,SAAS,CAAC,UAAU,KAAK,YAAY,EAAE;AACzC,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,WAAW,GAAG,YAAY,CAAC;SACpD,MAAM;AACL,gBAAM,CAAC,UAAU,CAAC,KAAK,CAAC,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC;SACpE;OACF;KACF;GACF;;SAlKG,gBAAgB;;;;;;;;;;;AA8KtB,SAAS,cAAc,CAAC,KAAK,EAAE,OAAO,EAAE;AACtC,SAAO,OAAO;;AAEZ,UAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GACvC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GACvC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,GACvC,OAAO,GAAG,GAAG,CAAC;CACjB;;;;;;;;;;;AAWD,SAAS,cAAc,CAAC,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE;;AAEvC,MAAI;AACF,MAAE,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;GACxB,CAAC,OAAO,CAAC,EAAE,EAAE;CACf;;AAED,uBAAU,iBAAiB,CAAC,kBAAkB,EAAE,gBAAgB,CAAC,CAAC;qBACnD,gBAAgB;;;;;;;;;;;;;;ACpO/B,IAAI,aAAa,GAAG;AAClB,YAAY,UAAU;AACtB,UAAU,QAAQ;AAClB,WAAW,SAAS;CACrB,CAAC;;;;;;;AAOF,IAAI,aAAa,GAAG;AAClB,aAAa,WAAW;AACxB,YAAY,UAAU;AACtB,gBAAgB,cAAc;AAC9B,YAAY,UAAU;AACtB,YAAY,UAAU;CACvB,CAAC;;QAEO,aAAa,GAAb,aAAa;QAAE,aAAa,GAAb,aAAa;;;;;;;;;;;;;;;;;;;;ACZrC,IAAI,YAAY,GAAG,sBAAS,KAAK,EAAE;AACjC,SAAO;AACL,QAAI,EAAE,KAAK,CAAC,IAAI;AAChB,SAAK,EAAE,KAAK,CAAC,KAAK;AAClB,YAAQ,EAAE,KAAK,CAAC,QAAQ;AACxB,MAAE,EAAE,KAAK,CAAC,EAAE;AACZ,mCAA+B,EAAE,KAAK,CAAC,+BAA+B;AACtE,QAAI,EAAE,KAAK,CAAC,IAAI;AAChB,QAAI,EAAE,KAAK,CAAC,IAAI,IAAI,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,UAAS,GAAG,EAAE;AACrE,aAAO;AACL,iBAAS,EAAE,GAAG,CAAC,SAAS;AACxB,eAAO,EAAE,GAAG,CAAC,OAAO;AACpB,YAAI,EAAE,GAAG,CAAC,IAAI;AACd,UAAE,EAAE,GAAG,CAAC,EAAE;OACX,CAAC;KACH,CAAC;AACF,OAAG,EAAE,KAAK,CAAC,GAAG;GACf,CAAC;CACH,CAAC;;;;;;;;;;AAUF,IAAI,gBAAgB,GAAG,0BAAS,IAAI,EAAE;AACpC,MAAI,QAAQ,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;;AAEnD,MAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAC,CAAC;WAAK,CAAC,CAAC,KAAK;GAAA,CAAC,CAAC;AACnE,MAAI,MAAM,GAAG,KAAK,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,EAAE,UAAS,OAAO,EAAE;AAChE,QAAI,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AACvC,QAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AACvB,WAAO,IAAI,CAAC;GACb,CAAC,CAAC;;AAEH,SAAO,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,EAAE,UAAS,KAAK,EAAE;AAClF,WAAO,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;GACxC,CAAC,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC;CACvB,CAAC;;;;;;;;;;AAUF,IAAI,gBAAgB,GAAG,0BAAS,IAAI,EAAE,IAAI,EAAE;AAC1C,MAAI,CAAC,OAAO,CAAC,UAAS,KAAK,EAAE;AAC3B,QAAI,UAAU,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC;AACtD,QAAI,CAAC,KAAK,CAAC,GAAG,IAAI,KAAK,CAAC,IAAI,EAAE;AAC5B,WAAK,CAAC,IAAI,CAAC,OAAO,CAAC,UAAC,GAAG;eAAK,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;OAAA,CAAC,CAAC;KACrD;GACF,CAAC,CAAC;;AAEH,SAAO,IAAI,CAAC,UAAU,EAAE,CAAC;CAC1B,CAAC;;qBAEa,EAAC,gBAAgB,EAAhB,gBAAgB,EAAE,gBAAgB,EAAhB,gBAAgB,EAAE,YAAY,EAAZ,YAAY,EAAC;;;;;;;;;;;;;2BCzEzC,iBAAiB;;;;sBACrB,gBAAgB;;IAAxB,EAAE;;uBACW,qBAAqB;;IAAlC,OAAO;;wBACE,iBAAiB;;;;;;;;;;;;;;;;;AAetC,IAAI,aAAa;;;;;;;;;;GAAG,UAAS,MAAM,EAAE;AACnC,MAAI,IAAI,GAAG,IAAI,CAAC;;AAEhB,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,QAAI,GAAG,sBAAS,aAAa,CAAC,QAAQ,CAAC,CAAC;;AAExC,SAAK,IAAI,IAAI,IAAI,aAAa,CAAC,SAAS,EAAE;AACxC,UAAI,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KAC5C;GACF;;AAED,QAAM,GAAG,MAAM,IAAI,EAAE,CAAC;AACtB,MAAI,CAAC,OAAO,GAAG,EAAE,CAAC;;AAElB,QAAM,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,EAAE;AACpC,OAAG,EAAE,eAAW;AACd,aAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;KAC5B;GACF,CAAC,CAAC;;AAEH,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,QAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;GAC3B;;AAED,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,WAAO,IAAI,CAAC;GACb;CACF,CAAA,CAAC;;AAEF,aAAa,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAY,SAAS,CAAC,CAAC;AAC/D,aAAa,CAAC,SAAS,CAAC,WAAW,GAAG,aAAa,CAAC;;;;;;;AAOpD,aAAa,CAAC,SAAS,CAAC,cAAc,GAAG;AACvC,UAAU,QAAQ;AAClB,YAAY,UAAU;AACtB,eAAe,aAAa;CAC7B,CAAC;;;AAGF,KAAK,IAAI,MAAK,IAAI,aAAa,CAAC,SAAS,CAAC,cAAc,EAAE;AACxD,eAAa,CAAC,SAAS,CAAC,IAAI,GAAG,MAAK,CAAC,GAAG,IAAI,CAAC;CAC9C;;AAED,aAAa,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,KAAK,EAAE;AAClD,MAAI,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;AAChC,MAAI,EAAE,EAAE,GAAC,KAAK,IAAI,IAAI,CAAA,AAAC,EAAE;AACvB,UAAM,CAAC,cAAc,CAAC,IAAI,EAAE,KAAK,EAAE;AACjC,SAAG,EAAE,eAAW;AACd,eAAO,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;OAC5B;KACF,CAAC,CAAC;GACJ;;AAED,OAAK,CAAC,gBAAgB,CAAC,YAAY,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AAC5D,QAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;GACxB,CAAC,CAAC,CAAC;AACJ,MAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;;AAEzB,MAAI,CAAC,OAAO,CAAC;AACX,QAAI,EAAE,UAAU;AAChB,SAAK,EAAE,KAAK;GACb,CAAC,CAAC;CACJ,CAAC;;AAEF,aAAa,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,MAAM,EAAE;AACtD,MAAI,MAAM,GAAG,IAAI,CAAC;AAClB,MAAI,KAAK,YAAA,CAAC;;AAEV,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,SAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,QAAI,KAAK,KAAK,MAAM,EAAE;AACpB,UAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AAC1B,YAAM;KACP;GACF;;AAED,MAAI,CAAC,OAAO,CAAC;AACX,QAAI,EAAE,aAAa;AACnB,SAAK,EAAE,KAAK;GACb,CAAC,CAAC;CACJ,CAAC;;AAEF,aAAa,CAAC,SAAS,CAAC,YAAY,GAAG,UAAS,EAAE,EAAE;AAClD,MAAI,MAAM,GAAG,IAAI,CAAC;;AAElB,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AAC3C,QAAI,KAAK,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;AACpB,QAAI,KAAK,CAAC,EAAE,KAAK,EAAE,EAAE;AACnB,YAAM,GAAG,KAAK,CAAC;AACf,YAAM;KACP;GACF;;AAED,SAAO,MAAM,CAAC;CACf,CAAC;;qBAEa,aAAa;;;;;;;;;;;;;;;;;0BCvHN,cAAc;;;;sBACZ,oBAAoB;;IAAhC,MAAM;;uBACE,gBAAgB;;IAAxB,EAAE;;mBACE,iBAAiB;;;;+BACN,uBAAuB;;;;sBAC/B,eAAe;;;;;;;;;;;;;IAU5B,iBAAiB;AAEV,WAFP,iBAAiB,CAET,MAAM,EAAE,OAAO,EAAE;0BAFzB,iBAAiB;;AAGnB,0BAAM,MAAM,EAAE,OAAO,CAAC,CAAC;AACvB,QAAI,CAAC,IAAI,EAAE,CAAC;;;AAGZ,QAAI,OAAO,CAAC,wBAAwB,KAAK,SAAS,EAAE;AAClD,UAAI,CAAC,QAAQ,CAAC,wBAAwB,GAAG,IAAI,CAAC,QAAQ,CAAC,aAAa,CAAC,wBAAwB,CAAC;KAC/F;;AAED,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,kBAAkB,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AACvF,UAAI,CAAC,YAAY,EAAE,CAAC;AACpB,UAAI,CAAC,IAAI,EAAE,CAAC;KACb,CAAC,CAAC,CAAC;;AAEJ,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,qBAAqB,CAAC,EAAE,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,YAAW;AAC1F,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACpE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACpE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACpE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACxE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACtE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AAC1E,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACpE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACrE,UAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,aAAa,GAAG,CAAC,CAAC;AACtE,UAAI,CAAC,aAAa,EAAE,CAAC;KACtB,CAAC,CAAC,CAAC;;AAEJ,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,8BAA8B,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAChH,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC5G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC1G,UAAM,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;;AAE3G,QAAI,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE;AAC1C,UAAI,CAAC,eAAe,EAAE,CAAC;KACxB;GACF;;YA1CG,iBAAiB;;;;;;;;;AAAjB,mBAAiB,WAkDrB,QAAQ,GAAA,oBAAG;AACT,WAAO,qBAAM,QAAQ,KAAA,OAAC,KAAK,EAAE;AAC3B,eAAS,EAAE,wCAAwC;AACnD,eAAS,EAAE,0BAA0B,EAAE;KACxC,CAAC,CAAC;GACJ;;;;;;;;;;;;;;;;;;AAvDG,mBAAiB,WAwErB,SAAS,GAAA,qBAAG;AACV,QAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;;AAErB,QAAM,QAAQ,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACpF,QAAM,UAAU,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC,CAAC,CAAC;AACvF,QAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACnF,QAAM,WAAW,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC;AAC3F,QAAM,OAAO,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACnF,QAAM,SAAS,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,CAAC,CAAC;AACvF,QAAM,WAAW,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,CAAC,CAAC;AACvF,QAAM,aAAa,GAAG,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,8BAA8B,CAAC,CAAC,CAAC;AAC/F,QAAM,WAAW,GAAG,8BAAoB,CAAC,sBAAsB,CAAC,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,CAAC,CAAC,CAAC;;AAEjH,QAAI,MAAM,GAAG;AACX,yBAAqB,SAAS;AAC9B,mBAAe,WAAW;AAC1B,qBAAiB,aAAa;AAC9B,iBAAa,QAAQ;AACrB,kBAAc,UAAU;AACxB,aAAS,OAAO;AAChB,uBAAmB,OAAO;AAC1B,mBAAe,WAAW;AAC1B,mBAAe,WAAW;KAC3B,CAAC;AACF,SAAK,IAAI,KAAI,IAAI,MAAM,EAAE;AACvB,UAAI,MAAM,CAAC,KAAI,CAAC,KAAK,EAAE,IAAI,MAAM,CAAC,KAAI,CAAC,KAAK,MAAM,IAAK,KAAI,KAAK,aAAa,IAAI,MAAM,CAAC,KAAI,CAAC,KAAK,CAAI,AAAC,EAAE;AACvG,eAAO,MAAM,CAAC,KAAI,CAAC,CAAC;OACrB;KACF;AACD,WAAO,MAAM,CAAC;GACf;;;;;;;;;;;;;;;;;;AAtGG,mBAAiB,WAuHrB,SAAS,GAAA,mBAAC,MAAM,EAAE;AAChB,QAAM,EAAE,GAAG,IAAI,CAAC,EAAE,EAAE,CAAC;;AAErB,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,SAAS,CAAC,CAAC;AAChF,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,yBAAyB,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;AAClF,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC;AAC5E,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AACtF,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,eAAe,CAAC,CAAC;AACtF,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,0BAA0B,CAAC,EAAE,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC1F,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,wBAAwB,CAAC,EAAE,MAAM,CAAC,WAAW,CAAC,CAAC;AAClF,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,8BAA8B,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC,CAAC;;AAE1F,QAAI,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;;AAErC,QAAI,WAAW,EAAE;AACf,iBAAW,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;KACtC;;AAED,qBAAiB,CAAC,EAAE,CAAC,aAAa,CAAC,4BAA4B,CAAC,EAAE,WAAW,CAAC,CAAC;GAChF;;;;;;;;AA1IG,mBAAiB,WAiJrB,eAAe,GAAA,2BAAG;0BACI,4BAAe,oBAAO,YAAY,CAAC,OAAO,CAAC,yBAAyB,CAAC,CAAC;;QAArF,GAAG;QAAE,MAAM;;AAEhB,QAAI,GAAG,EAAE;AACP,uBAAI,KAAK,CAAC,GAAG,CAAC,CAAC;KAChB;;AAED,QAAI,MAAM,EAAE;AACV,UAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;KACxB;GACF;;;;;;;;AA3JG,mBAAiB,WAkKrB,YAAY,GAAA,wBAAG;AACb,QAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,wBAAwB,EAAE;AAC3C,aAAO;KACR;;AAED,QAAI,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,CAAC;AAC9B,QAAI;AACF,UAAI,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE;AACjD,4BAAO,YAAY,CAAC,OAAO,CAAC,yBAAyB,EAAE,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC;OAChF,MAAM;AACL,4BAAO,YAAY,CAAC,UAAU,CAAC,yBAAyB,CAAC,CAAC;OAC3D;KACF,CAAC,OAAO,CAAC,EAAE,EAAE;GACf;;;;;;;;AA/KG,mBAAiB,WAsLrB,aAAa,GAAA,yBAAG;AACd,QAAI,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,CAAC;AAC1D,QAAI,SAAS,EAAE;AACb,eAAS,CAAC,aAAa,EAAE,CAAC;KAC3B;GACF;;SA3LG,iBAAiB;;;AA+LvB,uBAAU,iBAAiB,CAAC,mBAAmB,EAAE,iBAAiB,CAAC,CAAC;;AAEpE,SAAS,sBAAsB,CAAC,MAAM,EAAE;AACtC,MAAI,cAAc,YAAA,CAAC;;AAEnB,MAAI,MAAM,CAAC,eAAe,EAAE;AAC1B,kBAAc,GAAG,MAAM,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC;GAC5C,MAAM,IAAI,MAAM,CAAC,OAAO,EAAE;AACzB,kBAAc,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;GAC/D;;AAED,SAAO,cAAc,CAAC,KAAK,CAAC;CAC7B;;AAED,SAAS,iBAAiB,CAAC,MAAM,EAAE,KAAK,EAAE;AACxC,MAAI,CAAC,KAAK,EAAE;AACV,WAAO;GACR;;AAED,MAAI,CAAC,YAAA,CAAC;AACN,OAAK,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AAC1C,QAAM,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;AACjC,QAAI,MAAM,CAAC,KAAK,KAAK,KAAK,EAAE;AAC1B,YAAM;KACP;GACF;;AAED,QAAM,CAAC,aAAa,GAAG,CAAC,CAAC;CAC1B;;AAED,SAAS,0BAA0B,GAAG;AACpC,MAAI,QAAQ,k/JA+GH,CAAC;;AAER,SAAO,QAAQ,CAAC;CACnB;;qBAEc,iBAAiB;;;;;;;;;;;;;gCCjWH,uBAAuB;;;;sBAChC,gBAAgB;;IAAxB,EAAE;;uBACQ,kBAAkB;;IAA5B,IAAI;;uBACS,qBAAqB;;IAAlC,OAAO;;uBACY,oBAAoB;;IAAvC,aAAa;;mBACT,iBAAiB;;;;2BACT,iBAAiB;;;;wBACpB,iBAAiB;;;;sBACnB,eAAe;;;;mBAClB,WAAW;;;;;;;;;;;;;;;;;;;;;;;;;;AAwB3B,IAAI,SAAS;;;;;;;;;;GAAG,YAAqB;MAAZ,OAAO,gCAAC,EAAE;;AACjC,MAAI,CAAC,OAAO,CAAC,IAAI,EAAE;AACjB,UAAM,IAAI,KAAK,CAAC,0BAA0B,CAAC,CAAC;GAC7C;;AAED,MAAI,EAAE,GAAG,IAAI,CAAC;AACd,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,MAAE,GAAG,sBAAS,aAAa,CAAC,QAAQ,CAAC,CAAC;;AAEtC,SAAK,IAAI,IAAI,IAAI,SAAS,CAAC,SAAS,EAAE;AACpC,QAAE,CAAC,IAAI,CAAC,GAAG,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;KACtC;GACF;;AAED,IAAE,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC;;AAExB,MAAI,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,KAAQ,CAAC,IAAI,UAAU,CAAC;AACtE,MAAI,IAAI,GAAG,aAAa,CAAC,aAAa,CAAC,OAAO,KAAQ,CAAC,IAAI,WAAW,CAAC;AACvE,MAAI,KAAK,GAAG,OAAO,MAAS,IAAI,EAAE,CAAC;AACnC,MAAI,QAAQ,GAAG,OAAO,SAAY,IAAI,OAAO,QAAW,IAAI,EAAE,CAAC;AAC/D,MAAI,EAAE,GAAG,OAAO,GAAM,IAAI,iBAAiB,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;;AAE7D,MAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,EAAE;AAC9C,QAAI,GAAG,QAAQ,CAAC;GACjB;;AAED,IAAE,CAAC,KAAK,GAAG,EAAE,CAAC;AACd,IAAE,CAAC,WAAW,GAAG,EAAE,CAAC;;AAEpB,MAAI,IAAI,GAAG,kCAAqB,EAAE,CAAC,KAAK,CAAC,CAAC;AAC1C,MAAI,UAAU,GAAG,kCAAqB,EAAE,CAAC,WAAW,CAAC,CAAC;;AAEtD,MAAI,OAAO,GAAG,KAAK,CAAC;AACpB,MAAI,iBAAiB,GAAG,EAAE,CAAC,IAAI,CAAC,EAAE,EAAE,YAAW;AAC7C,QAAI,WAAc,CAAC;AACnB,QAAI,OAAO,EAAE;AACX,UAAI,QAAW,CAAC,WAAW,CAAC,CAAC;AAC7B,aAAO,GAAG,KAAK,CAAC;KACjB;GACF,CAAC,CAAC;AACH,MAAI,IAAI,KAAK,UAAU,EAAE;AACvB,MAAE,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;GAC9C;;AAED,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE;AAChC,OAAG,EAAE,eAAW;AACd,aAAO,IAAI,CAAC;KACb;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,OAAO,EAAE;AACjC,OAAG,EAAE,eAAW;AACd,aAAO,KAAK,CAAC;KACd;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,UAAU,EAAE;AACpC,OAAG,EAAE,eAAW;AACd,aAAO,QAAQ,CAAC;KACjB;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,IAAI,EAAE;AAC9B,OAAG,EAAE,eAAW;AACd,aAAO,EAAE,CAAC;KACX;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE;AAChC,OAAG,EAAE,eAAW;AACd,aAAO,IAAI,CAAC;KACb;AACD,OAAG,EAAE,aAAS,OAAO,EAAE;AACrB,UAAI,CAAC,aAAa,CAAC,aAAa,CAAC,OAAO,CAAC,EAAE;AACzC,eAAO;OACR;AACD,UAAI,GAAG,OAAO,CAAC;AACf,UAAI,IAAI,KAAK,SAAS,EAAE;AACtB,YAAI,CAAC,KAAK,CAAC,EAAE,CAAC,YAAY,EAAE,iBAAiB,CAAC,CAAC;OAChD;AACD,UAAI,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC;KAC5B;GACF,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,MAAM,EAAE;AAChC,OAAG,EAAE,eAAW;AACd,UAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,eAAO,IAAI,CAAC;OACb;;AAED,aAAO,IAAI,CAAC;KACb;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,QAAM,CAAC,cAAc,CAAC,EAAE,EAAE,YAAY,EAAE;AACtC,OAAG,EAAE,eAAW;AACd,UAAI,CAAC,IAAI,CAAC,OAAO,EAAE;AACjB,eAAO,IAAI,CAAC;OACb;;AAED,UAAI,IAAI,KAAQ,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7B,eAAO,UAAU,CAAC;OACnB;;AAED,UAAI,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC;AAClC,UAAI,MAAM,GAAG,EAAE,CAAC;;AAEhB,WAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,KAAQ,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,YAAI,GAAG,GAAG,IAAI,KAAQ,CAAC,CAAC,CAAC,CAAC;AAC1B,YAAI,GAAG,UAAa,IAAI,EAAE,IAAI,GAAG,QAAW,IAAI,EAAE,EAAE;AAClD,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB,MAAM,IAAI,GAAG,UAAa,KAAK,GAAG,QAAW,IAAI,GAAG,UAAa,IAAI,EAAE,IAAI,GAAG,UAAa,GAAG,GAAG,IAAI,EAAE,EAAE;AACxG,gBAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;SAClB;OACF;;AAED,aAAO,GAAG,KAAK,CAAC;;AAEhB,UAAI,MAAM,CAAC,MAAM,KAAK,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE;AAC7C,eAAO,GAAG,IAAI,CAAC;OAChB,MAAM;AACL,aAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,cAAI,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE;AACpD,mBAAO,GAAG,IAAI,CAAC;WAChB;SACF;OACF;;AAED,UAAI,CAAC,WAAW,GAAG,MAAM,CAAC;AAC1B,gBAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;;AAEtC,aAAO,UAAU,CAAC;KACnB;AACD,OAAG,EAAE,QAAQ,CAAC,SAAS;GACxB,CAAC,CAAC;;AAEH,MAAI,OAAO,CAAC,GAAG,EAAE;AACf,MAAE,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;AACrB,aAAS,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;GAC5B,MAAM;AACL,MAAE,CAAC,OAAO,GAAG,IAAI,CAAC;GACnB;;AAED,MAAI,OAAO,CAAC,MAAM,EAAE;AAClB,WAAO,EAAE,CAAC;GACX;CACF,CAAA,CAAC;;AAEF,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC,yBAAY,SAAS,CAAC,CAAC;AAC3D,SAAS,CAAC,SAAS,CAAC,WAAW,GAAG,SAAS,CAAC;;;;;AAK5C,SAAS,CAAC,SAAS,CAAC,cAAc,GAAG;AACnC,aAAa,WAAW;CACzB,CAAC;;AAEF,SAAS,CAAC,SAAS,CAAC,MAAM,GAAG,UAAS,GAAG,EAAE;AACzC,MAAI,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE,CAAC;;AAErC,MAAI,MAAM,EAAE;AACV,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACtC,UAAI,MAAM,CAAC,CAAC,CAAC,KAAK,IAAI,EAAE;AACtB,cAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;OAC1B;KACF;GACF;;AAED,MAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrB,MAAI,KAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;CACnC,CAAC;;AAEF,SAAS,CAAC,SAAS,CAAC,SAAS,GAAG,UAAS,SAAS,EAAE;AAClD,MAAI,OAAO,GAAG,KAAK,CAAC;;AAEpB,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACjD,QAAI,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACxB,QAAI,GAAG,KAAK,SAAS,EAAE;AACrB,UAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;AACxB,aAAO,GAAG,IAAI,CAAC;KAChB;GACF;;AAED,MAAI,OAAO,EAAE;AACX,QAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;GAChC;CACF,CAAC;;;;;AAKF,IAAI,SAAS;;;;;;;;;;GAAG,UAAS,UAAU,EAAE,KAAK,EAAE;AAC1C,MAAI,OAAO,0BAAgB,KAAK,UAAU,EAAE;;AAE1C,WAAO,oBAAO,UAAU,CAAC,YAAW;AAClC,eAAS,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KAC9B,EAAE,EAAE,CAAC,CAAC;GACR;;AAED,MAAI,MAAM,GAAG,IAAI,0BAAgB,OAAU,sBAAS,yBAAe,EAAE,0BAAgB,cAAiB,EAAE,CAAC,CAAC;;AAE1G,QAAM,MAAS,GAAG,UAAS,GAAG,EAAE;AAC9B,SAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;GACnB,CAAC;AACF,QAAM,eAAkB,GAAG,UAAS,KAAK,EAAE;AACzC,qBAAI,KAAK,CAAC,KAAK,CAAC,CAAC;GAClB,CAAC;;AAEF,QAAM,MAAS,CAAC,UAAU,CAAC,CAAC;AAC5B,QAAM,MAAS,EAAE,CAAC;CACnB,CAAA,CAAC;;AAEF,IAAI,SAAS,GAAG,mBAAS,GAAG,EAAE,KAAK,EAAE;AACnC,mBAAI,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,UAAS,GAAG,EAAE,QAAQ,EAAE,YAAY,EAAC;AAC1D,QAAI,GAAG,EAAE;AACP,aAAO,iBAAI,KAAK,CAAC,GAAG,CAAC,CAAC;KACvB;;AAGD,SAAK,CAAC,OAAO,GAAG,IAAI,CAAC;AACrB,aAAS,CAAC,YAAY,EAAE,KAAK,CAAC,CAAC;GAChC,CAAC,CAAC,CAAC;CACL,CAAC;;AAEF,IAAI,OAAO,GAAG,iBAAS,aAAa,EAAE,SAAS,EAAE;AAC/C,MAAI,IAAI,IAAI,IAAI,EAAE;AAChB,UAAM,IAAI,SAAS,CAAC,+BAA+B,CAAC,CAAC;GACtD;;AAED,MAAI,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC;;AAErB,MAAI,GAAG,GAAG,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;;AAEzB,MAAI,GAAG,KAAK,CAAC,EAAE;AACb,WAAO,CAAC,CAAC,CAAC;GACX;;AAED,MAAI,CAAC,GAAG,CAAC,SAAS,IAAI,CAAC,CAAC;;AAExB,MAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE;AAC5B,KAAC,GAAG,CAAC,CAAC;GACP;;AAED,MAAI,CAAC,IAAI,GAAG,EAAE;AACZ,WAAO,CAAC,CAAC,CAAC;GACX;;AAED,MAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;;AAEpD,SAAO,CAAC,GAAG,GAAG,EAAE;AACd,QAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE;AACpC,aAAO,CAAC,CAAC;KACV;AACD,KAAC,EAAE,CAAC;GACL;AACD,SAAO,CAAC,CAAC,CAAC;CACX,CAAC;;qBAEa,SAAS;;;;;;;;;;;;;wBCzSH,iBAAiB;;;;sBACnB,eAAe;;;;AAElC,IAAM,UAAU,GAAG,oBAAO,SAAS,CAAC,SAAS,CAAC;;;;;;;;;AASvC,IAAM,SAAS,GAAG,AAAC,SAAS,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAAzC,SAAS,GAAT,SAAS;AACf,IAAM,OAAO,GAAG,AAAC,OAAO,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAArC,OAAO,GAAP,OAAO;AACb,IAAM,OAAO,GAAG,AAAC,OAAO,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAArC,OAAO,GAAP,OAAO;AACb,IAAM,MAAM,GAAG,SAAS,IAAI,OAAO,IAAI,OAAO,CAAC;;QAAzC,MAAM,GAAN,MAAM;AAEZ,IAAM,WAAW,GAAG,CAAC,YAAU;AACpC,MAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;AAC3C,MAAI,KAAK,IAAI,KAAK,CAAC,CAAC,CAAC,EAAE;AAAE,WAAO,KAAK,CAAC,CAAC,CAAC,CAAC;GAAE;CAC5C,CAAA,EAAG,CAAC;;QAHQ,WAAW,GAAX,WAAW;AAKjB,IAAM,UAAU,GAAG,AAAC,UAAU,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAA3C,UAAU,GAAV,UAAU;AAChB,IAAM,eAAe,GAAG,CAAC,YAAW;;;AAGzC,MAAI,KAAK,GAAG,UAAU,CAAC,KAAK,CAAC,wCAAwC,CAAC;MACpE,KAAK;MACL,KAAK,CAAC;;AAER,MAAI,CAAC,KAAK,EAAE;AACV,WAAO,IAAI,CAAC;GACb;;AAED,OAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;AACzC,OAAK,GAAG,KAAK,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;;AAEzC,MAAI,KAAK,IAAI,KAAK,EAAE;AAClB,WAAO,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,GAAG,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;GAC9C,MAAM,IAAI,KAAK,EAAE;AAChB,WAAO,KAAK,CAAC;GACd,MAAM;AACL,WAAO,IAAI,CAAC;GACb;CACF,CAAA,EAAG,CAAC;QArBQ,eAAe,GAAf,eAAe;;AAuBrB,IAAM,cAAc,GAAG,UAAU,IAAI,AAAC,SAAS,CAAE,IAAI,CAAC,UAAU,CAAC,IAAI,eAAe,GAAG,GAAG,CAAC;;QAArF,cAAc,GAAd,cAAc;AAEpB,IAAM,UAAU,GAAG,AAAC,UAAU,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAA3C,UAAU,GAAV,UAAU;AAChB,IAAM,SAAS,GAAG,AAAC,SAAS,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;QAAzC,SAAS,GAAT,SAAS;AACf,IAAM,MAAM,GAAG,AAAC,YAAY,CAAE,IAAI,CAAC,UAAU,CAAC,CAAC;;QAAzC,MAAM,GAAN,MAAM;AAEZ,IAAM,aAAa,GAAG,CAAC,EAAE,AAAC,cAAc,uBAAU,IAAK,oBAAO,aAAa,IAAI,iCAAoB,oBAAO,aAAa,CAAA,AAAC,CAAC;QAAnH,aAAa,GAAb,aAAa;AACnB,IAAM,yBAAyB,IAAG,gBAAgB,IAAI,sBAAS,aAAa,CAAC,OAAO,CAAC,CAAC,KAAK,CAAA,CAAC;QAAtF,yBAAyB,GAAzB,yBAAyB;;;;;;;;;;;;;;;;QC1CtB,eAAe,GAAf,eAAe;;;;;+BAXC,kBAAkB;;AAW3C,SAAS,eAAe,CAAC,QAAQ,EAAE,QAAQ,EAAE;AAClD,MAAI,gBAAgB,GAAG,CAAC;MACpB,KAAK;MAAE,GAAG,CAAC;;AAEf,MAAI,CAAC,QAAQ,EAAE;AACb,WAAO,CAAC,CAAC;GACV;;AAED,MAAI,CAAC,QAAQ,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE;AACjC,YAAQ,GAAG,iBApBN,eAAe,CAoBO,CAAC,EAAE,CAAC,CAAC,CAAC;GAClC;;AAED,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAC;AACvC,SAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1B,OAAG,GAAK,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;;;AAGxB,QAAI,GAAG,GAAG,QAAQ,EAAE;AAClB,SAAG,GAAG,QAAQ,CAAC;KAChB;;AAED,oBAAgB,IAAI,GAAG,GAAG,KAAK,CAAC;GACjC;;AAED,SAAO,gBAAgB,GAAG,QAAQ,CAAC;CACpC;;;;;;;;;mBCvCe,UAAU;;;;;;;;;;AAQ1B,IAAM,gBAAgB,GAAG;AACvB,KAAG,EAAA,aAAC,GAAG,EAAE,GAAG,EAAE;AACZ,WAAO,GAAG,CAAC,GAAG,CAAC,CAAC;GACjB;AACD,KAAG,EAAA,aAAC,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE;AACnB,OAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;AACjB,WAAO,IAAI,CAAC;GACb;CACF,CAAC;;;;;;;;;;;;;;;;qBAea,UAAC,MAAM,EAAkB;MAAhB,QAAQ,gCAAC,EAAE;;AACjC,MAAI,OAAO,KAAK,KAAK,UAAU,EAAE;;AAC/B,UAAI,OAAO,GAAG,EAAE,CAAC;;;;AAIjB,YAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,UAAA,GAAG,EAAI;AACnC,YAAI,gBAAgB,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE;AACxC,iBAAO,CAAC,GAAG,CAAC,GAAG,YAAW;AACxB,6BAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACxB,mBAAO,gBAAgB,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;WACrD,CAAC;SACH;OACF,CAAC,CAAC;;AAEH;WAAO,IAAI,KAAK,CAAC,MAAM,EAAE,OAAO,CAAC;QAAC;;;;GACnC;AACD,SAAO,MAAM,CAAC;CACf;;;;;;;;;;;;;;;;;;;QClCe,KAAK,GAAL,KAAK;;;;;;;;;;QAgBL,QAAQ,GAAR,QAAQ;;;;;;;;;;QAgCR,aAAa,GAAb,aAAa;;;;;;;;;QAkCb,SAAS,GAAT,SAAS;;;;;;;;;;QAsBT,SAAS,GAAT,SAAS;;;;;;;;;QAiBT,YAAY,GAAZ,YAAY;;;;;;;;;QA8BZ,UAAU,GAAV,UAAU;;;;;;;;;QAWV,UAAU,GAAV,UAAU;;;;;;;;;QAaV,aAAa,GAAb,aAAa;;;;;;;;;;QAuBb,eAAe,GAAf,eAAe;;;;;;;;;;;;;QAuBf,eAAe,GAAf,eAAe;;;;;;;;QAuCf,kBAAkB,GAAlB,kBAAkB;;;;;;;;QAalB,oBAAoB,GAApB,oBAAoB;;;;;;;;;;;QAepB,cAAc,GAAd,cAAc;;;;;wBA5ST,iBAAiB;;;;sBACnB,eAAe;;;;sBACX,WAAW;;IAArB,IAAI;;AAUV,SAAS,KAAK,CAAC,EAAE,EAAC;AACvB,MAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACzB,MAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;GAClB;;AAED,SAAO,sBAAS,cAAc,CAAC,EAAE,CAAC,CAAC;CACpC;;AAUM,SAAS,QAAQ,GAA8B;MAA7B,OAAO,gCAAC,KAAK;MAAE,UAAU,gCAAC,EAAE;;AACnD,MAAI,EAAE,GAAG,sBAAS,aAAa,CAAC,OAAO,CAAC,CAAC;;AAEzC,QAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAS,QAAQ,EAAC;AAC7D,QAAI,GAAG,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;;;;;;;;;;AAU/B,QAAI,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,QAAQ,KAAK,MAAM,IAAI,QAAQ,KAAK,MAAM,EAAE;AACnF,QAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC;KAC/B,MAAM;AACN,QAAE,CAAC,QAAQ,CAAC,GAAG,GAAG,CAAC;KACnB;GACJ,CAAC,CAAC;;AAEH,SAAO,EAAE,CAAC;CACX;;AAUM,SAAS,aAAa,CAAC,KAAK,EAAE,MAAM,EAAC;AAC1C,MAAI,MAAM,CAAC,UAAU,EAAE;AACrB,UAAM,CAAC,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC,UAAU,CAAC,CAAC;GAC/C,MAAM;AACL,UAAM,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;GAC3B;CACF;;;;;;;;;;AAUD,IAAM,MAAM,GAAG,EAAE,CAAC;;;;;;;;;AASlB,IAAM,QAAQ,GAAG,OAAO,GAAG,AAAC,IAAI,IAAI,EAAE,CAAE,OAAO,EAAE,CAAC;AAS3C,SAAS,SAAS,CAAC,EAAE,EAAE;AAC5B,MAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;;AAEtB,MAAI,CAAC,EAAE,EAAE;AACP,MAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;GACpC;;AAED,MAAI,CAAC,MAAM,CAAC,EAAE,CAAC,EAAE;AACf,UAAM,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC;GACjB;;AAED,SAAO,MAAM,CAAC,EAAE,CAAC,CAAC;CACnB;;AAUM,SAAS,SAAS,CAAC,EAAE,EAAE;AAC5B,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;;AAExB,MAAI,CAAC,EAAE,EAAE;AACP,WAAO,KAAK,CAAC;GACd;;AAED,SAAO,CAAC,CAAC,MAAM,CAAC,mBAAmB,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC;CACxD;;AASM,SAAS,YAAY,CAAC,EAAE,EAAE;AAC/B,MAAI,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,CAAC;;AAEtB,MAAI,CAAC,EAAE,EAAE;AACP,WAAO;GACR;;;AAGD,SAAO,MAAM,CAAC,EAAE,CAAC,CAAC;;;AAGlB,MAAI;AACF,WAAO,EAAE,CAAC,QAAQ,CAAC,CAAC;GACrB,CAAC,OAAM,CAAC,EAAE;AACT,QAAI,EAAE,CAAC,eAAe,EAAE;AACtB,QAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KAC9B,MAAM;;AAEL,QAAE,CAAC,QAAQ,CAAC,GAAG,IAAI,CAAC;KACrB;GACF;CACF;;AASM,SAAS,UAAU,CAAC,OAAO,EAAE,YAAY,EAAE;AAChD,SAAQ,CAAC,GAAG,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,CAAA,CAAE,OAAO,CAAC,GAAG,GAAG,YAAY,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,CAAE;CACnF;;AASM,SAAS,UAAU,CAAC,OAAO,EAAE,UAAU,EAAE;AAC9C,MAAI,CAAC,UAAU,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE;AACpC,WAAO,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,KAAK,EAAE,GAAG,UAAU,GAAG,OAAO,CAAC,SAAS,GAAG,GAAG,GAAG,UAAU,CAAC;GAClG;CACF;;AASM,SAAS,aAAa,CAAC,OAAO,EAAE,aAAa,EAAE;AACpD,MAAI,CAAC,UAAU,CAAC,OAAO,EAAE,aAAa,CAAC,EAAE;AAAC,WAAO;GAAC;;AAElD,MAAI,UAAU,GAAG,OAAO,CAAC,SAAS,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;;;AAG9C,OAAK,IAAI,CAAC,GAAG,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC/C,QAAI,UAAU,CAAC,CAAC,CAAC,KAAK,aAAa,EAAE;AACnC,gBAAU,CAAC,MAAM,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC;KACxB;GACF;;AAED,SAAO,CAAC,SAAS,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;CAC1C;;AAUM,SAAS,eAAe,CAAC,EAAE,EAAE,UAAU,EAAE;AAC9C,QAAM,CAAC,mBAAmB,CAAC,UAAU,CAAC,CAAC,OAAO,CAAC,UAAS,QAAQ,EAAC;AAC/D,QAAI,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,CAAC;;AAErC,QAAI,SAAS,KAAK,IAAI,IAAI,OAAO,SAAS,KAAK,WAAW,IAAI,SAAS,KAAK,KAAK,EAAE;AACjF,QAAE,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;KAC9B,MAAM;AACL,QAAE,CAAC,YAAY,CAAC,QAAQ,EAAG,SAAS,KAAK,IAAI,GAAG,EAAE,GAAG,SAAS,CAAE,CAAC;KAClE;GACF,CAAC,CAAC;CACJ;;AAaM,SAAS,eAAe,CAAC,GAAG,EAAE;AACnC,MAAI,GAAG,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,CAAC;;AAEjD,KAAG,GAAG,EAAE,CAAC;;;;;AAKT,eAAa,GAAG,GAAG,GAAC,sCAAsC,GAAC,GAAG,CAAC;;AAE/D,MAAI,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,GAAG,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE;AACtD,SAAK,GAAG,GAAG,CAAC,UAAU,CAAC;;AAEvB,SAAK,IAAI,CAAC,GAAG,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,EAAE;AAC1C,cAAQ,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AACzB,aAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;;;;AAIzB,UAAI,OAAO,GAAG,CAAC,QAAQ,CAAC,KAAK,SAAS,IAAI,aAAa,CAAC,OAAO,CAAC,GAAG,GAAC,QAAQ,GAAC,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE;;;;AAIxF,eAAO,GAAG,AAAC,OAAO,KAAK,IAAI,GAAI,IAAI,GAAG,KAAK,CAAC;OAC7C;;AAED,SAAG,CAAC,QAAQ,CAAC,GAAG,OAAO,CAAC;KACzB;GACF;;AAED,SAAO,GAAG,CAAC;CACZ;;AAQM,SAAS,kBAAkB,GAAG;AACnC,wBAAS,IAAI,CAAC,KAAK,EAAE,CAAC;AACtB,wBAAS,aAAa,GAAG,YAAW;AAClC,WAAO,KAAK,CAAC;GACd,CAAC;CACH;;AAQM,SAAS,oBAAoB,GAAG;AACrC,wBAAS,aAAa,GAAG,YAAW;AAClC,WAAO,IAAI,CAAC;GACb,CAAC;CACH;;AAWM,SAAS,cAAc,CAAC,EAAE,EAAE;AACjC,MAAI,GAAG,YAAA,CAAC;;AAER,MAAI,EAAE,CAAC,qBAAqB,IAAI,EAAE,CAAC,UAAU,EAAE;AAC7C,OAAG,GAAG,EAAE,CAAC,qBAAqB,EAAE,CAAC;GAClC;;AAED,MAAI,CAAC,GAAG,EAAE;AACR,WAAO;AACL,UAAI,EAAE,CAAC;AACP,SAAG,EAAE,CAAC;KACP,CAAC;GACH;;AAED,MAAM,KAAK,GAAG,sBAAS,eAAe,CAAC;AACvC,MAAM,IAAI,GAAG,sBAAS,IAAI,CAAC;;AAE3B,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;AAC5D,MAAM,UAAU,GAAG,oBAAO,WAAW,IAAI,IAAI,CAAC,UAAU,CAAC;AACzD,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,GAAG,UAAU,GAAG,UAAU,CAAC;;AAEhD,MAAM,SAAS,GAAG,KAAK,CAAC,SAAS,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;AACzD,MAAM,SAAS,GAAG,oBAAO,WAAW,IAAI,IAAI,CAAC,SAAS,CAAC;AACvD,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,GAAG,SAAS,GAAG,SAAS,CAAC;;;AAG5C,SAAO;AACL,QAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC;AACtB,OAAG,EAAE,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;GACrB,CAAC;CACH;;;;;;;;;;;;;;;;;;;;QCpTe,EAAE,GAAF,EAAE;;;;;;;;;;QA0DF,GAAG,GAAH,GAAG;;;;;;;;;;;QAyDH,OAAO,GAAP,OAAO;;;;;;;;;;QAuDP,GAAG,GAAH,GAAG;;;;;;;;;;QAqBH,QAAQ,GAAR,QAAQ;;;;;;;;;;sBA/MF,UAAU;;IAAnB,GAAG;;uBACO,WAAW;;IAArB,IAAI;;sBACE,eAAe;;;;wBACb,iBAAiB;;;;AAa/B,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAC;AAChC,MAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,WAAO,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;GAClD;;AAED,MAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;;AAG/B,MAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAC;;AAEvC,MAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;;AAEnD,MAAI,CAAC,EAAE,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;;AAEvC,MAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;;AAE7B,MAAI,CAAC,IAAI,CAAC,UAAU,EAAE;AACpB,QAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;;AAEtB,QAAI,CAAC,UAAU,GAAG,UAAU,KAAK,EAAE,IAAI,EAAC;;AAEtC,UAAI,IAAI,CAAC,QAAQ,EAAE,OAAO;AAC1B,WAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;;AAExB,UAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;;AAEzC,UAAI,QAAQ,EAAE;;AAEZ,YAAI,YAAY,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;;AAErC,aAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,YAAY,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE;AACnD,cAAI,KAAK,CAAC,6BAA6B,EAAE,EAAE;AACzC,kBAAM;WACP,MAAM;AACL,wBAAY,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;WACzC;SACF;OACF;KACF,CAAC;GACH;;AAED,MAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,QAAI,IAAI,CAAC,gBAAgB,EAAE;AACzB,UAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KACrD,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3B,UAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAChD;GACF;CACF;;AAUM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;;AAElC,MAAI,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC;AAAE,WAAO;GAAA,AAEjC,IAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;;AAG/B,MAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAAE,WAAO;GAAE;;AAE/B,MAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,WAAO,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;GACnD;;;AAGD,MAAI,UAAU,GAAG,oBAAS,CAAC,EAAC;AACzB,QAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC;AACtB,kBAAc,CAAC,IAAI,EAAC,CAAC,CAAC,CAAC;GACzB,CAAC;;;AAGF,MAAI,CAAC,IAAI,EAAE;AACT,SAAK,IAAI,CAAC,IAAI,IAAI,CAAC,QAAQ;AAAE,gBAAU,CAAC,CAAC,CAAC,CAAC;KAAA,AAC3C,OAAO;GACR;;AAED,MAAI,QAAQ,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;AAGnC,MAAI,CAAC,QAAQ;AAAE,WAAO;GAAA;AAGtB,MAAI,CAAC,EAAE,EAAE;AACP,cAAU,CAAC,IAAI,CAAC,CAAC;AACjB,WAAO;GACR;;;AAGD,MAAI,EAAE,CAAC,IAAI,EAAE;AACX,SAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACxC,UAAI,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,EAAE,CAAC,IAAI,EAAE;AAChC,gBAAQ,CAAC,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;OACzB;KACF;GACF;;AAED,gBAAc,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;CAC5B;;AAWM,SAAS,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE;;;;AAIzC,MAAI,QAAQ,GAAG,AAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAI,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AAChE,MAAI,MAAM,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC,aAAa,CAAC;;;;;AAKnD,MAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;AAC7B,SAAK,GAAG,EAAE,IAAI,EAAC,KAAK,EAAE,MAAM,EAAC,IAAI,EAAE,CAAC;GACrC;;AAED,OAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;;;AAGxB,MAAI,QAAQ,CAAC,UAAU,EAAE;AACvB,YAAQ,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;GAC7C;;;;AAIC,MAAI,MAAM,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE,IAAI,KAAK,CAAC,OAAO,KAAK,IAAI,EAAE;AACrE,WAAO,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;;;GAG3C,MAAM,IAAI,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,gBAAgB,EAAE;AAC7C,QAAI,UAAU,GAAG,GAAG,CAAC,SAAS,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;;;AAG7C,QAAI,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE;;AAE5B,gBAAU,CAAC,QAAQ,GAAG,IAAI,CAAC;;AAE3B,UAAI,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE;AAClD,aAAK,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;OAC5B;;AAED,gBAAU,CAAC,QAAQ,GAAG,KAAK,CAAC;KAC7B;GACF;;;AAGD,SAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC;CAChC;;AAUM,SAAS,GAAG,CAAC,IAAI,EAAE,IAAI,EAAE,EAAE,EAAE;AAClC,MAAI,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE;AACvB,WAAO,qBAAqB,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,EAAE,CAAC,CAAC;GACnD;AACD,MAAI,IAAI;;;;;;;;;;KAAG,YAAU;AACnB,OAAG,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;AACtB,MAAE,CAAC,KAAK,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;GAC3B,CAAA,CAAC;;AAEF,MAAI,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;AAChD,IAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,CAAC;CACtB;;AAUM,SAAS,QAAQ,CAAC,KAAK,EAAE;;AAE9B,WAAS,UAAU,GAAG;AAAE,WAAO,IAAI,CAAC;GAAE;AACtC,WAAS,WAAW,GAAG;AAAE,WAAO,KAAK,CAAC;GAAE;;;;;;;AAOxC,MAAI,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,oBAAoB,EAAE;AACzC,QAAI,GAAG,GAAG,KAAK,IAAI,oBAAO,KAAK,CAAC;;AAEhC,SAAK,GAAG,EAAE,CAAC;;;;;;AAMX,SAAK,IAAI,GAAG,IAAI,GAAG,EAAE;;;AAGnB,UAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,aAAa,EAAE;;;AAGjE,YAAI,EAAE,GAAG,KAAK,aAAa,IAAI,GAAG,CAAC,cAAc,CAAA,AAAC,EAAE;AAClD,eAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;SACvB;OACF;KACF;;;AAGD,QAAI,CAAC,KAAK,CAAC,MAAM,EAAE;AACjB,WAAK,CAAC,MAAM,GAAG,KAAK,CAAC,UAAU,yBAAY,CAAC;KAC7C;;;AAGD,QAAI,CAAC,KAAK,CAAC,aAAa,EAAE;AACxB,WAAK,CAAC,aAAa,GAAG,KAAK,CAAC,WAAW,KAAK,KAAK,CAAC,MAAM,GACtD,KAAK,CAAC,SAAS,GACf,KAAK,CAAC,WAAW,CAAC;KACrB;;;AAGD,SAAK,CAAC,cAAc,GAAG,YAAY;AACjC,UAAI,GAAG,CAAC,cAAc,EAAE;AACtB,WAAG,CAAC,cAAc,EAAE,CAAC;OACtB;AACD,WAAK,CAAC,WAAW,GAAG,KAAK,CAAC;AAC1B,WAAK,CAAC,gBAAgB,GAAG,IAAI,CAAC;KAC/B,CAAC;;AAEF,SAAK,CAAC,gBAAgB,GAAG,KAAK,CAAC;;;AAG/B,SAAK,CAAC,eAAe,GAAG,YAAY;AAClC,UAAI,GAAG,CAAC,eAAe,EAAE;AACvB,WAAG,CAAC,eAAe,EAAE,CAAC;OACvB;AACD,WAAK,CAAC,YAAY,GAAG,IAAI,CAAC;AAC1B,WAAK,CAAC,oBAAoB,GAAG,UAAU,CAAC;KACzC,CAAC;;AAEF,SAAK,CAAC,oBAAoB,GAAG,WAAW,CAAC;;;AAGzC,SAAK,CAAC,wBAAwB,GAAG,YAAY;AAC3C,UAAI,GAAG,CAAC,wBAAwB,EAAE;AAChC,WAAG,CAAC,wBAAwB,EAAE,CAAC;OAChC;AACD,WAAK,CAAC,6BAA6B,GAAG,UAAU,CAAC;AACjD,WAAK,CAAC,eAAe,EAAE,CAAC;KACzB,CAAC;;AAEF,SAAK,CAAC,6BAA6B,GAAG,WAAW,CAAC;;;AAGlD,QAAI,KAAK,CAAC,OAAO,IAAI,IAAI,EAAE;AACzB,UAAI,GAAG,GAAG,sBAAS,eAAe;UAAE,IAAI,GAAG,sBAAS,IAAI,CAAC;;AAEzD,WAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,IACxB,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA,AAAC,IACtD,GAAG,IAAI,GAAG,CAAC,UAAU,IAAI,IAAI,IAAI,IAAI,CAAC,UAAU,IAAI,CAAC,CAAA,AAAC,CAAC;AAC1D,WAAK,CAAC,KAAK,GAAG,KAAK,CAAC,OAAO,IACxB,GAAG,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA,AAAC,IACpD,GAAG,IAAI,GAAG,CAAC,SAAS,IAAI,IAAI,IAAI,IAAI,CAAC,SAAS,IAAI,CAAC,CAAA,AAAC,CAAC;KACzD;;;AAGD,SAAK,CAAC,KAAK,GAAG,KAAK,CAAC,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC;;;;AAI9C,QAAI,KAAK,CAAC,MAAM,IAAI,IAAI,EAAE;AACxB,WAAK,CAAC,MAAM,GAAI,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GACjC,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAClB,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,AAAC,AAAC,AAAC,CAAC;KAClC;GACF;;;AAGD,SAAO,KAAK,CAAC;CACd;;;;;;;;;;AAUD,SAAS,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE;AAClC,MAAI,IAAI,GAAG,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;;;AAG/B,MAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACpC,WAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;;;;;AAK3B,QAAI,IAAI,CAAC,mBAAmB,EAAE;AAC5B,UAAI,CAAC,mBAAmB,CAAC,IAAI,EAAE,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,CAAC;KACxD,MAAM,IAAI,IAAI,CAAC,WAAW,EAAE;AAC3B,UAAI,CAAC,WAAW,CAAC,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;KAChD;GACF;;;AAGD,MAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,MAAM,IAAI,CAAC,EAAE;AACzD,WAAO,IAAI,CAAC,QAAQ,CAAC;AACrB,WAAO,IAAI,CAAC,UAAU,CAAC;AACvB,WAAO,IAAI,CAAC,QAAQ,CAAC;GACtB;;;AAGD,MAAI,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,EAAE;AACjD,OAAG,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;GACxB;CACF;;;;;;;;;;;;AAYD,SAAS,qBAAqB,CAAC,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE;AACxD,OAAK,CAAC,OAAO,CAAC,UAAS,IAAI,EAAE;;AAE3B,MAAE,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,CAAC,CAAC;GAC1B,CAAC,CAAC;CACJ;;;;;;;;;;uBClXuB,WAAW;;;;;;;;;;;;;AAa5B,IAAM,IAAI,GAAG,cAAS,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE;;AAE7C,MAAI,CAAC,EAAE,CAAC,IAAI,EAAE;AAAE,MAAE,CAAC,IAAI,GAAG,SAfnB,OAAO,EAeqB,CAAC;GAAE;;;AAGtC,MAAI,GAAG,GAAG,eAAW;AACnB,WAAO,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;GACrC,CAAC;;;;;;;;AAQF,KAAG,CAAC,IAAI,GAAG,AAAC,GAAG,GAAI,GAAG,GAAG,GAAG,GAAG,EAAE,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;;AAEjD,SAAO,GAAG,CAAC;CACZ,CAAC;QAlBW,IAAI,GAAJ,IAAI;;;;;;;;;;;;;;;;;;;ACHjB,SAAS,UAAU,CAAC,OAAO;MAAE,KAAK,gCAAC,OAAO;sBAAE;AAC1C,QAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC;AACjC,QAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACtC,QAAI,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,IAAI,CAAC,CAAC;AACnC,QAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;AACvC,QAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC;;;AAGpC,QAAI,KAAK,CAAC,OAAO,CAAC,IAAI,OAAO,KAAK,QAAQ,EAAE;;;AAG1C,OAAC,GAAG,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;KACjB;;;AAGD,KAAC,GAAG,AAAC,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,CAAC,GAAI,CAAC,GAAG,GAAG,GAAG,EAAE,CAAC;;;;AAIrC,KAAC,GAAG,CAAC,AAAC,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAA,IAAK,CAAC,GAAG,EAAE,GAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAA,GAAI,GAAG,CAAC;;;AAGtD,KAAC,GAAG,AAAC,CAAC,GAAG,EAAE,GAAI,GAAG,GAAG,CAAC,GAAG,CAAC,CAAC;;AAE3B,WAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;GAClB;CAAA;;qBAEc,UAAU;;;;;;;;;;;;;;QCzBT,OAAO,GAAP,OAAO;;;;;;;;AARvB,IAAI,KAAK,GAAG,CAAC,CAAC;AAQP,SAAS,OAAO,GAAG;AACxB,SAAO,KAAK,EAAE,CAAC;CAChB;;;;;;;;;;;;sBCdkB,eAAe;;;;;;;AAKlC,IAAM,GAAG,GAAG,eAAU;AACpB,UAAQ,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;CAC3B,CAAC;;;;;;AAMF,GAAG,CAAC,OAAO,GAAG,EAAE,CAAC;;;;;AAKjB,GAAG,CAAC,KAAK,GAAG,YAAU;AACpB,UAAQ,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;CAC9B,CAAC;;;;;AAKF,GAAG,CAAC,IAAI,GAAG,YAAU;AACnB,UAAQ,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;CAC7B,CAAC;;;;;;;;;;AAUF,SAAS,QAAQ,CAAC,IAAI,EAAE,IAAI,EAAC;;AAE3B,MAAI,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;;;;AAKjD,MAAI,IAAI,GAAG,gBAAU,EAAE,CAAC;;AAExB,MAAI,OAAO,GAAG,2BAAiB,IAAI;AACjC,SAAO,IAAI;AACX,UAAQ,IAAI;AACZ,WAAS,IAAI;GACd,CAAC;;AAEF,MAAI,IAAI,EAAE;;AAER,aAAS,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,GAAC,GAAG,CAAC,CAAC;GAC3C,MAAM;;AAEL,QAAI,GAAG,KAAK,CAAC;GACd;;;AAGD,KAAG,CAAC,OAAO,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;AAG5B,WAAS,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;;;AAG9B,MAAI,OAAO,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE;AACvB,WAAO,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,OAAO,EAAE,SAAS,CAAC,CAAC;GACzC,MAAM;;AAEL,WAAO,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;GACpC;CACF;;qBAEc,GAAG;;;;;;;;;;;;;;;;;;;qBCnCM,YAAY;;;;;qBAxClB,4BAA4B;;;;AAE9C,SAAS,OAAO,CAAC,GAAG,EAAE;AACpB,SAAO,CAAC,CAAC,GAAG,IACP,OAAO,GAAG,KAAK,QAAQ,IACvB,GAAG,CAAC,QAAQ,EAAE,KAAK,iBAAiB,IACpC,GAAG,CAAC,WAAW,KAAK,MAAM,CAAC;CACjC;;;;;;;AAOD,IAAM,UAAU,GAAG,oBAAS,WAAW,EAAE,MAAM,EAAE;;;AAG/C,MAAI,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE;AACpB,WAAO,MAAM,CAAC;GACf;;;;;;;AAOD,MAAI,CAAC,OAAO,CAAC,WAAW,CAAC,EAAE;AACzB,WAAO,YAAY,CAAC,MAAM,CAAC,CAAC;GAC7B;CACF,CAAC;AAWa,SAAS,YAAY,GAAG;;;AAGrC,MAAI,IAAI,GAAG,KAAK,CAAC,SAAS,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;;;;AAIjD,MAAI,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;;;AAGjB,MAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;;AAEtB,qBAAM,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;;;AAGxB,SAAO,IAAI,CAAC,CAAC,CAAC,CAAC;CAChB;;;;;;;;;;;wBC3DoB,iBAAiB;;;;AAE/B,IAAI,kBAAkB,GAAG,4BAAS,SAAS,EAAE;AAClD,MAAI,KAAK,GAAG,sBAAS,aAAa,CAAC,OAAO,CAAC,CAAC;AAC5C,OAAK,CAAC,SAAS,GAAG,SAAS,CAAC;;AAE5B,SAAO,KAAK,CAAC;CACd,CAAC;;QALS,kBAAkB,GAAlB,kBAAkB;AAOtB,IAAI,cAAc,GAAG,wBAAS,EAAE,EAAE,OAAO,EAAE;AAChD,MAAI,EAAE,CAAC,UAAU,EAAE;AACjB,MAAE,CAAC,UAAU,CAAC,OAAO,GAAG,OAAO,CAAC;GACjC,MAAM;AACL,MAAE,CAAC,WAAW,GAAG,OAAO,CAAC;GAC1B;CACF,CAAC;QANS,cAAc,GAAd,cAAc;;;;;;;;;;;;;;;;;;;;QCKT,eAAe,GAAf,eAAe;;AAAxB,SAAS,eAAe,CAAC,KAAK,EAAE,GAAG,EAAC;AACzC,MAAI,KAAK,KAAK,SAAS,IAAI,GAAG,KAAK,SAAS,EAAE;AAC5C,WAAO;AACL,YAAM,EAAE,CAAC;AACT,WAAK,EAAE,iBAAW;AAChB,cAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;OACpD;AACD,SAAG,EAAE,eAAW;AACd,cAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;OACpD;KACF,CAAC;GACH;AACD,SAAO;AACL,UAAM,EAAE,CAAC;AACT,SAAK;;;;;;;;;;OAAE,YAAW;AAAE,aAAO,KAAK,CAAC;KAAE,CAAA;AACnC,OAAG;;;;;;;;;;OAAE,YAAW;AAAE,aAAO,GAAG,CAAC;KAAE,CAAA;GAChC,CAAC;CACH;;;;;;;;;;;;;;;;ACrBD,SAAS,WAAW,CAAC,MAAM,EAAC;AAC1B,SAAO,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;CACzD;;qBAEc,WAAW;;;;;;;;;;;;;wBCXL,iBAAiB;;;;;;;;;;;AAS/B,IAAM,QAAQ,GAAG,kBAAS,GAAG,EAAE;AACpC,MAAM,KAAK,GAAG,CAAC,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;;;AAGrF,MAAI,CAAC,GAAG,sBAAS,aAAa,CAAC,GAAG,CAAC,CAAC;AACpC,GAAC,CAAC,IAAI,GAAG,GAAG,CAAC;;;;;AAKb,MAAI,SAAS,GAAI,CAAC,CAAC,IAAI,KAAK,EAAE,IAAI,CAAC,CAAC,QAAQ,KAAK,OAAO,AAAC,CAAC;AAC1D,MAAI,GAAG,YAAA,CAAC;AACR,MAAI,SAAS,EAAE;AACb,OAAG,GAAG,sBAAS,aAAa,CAAC,KAAK,CAAC,CAAC;AACpC,OAAG,CAAC,SAAS,iBAAe,GAAG,WAAQ,CAAC;AACxC,KAAC,GAAG,GAAG,CAAC,UAAU,CAAC;;AAEnB,OAAG,CAAC,YAAY,CAAC,OAAO,EAAE,kCAAkC,CAAC,CAAC;AAC9D,0BAAS,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;GAChC;;;;;AAKD,MAAI,OAAO,GAAG,EAAE,CAAC;AACjB,OAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE;AACrC,WAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;GACjC;;;;AAID,MAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE;AAChC,WAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;GACjD;AACD,MAAI,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE;AACjC,WAAO,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;GAClD;;AAED,MAAI,SAAS,EAAE;AACb,0BAAS,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;GAChC;;AAED,SAAO,OAAO,CAAC;CAChB,CAAC;;QA3CW,QAAQ,GAAR,QAAQ;;;;;;;;;;AAsDd,IAAM,cAAc,GAAG,wBAAS,GAAG,EAAC;;AAEzC,MAAI,CAAC,GAAG,CAAC,KAAK,CAAC,cAAc,CAAC,EAAE;;AAE9B,QAAI,GAAG,GAAG,sBAAS,aAAa,CAAC,KAAK,CAAC,CAAC;AACxC,OAAG,CAAC,SAAS,iBAAe,GAAG,YAAS,CAAC;AACzC,OAAG,GAAG,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC;GAC3B;;AAED,SAAO,GAAG,CAAC;CACZ,CAAC;;QAVW,cAAc,GAAd,cAAc;;;;;;;;AAmBpB,IAAM,gBAAgB,GAAG,0BAAS,IAAI,EAAE;AAC7C,MAAG,OAAO,IAAI,KAAK,QAAQ,EAAC;AAC1B,QAAI,WAAW,GAAG,yEAAyE,CAAC;AAC5F,QAAI,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;;AAEvC,QAAI,SAAS,EAAE;AACb,aAAO,SAAS,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;KACtC;GACF;;AAED,SAAO,EAAE,CAAC;CACX,CAAC;QAXW,gBAAgB,GAAhB,gBAAgB;;;;;;;;;;;;wBClFR,iBAAiB;;;;sBACf,SAAS;;IAApB,KAAK;;uBACW,uBAAuB;;IAAvC,UAAU;;yBACA,aAAa;;;;2BACX,gBAAgB;;;;uBAChB,mBAAmB;;IAA/B,MAAM;;sBACC,UAAU;;;;sBACV,cAAc;;;;4BACR,qCAAqC;;;;uBAC1C,eAAe;;IAAvB,EAAE;;sBAEK,eAAe;;;;+BACF,wBAAwB;;0BACjC,wBAAwB;;;;mBAC/B,gBAAgB;;;;mBAChB,UAAU;;;;uBACL,gBAAgB;;IAAzB,GAAG;;uBACU,oBAAoB;;IAAjC,OAAO;;uBACE,gBAAgB;;IAAzB,GAAG;;yBACO,cAAc;;;;sBAClB,4BAA4B;;;;sCACX,qCAAqC;;;;;;qBAGtD,iBAAiB;;;;qBACjB,iBAAiB;;;;;AAGnC,IAAI,OAAO,gBAAgB,KAAK,WAAW,EAAE;AAC3C,wBAAS,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,wBAAS,aAAa,CAAC,OAAO,CAAC,CAAC;AAChC,wBAAS,aAAa,CAAC,OAAO,CAAC,CAAC;CACjC;;;;;;;;;;;;;;;;;AAiBD,IAAI,OAAO;;;;;;;;;;GAAG,UAAS,EAAE,EAAE,OAAO,EAAE,KAAK,EAAC;AACxC,MAAI,GAAG,CAAC;;;;AAIR,MAAI,OAAO,EAAE,KAAK,QAAQ,EAAE;;;AAG1B,QAAI,EAAE,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE;AACzB,QAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;KAClB;;;AAGD,QAAI,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,EAAE;;;AAG5B,UAAI,OAAO,EAAE;AACX,yBAAI,IAAI,cAAY,EAAE,4DAAyD,CAAC;OACjF;;AAED,UAAI,KAAK,EAAE;AACT,eAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;OACvC;;AAED,aAAO,OAAO,CAAC,UAAU,EAAE,CAAC,EAAE,CAAC,CAAC;;;KAGjC,MAAM;AACL,SAAG,GAAG,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;KACrB;;;AAAA,GAGF,MAAM;AACL,OAAG,GAAG,EAAE,CAAC;GACV;;;AAGD,MAAI,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE;;AACzB,UAAM,IAAI,SAAS,CAAC,oDAAoD,CAAC,CAAC;GAC3E;;;;AAID,SAAO,GAAG,OAAU,IAAI,wBAAW,GAAG,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;CACzD,CAAA,CAAC;;;AAGF,IAAI,KAAK,GAAG,UAAU,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,CAAC;AACjE,IAAI,IAAI,GAAG,sBAAS,aAAa,CAAC,MAAM,CAAC,CAAC;AAC1C,IAAI,CAAC,YAAY,CAAC,KAAK,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;AAC1C,UAAU,CAAC,cAAc,CAAC,KAAK,6DAI7B,CAAC;;;;AAIH,KAAK,CAAC,gBAAgB,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;;;;;;;AAOnC,OAAO,CAAC,OAAO,GAAG,aAAa,CAAC;;;;;;;;;;;;;AAahC,OAAO,CAAC,OAAO,GAAG,oBAAO,SAAS,CAAC,QAAQ,CAAC;;;;;;;;;AAS5C,OAAO,CAAC,UAAU,GAAG,YAAW;AAC9B,SAAO,oBAAO,OAAO,CAAC;CACvB,CAAC;;;;;;;;;AASF,OAAO,CAAC,OAAO,GAAG,oCAAuB,oBAAO,OAAO,EAAE;AACvD,KAAG,EAAE,yEAAyE;AAC9E,KAAG,EAAE,+CAA+C;CACrD,CAAC,CAAC;;;;;;;;;;;;;;AAcH,OAAO,CAAC,YAAY,GAAG,uBAAU,YAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA4B9C,OAAO,CAAC,iBAAiB,GAAG,uBAAU,iBAAiB,CAAC;;;;;;;;AAQxD,OAAO,CAAC,OAAO,GAAG,OAAO,CAAC;;;;;;;;;;AAU1B,OAAO,CAAC,aAAa,GAAG,OAAO,CAAC,aAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmC9C,OAAO,WAAQ,yBAAY,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAmC5B,OAAO,CAAC,YAAY,4BAAe,CAAC;;;;;;;;;;;;;;;;;AAiBpC,OAAO,CAAC,IAAI,GAAG,EAAE,CAAC,IAAI,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+CvB,OAAO,CAAC,MAAM,sBAAS,CAAC;;;;;;;;;;;;;;AAcxB,OAAO,CAAC,WAAW,GAAG,UAAS,IAAI,EAAE,IAAI,EAAC;;;AACxC,MAAI,GAAG,CAAC,EAAE,GAAG,IAAI,CAAA,CAAE,WAAW,EAAE,CAAC;AACjC,SAAO,mBAAM,OAAO,CAAC,OAAO,CAAC,SAAS,uBAAK,IAAI,IAAG,IAAI,UAAG,CAAC,IAAI,CAAC,CAAC;CACjE,CAAC;;;;;;;AAOF,OAAO,CAAC,GAAG,mBAAM,CAAC;;;;;;;;;;AAUlB,OAAO,CAAC,eAAe,oBA9Wd,eAAe,AA8WiB,CAAC;;;;;;;;;;;;AAY1C,OAAO,CAAC,UAAU,0BAAa,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BhC,OAAO,CAAC,GAAG,mBAAM,CAAC;;;;;;;;;AASlB,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,QAAQ,CAAC;;;;;;;AAOhC,OAAO,CAAC,WAAW,2BAAc,CAAC;;;;;;;;;;;;;AAalC,OAAO,CAAC,EAAE,GAAG,MAAM,CAAC,EAAE,CAAC;;;;;;;;;;AAUvB,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;;;;;;;;;;AAUzB,OAAO,CAAC,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;;;;;;;;;;;AAWzB,OAAO,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AA0BjC,IAAI,OAAO,MAAM,KAAK,UAAU,IAAI,MAAM,IAAO,EAAE;AACjD,QAAM,CAAC,SAAS,EAAE,EAAE,EAAE,YAAU;AAAE,WAAO,OAAO,CAAC;GAAE,CAAC,CAAC;;;CAGtD,MAAM,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE;AACpE,QAAM,QAAW,GAAG,OAAO,CAAC;CAC7B;;qBAEc,OAAO;;;;;;;;;;;;;sBCngBA,gBAAgB;;IAAzB,GAAG;;mBACA,gBAAgB;;;;4BACP,0BAA0B;;;;sBAChC,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA8BlC,IAAI,GAAG,GAAG,aAAS,OAAO,EAAE,QAAQ,EAAC;AACnC,MAAI,YAAY,YAAA,CAAC;;;AAGjB,MAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC/B,WAAO,GAAG;AACR,SAAG,EAAE,OAAO;KACb,CAAC;GACH;;;AAGD,SAAO,GAAG,0BAAa;AACrB,UAAM,EAAE,KAAK;AACb,WAAO,EAAE,EAAE,GAAI,IAAI;GACpB,EAAE,OAAO,CAAC,CAAC;;AAEZ,UAAQ,GAAG,QAAQ,IAAI,YAAU,EAAE,CAAC;;AAEpC,MAAI,GAAG,GAAG,oBAAO,cAAc,CAAC;;AAEhC,MAAI,OAAO,GAAG,KAAK,WAAW,EAAE;;AAE9B,OAAG,GAAG,YAAY;AAChB,UAAI;AAAE,eAAO,IAAI,oBAAO,aAAa,CAAC,oBAAoB,CAAC,CAAC;OAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAC3E,UAAI;AAAE,eAAO,IAAI,oBAAO,aAAa,CAAC,oBAAoB,CAAC,CAAC;OAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AAC3E,UAAI;AAAE,eAAO,IAAI,oBAAO,aAAa,CAAC,gBAAgB,CAAC,CAAC;OAAE,CAAC,OAAO,CAAC,EAAE,EAAE;AACvE,YAAM,IAAI,KAAK,CAAC,+CAA+C,CAAC,CAAC;KAClE,CAAC;GACH;;AAED,MAAI,OAAO,GAAG,IAAI,GAAG,EAAE,CAAC;;AAExB,SAAO,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC;;AAE1B,MAAI,OAAO,GAAG,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AACxC,MAAI,MAAM,GAAG,oBAAO,QAAQ,CAAC;;AAE7B,MAAI,cAAc,GAAG,0BAAU;AAC7B,wBAAO,YAAY,CAAC,YAAY,CAAC,CAAC;AAClC,YAAQ,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,YAAY,CAAC,CAAC;GACnE,CAAC;;AAEF,MAAI,YAAY,GAAG,sBAAS,GAAG,EAAC;AAC9B,wBAAO,YAAY,CAAC,YAAY,CAAC,CAAC;;AAElC,QAAI,CAAC,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;AACnC,SAAG,GAAG,IAAI,KAAK,CAAC,GAAG,CAAC,CAAC;KACtB;;AAED,YAAQ,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;GACxB,CAAC;;;;AAIF,MAAM,WAAW,GAAG,AAAC,OAAO,CAAC,QAAQ,GAAG,OAAO,CAAC,IAAI,KAAO,MAAM,CAAC,QAAQ,GAAG,MAAM,CAAC,IAAI,AAAC,CAAC;;;;;AAK1F,MAAI,WAAW,IAAI,oBAAO,cAAc,IAAI,EAAE,iBAAiB,IAAI,OAAO,CAAA,AAAC,EAAE;AAC3E,WAAO,GAAG,IAAI,oBAAO,cAAc,EAAE,CAAC;AACtC,WAAO,CAAC,MAAM,GAAG,cAAc,CAAC;AAChC,WAAO,CAAC,OAAO,GAAG,YAAY,CAAC;;;AAG/B,WAAO,CAAC,UAAU,GAAG,YAAU,EAAE,CAAC;AAClC,WAAO,CAAC,SAAS,GAAG,YAAU,EAAE,CAAC;;;GAGlC,MAAM;;AACL,UAAM,OAAO,GAAI,OAAO,CAAC,QAAQ,KAAK,OAAO,IAAI,MAAM,CAAC,QAAQ,KAAK,OAAO,AAAC,CAAC;;AAE9E,aAAO,CAAC,kBAAkB,GAAG,YAAW;AACtC,YAAI,OAAO,CAAC,UAAU,KAAK,CAAC,EAAE;AAC5B,cAAI,OAAO,CAAC,QAAQ,EAAE;AACpB,mBAAO,YAAY,CAAC,SAAS,CAAC,CAAC;WAChC;;AAED,cAAI,OAAO,CAAC,MAAM,KAAK,GAAG,IAAI,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC7D,0BAAc,EAAE,CAAC;WAClB,MAAM;AACL,wBAAY,EAAE,CAAC;WAChB;SACF;OACF,CAAC;;AAEF,UAAI,OAAO,CAAC,OAAO,EAAE;AACnB,oBAAY,GAAG,oBAAO,UAAU,CAAC,YAAW;AAC1C,cAAI,OAAO,CAAC,UAAU,KAAK,CAAC,EAAE;AAC5B,mBAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,mBAAO,CAAC,KAAK,EAAE,CAAC;WACjB;SACF,EAAE,OAAO,CAAC,OAAO,CAAC,CAAC;OACrB;;GACF;;;AAGD,MAAI;;AAEF,WAAO,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,IAAI,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;GAC1D,CAAC,OAAM,GAAG,EAAE;AACX,WAAO,YAAY,CAAC,GAAG,CAAC,CAAC;GAC1B;;;AAGD,MAAG,OAAO,CAAC,eAAe,EAAE;AAC1B,WAAO,CAAC,eAAe,GAAG,IAAI,CAAC;GAChC;;AAED,MAAI,OAAO,CAAC,YAAY,EAAE;AACxB,WAAO,CAAC,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;GAC7C;;;AAGD,MAAI;AACF,WAAO,CAAC,IAAI,EAAE,CAAC;GAChB,CAAC,OAAM,GAAG,EAAE;AACX,WAAO,YAAY,CAAC,GAAG,CAAC,CAAC;GAC1B;;AAED,SAAO,OAAO,CAAC;CAChB,CAAC;;qBAEa,GAAG","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","/**\n * The base implementation of `_.isFunction` without support for environments\n * with incorrect `typeof` results.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n */\nfunction baseIsFunction(value) {\n // Avoid a Chakra JIT bug in compatibility modes of IE 11.\n // See https://github.com/jashkenas/underscore/issues/1621 for more details.\n return typeof value == 'function' || false;\n}\n\nmodule.exports = baseIsFunction;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merging properties.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? null : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merging properties.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","/**\n * Converts `value` to a string if it's not one. An empty string is returned\n * for `null` or `undefined` values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n if (typeof value == 'string') {\n return value;\n }\n return value == null ? '' : (value + '');\n}\n\nmodule.exports = baseToString;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a function that assigns properties of source object(s) to a given\n * destination object.\n *\n * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseForIn = require('./baseForIn'),\n isArguments = require('../lang/isArguments'),\n isHostObject = require('./isHostObject'),\n isObjectLike = require('./isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * A fallback implementation of `_.isPlainObject` which checks if `value`\n * is an object created by the `Object` constructor or has a `[[Prototype]]`\n * of `null`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n */\nfunction shimIsPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value)) ||\n (!hasOwnProperty.call(value, 'constructor') &&\n (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor))) ||\n (!support.argsTag && isArguments(value))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = shimIsPlainObject;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) && objToString.call(value) == argsTag;\n}\n// Fallback for environments without a `toStringTag` for `arguments` objects.\nif (!support.argsTag) {\n isArguments = function(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n };\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var baseIsFunction = require('../internal/baseIsFunction'),\n getNative = require('../internal/getNative');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar Uint8Array = getNative(global, 'Uint8Array');\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nvar isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return objToString.call(value) == funcTag;\n};\n\nmodule.exports = isFunction;\n","var escapeRegExp = require('../string/escapeRegExp'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n escapeRegExp(fnToString.call(hasOwnProperty))\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (objToString.call(value) == funcTag) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var getNative = require('../internal/getNative'),\n isArguments = require('./isArguments'),\n shimIsPlainObject = require('../internal/shimIsPlainObject'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar getPrototypeOf = getNative(Object, 'getPrototypeOf');\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nvar isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) {\n if (!(value && objToString.call(value) == objectTag) || (!support.argsTag && isArguments(value))) {\n return false;\n }\n var valueOf = getNative(value, 'valueOf'),\n objProto = valueOf && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);\n\n return objProto\n ? (value == objProto || getPrototypeOf(value) == objProto)\n : shimIsPlainObject(value);\n};\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? null : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it is iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it is invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","var baseToString = require('../internal/baseToString');\n\n/**\n * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n * In addition to special characters the forward slash is escaped to allow for\n * easier `eval` use and `Function` compilation.\n */\nvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n reHasRegExpChars = RegExp(reRegExpChars.source);\n\n/**\n * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n *\n * @static\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n */\nfunction escapeRegExp(string) {\n string = baseToString(string);\n return (string && reHasRegExpChars.test(string))\n ? string.replace(reRegExpChars, '\\\\$&')\n : string;\n}\n\nmodule.exports = escapeRegExp;\n","/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect DOM support. */\nvar document = (document = global.window) ? document.document : null;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if the `toStringTag` of `arguments` objects is resolvable\n * (all but Firefox < 4, IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.argsTag = objToString.call(arguments) == argsTag;\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if the `toStringTag` of DOM nodes is resolvable (all but IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nodeTag = objToString.call(document) != objectTag;\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n\n /**\n * Detect if the DOM is supported.\n *\n * @memberOf _.support\n * @type boolean\n */\n try {\n support.dom = document.createDocumentFragment().nodeType === 11;\n } catch(e) {\n support.dom = false;\n }\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\nvar isEnumerableOn = function (obj) {\n\treturn function isEnumerable(prop) {\n\t\treturn propIsEnumerable.call(obj, prop);\n\t};\n};\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = Object(target);\n\tvar s, source, i, props;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = Object(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tprops.push.apply(props, Object.getOwnPropertySymbols(source).filter(isEnumerableOn(source)));\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\nassignShim.shim = function shimObjectAssign() {\n\tif (Object.assign && Object.preventExtensions) {\n\t\tvar assignHasPendingExceptions = (function () {\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t}());\n\t\tif (assignHasPendingExceptions) {\n\t\t\tdelete Object.assign;\n\t\t}\n\t}\n\tif (!Object.assign) {\n\t\tdefineProperties(Object, {\n\t\t\tassign: assignShim\n\t\t});\n\t}\n\treturn Object.assign || assignShim;\n};\n\nmodule.exports = assignShim;\n\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj });\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tforeach(keys(map), function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar ctor = object.constructor;\n\t\tvar skipConstructor = ctor && ctor.prototype === object;\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]'\n\t\t\t&& value !== null\n\t\t\t&& typeof value === 'object'\n\t\t\t&& typeof value.length === 'number'\n\t\t\t&& value.length >= 0\n\t\t\t&& toStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}) {\n // Add standard Aria and Tabindex info\n props = assign({\n className: this.buildCSSClass(),\n 'role': 'button',\n 'type': 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite', // let the screen reader user know that the text of the button may change\n tabIndex: 0\n }, props);\n\n let el = super.createEl(tag, props);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick();\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
\n *
Button
\n *
\n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n * This is used for merging options for child components. We\n * want it to be easy to override individual options on a child\n * component without having to rewrite all the other default options.\n * ```js\n * Parent.prototype.options_ = {\n * children: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * children: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * children: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} attributes An object of element attributes that should be set on the element\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, attributes) {\n return Dom.createEl(tagName, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // -> \n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
myButton\n * // -> myButton === myComonent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * children: {\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_.children = {\n * myChildComponent: {\n * myChildOption: true\n * }\n * }\n * ```\n * // Or when creating the component\n * ```js\n * var myComp = new MyComponent(player, {\n * children: {\n * myChildComponent: {\n * myChildOption: true\n * }\n * }\n * });\n * ```\n * The children option can also be an Array of child names or\n * child options objects (that also include a 'name' key).\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'muteToggle',\n 'volumeControl',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n * \n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`,\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech\n && this.player().tech['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: {\n 'seekBar': {}\n }\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder',\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: {\n 'loadProgressBar': {},\n 'playProgressBar': {}\n },\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl({\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {Object} props An object of properties \n * @return {Element}\n * @method createEl\n */\n createEl(props) {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech && this.player().tech['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech && this.player().tech['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n innerHTML: 'Current Time ' + '0:00', // label the current time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n innerHTML: `${this.localize('Duration Time')} 0:00`, // label the duration time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display \n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n innerHTML: `${this.localize('Remaining Time')} -0:00`, // label the remaining time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
/
'\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar',\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: {\n 'volumeLevel': {}\n },\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: {\n 'volumeBar': {}\n }\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using a horizontal\n // slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well, since that will\n // need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n this.addClass('vjs-menu-button');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vc = new VolumeBar(this.player_, this.options_.volumeBar);\n\n vc.on('focus', function() {\n menu.lockShowing();\n });\n vc.on('blur', function() {\n menu.unlockShowing();\n });\n menu.addChild(vc);\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extends.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extends(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendsFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendsFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
`\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc \n * @return {Element}\n * @method createEl\n */\n createEl(type, props) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props));\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n plugins[name].playerOptions = playerOptionsCopy;\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive_ = true;\n this.reportUserActivity();\n this.listenForUserActivity();\n\n this.on('fullscreenchange', this.handleFullscreenChange);\n this.on('stageclick', this.handleStageClick);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech) { this.tech.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech\n */\n loadTech(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech) {\n this.unloadTech();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n var techReady = Fn.bind(this, function() {\n this.triggerReady();\n });\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech = new techComponent(techOptions);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech);\n\n this.on(this.tech, 'ready', this.handleTechReady);\n this.on(this.tech, 'usenativecontrols', this.handleTechUseNativeControls);\n\n // Listen to every HTML5 events and trigger them back on the player for the plugins\n this.on(this.tech, 'loadstart', this.handleTechLoadStart);\n this.on(this.tech, 'waiting', this.handleTechWaiting);\n this.on(this.tech, 'canplay', this.handleTechCanPlay);\n this.on(this.tech, 'canplaythrough', this.handleTechCanPlayThrough);\n this.on(this.tech, 'playing', this.handleTechPlaying);\n this.on(this.tech, 'ended', this.handleTechEnded);\n this.on(this.tech, 'seeking', this.handleTechSeeking);\n this.on(this.tech, 'seeked', this.handleTechSeeked);\n this.on(this.tech, 'play', this.handleTechPlay);\n this.on(this.tech, 'firstplay', this.handleTechFirstPlay);\n this.on(this.tech, 'pause', this.handleTechPause);\n this.on(this.tech, 'progress', this.handleTechProgress);\n this.on(this.tech, 'durationchange', this.handleTechDurationChange);\n this.on(this.tech, 'fullscreenchange', this.handleTechFullscreenChange);\n this.on(this.tech, 'error', this.handleTechError);\n this.on(this.tech, 'suspend', this.handleTechSuspend);\n this.on(this.tech, 'abort', this.handleTechAbort);\n this.on(this.tech, 'emptied', this.handleTechEmptied);\n this.on(this.tech, 'stalled', this.handleTechStalled);\n this.on(this.tech, 'loadedmetadata', this.handleTechLoadedMetaData);\n this.on(this.tech, 'loadeddata', this.handleTechLoadedData);\n this.on(this.tech, 'timeupdate', this.handleTechTimeUpdate);\n this.on(this.tech, 'ratechange', this.handleTechRateChange);\n this.on(this.tech, 'volumechange', this.handleTechVolumeChange);\n this.on(this.tech, 'texttrackchange', this.onTextTrackChange);\n this.on(this.tech, 'loadedmetadata', this.updateStyleEl_);\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech.ready(techReady, true);\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech\n */\n unloadTech() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech.dispose();\n\n this.tech = false;\n }\n\n /**\n * Add playback technology listeners\n *\n * @method addTechControlsListeners\n */\n addTechControlsListeners() {\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech, 'mousedown', this.handleTechClick);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech, 'touchstart', this.handleTechTouchStart);\n this.on(this.tech, 'touchmove', this.handleTechTouchMove);\n this.on(this.tech, 'touchend', this.handleTechTouchEnd);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech, 'tap', this.handleTechTap);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners\n */\n removeTechControlsListeners() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech, 'tap', this.handleTechTap);\n this.off(this.tech, 'touchstart', this.handleTechTouchStart);\n this.off(this.tech, 'touchmove', this.handleTechTouchMove);\n this.off(this.tech, 'touchend', this.handleTechTouchEnd);\n this.off(this.tech, 'mousedown', this.handleTechClick);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @private\n * @method handleTechReady\n */\n handleTechReady() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall('setVolume', this.cache_.volume);\n }\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the native controls are used\n *\n * @private\n * @method handleTechUseNativeControls\n */\n handleTechUseNativeControls() {\n this.usingNativeControls(true);\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @event loadstart\n */\n handleTechLoadStart() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @event play\n */\n handleTechPlay() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @event waiting\n */\n handleTechWaiting() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplay\n */\n handleTechCanPlay() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplaythrough\n */\n handleTechCanPlayThrough() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event playing\n */\n handleTechPlaying() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @event seeking\n */\n handleTechSeeking() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @event seeked\n */\n handleTechSeeked() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @event firstplay\n */\n handleTechFirstPlay() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @event pause\n */\n handleTechPause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @event progress\n */\n handleTechProgress() {\n this.trigger('progress');\n\n // Add custom event for when source is finished downloading.\n if (this.bufferedPercent() === 1) {\n this.trigger('loadedalldata');\n }\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @event ended\n */\n handleTechEnded() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @event durationchange\n */\n handleTechDurationChange() {\n this.updateDuration();\n this.trigger('durationchange');\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @method handleTechClick\n */\n handleTechClick(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @method handleTechTap\n */\n handleTechTap() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @method handleTechTouchStart\n */\n handleTechTouchStart() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @method handleTechTouchMove\n */\n handleTechTouchMove() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @method handleTechTouchEnd\n */\n handleTechTouchEnd(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Update the duration of the player using the tech\n *\n * @private\n * @method updateDuration\n */\n updateDuration() {\n // Allows for caching value instead of asking player each time.\n // We need to get the techGet response and check for a value so we don't\n // accidentally cause the stack to blow up.\n var duration = this.techGet('duration');\n if (duration) {\n if (duration < 0) {\n duration = Infinity;\n }\n this.duration(duration);\n // Determine if the stream is live and propagate styles down to UI.\n if (duration === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n }\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @event fullscreenchange\n */\n handleFullscreenChange() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick\n */\n handleStageClick() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @method handleTechFullscreenChange\n */\n handleTechFullscreenChange(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @event error\n */\n handleTechError() {\n this.error(this.tech.error().code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @event suspend\n */\n handleTechSuspend() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @event abort\n */\n handleTechAbort() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @event emptied\n */\n handleTechEmptied() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @event stalled\n */\n handleTechStalled() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @event loadedmetadata\n */\n handleTechLoadedMetaData() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @event loaddata\n */\n handleTechLoadedData() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @event timeupdate\n */\n handleTechTimeUpdate() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @event ratechange\n */\n handleTechRateChange() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @event volumechange\n */\n handleTechVolumeChange() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @event texttrackchange\n */\n onTextTrackChange() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @method techCall\n */\n techCall(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech && !this.tech.isReady_) {\n this.tech.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @method techGet\n */\n techGet(method) {\n if (this.tech && this.tech.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName} playback technology element.`, e);\n this.tech.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds !== undefined) {\n\n // cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = parseFloat(seconds);\n\n return this;\n }\n\n if (this.cache_.duration === undefined) {\n this.updateDuration();\n }\n\n return this.cache_.duration || 0;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall('setMuted', muted);\n return this;\n }\n return this.techGet('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech.supportsFullScreen()) {\n this.techCall('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech && this.tech['featuresPlaybackRate']) {\n return this.techGet('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech && this.tech['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech && this.tech['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech && this.tech['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech && this.tech['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech && this.tech['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech && this.tech.videoWidth && this.tech.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech && this.tech.videoHeight && this.tech.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall('initialTime'); },\n // startOffsetTime: function(){ return this.techCall('startOffsetTime'); },\n // played: function(){ return this.techCall('played'); },\n // seekable: function(){ return this.techCall('seekable'); },\n // videoTracks: function(){ return this.techCall('videoTracks'); },\n // audioTracks: function(){ return this.techCall('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall('defaultPlaybackRate'); },\n // mediaGroup: function(){ return this.techCall('mediaGroup'); },\n // controller: function(){ return this.techCall('controller'); },\n // defaultMuted: function(){ return this.techCall('defaultMuted'); }\n\n // TODO\n // currentSrcList: the array of sources including other formats and bitrates\n // playList: array of source lists in order of playback\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n return createTimeRange(0, this.el_.vjs_getProperty('buffered'));\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'error,networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n const msg = 'FLASH: '+err;\n\n if (err === 'srcnotfound') {\n tech.trigger('error', { code: 4, message: msg });\n\n // errors we haven't categorized into the media errors\n } else {\n tech.trigger('error', msg);\n }\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) { this.el_.src = src; }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){ this.el_.load(); }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i 0) {\n this.trigger('loadstart');\n }\n // Allow the tech ready event to handle synchronisity\n }, true);\n }\n\n /* Fallbacks for unsupported event types\n ================================================================================ */\n // Manually trigger progress events based on changes to the buffered amount\n // Many flash players and older HTML5 browsers don't send progress or progress-like events\n /**\n * Turn on progress events\n *\n * @method manualProgressOn\n */\n manualProgressOn() {\n this.on('durationchange', this.onDurationChange);\n\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress);\n }\n\n /**\n * Turn off progress events\n *\n * @method manualProgressOff\n */\n manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n\n this.off('durationchange', this.onDurationChange);\n }\n\n /**\n * Track progress\n *\n * @method trackProgress\n */\n trackProgress() {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(Fn.bind(this, function(){\n // Don't trigger unless buffered amount is greater than last time\n\n let numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n\n /**\n * Update duration\n *\n * @method onDurationChange\n */\n onDurationChange() {\n this.duration_ = this.duration();\n }\n\n /**\n * Create and get TimeRange object for buffering\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n return createTimeRange(0, 0);\n }\n\n /**\n * Get buffered percent\n *\n * @return {Number}\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n\n /**\n * Stops tracking progress by clearing progress interval\n *\n * @method stopTrackingProgress\n */\n stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n\n /*! Time Tracking -------------------------------------------------------------- */\n /**\n * Set event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOn\n */\n manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n\n this.on('play', this.trackCurrentTime);\n this.on('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Remove event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOff\n */\n manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime);\n this.off('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Tracks current time\n *\n * @method trackCurrentTime\n */\n trackCurrentTime() {\n if (this.currentTimeInterval) { this.stopTrackingCurrentTime(); }\n this.currentTimeInterval = this.setInterval(function(){\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }, 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }\n\n /**\n * Turn off play progress tracking (when paused or dragging)\n *\n * @method stopTrackingCurrentTime\n */\n stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }\n\n /**\n * Turn off any manual progress or timeupdate tracking\n *\n * @method dispose\n */\n dispose() {\n // clear out text tracks because we can't reuse them between techs\n let tt = this.textTracks();\n let i = tt.length;\n while(i--) {\n this.removeRemoteTextTrack(tt[i]);\n }\n\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) { this.manualProgressOff(); }\n\n if (this.manualTimeUpdates) { this.manualTimeUpdatesOff(); }\n\n super.dispose();\n }\n\n /**\n * Return the time ranges that have been played through for the\n * current source. This implementation is incomplete. It does not\n * track the played time ranges, only whether the source has played\n * at all or not.\n * @return {TimeRangeObject} a single time range if this video has\n * played or an empty set of ranges if not.\n * @method played\n */\n played() {\n if (this.hasStarted_) {\n return createTimeRange(0, 0);\n }\n return createTimeRange();\n }\n\n /**\n * Set current time\n *\n * @method setCurrentTime\n */\n setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) { this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true }); }\n }\n\n /**\n * Initialize texttrack listeners\n *\n * @method initTextTrackListeners\n */\n initTextTrackListeners() {\n let textTrackListChanges = Fn.bind(this, function() {\n this.trigger('texttrackchange');\n });\n\n let tracks = this.textTracks();\n\n if (!tracks) return;\n\n tracks.addEventListener('removetrack', textTrackListChanges);\n tracks.addEventListener('addtrack', textTrackListChanges);\n\n this.on('dispose', Fn.bind(this, function() {\n tracks.removeEventListener('removetrack', textTrackListChanges);\n tracks.removeEventListener('addtrack', textTrackListChanges);\n }));\n }\n\n /**\n * Emulate texttracks\n *\n * @method emulateTextTracks\n */\n emulateTextTracks() {\n if (!window['WebVTT'] && this.el().parentNode != null) {\n let script = document.createElement('script');\n script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';\n this.el().parentNode.appendChild(script);\n window['WebVTT'] = true;\n }\n\n let tracks = this.textTracks();\n if (!tracks) {\n return;\n }\n\n let textTracksChanges = Fn.bind(this, function() {\n let updateDisplay = () => this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech && player.tech['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks \n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech && this.player_.tech['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks \n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks \n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list \n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n // \n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
\n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
`;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport XHR from '../xhr.js';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n XHR(src, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err);\n }\n\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // Not remembering why we were checking for dash\n // but using setAttribute means you have to use getAttribute\n\n // The check for dash checks for the aria- * attributes, like aria-label, aria-valuemin.\n // The additional check for \"role\" is because the default method for adding attributes does not\n // add the attribute \"role\". My guess is because it's not a valid attribute in some namespaces, although\n // browsers handle the attribute just fine. The W3C allows for aria- * attributes to be used in pre-HTML5 docs.\n // http://www.w3.org/TR/wai-aria-primer/#ariahtml. Using setAttribute gets around this problem.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {Number} start Start time in seconds\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @private\n * @method createTimeRange\n */\nexport function createTimeRange(start, end){\n if (start === undefined && end === undefined) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: 1,\n start: function() { return start; },\n end: function() { return end; }\n };\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\n\nimport assign from 'object.assign';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport xhr from './xhr.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendsFn from './extends.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = stylesheet.createStyleElement('vjs-styles-defaults');\nlet head = document.querySelector('head');\nhead.insertBefore(style, head.firstChild);\nstylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n`);\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extends' doc for more info)\n * var MySpecialButton = videojs.extends(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extends` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extends(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extends\n */\nvideojs.extends = extendsFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number} start Start time in seconds\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = createTimeRange;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Simple http request for retrieving external files (e.g. text tracks)\n *\n * ##### Example\n *\n * // using url string\n * videojs.xhr('http://example.com/myfile.vtt', function(error, response, responseBody){});\n *\n * // or options block\n * videojs.xhr({\n * uri: 'http://example.com/myfile.vtt',\n * method: 'GET',\n * responseType: 'text'\n * }, function(error, response, responseBody){\n * if (error) {\n * // log the error\n * } else {\n * // successful, do something with the response\n * }\n * });\n *\n *\n * API is modeled after the Raynos/xhr.\n * https://github.com/Raynos/xhr/blob/master/index.js\n *\n * @param {Object|String} options Options block or URL string\n * @param {Function} callback The callback function\n * @returns {Object} The request\n */\nvideojs.xhr = xhr;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n","/**\n * @file xhr.js\n */\nimport * as Url from './utils/url.js';\nimport log from './utils/log.js';\nimport mergeOptions from './utils/merge-options.js';\nimport window from 'global/window';\n\n/*\n * Simple http request for retrieving external files (e.g. text tracks)\n * ##### Example\n * // using url string\n * videojs.xhr('http://example.com/myfile.vtt', function(error, response, responseBody){});\n *\n * // or options block\n * videojs.xhr({\n * uri: 'http://example.com/myfile.vtt',\n * method: 'GET',\n * responseType: 'text'\n * }, function(error, response, responseBody){\n * if (error) {\n * // log the error\n * } else {\n * // successful, do something with the response\n * }\n * });\n * /////////////\n * API is modeled after the Raynos/xhr, which we hope to use after\n * getting browserify implemented.\n * https://github.com/Raynos/xhr/blob/master/index.js\n *\n * @param {Object|String} options Options block or URL string\n * @param {Function} callback The callback function\n * @return {Object} The request\n * @method xhr\n */\nvar xhr = function(options, callback){\n let abortTimeout;\n\n // If options is a string it's the url\n if (typeof options === 'string') {\n options = {\n uri: options\n };\n }\n\n // Merge with default options\n options = mergeOptions({\n method: 'GET',\n timeout: 45 * 1000\n }, options);\n\n callback = callback || function(){};\n\n let XHR = window.XMLHttpRequest;\n\n if (typeof XHR === 'undefined') {\n // Shim XMLHttpRequest for older IEs\n XHR = function () {\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch (e) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch (f) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP'); } catch (g) {}\n throw new Error('This browser does not support XMLHttpRequest.');\n };\n }\n\n let request = new XHR();\n // Store a reference to the url on the request instance\n request.uri = options.uri;\n\n let urlInfo = Url.parseUrl(options.uri);\n let winLoc = window.location;\n\n let successHandler = function(){\n window.clearTimeout(abortTimeout);\n callback(null, request, request.response || request.responseText);\n };\n\n let errorHandler = function(err){\n window.clearTimeout(abortTimeout);\n\n if (!err || typeof err === 'string') {\n err = new Error(err);\n }\n\n callback(err, request);\n };\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n const crossOrigin = (urlInfo.protocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n // XDomainRequest -- Use for IE if XMLHTTPRequest2 isn't available\n // 'withCredentials' is only available in XMLHTTPRequest2\n // Also XDomainRequest has a lot of gotchas, so only use if cross domain\n if (crossOrigin && window.XDomainRequest && !('withCredentials' in request)) {\n request = new window.XDomainRequest();\n request.onload = successHandler;\n request.onerror = errorHandler;\n // These blank handlers need to be set to fix ie9\n // http://cypressnorth.com/programming/internet-explorer-aborting-ajax-requests-fixed/\n request.onprogress = function(){};\n request.ontimeout = function(){};\n\n // XMLHTTPRequest\n } else {\n const fileUrl = (urlInfo.protocol === 'file:' || winLoc.protocol === 'file:');\n\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n if (request.timedout) {\n return errorHandler('timeout');\n }\n\n if (request.status === 200 || fileUrl && request.status === 0) {\n successHandler();\n } else {\n errorHandler();\n }\n }\n };\n\n if (options.timeout) {\n abortTimeout = window.setTimeout(function() {\n if (request.readyState !== 4) {\n request.timedout = true;\n request.abort();\n }\n }, options.timeout);\n }\n }\n\n // open the connection\n try {\n // Third arg is async, or ignored by XDomainRequest\n request.open(options.method || 'GET', options.uri, true);\n } catch(err) {\n return errorHandler(err);\n }\n\n // withCredentials only supported by XMLHttpRequest2\n if(options.withCredentials) {\n request.withCredentials = true;\n }\n\n if (options.responseType) {\n request.responseType = options.responseType;\n }\n\n // send the request\n try {\n request.send();\n } catch(err) {\n return errorHandler(err);\n }\n\n return request;\n};\n\nexport default xhr;\n"]}
\ No newline at end of file
+{"version":3,"file":"video.novtt.min.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/safe-json-parse/tuple.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extends.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js","src/js/xhr.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","document","doccy","min-document",2,3,4,"restParam","func","start","TypeError","FUNC_ERROR_TEXT","nativeMax","undefined","args","arguments","index","rest","Array","otherArgs","apply","Math","max",5,"arrayCopy","source","array",6,"arrayEach","iteratee",7,"baseCopy","props","object","key",8,"createBaseFor","baseFor","./createBaseFor",9,"baseForIn","keysIn","../object/keysIn","./baseFor",10,"baseMerge","customizer","stackA","stackB","isObject","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","value","result","isCommon","../lang/isArray","../lang/isObject","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",11,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",12,"toObject","baseProperty","./toObject",13,"bindCallback","thisArg","argCount","identity","collection","accumulator","other","../utility/identity",14,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",15,"fromRight","keysFunc","iterable",16,"getLength","./baseProperty",17,"getNative","isNative","../lang/isNative",18,"isLength","./getLength","./isLength",19,"isHostObject","Object","toString",20,"reIsUint","test","MAX_SAFE_INTEGER","isIndex",21,"type","./isIndex",22,23,24,"shimKeys","propsLength","allowIndexes","isString","hasOwnProperty","objectProto","prototype","../lang/isString",25,"support","unindexedChars","charAt","../support",26,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",27,"arrayTag","objToString","nativeIsArray","../internal/getNative","../internal/isLength",28,"isFunction","funcTag","./isObject",29,"reIsNative","fnToString","reIsHostCtor","Function","RegExp","replace","../internal/isHostObject","./isFunction",30,31,"Ctor","objectTag","constructor","ownLast","subValue","../internal/baseForIn","./isArguments",32,"stringTag",33,"typedArrayTags","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",34,"../internal/baseCopy",35,"nativeKeys","../internal/shimKeys",36,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","enumPrototypes","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","valueOf","../internal/arrayEach","../internal/isIndex","../lang/isFunction",37,"merge","../internal/baseMerge","../internal/createAssigner",38,"arrayProto","splice","x","0","y","spliceObjects",39,40,"canBeObject","obj","hasSymbols","Symbol","defineProperties","propIsEnumerable","assignShim","target","syms","objTarget","getOwnPropertySymbols","shim","assignHasPendingExceptions","assign","preventExtensions","thrower","define-properties","object-keys",41,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","enumerable","_","supportsDescriptors","name","predicate","configurable","writable","map","predicates","concat",42,"hasOwn","ctx","k",43,"has","slice","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$window","$console","$parent","$self","$frames","$webkitIndexedDB","$webkitStorageInfo","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","j","skipConstructor","keysWorksWithArguments","originalKeys",44,"str","callee",45,"SafeParseTuple","reviver","json","error","Constructor","instance","player_","play","__esModule","newObj","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_component2","_interopRequireDefault","_component","Dom","_interopRequireWildcard","_utilsDomJs","Button","_Component","player","options","_classCallCheck","createEl","_objectAssign2","role","aria-live","el","controlTextEl_","className","handleClick","default","_globalWindow2","_globalWindow","Fn","_utilsFnJs","Component","ready","options_","_utilsMergeOptionsJs2","id_","id","Guid","newGUID","el_","childIndex_","initChildren","dispose","trigger","bubbles","children_","childNameIndex_","off","_utilsLogJs2","warn","tagName","attributes","localize","string","languages","language","primaryCode","split","addChild","child","component","componentName","childFound","parentOptions","_this","opts","children","_name","handleAdd","_this2","first","guid","cleanRemover","Events","on","second","bind","third","nodeName","one","_this3","_arguments","newFunc","sync","isReady_","setTimeout","triggerReady","readyQueue","readyQueue_","dimension","widthOrHeight","num","skipListeners","style","pxIndex","touchStart","touchTimeThreshold","couldBeTap","event","touches","firstTouch","Date","getTime","xdiff","pageX","touchDistance","sqrt","ydiff","tapMovementThreshold","noTap","touchTime","preventDefault","clearInterval","touchHolding","touchEnd","report","timeout","timeoutId","disposeFn","clearTimeout","intervalId","setInterval","interval","getComponent","components_","extend","subObj","_name2","ControlBar","exitFullscreen","requestFullscreen","LiveDisplay","contentEl_","appendChild","_button2","_button","MuteToggle","_Button","update","tech","addClass","vol","volume","level","toMute","muted","localizedMute","controlText","removeElClass","addElClass","PlayToggle","removeClass","_playbackRateMenuItemJs2","_playbackRateMenuItemJs","PlaybackRateMenuButton","_MenuButton","labelEl_","createMenu","rates","playbackRates","currentRate","playbackRate","newRate","playbackRateSupported","PlaybackRateMenuItem","label","rate","parseFloat","selected","LoadProgressBar","buffered","duration","percent","time","end","width","percentify","bufferedEnd","part","left","PlayProgressBar","updateDataAttr","scrubbing","getCache","currentTime","_componentJs2","_loadProgressBarJs","SeekBar","_Slider","newTime","calculateDistance","stepBack","_sliderSliderJs2","loadProgressBar","_Spacer","buildCSSClass","CaptionSettingsMenuItem","_TextTrackMenuItem","kind","CaptionsButton","_TextTrackButton","threshold","createItems","_chaptersTrackMenuItemJs2","_chaptersTrackMenuItemJs","_menuMenuJs2","_menuMenuJs","ChaptersButton","items","tracks","textTracks","track","kind_","cues","chaptersTrack","menu","contentEl","tabIndex","cue","mi","_menuMenuItemJs2","_menuMenuItemJs","ChaptersTrackMenuItem","_MenuItem","OffTextTrackMenuItem","handleTracksChange","SubtitlesButton","_menuMenuButtonJs2","_menuMenuButtonJs","TextTrackButton","hide","updateHandler","removeEventListener","_offTextTrackMenuItemJs2","TextTrackMenuItem","onchange","Event","err","_globalDocument2","createEvent","CurrentTimeDisplay","updateContent","localizedText","_utilsFormatTimeJs2","DurationDisplay","formattedTime","innerHTML","RemainingTimeDisplay","_sliderSliderJs","_componentJs","VolumeBar","toFixed","setAttribute","VolumeControl","VolumeMenuButton","vertical","volumeUpdate","orientationClass","contentElType","vc","_volumeControlVolumeBarJs2","volumeBar","_muteToggleJs2","ErrorDisplay","message","_utilsEventsJs","EventTarget","allowedEvents_","ael","addEventListener","extendsFn","subClassMethods","methods","init","_utilsLog2","FullscreenApi","apiMap","specApi","browserApi","_objectAssign","MediaError","status","errorTypes","_menuJs2","_menuJs","MenuButton","title","unlockShowing","handleKeyPress","which","buttonPressed_","unpressButton","pressButton","MenuItem","_selected","append","_globalDocument","_utilsLogJs","_utilsToTitleCaseJs2","_utilsToTitleCaseJs","_utilsMergeOptionsJs","_tracksTextTrackListConverterJs","_errorDisplayJs","reportTouchActivity","languagesToLower","poster_","poster","controls","scrubbing_","playerOptionsCopy","plugins","getOwnPropertyNames","forEach","isAudio","toLowerCase","Player","players","styleEl_","parentNode","removeChild","attrs","getElAttributes","attr","stylesheet","createStyleElement","defaultsStyleEl","querySelector","fluid","aspectRatio","initNetworkState_","networkState","privDimension","_dimension","parsedVal","isNaN","bool","fluid_","ratio","updateStyleEl_","aspectRatio_","videoWidth","videoHeight","ratioParts","ratioMultiplier","width_","height_","loadTech","techName","unloadTech","disposeMediaElement","techReady","techOptions","nativeControlsForTouch","playerId","techId","textTracks_","preload","loop","vtt.js","src","cache_","startTime","techComponent","_tracksTextTrackListConverterJs2","jsonToTextTracks","textTracksJson_","handleTechReady","handleTechLoadStart","handleTechWaiting","handleTechCanPlay","handleTechCanPlayThrough","handleTechPlaying","handleTechEnded","handleTechSeeking","handleTechSeeked","handleTechPlay","handleTechFirstPlay","handleTechPause","handleTechProgress","handleTechDurationChange","handleTechFullscreenChange","handleTechError","handleTechSuspend","handleTechAbort","handleTechEmptied","handleTechLoadedMetaData","handleTechTimeUpdate","handleTechRateChange","handleTechVolumeChange","usingNativeControls","techGet","addTechControlsListeners","removeTechControlsListeners","techCall","paused","hasStarted","_hasStarted","hasStarted_","handleTechClick","button","updateDuration","method","arg","isScrubbing","seconds","percentAsDecimal","min","fsApi","fullscreenchange","documentFullscreenChange","isFullscreen","fullscreenElement","supportsFullScreen","_fullscreenApiJs2","fullWindowOnEscKey","exitFullWindow","documentElement","overflow","docOrigOverflow","selectSource","techOrder","isSupported","b","canPlaySource","sourceList_","currentTech","load","sourceTech","controls_","error_","userActive","userActive_","stopPropagation","lastMoveX","lastMoveY","handleActivity","reportUserActivity","handleMouseMove","screenX","screenY","mouseInProgress","handleMouseUp","inactivityTimeout","userActivity_","tagOptions","dataSetup","_safeParseTuple","_safeJsonParseTuple2","data","hasChildNodes","childNodes","childName","baseOptions","mediaLoader","textTrackDisplay","controlBar","notSupportedMessage","handleError","flexNotSupported_","createElement","_buttonJs2","_buttonJs","PosterImage","url","setSrc","fallbackImg_","backgroundImage","autoSetup","vids","getElementsByTagName","audios","mediaEls","mediaEl","getAttribute","autoSetupTimeout","_windowLoaded","wait","vjs","readyState","Slider","bar","getChild","barName","handleMouseDown","blockTextSelection","unblockTextSelection","progress","getPercent","percentage","box","findElPosition","boxW","offsetWidth","boxH","offsetHeight","pageY","changedTouches","boxY","vertical_","../component.js","../utils/dom.js","global/document","object.assign",92,"FlashRtmpDecorator","Flash","rtmp/mp4","rtmp/flv","streamFromParts","connection","stream","parts","streamBegin","connEnd","substring","isStreamingType","srcType","streamingFormats","isStreamingSrc","rtmpSourceHandler","handleSource","srcParts","_createSetter","attrUpper","toUpperCase","_api","val","_createGetter","vjs_getProperty","_tech2","_tech","_utilsUrlJs","setSource","_Tech","objId","flashVars","readyFunction","errorEventProxyFunction","autoplay","params","wmode","bgcolor","Url","getAbsoluteURL","vjs_src","setCurrentTime","seekable","enterFullScreen","_readWrite","_readOnly","nativeSourceHandler","canHandleSource","guessMimeType","ext","getFileExtension","formats","video/flv","onReady","currSwf","getEl","checkReady","eventName","swfID","version","ActiveXObject","GetVariable","match","navigator","description","getEmbedCode","swf","objTag","flashVarsString","paramsString","movie","flashvars","allowNetworking","_techJs2","_techJs","Html5","currentSrc","nodes","node","nodesLength","featuresNativeTextTracks","remoteTextTracks","addTrack_","removeNodes","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","tt","handleTextTrackChange_","handleTextTrackAdd_","emulatedTt","clone","cloneNode","insertBefore","tagAttributes","browser","TOUCH_ENABLED","setElAttributes","class","settingsAttrs","overwriteAttrs","handleTextTrackChange","srcElement","webkitEnterFullScreen","video","HAVE_METADATA","addRemoteTextTrack","removeTrack_","querySelectorAll","canPlayType","TEST_VID","supportsNativeTextTracks","supportsTextTracks","IS_FIREFOX","canControlPlaybackRate","patchCanPlayType","ANDROID_VERSION","mpegurlRE","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","removeAttribute","MediaLoader","playerOptions","_tracksTextTrack2","_tracksTextTrack","Tech","manualProgressOn","featuresTimeupdateEvents","initControlsListeners","nativeCaptions","nativeTextTracks","trackProgress","stopTrackingProgress","numBufferedPercent","bufferedPercent","bufferedPercent_","manualProgress","manualProgressOff","_mediaErrorJs2","textTrackListChanges","emulateTextTracks","script","updateDisplay","mode","setPoster","createTrackHelper","featuresVolumeControl","featuresFullscreenResize","handlers","sourceHandlers","selectSourceHandler","can","srcObj","originalSeekable","sh","disposeSourceHandler","sourceHandler_","TextTrackCueList","list","IS_IE8","prop","setCues_","get","oldLength","length_","defineProp","getCueById","rule","darkGray","lightGray","fontMap","monospace","sansSerif","serif","TextTrackDisplay","toggleDisplay","clearDisplay","updateForTrack","_i","cueDiv","displayState","overrides","color","firstChild","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","height","top","bottom","fontFamily","fontVariant","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","trackEl","addedTrack","addCue","_eventTarget2","_eventTarget","TextTrackList","tracks_","change","removetrack","_event","rtrack","getTrackById","selectedOption","selectedOptions","selectedIndex","setSelectedOption","option","TextTrackSettings","persistTextTrackSettings","saveSettings","getValues","textEdge","getSelectedOptionValue","fgColor","bgColor","bgOpacity","setValues","values","restoreSettings","ttDisplay","registerComponent","_textTrackCueList2","_textTrackCueList","_utilsGuidJs","TextTrack","tech_","TextTrackEnum","TextTrackMode","cues_","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","loaded_","ct","active","loadTrack","cuechange","removeCue","removed","parseCues","srcContent","parser","_xhrJs2","response","responseBody","O","len","fromIndex","abs","searchElement","IS_IPHONE","IS_IPAD","USER_AGENT","IS_IPOD","IS_IOS","IOS_VERSION","IS_ANDROID","major","IS_NATIVE_ANDROID","bufferedDuration","_timeRangesJs","createTimeRange","_logJs2","_logJs","defaultBehaviors","messages","Proxy","_ret","handler","propName","indexOf","getElData","elIdAttr","hasElData","removeElData","elData","element","classToRemove","hasElClass","attrName","attrValue","attrVal","knownBooleans","getBoundingClientRect","docEl","body","scrollLeft","pageXOffset","clientLeft","clientTop","scrollTop","pageYOffset","elem","_handleMultipleEvents","dispatcher","fixEvent","handlersCopy","m","isImmediatePropagationStopped","hash","removeType","_cleanUpEvents","elemData","parent","isPropagationStopped","defaultPrevented","targetData","disabled","old","relatedTarget","fromElement","toElement","returnValue","cancelBubble","returnTrue","returnFalse","stopImmediatePropagation","doc","clientY","detachEvent","global/window",109,"context","uid","h","floor","gm","guide","argsArray","noop","console","log","history","unshift","_logType","mergeOptions","_start","_end","href","addToBody","host","protocol","div","details","path","splitPathRe","pathParts","exec","_pluginsJs2","_pluginsJs","_xhrJs","_lodashCompatObjectMerge","_utilsCreateDeprecationProxyJs","_techFlashJs","_techHtml5Js","getPlayers","_lodashCompatObjectMerge2","_merge","xhr","callback","uri","XHR","XMLHttpRequest","request","urlInfo","parseUrl","winLoc","location","successHandler","abortTimeout","responseText","errorHandler","crossOrigin","fileUrl","onreadystatechange","timedout","abort","onload","onprogress","ontimeout","open","withCredentials","responseType"],"mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n","var isFunction = require('./isFunction'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseForIn = require('../internal/baseForIn'),\n isArguments = require('./isArguments'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar toObject = Object;\nvar push = Array.prototype.push;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable.call(source, syms[i])) {\n\t\t\t\t\tpush.call(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\ndefineProperties(assignShim, {\n\tshim: function shimObjectAssign() {\n\t\tvar assignHasPendingExceptions = function () {\n\t\t\tif (!Object.assign || !Object.preventExtensions) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t};\n\t\tdefineProperties(\n\t\t\tObject,\n\t\t\t{ assign: assignShim },\n\t\t\t{ assign: assignHasPendingExceptions }\n\t\t);\n\t\treturn Object.assign || assignShim;\n\t}\n});\n\nmodule.exports = assignShim;\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj, enumerable: false });\n /* eslint-disable no-unused-vars */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$window: true,\n\t$console: true,\n\t$parent: true,\n\t$self: true,\n\t$frames: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\ttry {\n\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' && !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t} else {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}) {\n // Add standard Aria and Tabindex info\n props = assign({\n className: this.buildCSSClass(),\n 'role': 'button',\n 'type': 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite', // let the screen reader user know that the text of the button may change\n tabIndex: 0\n }, props);\n\n let el = super.createEl(tag, props);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick();\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
\n *
Button
\n *
\n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n * This is used for merging options for child components. We\n * want it to be easy to override individual options on a child\n * component without having to rewrite all the other default options.\n * ```js\n * Parent.prototype.options_ = {\n * children: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * children: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * children: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} attributes An object of element attributes that should be set on the element\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, attributes) {\n return Dom.createEl(tagName, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // -> \n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
myButton\n * // -> myButton === myComonent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * children: {\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_.children = {\n * myChildComponent: {\n * myChildOption: true\n * }\n * }\n * ```\n * // Or when creating the component\n * ```js\n * var myComp = new MyComponent(player, {\n * children: {\n * myChildComponent: {\n * myChildOption: true\n * }\n * }\n * });\n * ```\n * The children option can also be an Array of child names or\n * child options objects (that also include a 'name' key).\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'muteToggle',\n 'volumeControl',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n * \n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`,\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech\n && this.player().tech['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: {\n 'seekBar': {}\n }\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder',\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: {\n 'loadProgressBar': {},\n 'playProgressBar': {}\n },\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl({\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {Object} props An object of properties \n * @return {Element}\n * @method createEl\n */\n createEl(props) {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech && this.player().tech['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech && this.player().tech['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n innerHTML: 'Current Time ' + '0:00', // label the current time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n innerHTML: `${this.localize('Duration Time')} 0:00`, // label the duration time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display \n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n innerHTML: `${this.localize('Remaining Time')} -0:00`, // label the remaining time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
/
'\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar',\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: {\n 'volumeLevel': {}\n },\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: {\n 'volumeBar': {}\n }\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using a horizontal\n // slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well, since that will\n // need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n this.addClass('vjs-menu-button');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vc = new VolumeBar(this.player_, this.options_.volumeBar);\n\n vc.on('focus', function() {\n menu.lockShowing();\n });\n vc.on('blur', function() {\n menu.unlockShowing();\n });\n menu.addChild(vc);\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extends.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extends(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendsFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendsFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
`\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc \n * @return {Element}\n * @method createEl\n */\n createEl(type, props) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props));\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive_ = true;\n this.reportUserActivity();\n this.listenForUserActivity();\n\n this.on('fullscreenchange', this.handleFullscreenChange);\n this.on('stageclick', this.handleStageClick);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech) { this.tech.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech\n */\n loadTech(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech) {\n this.unloadTech();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n var techReady = Fn.bind(this, function() {\n this.triggerReady();\n });\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech = new techComponent(techOptions);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech);\n\n this.on(this.tech, 'ready', this.handleTechReady);\n\n // Listen to every HTML5 events and trigger them back on the player for the plugins\n this.on(this.tech, 'loadstart', this.handleTechLoadStart);\n this.on(this.tech, 'waiting', this.handleTechWaiting);\n this.on(this.tech, 'canplay', this.handleTechCanPlay);\n this.on(this.tech, 'canplaythrough', this.handleTechCanPlayThrough);\n this.on(this.tech, 'playing', this.handleTechPlaying);\n this.on(this.tech, 'ended', this.handleTechEnded);\n this.on(this.tech, 'seeking', this.handleTechSeeking);\n this.on(this.tech, 'seeked', this.handleTechSeeked);\n this.on(this.tech, 'play', this.handleTechPlay);\n this.on(this.tech, 'firstplay', this.handleTechFirstPlay);\n this.on(this.tech, 'pause', this.handleTechPause);\n this.on(this.tech, 'progress', this.handleTechProgress);\n this.on(this.tech, 'durationchange', this.handleTechDurationChange);\n this.on(this.tech, 'fullscreenchange', this.handleTechFullscreenChange);\n this.on(this.tech, 'error', this.handleTechError);\n this.on(this.tech, 'suspend', this.handleTechSuspend);\n this.on(this.tech, 'abort', this.handleTechAbort);\n this.on(this.tech, 'emptied', this.handleTechEmptied);\n this.on(this.tech, 'stalled', this.handleTechStalled);\n this.on(this.tech, 'loadedmetadata', this.handleTechLoadedMetaData);\n this.on(this.tech, 'loadeddata', this.handleTechLoadedData);\n this.on(this.tech, 'timeupdate', this.handleTechTimeUpdate);\n this.on(this.tech, 'ratechange', this.handleTechRateChange);\n this.on(this.tech, 'volumechange', this.handleTechVolumeChange);\n this.on(this.tech, 'texttrackchange', this.onTextTrackChange);\n this.on(this.tech, 'loadedmetadata', this.updateStyleEl_);\n\n this.usingNativeControls(this.techGet('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech.ready(techReady, true);\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech\n */\n unloadTech() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech.dispose();\n\n this.tech = false;\n }\n\n /**\n * Add playback technology listeners\n *\n * @method addTechControlsListeners\n */\n addTechControlsListeners() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech, 'mousedown', this.handleTechClick);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech, 'touchstart', this.handleTechTouchStart);\n this.on(this.tech, 'touchmove', this.handleTechTouchMove);\n this.on(this.tech, 'touchend', this.handleTechTouchEnd);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech, 'tap', this.handleTechTap);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners\n */\n removeTechControlsListeners() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech, 'tap', this.handleTechTap);\n this.off(this.tech, 'touchstart', this.handleTechTouchStart);\n this.off(this.tech, 'touchmove', this.handleTechTouchMove);\n this.off(this.tech, 'touchend', this.handleTechTouchEnd);\n this.off(this.tech, 'mousedown', this.handleTechClick);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @private\n * @method handleTechReady\n */\n handleTechReady() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall('setVolume', this.cache_.volume);\n }\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @event loadstart\n */\n handleTechLoadStart() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @event play\n */\n handleTechPlay() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @event waiting\n */\n handleTechWaiting() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplay\n */\n handleTechCanPlay() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplaythrough\n */\n handleTechCanPlayThrough() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event playing\n */\n handleTechPlaying() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @event seeking\n */\n handleTechSeeking() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @event seeked\n */\n handleTechSeeked() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @event firstplay\n */\n handleTechFirstPlay() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @event pause\n */\n handleTechPause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @event progress\n */\n handleTechProgress() {\n this.trigger('progress');\n\n // Add custom event for when source is finished downloading.\n if (this.bufferedPercent() === 1) {\n this.trigger('loadedalldata');\n }\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @event ended\n */\n handleTechEnded() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @event durationchange\n */\n handleTechDurationChange() {\n this.updateDuration();\n this.trigger('durationchange');\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @method handleTechClick\n */\n handleTechClick(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @method handleTechTap\n */\n handleTechTap() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @method handleTechTouchStart\n */\n handleTechTouchStart() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @method handleTechTouchMove\n */\n handleTechTouchMove() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @method handleTechTouchEnd\n */\n handleTechTouchEnd(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Update the duration of the player using the tech\n *\n * @private\n * @method updateDuration\n */\n updateDuration() {\n // Allows for caching value instead of asking player each time.\n // We need to get the techGet response and check for a value so we don't\n // accidentally cause the stack to blow up.\n var duration = this.techGet('duration');\n if (duration) {\n if (duration < 0) {\n duration = Infinity;\n }\n this.duration(duration);\n // Determine if the stream is live and propagate styles down to UI.\n if (duration === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n }\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @event fullscreenchange\n */\n handleFullscreenChange() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick\n */\n handleStageClick() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @method handleTechFullscreenChange\n */\n handleTechFullscreenChange(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @event error\n */\n handleTechError() {\n let error = this.tech.error();\n this.error(error && error.code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @event suspend\n */\n handleTechSuspend() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @event abort\n */\n handleTechAbort() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @event emptied\n */\n handleTechEmptied() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @event stalled\n */\n handleTechStalled() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @event loadedmetadata\n */\n handleTechLoadedMetaData() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @event loaddata\n */\n handleTechLoadedData() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @event timeupdate\n */\n handleTechTimeUpdate() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @event ratechange\n */\n handleTechRateChange() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @event volumechange\n */\n handleTechVolumeChange() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @event texttrackchange\n */\n onTextTrackChange() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @method techCall\n */\n techCall(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech && !this.tech.isReady_) {\n this.tech.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @method techGet\n */\n techGet(method) {\n if (this.tech && this.tech.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName} playback technology element.`, e);\n this.tech.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds !== undefined) {\n\n // cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = parseFloat(seconds);\n\n return this;\n }\n\n if (this.cache_.duration === undefined) {\n this.updateDuration();\n }\n\n return this.cache_.duration || 0;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall('setMuted', muted);\n return this;\n }\n return this.techGet('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech.supportsFullScreen()) {\n this.techCall('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech && this.tech['featuresPlaybackRate']) {\n return this.techGet('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech && this.tech['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech && this.tech['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech && this.tech['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech && this.tech['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech && this.tech['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech && this.tech.videoWidth && this.tech.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech && this.tech.videoHeight && this.tech.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall('initialTime'); },\n // startOffsetTime: function(){ return this.techCall('startOffsetTime'); },\n // played: function(){ return this.techCall('played'); },\n // seekable: function(){ return this.techCall('seekable'); },\n // videoTracks: function(){ return this.techCall('videoTracks'); },\n // audioTracks: function(){ return this.techCall('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall('defaultPlaybackRate'); },\n // mediaGroup: function(){ return this.techCall('mediaGroup'); },\n // controller: function(){ return this.techCall('controller'); },\n // defaultMuted: function(){ return this.techCall('defaultMuted'); }\n\n // TODO\n // currentSrcList: the array of sources including other formats and bitrates\n // playList: array of source lists in order of playback\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) { this.el_.src = src; }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){ this.el_.load(); }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i 0) {\n this.trigger('loadstart');\n }\n // Allow the tech ready event to handle synchronisity\n }, true);\n }\n\n /* Fallbacks for unsupported event types\n ================================================================================ */\n // Manually trigger progress events based on changes to the buffered amount\n // Many flash players and older HTML5 browsers don't send progress or progress-like events\n /**\n * Turn on progress events\n *\n * @method manualProgressOn\n */\n manualProgressOn() {\n this.on('durationchange', this.onDurationChange);\n\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress);\n }\n\n /**\n * Turn off progress events\n *\n * @method manualProgressOff\n */\n manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n\n this.off('durationchange', this.onDurationChange);\n }\n\n /**\n * Track progress\n *\n * @method trackProgress\n */\n trackProgress() {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(Fn.bind(this, function(){\n // Don't trigger unless buffered amount is greater than last time\n\n let numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n\n /**\n * Update duration\n *\n * @method onDurationChange\n */\n onDurationChange() {\n this.duration_ = this.duration();\n }\n\n /**\n * Create and get TimeRange object for buffering\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n return createTimeRange(0, 0);\n }\n\n /**\n * Get buffered percent\n *\n * @return {Number}\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n\n /**\n * Stops tracking progress by clearing progress interval\n *\n * @method stopTrackingProgress\n */\n stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n\n /*! Time Tracking -------------------------------------------------------------- */\n /**\n * Set event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOn\n */\n manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n\n this.on('play', this.trackCurrentTime);\n this.on('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Remove event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOff\n */\n manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime);\n this.off('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Tracks current time\n *\n * @method trackCurrentTime\n */\n trackCurrentTime() {\n if (this.currentTimeInterval) { this.stopTrackingCurrentTime(); }\n this.currentTimeInterval = this.setInterval(function(){\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }, 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }\n\n /**\n * Turn off play progress tracking (when paused or dragging)\n *\n * @method stopTrackingCurrentTime\n */\n stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }\n\n /**\n * Turn off any manual progress or timeupdate tracking\n *\n * @method dispose\n */\n dispose() {\n // clear out text tracks because we can't reuse them between techs\n let textTracks = this.textTracks();\n\n if (textTracks) {\n let i = textTracks.length;\n while(i--) {\n this.removeRemoteTextTrack(textTracks[i]);\n }\n }\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) { this.manualProgressOff(); }\n\n if (this.manualTimeUpdates) { this.manualTimeUpdatesOff(); }\n\n super.dispose();\n }\n\n /**\n * When invoked without an argument, returns a MediaError object\n * representing the current error state of the player or null if\n * there is no error. When invoked with an argument, set the current\n * error state of the player.\n * @param {MediaError=} err Optional an error object\n * @return {MediaError} the current error object or null\n * @method error\n */\n error(err) {\n if (err !== undefined) {\n if (err instanceof MediaError) {\n this.error_ = err;\n } else {\n this.error_ = new MediaError(err);\n }\n this.trigger('error');\n }\n return this.error_;\n }\n\n /**\n * Return the time ranges that have been played through for the\n * current source. This implementation is incomplete. It does not\n * track the played time ranges, only whether the source has played\n * at all or not.\n * @return {TimeRangeObject} a single time range if this video has\n * played or an empty set of ranges if not.\n * @method played\n */\n played() {\n if (this.hasStarted_) {\n return createTimeRange(0, 0);\n }\n return createTimeRange();\n }\n\n /**\n * Set current time\n *\n * @method setCurrentTime\n */\n setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) { this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true }); }\n }\n\n /**\n * Initialize texttrack listeners\n *\n * @method initTextTrackListeners\n */\n initTextTrackListeners() {\n let textTrackListChanges = Fn.bind(this, function() {\n this.trigger('texttrackchange');\n });\n\n let tracks = this.textTracks();\n\n if (!tracks) return;\n\n tracks.addEventListener('removetrack', textTrackListChanges);\n tracks.addEventListener('addtrack', textTrackListChanges);\n\n this.on('dispose', Fn.bind(this, function() {\n tracks.removeEventListener('removetrack', textTrackListChanges);\n tracks.removeEventListener('addtrack', textTrackListChanges);\n }));\n }\n\n /**\n * Emulate texttracks\n *\n * @method emulateTextTracks\n */\n emulateTextTracks() {\n if (!window['WebVTT'] && this.el().parentNode != null) {\n let script = document.createElement('script');\n script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';\n this.el().parentNode.appendChild(script);\n window['WebVTT'] = true;\n }\n\n let tracks = this.textTracks();\n if (!tracks) {\n return;\n }\n\n let textTracksChanges = Fn.bind(this, function() {\n let updateDisplay = () => this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech && player.tech['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks \n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech && this.player_.tech['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks \n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks \n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list \n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n // \n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
\n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
`;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport XHR from '../xhr.js';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n XHR(src, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\nconst webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\nconst appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexport const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // Not remembering why we were checking for dash\n // but using setAttribute means you have to use getAttribute\n\n // The check for dash checks for the aria- * attributes, like aria-label, aria-valuemin.\n // The additional check for \"role\" is because the default method for adding attributes does not\n // add the attribute \"role\". My guess is because it's not a valid attribute in some namespaces, although\n // browsers handle the attribute just fine. The W3C allows for aria- * attributes to be used in pre-HTML5 docs.\n // http://www.w3.org/TR/wai-aria-primer/#ariahtml. Using setAttribute gets around this problem.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {Number} start Start time in seconds\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @private\n * @method createTimeRange\n */\nexport function createTimeRange(start, end){\n if (start === undefined && end === undefined) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: 1,\n start: function() { return start; },\n end: function() { return end; }\n };\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\n\nimport assign from 'object.assign';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport xhr from './xhr.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendsFn from './extends.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = stylesheet.createStyleElement('vjs-styles-defaults');\nlet head = document.querySelector('head');\nhead.insertBefore(style, head.firstChild);\nstylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n`);\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extends' doc for more info)\n * var MySpecialButton = videojs.extends(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extends` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extends(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extends\n */\nvideojs.extends = extendsFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number} start Start time in seconds\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = createTimeRange;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Simple http request for retrieving external files (e.g. text tracks)\n *\n * ##### Example\n *\n * // using url string\n * videojs.xhr('http://example.com/myfile.vtt', function(error, response, responseBody){});\n *\n * // or options block\n * videojs.xhr({\n * uri: 'http://example.com/myfile.vtt',\n * method: 'GET',\n * responseType: 'text'\n * }, function(error, response, responseBody){\n * if (error) {\n * // log the error\n * } else {\n * // successful, do something with the response\n * }\n * });\n *\n *\n * API is modeled after the Raynos/xhr.\n * https://github.com/Raynos/xhr/blob/master/index.js\n *\n * @param {Object|String} options Options block or URL string\n * @param {Function} callback The callback function\n * @returns {Object} The request\n */\nvideojs.xhr = xhr;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n","/**\n * @file xhr.js\n */\nimport * as Url from './utils/url.js';\nimport log from './utils/log.js';\nimport mergeOptions from './utils/merge-options.js';\nimport window from 'global/window';\n\n/*\n * Simple http request for retrieving external files (e.g. text tracks)\n * ##### Example\n * // using url string\n * videojs.xhr('http://example.com/myfile.vtt', function(error, response, responseBody){});\n *\n * // or options block\n * videojs.xhr({\n * uri: 'http://example.com/myfile.vtt',\n * method: 'GET',\n * responseType: 'text'\n * }, function(error, response, responseBody){\n * if (error) {\n * // log the error\n * } else {\n * // successful, do something with the response\n * }\n * });\n * /////////////\n * API is modeled after the Raynos/xhr, which we hope to use after\n * getting browserify implemented.\n * https://github.com/Raynos/xhr/blob/master/index.js\n *\n * @param {Object|String} options Options block or URL string\n * @param {Function} callback The callback function\n * @return {Object} The request\n * @method xhr\n */\nvar xhr = function(options, callback){\n let abortTimeout;\n\n // If options is a string it's the url\n if (typeof options === 'string') {\n options = {\n uri: options\n };\n }\n\n // Merge with default options\n options = mergeOptions({\n method: 'GET',\n timeout: 45 * 1000\n }, options);\n\n callback = callback || function(){};\n\n let XHR = window.XMLHttpRequest;\n\n if (typeof XHR === 'undefined') {\n // Shim XMLHttpRequest for older IEs\n XHR = function () {\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch (e) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch (f) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP'); } catch (g) {}\n throw new Error('This browser does not support XMLHttpRequest.');\n };\n }\n\n let request = new XHR();\n // Store a reference to the url on the request instance\n request.uri = options.uri;\n\n let urlInfo = Url.parseUrl(options.uri);\n let winLoc = window.location;\n\n let successHandler = function(){\n window.clearTimeout(abortTimeout);\n callback(null, request, request.response || request.responseText);\n };\n\n let errorHandler = function(err){\n window.clearTimeout(abortTimeout);\n\n if (!err || typeof err === 'string') {\n err = new Error(err || 'XHR Failed with a response of: '+(request && (request.response || request.responseText)));\n }\n\n callback(err, request);\n };\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n const crossOrigin = (urlInfo.protocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n // XDomainRequest -- Use for IE if XMLHTTPRequest2 isn't available\n // 'withCredentials' is only available in XMLHTTPRequest2\n // Also XDomainRequest has a lot of gotchas, so only use if cross domain\n if (crossOrigin && window.XDomainRequest && !('withCredentials' in request)) {\n request = new window.XDomainRequest();\n request.onload = successHandler;\n request.onerror = errorHandler;\n // These blank handlers need to be set to fix ie9\n // http://cypressnorth.com/programming/internet-explorer-aborting-ajax-requests-fixed/\n request.onprogress = function(){};\n request.ontimeout = function(){};\n\n // XMLHTTPRequest\n } else {\n const fileUrl = (urlInfo.protocol === 'file:' || winLoc.protocol === 'file:');\n\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n if (request.timedout) {\n return errorHandler('timeout');\n }\n\n if (request.status === 200 || fileUrl && request.status === 0) {\n successHandler();\n } else {\n errorHandler();\n }\n }\n };\n\n if (options.timeout) {\n abortTimeout = window.setTimeout(function() {\n if (request.readyState !== 4) {\n request.timedout = true;\n request.abort();\n }\n }, options.timeout);\n }\n }\n\n // open the connection\n try {\n // Third arg is async, or ignored by XDomainRequest\n request.open(options.method || 'GET', options.uri, true);\n } catch(err) {\n return errorHandler(err);\n }\n\n // withCredentials only supported by XMLHttpRequest2\n if(options.withCredentials) {\n request.withCredentials = true;\n }\n\n if (options.responseType) {\n request.responseType = options.responseType;\n }\n\n // send the request\n try {\n request.send();\n } catch(err) {\n return errorHandler(err);\n }\n\n return request;\n};\n\nexport default xhr;\n"]}
\ No newline at end of file
diff --git a/node_modules/video.js/dist/video-js-5.0.0-rc.59.zip b/node_modules/video.js/dist/video-js-5.0.0-rc.72.zip
similarity index 51%
rename from node_modules/video.js/dist/video-js-5.0.0-rc.59.zip
rename to node_modules/video.js/dist/video-js-5.0.0-rc.72.zip
index 8c315bb..016f579 100644
Binary files a/node_modules/video.js/dist/video-js-5.0.0-rc.59.zip and b/node_modules/video.js/dist/video-js-5.0.0-rc.72.zip differ
diff --git a/node_modules/video.js/dist/video-js.css b/node_modules/video.js/dist/video-js.css
index 2560ada..c527ce2 100644
--- a/node_modules/video.js/dist/video-js.css
+++ b/node_modules/video.js/dist/video-js.css
@@ -361,7 +361,7 @@ about what's required to play video. */
-o-transition: visibility 1s, opacity 1s;
transition: visibility 1s, opacity 1s; }
-.video-js.vjs-controls-disabled .vjs-control-bar, .video-js.vjs-using-native-controls .vjs-control-bar, .video-js.vjs-error .vjs-control-bar {
+.video-js.video-js.video-js.vjs-controls-disabled .vjs-control-bar, .video-js.video-js.video-js.vjs-using-native-controls .vjs-control-bar, .video-js.video-js.video-js.vjs-error .vjs-control-bar {
display: none; }
.video-js.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar {
diff --git a/node_modules/video.js/dist/video-js.min.css b/node_modules/video.js/dist/video-js.min.css
index 865e43a..3601860 100644
--- a/node_modules/video.js/dist/video-js.min.css
+++ b/node_modules/video.js/dist/video-js.min.css
@@ -1 +1 @@
-.video-js .vjs-big-play-button:before,.video-js .vjs-control:before{position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}@font-face{font-family:VideoJS;src:url(font/VideoJS.eot?) format('eot')}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,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) format('woff'),url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype');font-weight:400;font-style:normal}.vjs-icon-play,.video-js .vjs-big-play-button,.video-js .vjs-play-control{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play:before,.video-js .vjs-big-play-button:before,.video-js .vjs-play-control:before{content:'\f101'}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:'\f102'}.vjs-icon-pause,.video-js.vjs-playing .vjs-play-control{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pause:before,.video-js.vjs-playing .vjs-play-control:before{content:'\f103'}.vjs-icon-volume-mute,.video-js .vjs-mute-control.vjs-vol-0,.video-js .vjs-volume-menu-button.vjs-vol-0{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mute:before,.video-js .vjs-mute-control.vjs-vol-0:before,.video-js .vjs-volume-menu-button.vjs-vol-0:before{content:'\f104'}.vjs-icon-volume-low,.video-js .vjs-mute-control.vjs-vol-1,.video-js .vjs-volume-menu-button.vjs-vol-1{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-low:before,.video-js .vjs-mute-control.vjs-vol-1:before,.video-js .vjs-volume-menu-button.vjs-vol-1:before{content:'\f105'}.vjs-icon-volume-mid,.video-js .vjs-mute-control.vjs-vol-2,.video-js .vjs-volume-menu-button.vjs-vol-2{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mid:before,.video-js .vjs-mute-control.vjs-vol-2:before,.video-js .vjs-volume-menu-button.vjs-vol-2:before{content:'\f106'}.vjs-icon-volume-high,.video-js .vjs-mute-control,.video-js .vjs-volume-menu-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-high:before,.video-js .vjs-mute-control:before,.video-js .vjs-volume-menu-button:before{content:'\f107'}.vjs-icon-fullscreen-enter,.video-js .vjs-fullscreen-control{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-enter:before,.video-js .vjs-fullscreen-control:before{content:'\f108'}.vjs-icon-fullscreen-exit,.video-js.vjs-fullscreen .vjs-fullscreen-control{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-exit:before,.video-js.vjs-fullscreen .vjs-fullscreen-control:before{content:'\f109'}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:'\f10a'}.vjs-icon-spinner,.vjs-loading-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before,.vjs-loading-spinner:before{content:'\f10b'}.vjs-icon-subtitles,.video-js .vjs-subtitles-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-subtitles:before,.video-js .vjs-subtitles-button:before{content:'\f10c'}.vjs-icon-captions,.video-js .vjs-captions-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-captions:before,.video-js .vjs-captions-button:before{content:'\f10d'}.vjs-icon-chapters,.video-js .vjs-chapters-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-chapters:before,.video-js .vjs-chapters-button:before{content:'\f10e'}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:'\f10f'}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:'\f110'}.vjs-icon-circle,.video-js .vjs-play-progress,.video-js .vjs-volume-level{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle:before,.video-js .vjs-play-progress:before,.video-js .vjs-volume-level:before{content:'\f111'}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:'\f112'}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:'\f113'}.vjs-icon-audio-description{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio-description:before{content:'\f114'}.video-js{display:block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js *,.video-js :before,.video-js :after{box-sizing:inherit}.video-js.vjs-fluid,.video-js.vjs-16-9{width:100%;max-width:100%;height:0;padding-top:56.25%}.video-js.vjs-4-3{width:100%;max-width:100%;height:0;padding-top:75%}.video-js.vjs-fill{width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}body.vjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.vjs-full-window .video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0}.video-js.vjs-fullscreen{width:100%!important;height:100%!important;padding-top:0!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-hidden{display:none!important}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#F4A460}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.5em;width:3em;display:block;z-index:2;position:absolute;top:10px;left:10px;padding:0;cursor:pointer;opacity:1;border:2px solid #fff;background-color:#000;background-color:rgba(0,0,0,.8);-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.video-js.vjs-big-play-centered .vjs-big-play-button{top:50%;left:50%;margin-top:-.75em;margin-left:-1.5em}.video-js.vjs-controls-disabled .vjs-big-play-button,.video-js.vjs-has-started .vjs-big-play-button,.video-js.vjs-using-native-controls .vjs-big-play-button{display:none}.video-js:hover .vjs-big-play-button,.video-js .vjs-big-play-button:focus{outline:0;border-color:#fff;background-color:#595959;background-color:rgba(89,89,89,.75);-webkit-transition:all 0s;-moz-transition:all 0s;-o-transition:all 0s;transition:all 0s}.vjs-error .vjs-big-play-button{display:none}.video-js button{background:0 0;border:0;color:#fff;display:inline-block;overflow:visible;font-size:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2B333F;background-color:rgba(43,51,63,.5)}.video-js.vjs-has-started .vjs-control-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.video-js.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.video-js.vjs-controls-disabled .vjs-control-bar,.video-js.vjs-using-native-controls .vjs-control-bar,.video-js.vjs-error .vjs-control-bar{display:none}.video-js.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible}@media \0screen{.video-js.vjs-user-inactive.vjs-playing .vjs-control-bar :before{content:""}}.video-js.vjs-has-started.vjs-no-flex .vjs-control-bar{display:table}.video-js .vjs-control{outline:0;position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-control:before{font-size:1.8em;line-height:1.67}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:0 0 1em #fff}.video-js .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-no-flex .vjs-control{display:table-cell;vertical-align:middle}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.video-js .vjs-progress-holder{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s;height:.3em}.video-js .vjs-progress-control:hover .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-play-progress:after{display:block;font-size:.6em}.video-js .vjs-progress-holder .vjs-play-progress,.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div{position:absolute;display:block;height:.3em;margin:0;padding:0;width:0;left:0;top:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{position:absolute;top:-.3333333333em;right:-.5em;font-size:.9em;height:1em;line-height:1em}.video-js .vjs-play-progress:after{display:none;position:absolute;top:-2.4em;right:-1.5em;font-size:.9em;color:#000;content:attr(data-current-time);padding:.2em .5em;background-color:#fff;background-color:rgba(255,255,255,.8);-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em}.video-js .vjs-load-progress{background:#646464;background:rgba(255,255,255,.2)}.video-js .vjs-load-progress div{background:rgba(89,89,89,.1)}.video-js.vjs-no-flex .vjs-progress-control{width:auto}.video-js .vjs-slider{outline:0;position:relative;cursor:pointer;padding:0;margin:0 .45em;background-color:#595959;background-color:rgba(89,89,89,.9)}.video-js .vjs-slider:focus{text-shadow:0 0 1em #fff;-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js .vjs-mute-control,.video-js .vjs-volume-menu-button{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-volume-control{width:5em;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.video-js .vjs-volume-bar{margin:1.35em}.video-js .vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.video-js .vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em}.video-js .vjs-slider-vertical .vjs-volume-level{width:.3em}.video-js .vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em}.video-js .vjs-slider-horizontal .vjs-volume-level{height:.3em}.video-js .vjs-slider-horizontal .vjs-volume-level:before{top:-.3em;right:-.5em}.video-js .vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.video-js .vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-menu-button-popup.vjs-volume-menu-button .vjs-menu{display:block;width:0;height:0;border-top-color:transparent}.video-js .vjs-volume-menu-button.vjs-volume-menu-button-vertical .vjs-menu{left:.5em}.video-js .vjs-volume-menu-button-popup.vjs-volume-menu-button-horizontal .vjs-menu{left:-2em}.video-js .vjs-menu-button.vjs-menu-button-popup.vjs-volume-menu-button .vjs-menu .vjs-menu-content{height:0;width:0;overflow-x:hidden;overflow-y:hidden}.video-js .vjs-volume-menu-button.vjs-volume-menu-button-vertical:hover .vjs-menu .vjs-menu-content,.video-js .vjs-volume-menu-button.vjs-volume-menu-button-vertical .vjs-menu.vjs-lock-showing .vjs-menu-content{height:8em;width:2.9em}.video-js .vjs-volume-menu-button.vjs-volume-menu-button-horizontal:hover .vjs-menu .vjs-menu-content,.video-js .vjs-volume-menu-button.vjs-volume-menu-button-horizontal .vjs-menu.vjs-lock-showing .vjs-menu-content{height:2.9em;width:8em}.video-js .vjs-mute-control,.video-js .vjs-volume-control{display:none}.video-js .vjs-menu-button{cursor:pointer}.video-js .vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;overflow:auto}.video-js.vjs-scrubbing .vjs-menu-button:hover .vjs-menu{display:none}.video-js .vjs-menu ul li{list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.video-js .vjs-menu ul li.vjs-selected{background-color:#000}.video-js .vjs-menu ul li:focus,.video-js .vjs-menu ul li:hover,.video-js .vjs-menu ul li.vjs-selected:focus,.video-js .vjs-menu ul li.vjs-selected:hover{outline:0;color:#000;background-color:#fff;background-color:rgba(255,255,255,.75)}.video-js .vjs-menu ul li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.video-js .vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;left:-3em;width:0;height:0;margin-bottom:1.5em;border-top-color:rgba(7,40,50,.5)}.video-js .vjs-menu-button-popup .vjs-menu-content{background-color:#000;background-color:rgba(0,0,0,.7)}.video-js .vjs-menu-button-popup .vjs-menu .vjs-menu-content{position:absolute;width:10em;bottom:1.5em;max-height:15em}.video-js .vjs-menu-button.vjs-menu-button-popup:hover .vjs-menu,.video-js .vjs-menu-button-popup .vjs-menu.vjs-lock-showing{display:block}.video-js .vjs-menu-button-inline{-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s;overflow:hidden}.video-js .vjs-menu-button.vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:2.2222222em;top:0;padding:0;margin:0;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.video-js.vjs-no-flex .vjs-menu-button-inline .vjs-menu{position:relative;width:0}.video-js.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu{width:auto}.video-js .vjs-menu-button-inline .vjs-menu .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-menu-button-inline:hover{width:10em}.video-js .vjs-menu-button.vjs-menu-button-inline:hover .vjs-menu,.video-js .vjs-menu-button-inline .vjs-menu.vjs-lock-showing{display:block;opacity:1}.vjs-poster{display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.vjs-poster img{display:block;vertical-align:middle;margin:0 auto;max-height:100%;padding:0;width:100%}.video-js.vjs-has-started .vjs-poster{display:none}.video-js.vjs-audio.vjs-has-started .vjs-poster{display:block}.video-js.vjs-controls-disabled .vjs-poster{display:none}.video-js.vjs-using-native-controls .vjs-poster{display:none}.video-js.vjs-live .vjs-time-control,.video-js.vjs-live .vjs-time-divider,.video-js.vjs-live .vjs-progress-control{display:none}.video-js .vjs-live-control{display:none;font-size:1em;line-height:3em}.video-js .vjs-time-control{-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none;font-size:1em;line-height:3em}.video-js .vjs-current-time,.video-js.vjs-no-flex .vjs-current-time{display:none}.video-js .vjs-duration,.video-js.vjs-no-flex .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.video-js .vjs-play-control{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-text-track-display{position:absolute;bottom:3em;left:0;right:0;top:0;pointer-events:none}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em;background-color:#000;background-color:rgba(0,0,0,.5)}.video-js .vjs-subtitles{color:#fff}.video-js .vjs-captions{color:#fc6}.vjs-tt-cue{display:block}.video-js .vjs-fullscreen-control{width:3.8em;cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-playback-rate .vjs-playback-rate-value{font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.video-js .vjs-playback-rate .vjs-menu{left:0}.video-js .vjs-playback-rate.vjs-menu-button .vjs-menu .vjs-menu-content{width:4em;left:0;list-style:none}.vjs-error-display{display:none}.vjs-error .vjs-error-display{display:block;position:absolute;left:0;top:0;width:100%;height:100%}.vjs-error .vjs-error-display:before{content:'X';font-family:Arial,Helvetica,sans-serif;font-size:4em;color:#595959;line-height:1;text-shadow:.05em .05em .1em #000;text-align:center;vertical-align:middle;position:absolute;left:0;top:50%;margin-top:-.5em;width:100%}.vjs-error-display div{position:absolute;bottom:1em;right:0;left:0;font-size:1.4em;text-align:center;padding:3px;background-color:#000;background-color:rgba(0,0,0,.5)}.vjs-error-display a,.vjs-error-display a:visited{color:#F4A460}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;font-size:4em;line-height:1;width:1em;height:1em;margin-left:-.5em;margin-top:-.5em;opacity:.75}.vjs-waiting .vjs-loading-spinner,.vjs-seeking .vjs-loading-spinner{display:block;-webkit-animation:spin 1.5s infinite linear;-moz-animation:spin 1.5s infinite linear;-o-animation:spin 1.5s infinite linear;animation:spin 1.5s infinite linear}.vjs-error .vjs-loading-spinner{display:none;-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none}.video-js .vjs-loading-spinner:before{position:absolute;top:0;left:0;width:1em;height:1em;text-align:center;text-shadow:0 0 .1em #000}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.video-js .vjs-chapters-button.vjs-menu-button .vjs-menu{left:2em}.video-js .vjs-chapters-button.vjs-menu-button .vjs-menu .vjs-menu-content{width:24em;left:-12em}.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-custom-control-spacer{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto}.video-js.vjs-layout-tiny:not(.vjs-fullscreen).vjs-no-flex .vjs-custom-control-spacer{width:auto}.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-progress-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-subtitles-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-menu-button{display:none}.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-subtitles-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-fullscreen-control{display:none}.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-subtitles-button{display:none}.vjs-caption-settings{position:relative;top:1em;background-color:#000;opacity:.75;color:#fff;margin:0 auto;padding:.5em;height:15em;font-family:Arial,Helvetica,sans-serif;font-size:12px;width:40em}.vjs-caption-settings .vjs-tracksettings{top:0;bottom:2em;left:0;right:0;position:absolute;overflow:auto}.vjs-caption-settings .vjs-tracksettings-colors,.vjs-caption-settings .vjs-tracksettings-font{float:left}.vjs-caption-settings .vjs-tracksettings-colors:after,.vjs-caption-settings .vjs-tracksettings-font:after,.vjs-caption-settings .vjs-tracksettings-controls:after{clear:both}.vjs-caption-settings .vjs-tracksettings-controls{position:absolute;bottom:1em;right:1em}.vjs-caption-settings .vjs-tracksetting{margin:5px;padding:3px;min-height:40px}.vjs-caption-settings .vjs-tracksetting label{display:block;width:100px;margin-bottom:5px}.vjs-caption-settings .vjs-tracksetting span{display:inline;margin-left:5px}.vjs-caption-settings .vjs-tracksetting>div{margin-bottom:5px;min-height:20px}.vjs-caption-settings .vjs-tracksetting>div:last-child{margin-bottom:0;padding-bottom:0;min-height:0}.vjs-caption-settings label>input{margin-right:10px}.vjs-caption-settings input[type=button]{width:40px;height:40px}
+.video-js .vjs-big-play-button:before,.video-js .vjs-control:before{position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}@font-face{font-family:VideoJS;src:url(font/VideoJS.eot?) format('eot')}@font-face{font-family:VideoJS;src:url(data:application/font-woff;charset=utf-8;base64,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) format('woff'),url(data:application/x-font-ttf;charset=utf-8;base64,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) format('truetype');font-weight:400;font-style:normal}.vjs-icon-play,.video-js .vjs-big-play-button,.video-js .vjs-play-control{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play:before,.video-js .vjs-big-play-button:before,.video-js .vjs-play-control:before{content:'\f101'}.vjs-icon-play-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-play-circle:before{content:'\f102'}.vjs-icon-pause,.video-js.vjs-playing .vjs-play-control{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-pause:before,.video-js.vjs-playing .vjs-play-control:before{content:'\f103'}.vjs-icon-volume-mute,.video-js .vjs-mute-control.vjs-vol-0,.video-js .vjs-volume-menu-button.vjs-vol-0{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mute:before,.video-js .vjs-mute-control.vjs-vol-0:before,.video-js .vjs-volume-menu-button.vjs-vol-0:before{content:'\f104'}.vjs-icon-volume-low,.video-js .vjs-mute-control.vjs-vol-1,.video-js .vjs-volume-menu-button.vjs-vol-1{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-low:before,.video-js .vjs-mute-control.vjs-vol-1:before,.video-js .vjs-volume-menu-button.vjs-vol-1:before{content:'\f105'}.vjs-icon-volume-mid,.video-js .vjs-mute-control.vjs-vol-2,.video-js .vjs-volume-menu-button.vjs-vol-2{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-mid:before,.video-js .vjs-mute-control.vjs-vol-2:before,.video-js .vjs-volume-menu-button.vjs-vol-2:before{content:'\f106'}.vjs-icon-volume-high,.video-js .vjs-mute-control,.video-js .vjs-volume-menu-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-volume-high:before,.video-js .vjs-mute-control:before,.video-js .vjs-volume-menu-button:before{content:'\f107'}.vjs-icon-fullscreen-enter,.video-js .vjs-fullscreen-control{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-enter:before,.video-js .vjs-fullscreen-control:before{content:'\f108'}.vjs-icon-fullscreen-exit,.video-js.vjs-fullscreen .vjs-fullscreen-control{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-fullscreen-exit:before,.video-js.vjs-fullscreen .vjs-fullscreen-control:before{content:'\f109'}.vjs-icon-square{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-square:before{content:'\f10a'}.vjs-icon-spinner,.vjs-loading-spinner{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-spinner:before,.vjs-loading-spinner:before{content:'\f10b'}.vjs-icon-subtitles,.video-js .vjs-subtitles-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-subtitles:before,.video-js .vjs-subtitles-button:before{content:'\f10c'}.vjs-icon-captions,.video-js .vjs-captions-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-captions:before,.video-js .vjs-captions-button:before{content:'\f10d'}.vjs-icon-chapters,.video-js .vjs-chapters-button{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-chapters:before,.video-js .vjs-chapters-button:before{content:'\f10e'}.vjs-icon-share{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-share:before{content:'\f10f'}.vjs-icon-cog{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-cog:before{content:'\f110'}.vjs-icon-circle,.video-js .vjs-play-progress,.video-js .vjs-volume-level{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle:before,.video-js .vjs-play-progress:before,.video-js .vjs-volume-level:before{content:'\f111'}.vjs-icon-circle-outline{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-outline:before{content:'\f112'}.vjs-icon-circle-inner-circle{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-circle-inner-circle:before{content:'\f113'}.vjs-icon-audio-description{font-family:VideoJS;font-weight:400;font-style:normal}.vjs-icon-audio-description:before{content:'\f114'}.video-js{display:block;vertical-align:top;box-sizing:border-box;color:#fff;background-color:#000;position:relative;padding:0;font-size:10px;font-weight:400;font-style:normal;font-family:Arial,Helvetica,sans-serif;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.video-js:-moz-full-screen{position:absolute}.video-js:-webkit-full-screen{width:100%!important;height:100%!important}.video-js *,.video-js :before,.video-js :after{box-sizing:inherit}.video-js.vjs-fluid,.video-js.vjs-16-9{width:100%;max-width:100%;height:0;padding-top:56.25%}.video-js.vjs-4-3{width:100%;max-width:100%;height:0;padding-top:75%}.video-js.vjs-fill{width:100%;height:100%}.video-js .vjs-tech{position:absolute;top:0;left:0;width:100%;height:100%}body.vjs-full-window{padding:0;margin:0;height:100%;overflow-y:auto}.vjs-full-window .video-js.vjs-fullscreen{position:fixed;overflow:hidden;z-index:1000;left:0;top:0;bottom:0;right:0}.video-js.vjs-fullscreen{width:100%!important;height:100%!important;padding-top:0!important}.video-js.vjs-fullscreen.vjs-user-inactive{cursor:none}.vjs-hidden{display:none!important}.vjs-lock-showing{display:block!important;opacity:1;visibility:visible}.vjs-no-js{padding:20px;color:#fff;background-color:#000;font-size:18px;font-family:Arial,Helvetica,sans-serif;text-align:center;width:300px;height:150px;margin:0 auto}.vjs-no-js a,.vjs-no-js a:visited{color:#F4A460}.video-js .vjs-big-play-button{font-size:3em;line-height:1.5em;height:1.5em;width:3em;display:block;z-index:2;position:absolute;top:10px;left:10px;padding:0;cursor:pointer;opacity:1;border:2px solid #fff;background-color:#000;background-color:rgba(0,0,0,.8);-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em;-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s}.video-js.vjs-big-play-centered .vjs-big-play-button{top:50%;left:50%;margin-top:-.75em;margin-left:-1.5em}.video-js.vjs-controls-disabled .vjs-big-play-button,.video-js.vjs-has-started .vjs-big-play-button,.video-js.vjs-using-native-controls .vjs-big-play-button{display:none}.video-js:hover .vjs-big-play-button,.video-js .vjs-big-play-button:focus{outline:0;border-color:#fff;background-color:#595959;background-color:rgba(89,89,89,.75);-webkit-transition:all 0s;-moz-transition:all 0s;-o-transition:all 0s;transition:all 0s}.vjs-error .vjs-big-play-button{display:none}.video-js button{background:0 0;border:0;color:#fff;display:inline-block;overflow:visible;font-size:inherit;-webkit-appearance:none;-moz-appearance:none;appearance:none}.video-js .vjs-control-bar{display:none;width:100%;position:absolute;bottom:0;left:0;right:0;height:3em;background-color:#2B333F;background-color:rgba(43,51,63,.5)}.video-js.vjs-has-started .vjs-control-bar{display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;visibility:visible;opacity:1;-webkit-transition:visibility .1s,opacity .1s;-moz-transition:visibility .1s,opacity .1s;-o-transition:visibility .1s,opacity .1s;transition:visibility .1s,opacity .1s}.video-js.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{visibility:hidden;opacity:0;-webkit-transition:visibility 1s,opacity 1s;-moz-transition:visibility 1s,opacity 1s;-o-transition:visibility 1s,opacity 1s;transition:visibility 1s,opacity 1s}.video-js.video-js.video-js.vjs-controls-disabled .vjs-control-bar,.video-js.video-js.video-js.vjs-using-native-controls .vjs-control-bar,.video-js.video-js.video-js.vjs-error .vjs-control-bar{display:none}.video-js.vjs-audio.vjs-has-started.vjs-user-inactive.vjs-playing .vjs-control-bar{opacity:1;visibility:visible}@media \0screen{.video-js.vjs-user-inactive.vjs-playing .vjs-control-bar :before{content:""}}.video-js.vjs-has-started.vjs-no-flex .vjs-control-bar{display:table}.video-js .vjs-control{outline:0;position:relative;text-align:center;margin:0;padding:0;height:100%;width:4em;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-control:before{font-size:1.8em;line-height:1.67}.video-js .vjs-control:focus:before,.video-js .vjs-control:hover:before,.video-js .vjs-control:focus{text-shadow:0 0 1em #fff}.video-js .vjs-control-text{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.vjs-no-flex .vjs-control{display:table-cell;vertical-align:middle}.video-js .vjs-custom-control-spacer{display:none}.video-js .vjs-progress-control{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.video-js .vjs-progress-holder{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s;height:.3em}.video-js .vjs-progress-control:hover .vjs-progress-holder{font-size:1.6666666667em}.video-js .vjs-progress-control:hover .vjs-play-progress:after{display:block;font-size:.6em}.video-js .vjs-progress-holder .vjs-play-progress,.video-js .vjs-progress-holder .vjs-load-progress,.video-js .vjs-progress-holder .vjs-load-progress div{position:absolute;display:block;height:.3em;margin:0;padding:0;width:0;left:0;top:0}.video-js .vjs-play-progress{background-color:#fff}.video-js .vjs-play-progress:before{position:absolute;top:-.3333333333em;right:-.5em;font-size:.9em;height:1em;line-height:1em}.video-js .vjs-play-progress:after{display:none;position:absolute;top:-2.4em;right:-1.5em;font-size:.9em;color:#000;content:attr(data-current-time);padding:.2em .5em;background-color:#fff;background-color:rgba(255,255,255,.8);-webkit-border-radius:.3em;-moz-border-radius:.3em;border-radius:.3em}.video-js .vjs-load-progress{background:#646464;background:rgba(255,255,255,.2)}.video-js .vjs-load-progress div{background:rgba(89,89,89,.1)}.video-js.vjs-no-flex .vjs-progress-control{width:auto}.video-js .vjs-slider{outline:0;position:relative;cursor:pointer;padding:0;margin:0 .45em;background-color:#595959;background-color:rgba(89,89,89,.9)}.video-js .vjs-slider:focus{text-shadow:0 0 1em #fff;-webkit-box-shadow:0 0 1em #fff;-moz-box-shadow:0 0 1em #fff;box-shadow:0 0 1em #fff}.video-js .vjs-mute-control,.video-js .vjs-volume-menu-button{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-volume-control{width:5em;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none;display:-webkit-box;display:-webkit-flex;display:-ms-flexbox;display:flex;-webkit-box-align:center;-webkit-align-items:center;-ms-flex-align:center;align-items:center}.video-js .vjs-volume-bar{margin:1.35em}.video-js .vjs-volume-bar.vjs-slider-horizontal{width:5em;height:.3em}.video-js .vjs-volume-bar.vjs-slider-vertical{width:.3em;height:5em}.video-js .vjs-volume-level{position:absolute;bottom:0;left:0;background-color:#fff}.video-js .vjs-volume-level:before{position:absolute;font-size:.9em}.video-js .vjs-slider-vertical .vjs-volume-level{width:.3em}.video-js .vjs-slider-vertical .vjs-volume-level:before{top:-.5em;left:-.3em}.video-js .vjs-slider-horizontal .vjs-volume-level{height:.3em}.video-js .vjs-slider-horizontal .vjs-volume-level:before{top:-.3em;right:-.5em}.video-js .vjs-volume-bar.vjs-slider-vertical .vjs-volume-level{height:100%}.video-js .vjs-volume-bar.vjs-slider-horizontal .vjs-volume-level{width:100%}.video-js .vjs-menu-button-popup.vjs-volume-menu-button .vjs-menu{display:block;width:0;height:0;border-top-color:transparent}.video-js .vjs-volume-menu-button.vjs-volume-menu-button-vertical .vjs-menu{left:.5em}.video-js .vjs-volume-menu-button-popup.vjs-volume-menu-button-horizontal .vjs-menu{left:-2em}.video-js .vjs-menu-button.vjs-menu-button-popup.vjs-volume-menu-button .vjs-menu .vjs-menu-content{height:0;width:0;overflow-x:hidden;overflow-y:hidden}.video-js .vjs-volume-menu-button.vjs-volume-menu-button-vertical:hover .vjs-menu .vjs-menu-content,.video-js .vjs-volume-menu-button.vjs-volume-menu-button-vertical .vjs-menu.vjs-lock-showing .vjs-menu-content{height:8em;width:2.9em}.video-js .vjs-volume-menu-button.vjs-volume-menu-button-horizontal:hover .vjs-menu .vjs-menu-content,.video-js .vjs-volume-menu-button.vjs-volume-menu-button-horizontal .vjs-menu.vjs-lock-showing .vjs-menu-content{height:2.9em;width:8em}.video-js .vjs-mute-control,.video-js .vjs-volume-control{display:none}.video-js .vjs-menu-button{cursor:pointer}.video-js .vjs-menu .vjs-menu-content{display:block;padding:0;margin:0;overflow:auto}.video-js.vjs-scrubbing .vjs-menu-button:hover .vjs-menu{display:none}.video-js .vjs-menu ul li{list-style:none;margin:0;padding:.2em 0;line-height:1.4em;font-size:1.2em;text-align:center;text-transform:lowercase}.video-js .vjs-menu ul li.vjs-selected{background-color:#000}.video-js .vjs-menu ul li:focus,.video-js .vjs-menu ul li:hover,.video-js .vjs-menu ul li.vjs-selected:focus,.video-js .vjs-menu ul li.vjs-selected:hover{outline:0;color:#000;background-color:#fff;background-color:rgba(255,255,255,.75)}.video-js .vjs-menu ul li.vjs-menu-title{text-align:center;text-transform:uppercase;font-size:1em;line-height:2em;padding:0;margin:0 0 .3em;font-weight:700;cursor:default}.video-js .vjs-menu-button-popup .vjs-menu{display:none;position:absolute;bottom:0;left:-3em;width:0;height:0;margin-bottom:1.5em;border-top-color:rgba(7,40,50,.5)}.video-js .vjs-menu-button-popup .vjs-menu-content{background-color:#000;background-color:rgba(0,0,0,.7)}.video-js .vjs-menu-button-popup .vjs-menu .vjs-menu-content{position:absolute;width:10em;bottom:1.5em;max-height:15em}.video-js .vjs-menu-button.vjs-menu-button-popup:hover .vjs-menu,.video-js .vjs-menu-button-popup .vjs-menu.vjs-lock-showing{display:block}.video-js .vjs-menu-button-inline{-webkit-transition:all .4s;-moz-transition:all .4s;-o-transition:all .4s;transition:all .4s;overflow:hidden}.video-js .vjs-menu-button.vjs-menu-button-inline:before{width:2.222222222em}.video-js .vjs-menu-button-inline .vjs-menu{opacity:0;height:100%;width:auto;position:absolute;left:2.2222222em;top:0;padding:0;margin:0;-webkit-transition:all .2s;-moz-transition:all .2s;-o-transition:all .2s;transition:all .2s}.video-js.vjs-no-flex .vjs-menu-button-inline .vjs-menu{position:relative;width:0}.video-js.vjs-no-flex .vjs-menu-button-inline:hover .vjs-menu{width:auto}.video-js .vjs-menu-button-inline .vjs-menu .vjs-menu-content{width:auto;height:100%;margin:0;overflow:hidden}.video-js .vjs-menu-button-inline:hover{width:10em}.video-js .vjs-menu-button.vjs-menu-button-inline:hover .vjs-menu,.video-js .vjs-menu-button-inline .vjs-menu.vjs-lock-showing{display:block;opacity:1}.vjs-poster{display:inline-block;vertical-align:middle;background-repeat:no-repeat;background-position:50% 50%;background-size:contain;cursor:pointer;margin:0;padding:0;position:absolute;top:0;right:0;bottom:0;left:0;height:100%}.vjs-poster img{display:block;vertical-align:middle;margin:0 auto;max-height:100%;padding:0;width:100%}.video-js.vjs-has-started .vjs-poster{display:none}.video-js.vjs-audio.vjs-has-started .vjs-poster{display:block}.video-js.vjs-controls-disabled .vjs-poster{display:none}.video-js.vjs-using-native-controls .vjs-poster{display:none}.video-js.vjs-live .vjs-time-control,.video-js.vjs-live .vjs-time-divider,.video-js.vjs-live .vjs-progress-control{display:none}.video-js .vjs-live-control{display:none;font-size:1em;line-height:3em}.video-js .vjs-time-control{-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none;font-size:1em;line-height:3em}.video-js .vjs-current-time,.video-js.vjs-no-flex .vjs-current-time{display:none}.video-js .vjs-duration,.video-js.vjs-no-flex .vjs-duration{display:none}.vjs-time-divider{display:none;line-height:3em}.video-js .vjs-play-control{cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-text-track-display{position:absolute;bottom:3em;left:0;right:0;top:0;pointer-events:none}.video-js.vjs-user-inactive.vjs-playing .vjs-text-track-display{bottom:1em}.video-js .vjs-text-track{font-size:1.4em;text-align:center;margin-bottom:.1em;background-color:#000;background-color:rgba(0,0,0,.5)}.video-js .vjs-subtitles{color:#fff}.video-js .vjs-captions{color:#fc6}.vjs-tt-cue{display:block}.video-js .vjs-fullscreen-control{width:3.8em;cursor:pointer;-webkit-box-flex:none;-moz-box-flex:none;-webkit-flex:none;-ms-flex:none;flex:none}.video-js .vjs-playback-rate .vjs-playback-rate-value{font-size:1.5em;line-height:2;position:absolute;top:0;left:0;width:100%;height:100%;text-align:center}.video-js .vjs-playback-rate .vjs-menu{left:0}.video-js .vjs-playback-rate.vjs-menu-button .vjs-menu .vjs-menu-content{width:4em;left:0;list-style:none}.vjs-error-display{display:none}.vjs-error .vjs-error-display{display:block;position:absolute;left:0;top:0;width:100%;height:100%}.vjs-error .vjs-error-display:before{content:'X';font-family:Arial,Helvetica,sans-serif;font-size:4em;color:#595959;line-height:1;text-shadow:.05em .05em .1em #000;text-align:center;vertical-align:middle;position:absolute;left:0;top:50%;margin-top:-.5em;width:100%}.vjs-error-display div{position:absolute;bottom:1em;right:0;left:0;font-size:1.4em;text-align:center;padding:3px;background-color:#000;background-color:rgba(0,0,0,.5)}.vjs-error-display a,.vjs-error-display a:visited{color:#F4A460}.vjs-loading-spinner{display:none;position:absolute;top:50%;left:50%;font-size:4em;line-height:1;width:1em;height:1em;margin-left:-.5em;margin-top:-.5em;opacity:.75}.vjs-waiting .vjs-loading-spinner,.vjs-seeking .vjs-loading-spinner{display:block;-webkit-animation:spin 1.5s infinite linear;-moz-animation:spin 1.5s infinite linear;-o-animation:spin 1.5s infinite linear;animation:spin 1.5s infinite linear}.vjs-error .vjs-loading-spinner{display:none;-webkit-animation:none;-moz-animation:none;-o-animation:none;animation:none}.video-js .vjs-loading-spinner:before{position:absolute;top:0;left:0;width:1em;height:1em;text-align:center;text-shadow:0 0 .1em #000}@-moz-keyframes spin{0%{-moz-transform:rotate(0deg)}100%{-moz-transform:rotate(359deg)}}@-webkit-keyframes spin{0%{-webkit-transform:rotate(0deg)}100%{-webkit-transform:rotate(359deg)}}@-o-keyframes spin{0%{-o-transform:rotate(0deg)}100%{-o-transform:rotate(359deg)}}@keyframes spin{0%{transform:rotate(0deg)}100%{transform:rotate(359deg)}}.video-js .vjs-chapters-button.vjs-menu-button .vjs-menu{left:2em}.video-js .vjs-chapters-button.vjs-menu-button .vjs-menu .vjs-menu-content{width:24em;left:-12em}.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-custom-control-spacer{-webkit-box-flex:auto;-moz-box-flex:auto;-webkit-flex:auto;-ms-flex:auto;flex:auto}.video-js.vjs-layout-tiny:not(.vjs-fullscreen).vjs-no-flex .vjs-custom-control-spacer{width:auto}.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-progress-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-subtitles-button,.video-js.vjs-layout-tiny:not(.vjs-fullscreen) .vjs-volume-menu-button{display:none}.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-subtitles-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-volume-button,.video-js.vjs-layout-x-small:not(.vjs-fullscreen) .vjs-fullscreen-control{display:none}.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-current-time,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-captions-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-time-divider,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-duration,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-remaining-time,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-playback-rate,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-mute-control,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-volume-control,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-chapters-button,.video-js.vjs-layout-small:not(.vjs-fullscreen) .vjs-subtitles-button{display:none}.vjs-caption-settings{position:relative;top:1em;background-color:#000;opacity:.75;color:#fff;margin:0 auto;padding:.5em;height:15em;font-family:Arial,Helvetica,sans-serif;font-size:12px;width:40em}.vjs-caption-settings .vjs-tracksettings{top:0;bottom:2em;left:0;right:0;position:absolute;overflow:auto}.vjs-caption-settings .vjs-tracksettings-colors,.vjs-caption-settings .vjs-tracksettings-font{float:left}.vjs-caption-settings .vjs-tracksettings-colors:after,.vjs-caption-settings .vjs-tracksettings-font:after,.vjs-caption-settings .vjs-tracksettings-controls:after{clear:both}.vjs-caption-settings .vjs-tracksettings-controls{position:absolute;bottom:1em;right:1em}.vjs-caption-settings .vjs-tracksetting{margin:5px;padding:3px;min-height:40px}.vjs-caption-settings .vjs-tracksetting label{display:block;width:100px;margin-bottom:5px}.vjs-caption-settings .vjs-tracksetting span{display:inline;margin-left:5px}.vjs-caption-settings .vjs-tracksetting>div{margin-bottom:5px;min-height:20px}.vjs-caption-settings .vjs-tracksetting>div:last-child{margin-bottom:0;padding-bottom:0;min-height:0}.vjs-caption-settings label>input{margin-right:10px}.vjs-caption-settings input[type=button]{width:40px;height:40px}
diff --git a/node_modules/video.js/dist/video-js.swf b/node_modules/video.js/dist/video-js.swf
index 45a0ceb..6872b3b 100644
Binary files a/node_modules/video.js/dist/video-js.swf and b/node_modules/video.js/dist/video-js.swf differ
diff --git a/node_modules/video.js/dist/video.js b/node_modules/video.js/dist/video.js
index 03d029b..6d70be5 100644
--- a/node_modules/video.js/dist/video.js
+++ b/node_modules/video.js/dist/video.js
@@ -1,6 +1,6 @@
/**
* @license
- * Video.js 5.0.0-rc.59
+ * Video.js 5.0.0-rc.72
* Copyright Brightcove, Inc.
* Available under Apache License Version 2.0
*
@@ -29,7 +29,7 @@ if (typeof document !== 'undefined') {
}
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
+//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9nbG9iYWwvZG9jdW1lbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgdG9wTGV2ZWwgPSB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbCA6XG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiB7fVxudmFyIG1pbkRvYyA9IHJlcXVpcmUoJ21pbi1kb2N1bWVudCcpO1xuXG5pZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgIG1vZHVsZS5leHBvcnRzID0gZG9jdW1lbnQ7XG59IGVsc2Uge1xuICAgIHZhciBkb2NjeSA9IHRvcExldmVsWydfX0dMT0JBTF9ET0NVTUVOVF9DQUNIRUA0J107XG5cbiAgICBpZiAoIWRvY2N5KSB7XG4gICAgICAgIGRvY2N5ID0gdG9wTGV2ZWxbJ19fR0xPQkFMX0RPQ1VNRU5UX0NBQ0hFQDQnXSA9IG1pbkRvYztcbiAgICB9XG5cbiAgICBtb2R1bGUuZXhwb3J0cyA9IGRvY2N5O1xufVxuIl19
},{"min-document":3}],2:[function(_dereq_,module,exports){
(function (global){
if (typeof window !== "undefined") {
@@ -43,7 +43,7 @@ if (typeof window !== "undefined") {
}
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
+//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9nbG9iYWwvd2luZG93LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHdpbmRvdztcbn0gZWxzZSBpZiAodHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gZ2xvYmFsO1xufSBlbHNlIGlmICh0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIil7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBzZWxmO1xufSBlbHNlIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHt9O1xufVxuIl19
},{}],3:[function(_dereq_,module,exports){
},{}],4:[function(_dereq_,module,exports){
@@ -57,7 +57,7 @@ var nativeMax = Math.max;
* Creates a function that invokes `func` with the `this` binding of the
* created function and arguments from `start` and beyond provided as an array.
*
- * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).
+ * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).
*
* @static
* @memberOf _
@@ -196,7 +196,7 @@ var baseFor = createBaseFor();
module.exports = baseFor;
-},{"./createBaseFor":17}],9:[function(_dereq_,module,exports){
+},{"./createBaseFor":15}],9:[function(_dereq_,module,exports){
var baseFor = _dereq_('./baseFor'),
keysIn = _dereq_('../object/keysIn');
@@ -215,24 +215,7 @@ function baseForIn(object, iteratee) {
module.exports = baseForIn;
-},{"../object/keysIn":39,"./baseFor":8}],10:[function(_dereq_,module,exports){
-/**
- * The base implementation of `_.isFunction` without support for environments
- * with incorrect `typeof` results.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- */
-function baseIsFunction(value) {
- // Avoid a Chakra JIT bug in compatibility modes of IE 11.
- // See https://github.com/jashkenas/underscore/issues/1621 for more details.
- return typeof value == 'function' || false;
-}
-
-module.exports = baseIsFunction;
-
-},{}],11:[function(_dereq_,module,exports){
+},{"../object/keysIn":36,"./baseFor":8}],10:[function(_dereq_,module,exports){
var arrayEach = _dereq_('./arrayEach'),
baseMergeDeep = _dereq_('./baseMergeDeep'),
isArray = _dereq_('../lang/isArray'),
@@ -249,7 +232,7 @@ var arrayEach = _dereq_('./arrayEach'),
* @private
* @param {Object} object The destination object.
* @param {Object} source The source object.
- * @param {Function} [customizer] The function to customize merging properties.
+ * @param {Function} [customizer] The function to customize merged values.
* @param {Array} [stackA=[]] Tracks traversed source objects.
* @param {Array} [stackB=[]] Associates values with source counterparts.
* @returns {Object} Returns `object`.
@@ -259,7 +242,7 @@ function baseMerge(object, source, customizer, stackA, stackB) {
return object;
}
var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),
- props = isSrcArr ? null : keys(source);
+ props = isSrcArr ? undefined : keys(source);
arrayEach(props || source, function(srcValue, key) {
if (props) {
@@ -290,7 +273,7 @@ function baseMerge(object, source, customizer, stackA, stackB) {
module.exports = baseMerge;
-},{"../lang/isArray":30,"../lang/isObject":33,"../lang/isTypedArray":36,"../object/keys":38,"./arrayEach":6,"./baseMergeDeep":12,"./isArrayLike":20,"./isObjectLike":25}],12:[function(_dereq_,module,exports){
+},{"../lang/isArray":27,"../lang/isObject":30,"../lang/isTypedArray":33,"../object/keys":35,"./arrayEach":6,"./baseMergeDeep":11,"./isArrayLike":18,"./isObjectLike":23}],11:[function(_dereq_,module,exports){
var arrayCopy = _dereq_('./arrayCopy'),
isArguments = _dereq_('../lang/isArguments'),
isArray = _dereq_('../lang/isArray'),
@@ -309,7 +292,7 @@ var arrayCopy = _dereq_('./arrayCopy'),
* @param {Object} source The source object.
* @param {string} key The key of the value to merge.
* @param {Function} mergeFunc The function to merge values.
- * @param {Function} [customizer] The function to customize merging properties.
+ * @param {Function} [customizer] The function to customize merged values.
* @param {Array} [stackA=[]] Tracks traversed source objects.
* @param {Array} [stackB=[]] Associates values with source counterparts.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
@@ -359,7 +342,7 @@ function baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stack
module.exports = baseMergeDeep;
-},{"../lang/isArguments":29,"../lang/isArray":30,"../lang/isPlainObject":34,"../lang/isTypedArray":36,"../lang/toPlainObject":37,"./arrayCopy":5,"./isArrayLike":20}],13:[function(_dereq_,module,exports){
+},{"../lang/isArguments":26,"../lang/isArray":27,"../lang/isPlainObject":31,"../lang/isTypedArray":33,"../lang/toPlainObject":34,"./arrayCopy":5,"./isArrayLike":18}],12:[function(_dereq_,module,exports){
var toObject = _dereq_('./toObject');
/**
@@ -377,25 +360,7 @@ function baseProperty(key) {
module.exports = baseProperty;
-},{"./toObject":28}],14:[function(_dereq_,module,exports){
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- if (typeof value == 'string') {
- return value;
- }
- return value == null ? '' : (value + '');
-}
-
-module.exports = baseToString;
-
-},{}],15:[function(_dereq_,module,exports){
+},{"./toObject":25}],13:[function(_dereq_,module,exports){
var identity = _dereq_('../utility/identity');
/**
@@ -436,16 +401,13 @@ function bindCallback(func, thisArg, argCount) {
module.exports = bindCallback;
-},{"../utility/identity":43}],16:[function(_dereq_,module,exports){
+},{"../utility/identity":39}],14:[function(_dereq_,module,exports){
var bindCallback = _dereq_('./bindCallback'),
isIterateeCall = _dereq_('./isIterateeCall'),
restParam = _dereq_('../function/restParam');
/**
- * Creates a function that assigns properties of source object(s) to a given
- * destination object.
- *
- * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.
+ * Creates a `_.assign`, `_.defaults`, or `_.merge` function.
*
* @private
* @param {Function} assigner The function to assign values.
@@ -482,7 +444,7 @@ function createAssigner(assigner) {
module.exports = createAssigner;
-},{"../function/restParam":4,"./bindCallback":15,"./isIterateeCall":23}],17:[function(_dereq_,module,exports){
+},{"../function/restParam":4,"./bindCallback":13,"./isIterateeCall":21}],15:[function(_dereq_,module,exports){
var toObject = _dereq_('./toObject');
/**
@@ -511,7 +473,7 @@ function createBaseFor(fromRight) {
module.exports = createBaseFor;
-},{"./toObject":28}],18:[function(_dereq_,module,exports){
+},{"./toObject":25}],16:[function(_dereq_,module,exports){
var baseProperty = _dereq_('./baseProperty');
/**
@@ -528,7 +490,7 @@ var getLength = baseProperty('length');
module.exports = getLength;
-},{"./baseProperty":13}],19:[function(_dereq_,module,exports){
+},{"./baseProperty":12}],17:[function(_dereq_,module,exports){
var isNative = _dereq_('../lang/isNative');
/**
@@ -546,7 +508,7 @@ function getNative(object, key) {
module.exports = getNative;
-},{"../lang/isNative":32}],20:[function(_dereq_,module,exports){
+},{"../lang/isNative":29}],18:[function(_dereq_,module,exports){
var getLength = _dereq_('./getLength'),
isLength = _dereq_('./isLength');
@@ -563,7 +525,7 @@ function isArrayLike(value) {
module.exports = isArrayLike;
-},{"./getLength":18,"./isLength":24}],21:[function(_dereq_,module,exports){
+},{"./getLength":16,"./isLength":22}],19:[function(_dereq_,module,exports){
/**
* Checks if `value` is a host object in IE < 9.
*
@@ -586,12 +548,12 @@ var isHostObject = (function() {
module.exports = isHostObject;
-},{}],22:[function(_dereq_,module,exports){
+},{}],20:[function(_dereq_,module,exports){
/** Used to detect unsigned integer values. */
var reIsUint = /^\d+$/;
/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
* of an array-like value.
*/
var MAX_SAFE_INTEGER = 9007199254740991;
@@ -612,7 +574,7 @@ function isIndex(value, length) {
module.exports = isIndex;
-},{}],23:[function(_dereq_,module,exports){
+},{}],21:[function(_dereq_,module,exports){
var isArrayLike = _dereq_('./isArrayLike'),
isIndex = _dereq_('./isIndex'),
isObject = _dereq_('../lang/isObject');
@@ -642,9 +604,9 @@ function isIterateeCall(value, index, object) {
module.exports = isIterateeCall;
-},{"../lang/isObject":33,"./isArrayLike":20,"./isIndex":22}],24:[function(_dereq_,module,exports){
+},{"../lang/isObject":30,"./isArrayLike":18,"./isIndex":20}],22:[function(_dereq_,module,exports){
/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
* of an array-like value.
*/
var MAX_SAFE_INTEGER = 9007199254740991;
@@ -652,7 +614,7 @@ var MAX_SAFE_INTEGER = 9007199254740991;
/**
* Checks if `value` is a valid array-like length.
*
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
+ * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
*
* @private
* @param {*} value The value to check.
@@ -664,7 +626,7 @@ function isLength(value) {
module.exports = isLength;
-},{}],25:[function(_dereq_,module,exports){
+},{}],23:[function(_dereq_,module,exports){
/**
* Checks if `value` is object-like.
*
@@ -678,70 +640,7 @@ function isObjectLike(value) {
module.exports = isObjectLike;
-},{}],26:[function(_dereq_,module,exports){
-var baseForIn = _dereq_('./baseForIn'),
- isArguments = _dereq_('../lang/isArguments'),
- isHostObject = _dereq_('./isHostObject'),
- isObjectLike = _dereq_('./isObjectLike'),
- support = _dereq_('../support');
-
-/** `Object#toString` result references. */
-var objectTag = '[object Object]';
-
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
-/**
- * A fallback implementation of `_.isPlainObject` which checks if `value`
- * is an object created by the `Object` constructor or has a `[[Prototype]]`
- * of `null`.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
- */
-function shimIsPlainObject(value) {
- var Ctor;
-
- // Exit early for non `Object` objects.
- if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value)) ||
- (!hasOwnProperty.call(value, 'constructor') &&
- (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor))) ||
- (!support.argsTag && isArguments(value))) {
- return false;
- }
- // IE < 9 iterates inherited properties before own properties. If the first
- // iterated property is an object's own property then there are no inherited
- // enumerable properties.
- var result;
- if (support.ownLast) {
- baseForIn(value, function(subValue, key, object) {
- result = hasOwnProperty.call(object, key);
- return false;
- });
- return result !== false;
- }
- // In most environments an object's own properties are iterated before
- // its inherited properties. If the last iterated property is an object's
- // own property then there are no inherited enumerable properties.
- baseForIn(value, function(subValue, key) {
- result = key;
- });
- return result === undefined || hasOwnProperty.call(value, result);
-}
-
-module.exports = shimIsPlainObject;
-
-},{"../lang/isArguments":29,"../support":42,"./baseForIn":9,"./isHostObject":21,"./isObjectLike":25}],27:[function(_dereq_,module,exports){
+},{}],24:[function(_dereq_,module,exports){
var isArguments = _dereq_('../lang/isArguments'),
isArray = _dereq_('../lang/isArray'),
isIndex = _dereq_('./isIndex'),
@@ -785,7 +684,7 @@ function shimKeys(object) {
module.exports = shimKeys;
-},{"../lang/isArguments":29,"../lang/isArray":30,"../lang/isString":35,"../object/keysIn":39,"./isIndex":22,"./isLength":24}],28:[function(_dereq_,module,exports){
+},{"../lang/isArguments":26,"../lang/isArray":27,"../lang/isString":32,"../object/keysIn":36,"./isIndex":20,"./isLength":22}],25:[function(_dereq_,module,exports){
var isObject = _dereq_('../lang/isObject'),
isString = _dereq_('../lang/isString'),
support = _dereq_('../support');
@@ -813,13 +712,9 @@ function toObject(value) {
module.exports = toObject;
-},{"../lang/isObject":33,"../lang/isString":35,"../support":42}],29:[function(_dereq_,module,exports){
+},{"../lang/isObject":30,"../lang/isString":32,"../support":38}],26:[function(_dereq_,module,exports){
var isArrayLike = _dereq_('../internal/isArrayLike'),
- isObjectLike = _dereq_('../internal/isObjectLike'),
- support = _dereq_('../support');
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]';
+ isObjectLike = _dereq_('../internal/isObjectLike');
/** Used for native method references. */
var objectProto = Object.prototype;
@@ -827,12 +722,6 @@ var objectProto = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
/** Native method references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable;
@@ -853,19 +742,13 @@ var propertyIsEnumerable = objectProto.propertyIsEnumerable;
* // => false
*/
function isArguments(value) {
- return isObjectLike(value) && isArrayLike(value) && objToString.call(value) == argsTag;
-}
-// Fallback for environments without a `toStringTag` for `arguments` objects.
-if (!support.argsTag) {
- isArguments = function(value) {
- return isObjectLike(value) && isArrayLike(value) &&
- hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
- };
+ return isObjectLike(value) && isArrayLike(value) &&
+ hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
}
module.exports = isArguments;
-},{"../internal/isArrayLike":20,"../internal/isObjectLike":25,"../support":42}],30:[function(_dereq_,module,exports){
+},{"../internal/isArrayLike":18,"../internal/isObjectLike":23}],27:[function(_dereq_,module,exports){
var getNative = _dereq_('../internal/getNative'),
isLength = _dereq_('../internal/isLength'),
isObjectLike = _dereq_('../internal/isObjectLike');
@@ -877,7 +760,7 @@ var arrayTag = '[object Array]';
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -907,10 +790,8 @@ var isArray = nativeIsArray || function(value) {
module.exports = isArray;
-},{"../internal/getNative":19,"../internal/isLength":24,"../internal/isObjectLike":25}],31:[function(_dereq_,module,exports){
-(function (global){
-var baseIsFunction = _dereq_('../internal/baseIsFunction'),
- getNative = _dereq_('../internal/getNative');
+},{"../internal/getNative":17,"../internal/isLength":22,"../internal/isObjectLike":23}],28:[function(_dereq_,module,exports){
+var isObject = _dereq_('./isObject');
/** `Object#toString` result references. */
var funcTag = '[object Function]';
@@ -919,14 +800,11 @@ var funcTag = '[object Function]';
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
-/** Native method references. */
-var Uint8Array = getNative(global, 'Uint8Array');
-
/**
* Checks if `value` is classified as a `Function` object.
*
@@ -943,25 +821,20 @@ var Uint8Array = getNative(global, 'Uint8Array');
* _.isFunction(/abc/);
* // => false
*/
-var isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) {
+function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
// in older versions of Chrome and Safari which return 'function' for regexes
- // and Safari 8 equivalents which return 'object' for typed array constructors.
- return objToString.call(value) == funcTag;
-};
+ // and Safari 8 which returns 'object' for typed array constructors.
+ return isObject(value) && objToString.call(value) == funcTag;
+}
module.exports = isFunction;
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
-},{"../internal/baseIsFunction":10,"../internal/getNative":19}],32:[function(_dereq_,module,exports){
-var escapeRegExp = _dereq_('../string/escapeRegExp'),
+},{"./isObject":30}],29:[function(_dereq_,module,exports){
+var isFunction = _dereq_('./isFunction'),
isHostObject = _dereq_('../internal/isHostObject'),
isObjectLike = _dereq_('../internal/isObjectLike');
-/** `Object#toString` result references. */
-var funcTag = '[object Function]';
-
/** Used to detect host constructors (Safari > 5). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;
@@ -974,15 +847,9 @@ var fnToString = Function.prototype.toString;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
/** Used to detect if a method is native. */
var reIsNative = RegExp('^' +
- escapeRegExp(fnToString.call(hasOwnProperty))
+ fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
.replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
);
@@ -1006,7 +873,7 @@ function isNative(value) {
if (value == null) {
return false;
}
- if (objToString.call(value) == funcTag) {
+ if (isFunction(value)) {
return reIsNative.test(fnToString.call(value));
}
return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);
@@ -1014,7 +881,7 @@ function isNative(value) {
module.exports = isNative;
-},{"../internal/isHostObject":21,"../internal/isObjectLike":25,"../string/escapeRegExp":41}],33:[function(_dereq_,module,exports){
+},{"../internal/isHostObject":19,"../internal/isObjectLike":23,"./isFunction":28}],30:[function(_dereq_,module,exports){
/**
* Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
* (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
@@ -1044,10 +911,11 @@ function isObject(value) {
module.exports = isObject;
-},{}],34:[function(_dereq_,module,exports){
-var getNative = _dereq_('../internal/getNative'),
+},{}],31:[function(_dereq_,module,exports){
+var baseForIn = _dereq_('../internal/baseForIn'),
isArguments = _dereq_('./isArguments'),
- shimIsPlainObject = _dereq_('../internal/shimIsPlainObject'),
+ isHostObject = _dereq_('../internal/isHostObject'),
+ isObjectLike = _dereq_('../internal/isObjectLike'),
support = _dereq_('../support');
/** `Object#toString` result references. */
@@ -1056,15 +924,15 @@ var objectTag = '[object Object]';
/** Used for native method references. */
var objectProto = Object.prototype;
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
-/** Native method references. */
-var getPrototypeOf = getNative(Object, 'getPrototypeOf');
-
/**
* Checks if `value` is a plain object, that is, an object created by the
* `Object` constructor or one with a `[[Prototype]]` of `null`.
@@ -1095,21 +963,37 @@ var getPrototypeOf = getNative(Object, 'getPrototypeOf');
* _.isPlainObject(Object.create(null));
* // => true
*/
-var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) {
- if (!(value && objToString.call(value) == objectTag) || (!support.argsTag && isArguments(value))) {
+function isPlainObject(value) {
+ var Ctor;
+
+ // Exit early for non `Object` objects.
+ if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||
+ (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {
return false;
}
- var valueOf = getNative(value, 'valueOf'),
- objProto = valueOf && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);
-
- return objProto
- ? (value == objProto || getPrototypeOf(value) == objProto)
- : shimIsPlainObject(value);
-};
+ // IE < 9 iterates inherited properties before own properties. If the first
+ // iterated property is an object's own property then there are no inherited
+ // enumerable properties.
+ var result;
+ if (support.ownLast) {
+ baseForIn(value, function(subValue, key, object) {
+ result = hasOwnProperty.call(object, key);
+ return false;
+ });
+ return result !== false;
+ }
+ // In most environments an object's own properties are iterated before
+ // its inherited properties. If the last iterated property is an object's
+ // own property then there are no inherited enumerable properties.
+ baseForIn(value, function(subValue, key) {
+ result = key;
+ });
+ return result === undefined || hasOwnProperty.call(value, result);
+}
module.exports = isPlainObject;
-},{"../internal/getNative":19,"../internal/shimIsPlainObject":26,"../support":42,"./isArguments":29}],35:[function(_dereq_,module,exports){
+},{"../internal/baseForIn":9,"../internal/isHostObject":19,"../internal/isObjectLike":23,"../support":38,"./isArguments":26}],32:[function(_dereq_,module,exports){
var isObjectLike = _dereq_('../internal/isObjectLike');
/** `Object#toString` result references. */
@@ -1119,7 +1003,7 @@ var stringTag = '[object String]';
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -1146,7 +1030,7 @@ function isString(value) {
module.exports = isString;
-},{"../internal/isObjectLike":25}],36:[function(_dereq_,module,exports){
+},{"../internal/isObjectLike":23}],33:[function(_dereq_,module,exports){
var isLength = _dereq_('../internal/isLength'),
isObjectLike = _dereq_('../internal/isObjectLike');
@@ -1195,7 +1079,7 @@ typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -1222,7 +1106,7 @@ function isTypedArray(value) {
module.exports = isTypedArray;
-},{"../internal/isLength":24,"../internal/isObjectLike":25}],37:[function(_dereq_,module,exports){
+},{"../internal/isLength":22,"../internal/isObjectLike":23}],34:[function(_dereq_,module,exports){
var baseCopy = _dereq_('../internal/baseCopy'),
keysIn = _dereq_('../object/keysIn');
@@ -1255,7 +1139,7 @@ function toPlainObject(value) {
module.exports = toPlainObject;
-},{"../internal/baseCopy":7,"../object/keysIn":39}],38:[function(_dereq_,module,exports){
+},{"../internal/baseCopy":7,"../object/keysIn":36}],35:[function(_dereq_,module,exports){
var getNative = _dereq_('../internal/getNative'),
isArrayLike = _dereq_('../internal/isArrayLike'),
isObject = _dereq_('../lang/isObject'),
@@ -1269,7 +1153,7 @@ var nativeKeys = getNative(Object, 'keys');
* Creates an array of the own enumerable property names of `object`.
*
* **Note:** Non-object values are coerced to objects. See the
- * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys)
+ * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
* for more details.
*
* @static
@@ -1293,7 +1177,7 @@ var nativeKeys = getNative(Object, 'keys');
* // => ['0', '1']
*/
var keys = !nativeKeys ? shimKeys : function(object) {
- var Ctor = object == null ? null : object.constructor;
+ var Ctor = object == null ? undefined : object.constructor;
if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
(typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {
return shimKeys(object);
@@ -1303,7 +1187,7 @@ var keys = !nativeKeys ? shimKeys : function(object) {
module.exports = keys;
-},{"../internal/getNative":19,"../internal/isArrayLike":20,"../internal/shimKeys":27,"../lang/isObject":33,"../support":42}],39:[function(_dereq_,module,exports){
+},{"../internal/getNative":17,"../internal/isArrayLike":18,"../internal/shimKeys":24,"../lang/isObject":30,"../support":38}],36:[function(_dereq_,module,exports){
var arrayEach = _dereq_('../internal/arrayEach'),
isArguments = _dereq_('../lang/isArguments'),
isArray = _dereq_('../lang/isArray'),
@@ -1340,7 +1224,7 @@ var errorProto = Error.prototype,
var hasOwnProperty = objectProto.hasOwnProperty;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -1407,7 +1291,7 @@ function keysIn(object) {
while (++index < length) {
result[index] = (index + '');
}
- // lodash skips the `constructor` property when it infers it is iterating
+ // lodash skips the `constructor` property when it infers it's iterating
// over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`
// attribute of an existing property and the `constructor` property of a
// prototype defaults to non-enumerable.
@@ -1441,7 +1325,7 @@ function keysIn(object) {
module.exports = keysIn;
-},{"../internal/arrayEach":6,"../internal/isIndex":22,"../internal/isLength":24,"../lang/isArguments":29,"../lang/isArray":30,"../lang/isFunction":31,"../lang/isObject":33,"../lang/isString":35,"../support":42}],40:[function(_dereq_,module,exports){
+},{"../internal/arrayEach":6,"../internal/isIndex":20,"../internal/isLength":22,"../lang/isArguments":26,"../lang/isArray":27,"../lang/isFunction":28,"../lang/isObject":30,"../lang/isString":32,"../support":38}],37:[function(_dereq_,module,exports){
var baseMerge = _dereq_('../internal/baseMerge'),
createAssigner = _dereq_('../internal/createAssigner');
@@ -1449,7 +1333,7 @@ var baseMerge = _dereq_('../internal/baseMerge'),
* Recursively merges own enumerable properties of the source object(s), that
* don't resolve to `undefined` into the destination object. Subsequent sources
* overwrite property assignments of previous sources. If `customizer` is
- * provided it is invoked to produce the merged values of the destination and
+ * provided it's invoked to produce the merged values of the destination and
* source properties. If `customizer` returns `undefined` merging is handled
* by the method instead. The `customizer` is bound to `thisArg` and invoked
* with five arguments: (objectValue, sourceValue, key, object, source).
@@ -1497,60 +1381,12 @@ var merge = createAssigner(baseMerge);
module.exports = merge;
-},{"../internal/baseMerge":11,"../internal/createAssigner":16}],41:[function(_dereq_,module,exports){
-var baseToString = _dereq_('../internal/baseToString');
-
-/**
- * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).
- * In addition to special characters the forward slash is escaped to allow for
- * easier `eval` use and `Function` compilation.
- */
-var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g,
- reHasRegExpChars = RegExp(reRegExpChars.source);
-
-/**
- * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?",
- * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to escape.
- * @returns {string} Returns the escaped string.
- * @example
- *
- * _.escapeRegExp('[lodash](https://lodash.com/)');
- * // => '\[lodash\]\(https:\/\/lodash\.com\/\)'
- */
-function escapeRegExp(string) {
- string = baseToString(string);
- return (string && reHasRegExpChars.test(string))
- ? string.replace(reRegExpChars, '\\$&')
- : string;
-}
-
-module.exports = escapeRegExp;
-
-},{"../internal/baseToString":14}],42:[function(_dereq_,module,exports){
-(function (global){
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- objectTag = '[object Object]';
-
+},{"../internal/baseMerge":10,"../internal/createAssigner":14}],38:[function(_dereq_,module,exports){
/** Used for native method references. */
var arrayProto = Array.prototype,
errorProto = Error.prototype,
objectProto = Object.prototype;
-/** Used to detect DOM support. */
-var document = (document = global.window) ? document.document : null;
-
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
/** Native method references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable,
splice = arrayProto.splice;
@@ -1572,15 +1408,6 @@ var support = {};
Ctor.prototype = { 'valueOf': x, 'y': x };
for (var key in new Ctor) { props.push(key); }
- /**
- * Detect if the `toStringTag` of `arguments` objects is resolvable
- * (all but Firefox < 4, IE < 9).
- *
- * @memberOf _.support
- * @type boolean
- */
- support.argsTag = objToString.call(arguments) == argsTag;
-
/**
* Detect if `name` or `message` properties of `Error.prototype` are
* enumerable by default (IE < 9, Safari < 5.1).
@@ -1604,14 +1431,6 @@ var support = {};
*/
support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');
- /**
- * Detect if the `toStringTag` of DOM nodes is resolvable (all but IE < 9).
- *
- * @memberOf _.support
- * @type boolean
- */
- support.nodeTag = objToString.call(document) != objectTag;
-
/**
* Detect if properties shadowing those on `Object.prototype` are non-enumerable.
*
@@ -1656,25 +1475,11 @@ var support = {};
* @type boolean
*/
support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';
-
- /**
- * Detect if the DOM is supported.
- *
- * @memberOf _.support
- * @type boolean
- */
- try {
- support.dom = document.createDocumentFragment().nodeType === 11;
- } catch(e) {
- support.dom = false;
- }
}(1, 0));
module.exports = support;
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
-},{}],43:[function(_dereq_,module,exports){
+},{}],39:[function(_dereq_,module,exports){
/**
* This method returns the first argument provided to it.
*
@@ -1696,7 +1501,7 @@ function identity(value) {
module.exports = identity;
-},{}],44:[function(_dereq_,module,exports){
+},{}],40:[function(_dereq_,module,exports){
'use strict';
// modified from https://github.com/es-shims/es6-shim
@@ -1706,22 +1511,24 @@ var canBeObject = function (obj) {
};
var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';
var defineProperties = _dereq_('define-properties');
+var toObject = Object;
+var push = Array.prototype.push;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
-var isEnumerableOn = function (obj) {
- return function isEnumerable(prop) {
- return propIsEnumerable.call(obj, prop);
- };
-};
var assignShim = function assign(target, source1) {
if (!canBeObject(target)) { throw new TypeError('target must be an object'); }
- var objTarget = Object(target);
- var s, source, i, props;
+ var objTarget = toObject(target);
+ var s, source, i, props, syms;
for (s = 1; s < arguments.length; ++s) {
- source = Object(arguments[s]);
+ source = toObject(arguments[s]);
props = keys(source);
if (hasSymbols && Object.getOwnPropertySymbols) {
- props.push.apply(props, Object.getOwnPropertySymbols(source).filter(isEnumerableOn(source)));
+ syms = Object.getOwnPropertySymbols(source);
+ for (i = 0; i < syms.length; ++i) {
+ if (propIsEnumerable.call(source, syms[i])) {
+ push.call(props, syms[i]);
+ }
+ }
}
for (i = 0; i < props.length; ++i) {
objTarget[props[i]] = source[props[i]];
@@ -1730,9 +1537,12 @@ var assignShim = function assign(target, source1) {
return objTarget;
};
-assignShim.shim = function shimObjectAssign() {
- if (Object.assign && Object.preventExtensions) {
- var assignHasPendingExceptions = (function () {
+defineProperties(assignShim, {
+ shim: function shimObjectAssign() {
+ var assignHasPendingExceptions = function () {
+ if (!Object.assign || !Object.preventExtensions) {
+ return false;
+ }
// Firefox 37 still has "pending exception" logic in its Object.assign implementation,
// which is 72% slower than our shim, and Firefox 40's native implementation.
var thrower = Object.preventExtensions({ 1: 2 });
@@ -1741,27 +1551,24 @@ assignShim.shim = function shimObjectAssign() {
} catch (e) {
return thrower[1] === 'y';
}
- }());
- if (assignHasPendingExceptions) {
- delete Object.assign;
- }
+ };
+ defineProperties(
+ Object,
+ { assign: assignShim },
+ { assign: assignHasPendingExceptions }
+ );
+ return Object.assign || assignShim;
}
- if (!Object.assign) {
- defineProperties(Object, {
- assign: assignShim
- });
- }
- return Object.assign || assignShim;
-};
+});
module.exports = assignShim;
-
-},{"define-properties":45,"object-keys":47}],45:[function(_dereq_,module,exports){
+},{"define-properties":41,"object-keys":43}],41:[function(_dereq_,module,exports){
'use strict';
var keys = _dereq_('object-keys');
var foreach = _dereq_('foreach');
+var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';
var toStr = Object.prototype.toString;
@@ -1772,7 +1579,10 @@ var isFunction = function (fn) {
var arePropertyDescriptorsSupported = function () {
var obj = {};
try {
- Object.defineProperty(obj, 'x', { value: obj });
+ Object.defineProperty(obj, 'x', { value: obj, enumerable: false });
+ /* eslint-disable no-unused-vars */
+ for (var _ in obj) { return false; }
+ /* eslint-enable no-unused-vars */
return obj.x === obj;
} catch (e) { /* this is IE 8. */
return false;
@@ -1798,7 +1608,11 @@ var defineProperty = function (object, name, value, predicate) {
var defineProperties = function (object, map) {
var predicates = arguments.length > 2 ? arguments[2] : {};
- foreach(keys(map), function (name) {
+ var props = keys(map);
+ if (hasSymbols) {
+ props = props.concat(Object.getOwnPropertySymbols(map));
+ }
+ foreach(props, function (name) {
defineProperty(object, name, map[name], predicates[name]);
});
};
@@ -1807,7 +1621,7 @@ defineProperties.supportsDescriptors = !!supportsDescriptors;
module.exports = defineProperties;
-},{"foreach":46,"object-keys":47}],46:[function(_dereq_,module,exports){
+},{"foreach":42,"object-keys":43}],42:[function(_dereq_,module,exports){
var hasOwn = Object.prototype.hasOwnProperty;
var toString = Object.prototype.toString;
@@ -1831,12 +1645,13 @@ module.exports = function forEach (obj, fn, ctx) {
};
-},{}],47:[function(_dereq_,module,exports){
+},{}],43:[function(_dereq_,module,exports){
'use strict';
// modified from https://github.com/es-shims/es5-shim
var has = Object.prototype.hasOwnProperty;
var toStr = Object.prototype.toString;
+var slice = Array.prototype.slice;
var isArgs = _dereq_('./isArguments');
var hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');
var hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');
@@ -1849,6 +1664,44 @@ var dontEnums = [
'propertyIsEnumerable',
'constructor'
];
+var equalsConstructorPrototype = function (o) {
+ var ctor = o.constructor;
+ return ctor && ctor.prototype === o;
+};
+var blacklistedKeys = {
+ $window: true,
+ $console: true,
+ $parent: true,
+ $self: true,
+ $frames: true,
+ $webkitIndexedDB: true,
+ $webkitStorageInfo: true
+};
+var hasAutomationEqualityBug = (function () {
+ /* global window */
+ if (typeof window === 'undefined') { return false; }
+ for (var k in window) {
+ if (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {
+ try {
+ equalsConstructorPrototype(window[k]);
+ } catch (e) {
+ return true;
+ }
+ }
+ }
+ return false;
+}());
+var equalsConstructorPrototypeIfNotBuggy = function (o) {
+ /* global window */
+ if (typeof window === 'undefined' && !hasAutomationEqualityBug) {
+ return equalsConstructorPrototype(o);
+ }
+ try {
+ return equalsConstructorPrototype(o);
+ } catch (e) {
+ return false;
+ }
+};
var keysShim = function keys(object) {
var isObject = object !== null && typeof object === 'object';
@@ -1881,8 +1734,7 @@ var keysShim = function keys(object) {
}
if (hasDontEnumBug) {
- var ctor = object.constructor;
- var skipConstructor = ctor && ctor.prototype === object;
+ var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
for (var k = 0; k < dontEnums.length; ++k) {
if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {
@@ -1896,13 +1748,28 @@ var keysShim = function keys(object) {
keysShim.shim = function shimObjectKeys() {
if (!Object.keys) {
Object.keys = keysShim;
+ } else {
+ var keysWorksWithArguments = (function () {
+ // Safari 5.0 bug
+ return (Object.keys(arguments) || '').length === 2;
+ }(1, 2));
+ if (!keysWorksWithArguments) {
+ var originalKeys = Object.keys;
+ Object.keys = function keys(object) {
+ if (isArgs(object)) {
+ return originalKeys(slice.call(object));
+ } else {
+ return originalKeys(object);
+ }
+ };
+ }
}
return Object.keys || keysShim;
};
module.exports = keysShim;
-},{"./isArguments":48}],48:[function(_dereq_,module,exports){
+},{"./isArguments":44}],44:[function(_dereq_,module,exports){
'use strict';
var toStr = Object.prototype.toString;
@@ -1911,17 +1778,17 @@ module.exports = function isArguments(value) {
var str = toStr.call(value);
var isArgs = str === '[object Arguments]';
if (!isArgs) {
- isArgs = str !== '[object Array]'
- && value !== null
- && typeof value === 'object'
- && typeof value.length === 'number'
- && value.length >= 0
- && toStr.call(value.callee) === '[object Function]';
+ isArgs = str !== '[object Array]' &&
+ value !== null &&
+ typeof value === 'object' &&
+ typeof value.length === 'number' &&
+ value.length >= 0 &&
+ toStr.call(value.callee) === '[object Function]';
}
return isArgs;
};
-},{}],49:[function(_dereq_,module,exports){
+},{}],45:[function(_dereq_,module,exports){
module.exports = SafeParseTuple
function SafeParseTuple(obj, reviver) {
@@ -1937,27 +1804,27 @@ function SafeParseTuple(obj, reviver) {
return [error, json]
}
-},{}],50:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{}],46:[function(_dereq_,module,exports){
/**
* @file big-play-button.js
*/
+'use strict';
-var _Button2 = _dereq_('./button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('./component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _buttonJs = _dereq_('./button.js');
+
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('./component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Initial play button. Shows before the video has played. The hiding of the
@@ -1970,14 +1837,14 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var BigPlayButton = (function (_Button) {
+ _inherits(BigPlayButton, _Button);
+
function BigPlayButton(player, options) {
_classCallCheck(this, BigPlayButton);
_Button.call(this, player, options);
}
- _inherits(BigPlayButton, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -2000,51 +1867,53 @@ var BigPlayButton = (function (_Button) {
};
return BigPlayButton;
-})(_Button3['default']);
+})(_buttonJs2['default']);
BigPlayButton.prototype.controlText_ = 'Play Video';
-_Component2['default'].registerComponent('BigPlayButton', BigPlayButton);
+_componentJs2['default'].registerComponent('BigPlayButton', BigPlayButton);
exports['default'] = BigPlayButton;
module.exports = exports['default'];
-},{"./button.js":51,"./component.js":52}],51:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./button.js":47,"./component.js":48}],47:[function(_dereq_,module,exports){
/**
* @file button.js
*/
+'use strict';
-var _Component2 = _dereq_('./component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('./utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import2 = _dereq_('./utils/events.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Events = _interopRequireWildcard(_import2);
+var _component = _dereq_('./component');
-var _import3 = _dereq_('./utils/fn.js');
+var _component2 = _interopRequireDefault(_component);
-var Fn = _interopRequireWildcard(_import3);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _document = _dereq_('global/document');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _document2 = _interopRequireWildcard(_document);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _assign = _dereq_('object.assign');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsFnJs = _dereq_('./utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/**
* Base class for all buttons
@@ -2056,6 +1925,8 @@ var _assign2 = _interopRequireWildcard(_assign);
*/
var Button = (function (_Component) {
+ _inherits(Button, _Component);
+
function Button(player, options) {
_classCallCheck(this, Button);
@@ -2069,8 +1940,6 @@ var Button = (function (_Component) {
this.on('blur', this.handleBlur);
}
- _inherits(Button, _Component);
-
/**
* Create the component's DOM element
*
@@ -2081,14 +1950,14 @@ var Button = (function (_Component) {
*/
Button.prototype.createEl = function createEl() {
- var tag = arguments[0] === undefined ? 'button' : arguments[0];
- var props = arguments[1] === undefined ? {} : arguments[1];
+ var tag = arguments.length <= 0 || arguments[0] === undefined ? 'button' : arguments[0];
+ var props = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
// Add standard Aria and Tabindex info
- props = _assign2['default']({
+ props = _objectAssign2['default']({
className: this.buildCSSClass(),
- role: 'button',
- type: 'button', // Necessary since the default button type is "submit"
+ 'role': 'button',
+ 'type': 'button', // Necessary since the default button type is "submit"
'aria-live': 'polite', // let the screen reader user know that the text of the button may change
tabIndex: 0
}, props);
@@ -2115,9 +1984,9 @@ var Button = (function (_Component) {
*/
Button.prototype.controlText = function controlText(text) {
- if (!text) {
- return this.controlText_ || 'Need Text';
- }this.controlText_ = text;
+ if (!text) return this.controlText_ || 'Need Text';
+
+ this.controlText_ = text;
this.controlTextEl_.innerHTML = this.localize(this.controlText_);
return this;
@@ -2149,7 +2018,7 @@ var Button = (function (_Component) {
*/
Button.prototype.handleFocus = function handleFocus() {
- Events.on(_document2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
+ Events.on(_globalDocument2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
};
/**
@@ -2173,65 +2042,68 @@ var Button = (function (_Component) {
*/
Button.prototype.handleBlur = function handleBlur() {
- Events.off(_document2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
+ Events.off(_globalDocument2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
};
return Button;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('Button', Button);
+_component2['default'].registerComponent('Button', Button);
exports['default'] = Button;
module.exports = exports['default'];
-},{"./component":52,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"global/document":1,"object.assign":44}],52:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-exports.__esModule = true;
+},{"./component":48,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"global/document":1,"object.assign":40}],48:[function(_dereq_,module,exports){
/**
* @file component.js
*
* Player Component - Base class for all UI objects
*/
-var _window = _dereq_('global/window');
+'use strict';
-var _window2 = _interopRequireWildcard(_window);
+exports.__esModule = true;
-var _import = _dereq_('./utils/dom.js');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var Dom = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _import2 = _dereq_('./utils/fn.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var Fn = _interopRequireWildcard(_import2);
+var _globalWindow = _dereq_('global/window');
-var _import3 = _dereq_('./utils/guid.js');
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
-var Guid = _interopRequireWildcard(_import3);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _import4 = _dereq_('./utils/events.js');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var Events = _interopRequireWildcard(_import4);
+var _utilsFnJs = _dereq_('./utils/fn.js');
-var _log = _dereq_('./utils/log.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _log2 = _interopRequireWildcard(_log);
+var _utilsGuidJs = _dereq_('./utils/guid.js');
-var _toTitleCase = _dereq_('./utils/to-title-case.js');
+var Guid = _interopRequireWildcard(_utilsGuidJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _assign = _dereq_('object.assign');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _mergeOptions = _dereq_('./utils/merge-options.js');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _utilsToTitleCaseJs = _dereq_('./utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
/**
* Base UI Component class
@@ -2270,14 +2142,14 @@ var Component = (function () {
if (!player && this.play) {
this.player_ = player = this; // eslint-disable-line
} else {
- this.player_ = player;
- }
+ this.player_ = player;
+ }
// Make a copy of prototype.options_ to protect against overriding defaults
- this.options_ = _mergeOptions2['default']({}, this.options_);
+ this.options_ = _utilsMergeOptionsJs2['default']({}, this.options_);
// Updated options with supplied options
- options = this.options_ = _mergeOptions2['default'](this.options_, options);
+ options = this.options_ = _utilsMergeOptionsJs2['default'](this.options_, options);
// Get ID from options or options element if one is supplied
this.id_ = options.id || options.el && options.el.id;
@@ -2287,7 +2159,7 @@ var Component = (function () {
// Don't require the player ID function in the case of mock players
var id = player && player.id && player.id() || 'no_player';
- this.id_ = '' + id + '_component_' + Guid.newGUID();
+ this.id_ = id + '_component_' + Guid.newGUID();
}
this.name_ = options.name || null;
@@ -2406,13 +2278,13 @@ var Component = (function () {
*/
Component.prototype.options = function options(obj) {
- _log2['default'].warn('this.options() has been deprecated and will be moved to the constructor in 6.0');
+ _utilsLogJs2['default'].warn('this.options() has been deprecated and will be moved to the constructor in 6.0');
if (!obj) {
return this.options_;
}
- this.options_ = _mergeOptions2['default'](this.options_, obj);
+ this.options_ = _utilsMergeOptionsJs2['default'](this.options_, obj);
return this.options_;
};
@@ -2574,7 +2446,7 @@ var Component = (function () {
*/
Component.prototype.addChild = function addChild(child) {
- var options = arguments[1] === undefined ? {} : arguments[1];
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var component = undefined;
var componentName = undefined;
@@ -2590,13 +2462,13 @@ var Component = (function () {
// Same as above, but true is deprecated so show a warning.
if (options === true) {
- _log2['default'].warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');
+ _utilsLogJs2['default'].warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');
options = {};
}
// If no componentClass in options, assume componentClass is the name lowercased
// (e.g. playButton)
- var componentClassName = options.componentClass || _toTitleCase2['default'](componentName);
+ var componentClassName = options.componentClass || _utilsToTitleCaseJs2['default'](componentName);
// Set name through options
options.name = componentName;
@@ -2609,8 +2481,8 @@ var Component = (function () {
// child is a component instance
} else {
- component = child;
- }
+ component = child;
+ }
this.children_.push(component);
@@ -2837,46 +2709,46 @@ var Component = (function () {
// Targeting another component or element
} else {
- (function () {
- var target = first;
- var type = second;
- var fn = Fn.bind(_this2, third);
+ (function () {
+ var target = first;
+ var type = second;
+ var fn = Fn.bind(_this2, third);
- // When this component is disposed, remove the listener from the other component
- var removeOnDispose = function removeOnDispose() {
- return _this2.off(target, type, fn);
- };
+ // When this component is disposed, remove the listener from the other component
+ var removeOnDispose = function removeOnDispose() {
+ return _this2.off(target, type, fn);
+ };
- // Use the same function ID so we can remove it later it using the ID
- // of the original listener
- removeOnDispose.guid = fn.guid;
- _this2.on('dispose', removeOnDispose);
+ // Use the same function ID so we can remove it later it using the ID
+ // of the original listener
+ removeOnDispose.guid = fn.guid;
+ _this2.on('dispose', removeOnDispose);
- // If the other component is disposed first we need to clean the reference
- // to the other component in this component's removeOnDispose listener
- // Otherwise we create a memory leak.
- var cleanRemover = function cleanRemover() {
- return _this2.off('dispose', removeOnDispose);
- };
+ // If the other component is disposed first we need to clean the reference
+ // to the other component in this component's removeOnDispose listener
+ // Otherwise we create a memory leak.
+ var cleanRemover = function cleanRemover() {
+ return _this2.off('dispose', removeOnDispose);
+ };
- // Add the same function ID so we can easily remove it later
- cleanRemover.guid = fn.guid;
+ // Add the same function ID so we can easily remove it later
+ cleanRemover.guid = fn.guid;
- // Check if this is a DOM node
- if (first.nodeName) {
- // Add the listener to the other element
- Events.on(target, type, fn);
- Events.on(target, 'dispose', cleanRemover);
+ // Check if this is a DOM node
+ if (first.nodeName) {
+ // Add the listener to the other element
+ Events.on(target, type, fn);
+ Events.on(target, 'dispose', cleanRemover);
- // Should be a component
- // Not using `instanceof Component` because it makes mock players difficult
- } else if (typeof first.on === 'function') {
- // Add the listener to the other component
- target.on(type, fn);
- target.on('dispose', cleanRemover);
- }
- })();
- }
+ // Should be a component
+ // Not using `instanceof Component` because it makes mock players difficult
+ } else if (typeof first.on === 'function') {
+ // Add the listener to the other component
+ target.on(type, fn);
+ target.on('dispose', cleanRemover);
+ }
+ })();
+ }
return this;
};
@@ -2950,9 +2822,8 @@ var Component = (function () {
*/
Component.prototype.one = function one(first, second, third) {
- var _this3 = this;
-
- var _arguments = arguments;
+ var _this3 = this,
+ _arguments = arguments;
if (typeof first === 'string' || Array.isArray(first)) {
Events.one(this.el_, first, Fn.bind(this, second));
@@ -2962,20 +2833,10 @@ var Component = (function () {
var type = second;
var fn = Fn.bind(_this3, third);
- var newFunc = (function (_newFunc) {
- function newFunc() {
- return _newFunc.apply(this, arguments);
- }
-
- newFunc.toString = function () {
- return _newFunc.toString();
- };
-
- return newFunc;
- })(function () {
+ var newFunc = function newFunc() {
_this3.off(target, type, newFunc);
fn.apply(null, _arguments);
- });
+ };
// Keep the same function ID so we can remove it later
newFunc.guid = fn.guid;
@@ -3019,7 +2880,7 @@ var Component = (function () {
*/
Component.prototype.ready = function ready(fn) {
- var sync = arguments[1] === undefined ? false : arguments[1];
+ var sync = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
if (fn) {
if (this.isReady_) {
@@ -3266,7 +3127,7 @@ var Component = (function () {
// No px so using % or no style was set, so falling back to offsetWidth/height
// If component has display:none, offset will return 0
// TODO: handle display:none and no dimension style using px
- return parseInt(this.el_['offset' + _toTitleCase2['default'](widthOrHeight)], 10);
+ return parseInt(this.el_['offset' + _utilsToTitleCaseJs2['default'](widthOrHeight)], 10);
};
/**
@@ -3298,7 +3159,7 @@ var Component = (function () {
// If more than one finger, don't consider treating this as a click
if (event.touches.length === 1) {
// Copy the touches object to prevent modifying the original
- firstTouch = _assign2['default']({}, event.touches[0]);
+ firstTouch = _objectAssign2['default']({}, event.touches[0]);
// Record start time so we can detect a tap vs. "touch and hold"
touchStart = new Date().getTime();
// Reset couldBeTap tracking
@@ -3420,7 +3281,7 @@ var Component = (function () {
fn = Fn.bind(this, fn);
// window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.
- var timeoutId = _window2['default'].setTimeout(fn, timeout);
+ var timeoutId = _globalWindow2['default'].setTimeout(fn, timeout);
var disposeFn = function disposeFn() {
this.clearTimeout(timeoutId);
@@ -3442,7 +3303,7 @@ var Component = (function () {
*/
Component.prototype.clearTimeout = function clearTimeout(timeoutId) {
- _window2['default'].clearTimeout(timeoutId);
+ _globalWindow2['default'].clearTimeout(timeoutId);
var disposeFn = function disposeFn() {};
@@ -3465,7 +3326,7 @@ var Component = (function () {
Component.prototype.setInterval = function setInterval(fn, interval) {
fn = Fn.bind(this, fn);
- var intervalId = _window2['default'].setInterval(fn, interval);
+ var intervalId = _globalWindow2['default'].setInterval(fn, interval);
var disposeFn = function disposeFn() {
this.clearInterval(intervalId);
@@ -3487,7 +3348,7 @@ var Component = (function () {
*/
Component.prototype.clearInterval = function clearInterval(intervalId) {
- _window2['default'].clearInterval(intervalId);
+ _globalWindow2['default'].clearInterval(intervalId);
var disposeFn = function disposeFn() {};
@@ -3530,9 +3391,9 @@ var Component = (function () {
return Component.components_[name];
}
- if (_window2['default'] && _window2['default'].videojs && _window2['default'].videojs[name]) {
- _log2['default'].warn('The ' + name + ' component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)');
- return _window2['default'].videojs[name];
+ if (_globalWindow2['default'] && _globalWindow2['default'].videojs && _globalWindow2['default'].videojs[name]) {
+ _utilsLogJs2['default'].warn('The ' + name + ' component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)');
+ return _globalWindow2['default'].videojs[name];
}
};
@@ -3549,7 +3410,7 @@ var Component = (function () {
Component.extend = function extend(props) {
props = props || {};
- _log2['default'].warn('Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead');
+ _utilsLogJs2['default'].warn('Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead');
// Set up the constructor using the supplied init method
// or using the init of the parent object
@@ -3594,89 +3455,89 @@ Component.registerComponent('Component', Component);
exports['default'] = Component;
module.exports = exports['default'];
-},{"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/guid.js":115,"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/to-title-case.js":120,"global/window":2,"object.assign":44}],53:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/guid.js":111,"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/to-title-case.js":116,"global/window":2,"object.assign":40}],49:[function(_dereq_,module,exports){
/**
* @file control-bar.js
*/
+'use strict';
-var _Component2 = _dereq_('../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
// Required children
-var _PlayToggle = _dereq_('./play-toggle.js');
+var _playToggleJs = _dereq_('./play-toggle.js');
-var _PlayToggle2 = _interopRequireWildcard(_PlayToggle);
+var _playToggleJs2 = _interopRequireDefault(_playToggleJs);
-var _CurrentTimeDisplay = _dereq_('./time-controls/current-time-display.js');
+var _timeControlsCurrentTimeDisplayJs = _dereq_('./time-controls/current-time-display.js');
-var _CurrentTimeDisplay2 = _interopRequireWildcard(_CurrentTimeDisplay);
+var _timeControlsCurrentTimeDisplayJs2 = _interopRequireDefault(_timeControlsCurrentTimeDisplayJs);
-var _DurationDisplay = _dereq_('./time-controls/duration-display.js');
+var _timeControlsDurationDisplayJs = _dereq_('./time-controls/duration-display.js');
-var _DurationDisplay2 = _interopRequireWildcard(_DurationDisplay);
+var _timeControlsDurationDisplayJs2 = _interopRequireDefault(_timeControlsDurationDisplayJs);
-var _TimeDivider = _dereq_('./time-controls/time-divider.js');
+var _timeControlsTimeDividerJs = _dereq_('./time-controls/time-divider.js');
-var _TimeDivider2 = _interopRequireWildcard(_TimeDivider);
+var _timeControlsTimeDividerJs2 = _interopRequireDefault(_timeControlsTimeDividerJs);
-var _RemainingTimeDisplay = _dereq_('./time-controls/remaining-time-display.js');
+var _timeControlsRemainingTimeDisplayJs = _dereq_('./time-controls/remaining-time-display.js');
-var _RemainingTimeDisplay2 = _interopRequireWildcard(_RemainingTimeDisplay);
+var _timeControlsRemainingTimeDisplayJs2 = _interopRequireDefault(_timeControlsRemainingTimeDisplayJs);
-var _LiveDisplay = _dereq_('./live-display.js');
+var _liveDisplayJs = _dereq_('./live-display.js');
-var _LiveDisplay2 = _interopRequireWildcard(_LiveDisplay);
+var _liveDisplayJs2 = _interopRequireDefault(_liveDisplayJs);
-var _ProgressControl = _dereq_('./progress-control/progress-control.js');
+var _progressControlProgressControlJs = _dereq_('./progress-control/progress-control.js');
-var _ProgressControl2 = _interopRequireWildcard(_ProgressControl);
+var _progressControlProgressControlJs2 = _interopRequireDefault(_progressControlProgressControlJs);
-var _FullscreenToggle = _dereq_('./fullscreen-toggle.js');
+var _fullscreenToggleJs = _dereq_('./fullscreen-toggle.js');
-var _FullscreenToggle2 = _interopRequireWildcard(_FullscreenToggle);
+var _fullscreenToggleJs2 = _interopRequireDefault(_fullscreenToggleJs);
-var _VolumeControl = _dereq_('./volume-control/volume-control.js');
+var _volumeControlVolumeControlJs = _dereq_('./volume-control/volume-control.js');
-var _VolumeControl2 = _interopRequireWildcard(_VolumeControl);
+var _volumeControlVolumeControlJs2 = _interopRequireDefault(_volumeControlVolumeControlJs);
-var _VolumeMenuButton = _dereq_('./volume-menu-button.js');
+var _volumeMenuButtonJs = _dereq_('./volume-menu-button.js');
-var _VolumeMenuButton2 = _interopRequireWildcard(_VolumeMenuButton);
+var _volumeMenuButtonJs2 = _interopRequireDefault(_volumeMenuButtonJs);
-var _MuteToggle = _dereq_('./mute-toggle.js');
+var _muteToggleJs = _dereq_('./mute-toggle.js');
-var _MuteToggle2 = _interopRequireWildcard(_MuteToggle);
+var _muteToggleJs2 = _interopRequireDefault(_muteToggleJs);
-var _ChaptersButton = _dereq_('./text-track-controls/chapters-button.js');
+var _textTrackControlsChaptersButtonJs = _dereq_('./text-track-controls/chapters-button.js');
-var _ChaptersButton2 = _interopRequireWildcard(_ChaptersButton);
+var _textTrackControlsChaptersButtonJs2 = _interopRequireDefault(_textTrackControlsChaptersButtonJs);
-var _SubtitlesButton = _dereq_('./text-track-controls/subtitles-button.js');
+var _textTrackControlsSubtitlesButtonJs = _dereq_('./text-track-controls/subtitles-button.js');
-var _SubtitlesButton2 = _interopRequireWildcard(_SubtitlesButton);
+var _textTrackControlsSubtitlesButtonJs2 = _interopRequireDefault(_textTrackControlsSubtitlesButtonJs);
-var _CaptionsButton = _dereq_('./text-track-controls/captions-button.js');
+var _textTrackControlsCaptionsButtonJs = _dereq_('./text-track-controls/captions-button.js');
-var _CaptionsButton2 = _interopRequireWildcard(_CaptionsButton);
+var _textTrackControlsCaptionsButtonJs2 = _interopRequireDefault(_textTrackControlsCaptionsButtonJs);
-var _PlaybackRateMenuButton = _dereq_('./playback-rate-menu/playback-rate-menu-button.js');
+var _playbackRateMenuPlaybackRateMenuButtonJs = _dereq_('./playback-rate-menu/playback-rate-menu-button.js');
-var _PlaybackRateMenuButton2 = _interopRequireWildcard(_PlaybackRateMenuButton);
+var _playbackRateMenuPlaybackRateMenuButtonJs2 = _interopRequireDefault(_playbackRateMenuPlaybackRateMenuButtonJs);
-var _CustomControlSpacer = _dereq_('./spacer-controls/custom-control-spacer.js');
+var _spacerControlsCustomControlSpacerJs = _dereq_('./spacer-controls/custom-control-spacer.js');
-var _CustomControlSpacer2 = _interopRequireWildcard(_CustomControlSpacer);
+var _spacerControlsCustomControlSpacerJs2 = _interopRequireDefault(_spacerControlsCustomControlSpacerJs);
/**
* Container of main controls
@@ -3686,16 +3547,14 @@ var _CustomControlSpacer2 = _interopRequireWildcard(_CustomControlSpacer);
*/
var ControlBar = (function (_Component) {
+ _inherits(ControlBar, _Component);
+
function ControlBar() {
_classCallCheck(this, ControlBar);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(ControlBar, _Component);
-
/**
* Create the component's DOM element
*
@@ -3710,38 +3569,38 @@ var ControlBar = (function (_Component) {
};
return ControlBar;
-})(_Component3['default']);
+})(_componentJs2['default']);
ControlBar.prototype.options_ = {
loadEvent: 'play',
children: ['playToggle', 'volumeMenuButton', 'currentTimeDisplay', 'timeDivider', 'durationDisplay', 'progressControl', 'liveDisplay', 'remainingTimeDisplay', 'customControlSpacer', 'playbackRateMenuButton', 'muteToggle', 'volumeControl', 'chaptersButton', 'subtitlesButton', 'captionsButton', 'fullscreenToggle']
};
-_Component3['default'].registerComponent('ControlBar', ControlBar);
+_componentJs2['default'].registerComponent('ControlBar', ControlBar);
exports['default'] = ControlBar;
module.exports = exports['default'];
-},{"../component.js":52,"./fullscreen-toggle.js":54,"./live-display.js":55,"./mute-toggle.js":56,"./play-toggle.js":57,"./playback-rate-menu/playback-rate-menu-button.js":58,"./progress-control/progress-control.js":62,"./spacer-controls/custom-control-spacer.js":64,"./text-track-controls/captions-button.js":67,"./text-track-controls/chapters-button.js":68,"./text-track-controls/subtitles-button.js":71,"./time-controls/current-time-display.js":74,"./time-controls/duration-display.js":75,"./time-controls/remaining-time-display.js":76,"./time-controls/time-divider.js":77,"./volume-control/volume-control.js":79,"./volume-menu-button.js":81}],54:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component.js":48,"./fullscreen-toggle.js":50,"./live-display.js":51,"./mute-toggle.js":52,"./play-toggle.js":53,"./playback-rate-menu/playback-rate-menu-button.js":54,"./progress-control/progress-control.js":58,"./spacer-controls/custom-control-spacer.js":60,"./text-track-controls/captions-button.js":63,"./text-track-controls/chapters-button.js":64,"./text-track-controls/subtitles-button.js":67,"./time-controls/current-time-display.js":70,"./time-controls/duration-display.js":71,"./time-controls/remaining-time-display.js":72,"./time-controls/time-divider.js":73,"./volume-control/volume-control.js":75,"./volume-menu-button.js":77}],50:[function(_dereq_,module,exports){
/**
* @file fullscreen-toggle.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _buttonJs = _dereq_('../button.js');
+
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Toggle fullscreen video
@@ -3751,16 +3610,14 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var FullscreenToggle = (function (_Button) {
+ _inherits(FullscreenToggle, _Button);
+
function FullscreenToggle() {
_classCallCheck(this, FullscreenToggle);
- if (_Button != null) {
- _Button.apply(this, arguments);
- }
+ _Button.apply(this, arguments);
}
- _inherits(FullscreenToggle, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -3789,35 +3646,37 @@ var FullscreenToggle = (function (_Button) {
};
return FullscreenToggle;
-})(_Button3['default']);
+})(_buttonJs2['default']);
FullscreenToggle.prototype.controlText_ = 'Fullscreen';
-_Component2['default'].registerComponent('FullscreenToggle', FullscreenToggle);
+_componentJs2['default'].registerComponent('FullscreenToggle', FullscreenToggle);
exports['default'] = FullscreenToggle;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52}],55:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48}],51:[function(_dereq_,module,exports){
/**
* @file live-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _component = _dereq_('../component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* Displays the live indicator
@@ -3828,16 +3687,14 @@ var Dom = _interopRequireWildcard(_import);
*/
var LiveDisplay = (function (_Component) {
+ _inherits(LiveDisplay, _Component);
+
function LiveDisplay() {
_classCallCheck(this, LiveDisplay);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(LiveDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -3862,37 +3719,39 @@ var LiveDisplay = (function (_Component) {
};
return LiveDisplay;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('LiveDisplay', LiveDisplay);
+_component2['default'].registerComponent('LiveDisplay', LiveDisplay);
exports['default'] = LiveDisplay;
module.exports = exports['default'];
-},{"../component":52,"../utils/dom.js":111}],56:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/dom.js":107}],52:[function(_dereq_,module,exports){
/**
* @file mute-toggle.js
*/
+'use strict';
-var _Button2 = _dereq_('../button');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../component');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../utils/dom.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Dom = _interopRequireWildcard(_import);
+var _button = _dereq_('../button');
+
+var _button2 = _interopRequireDefault(_button);
+
+var _component = _dereq_('../component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* A button component for muting the audio
@@ -3904,6 +3763,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var MuteToggle = (function (_Button) {
+ _inherits(MuteToggle, _Button);
+
function MuteToggle(player, options) {
_classCallCheck(this, MuteToggle);
@@ -3912,14 +3773,14 @@ var MuteToggle = (function (_Button) {
this.on(player, 'volumechange', this.update);
// hide mute toggle if the current tech doesn't support volume control
- if (player.tech && player.tech.featuresVolumeControl === false) {
+ if (player.tech && player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
}
this.on(player, 'loadstart', function () {
this.update(); // We need to update the button to account for a default muted state.
- if (player.tech.featuresVolumeControl === false) {
+ if (player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
} else {
this.removeClass('vjs-hidden');
@@ -3927,8 +3788,6 @@ var MuteToggle = (function (_Button) {
});
}
- _inherits(MuteToggle, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -3985,35 +3844,35 @@ var MuteToggle = (function (_Button) {
};
return MuteToggle;
-})(_Button3['default']);
+})(_button2['default']);
MuteToggle.prototype.controlText_ = 'Mute';
-_Component2['default'].registerComponent('MuteToggle', MuteToggle);
+_component2['default'].registerComponent('MuteToggle', MuteToggle);
exports['default'] = MuteToggle;
module.exports = exports['default'];
-},{"../button":51,"../component":52,"../utils/dom.js":111}],57:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button":47,"../component":48,"../utils/dom.js":107}],53:[function(_dereq_,module,exports){
/**
* @file play-toggle.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _buttonJs = _dereq_('../button.js');
+
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Button to toggle between play and pause
@@ -4025,6 +3884,8 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var PlayToggle = (function (_Button) {
+ _inherits(PlayToggle, _Button);
+
function PlayToggle(player, options) {
_classCallCheck(this, PlayToggle);
@@ -4034,8 +3895,6 @@ var PlayToggle = (function (_Button) {
this.on(player, 'pause', this.handlePause);
}
- _inherits(PlayToggle, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -4086,47 +3945,49 @@ var PlayToggle = (function (_Button) {
};
return PlayToggle;
-})(_Button3['default']);
+})(_buttonJs2['default']);
PlayToggle.prototype.controlText_ = 'Play';
-_Component2['default'].registerComponent('PlayToggle', PlayToggle);
+_componentJs2['default'].registerComponent('PlayToggle', PlayToggle);
exports['default'] = PlayToggle;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52}],58:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48}],54:[function(_dereq_,module,exports){
/**
* @file playback-rate-menu-button.js
*/
+'use strict';
-var _MenuButton2 = _dereq_('../../menu/menu-button.js');
+exports.__esModule = true;
-var _MenuButton3 = _interopRequireWildcard(_MenuButton2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Menu = _dereq_('../../menu/menu.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Menu2 = _interopRequireWildcard(_Menu);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _PlaybackRateMenuItem = _dereq_('./playback-rate-menu-item.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _PlaybackRateMenuItem2 = _interopRequireWildcard(_PlaybackRateMenuItem);
+var _menuMenuButtonJs = _dereq_('../../menu/menu-button.js');
-var _Component = _dereq_('../../component.js');
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
-var _Component2 = _interopRequireWildcard(_Component);
+var _menuMenuJs = _dereq_('../../menu/menu.js');
-var _import = _dereq_('../../utils/dom.js');
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var Dom = _interopRequireWildcard(_import);
+var _playbackRateMenuItemJs = _dereq_('./playback-rate-menu-item.js');
+
+var _playbackRateMenuItemJs2 = _interopRequireDefault(_playbackRateMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* The component for controlling the playback rate
@@ -4138,6 +3999,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var PlaybackRateMenuButton = (function (_MenuButton) {
+ _inherits(PlaybackRateMenuButton, _MenuButton);
+
function PlaybackRateMenuButton(player, options) {
_classCallCheck(this, PlaybackRateMenuButton);
@@ -4150,8 +4013,6 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
this.on(player, 'ratechange', this.updateLabel);
}
- _inherits(PlaybackRateMenuButton, _MenuButton);
-
/**
* Create the component's DOM element
*
@@ -4164,7 +4025,7 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
this.labelEl_ = Dom.createEl('div', {
className: 'vjs-playback-rate-value',
- innerHTML: 1
+ innerHTML: 1.0
});
el.appendChild(this.labelEl_);
@@ -4191,12 +4052,12 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
*/
PlaybackRateMenuButton.prototype.createMenu = function createMenu() {
- var menu = new _Menu2['default'](this.player());
+ var menu = new _menuMenuJs2['default'](this.player());
var rates = this.playbackRates();
if (rates) {
for (var i = rates.length - 1; i >= 0; i--) {
- menu.addChild(new _PlaybackRateMenuItem2['default'](this.player(), { rate: rates[i] + 'x' }));
+ menu.addChild(new _playbackRateMenuItemJs2['default'](this.player(), { 'rate': rates[i] + 'x' }));
}
}
@@ -4244,7 +4105,7 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
*/
PlaybackRateMenuButton.prototype.playbackRates = function playbackRates() {
- return this.options_.playbackRates || this.options_.playerOptions && this.options_.playerOptions.playbackRates;
+ return this.options_['playbackRates'] || this.options_.playerOptions && this.options_.playerOptions['playbackRates'];
};
/**
@@ -4255,7 +4116,7 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
*/
PlaybackRateMenuButton.prototype.playbackRateSupported = function playbackRateSupported() {
- return this.player().tech && this.player().tech.featuresPlaybackRate && this.playbackRates() && this.playbackRates().length > 0;
+ return this.player().tech && this.player().tech['featuresPlaybackRate'] && this.playbackRates() && this.playbackRates().length > 0;
};
/**
@@ -4285,35 +4146,35 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
};
return PlaybackRateMenuButton;
-})(_MenuButton3['default']);
+})(_menuMenuButtonJs2['default']);
PlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';
-_Component2['default'].registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);
+_componentJs2['default'].registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);
exports['default'] = PlaybackRateMenuButton;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-button.js":88,"../../menu/menu.js":90,"../../utils/dom.js":111,"./playback-rate-menu-item.js":59}],59:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-button.js":84,"../../menu/menu.js":86,"../../utils/dom.js":107,"./playback-rate-menu-item.js":55}],55:[function(_dereq_,module,exports){
/**
* @file playback-rate-menu-item.js
*/
+'use strict';
-var _MenuItem2 = _dereq_('../../menu/menu-item.js');
+exports.__esModule = true;
-var _MenuItem3 = _interopRequireWildcard(_MenuItem2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _menuMenuItemJs = _dereq_('../../menu/menu-item.js');
+
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The specific menu item type for selecting a playback rate
@@ -4325,15 +4186,17 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var PlaybackRateMenuItem = (function (_MenuItem) {
+ _inherits(PlaybackRateMenuItem, _MenuItem);
+
function PlaybackRateMenuItem(player, options) {
_classCallCheck(this, PlaybackRateMenuItem);
- var label = options.rate;
+ var label = options['rate'];
var rate = parseFloat(label, 10);
// Modify options for parent MenuItem class's init.
- options.label = label;
- options.selected = rate === 1;
+ options['label'] = label;
+ options['selected'] = rate === 1;
_MenuItem.call(this, player, options);
this.label = label;
@@ -4342,8 +4205,6 @@ var PlaybackRateMenuItem = (function (_MenuItem) {
this.on(player, 'ratechange', this.update);
}
- _inherits(PlaybackRateMenuItem, _MenuItem);
-
/**
* Handle click on menu item
*
@@ -4366,35 +4227,37 @@ var PlaybackRateMenuItem = (function (_MenuItem) {
};
return PlaybackRateMenuItem;
-})(_MenuItem3['default']);
+})(_menuMenuItemJs2['default']);
PlaybackRateMenuItem.prototype.contentElType = 'button';
-_Component2['default'].registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);
+_componentJs2['default'].registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);
exports['default'] = PlaybackRateMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-item.js":89}],60:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-item.js":85}],56:[function(_dereq_,module,exports){
/**
* @file load-progress-bar.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* Shows load progress
@@ -4406,6 +4269,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var LoadProgressBar = (function (_Component) {
+ _inherits(LoadProgressBar, _Component);
+
function LoadProgressBar(player, options) {
_classCallCheck(this, LoadProgressBar);
@@ -4413,8 +4278,6 @@ var LoadProgressBar = (function (_Component) {
this.on(player, 'progress', this.update);
}
- _inherits(LoadProgressBar, _Component);
-
/**
* Create the component's DOM element
*
@@ -4472,37 +4335,39 @@ var LoadProgressBar = (function (_Component) {
};
return LoadProgressBar;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('LoadProgressBar', LoadProgressBar);
+_componentJs2['default'].registerComponent('LoadProgressBar', LoadProgressBar);
exports['default'] = LoadProgressBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111}],61:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107}],57:[function(_dereq_,module,exports){
/**
* @file play-progress-bar.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/fn.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Fn = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Shows play progress
@@ -4514,6 +4379,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var PlayProgressBar = (function (_Component) {
+ _inherits(PlayProgressBar, _Component);
+
function PlayProgressBar(player, options) {
_classCallCheck(this, PlayProgressBar);
@@ -4522,8 +4389,6 @@ var PlayProgressBar = (function (_Component) {
player.ready(Fn.bind(this, this.updateDataAttr));
}
- _inherits(PlayProgressBar, _Component);
-
/**
* Create the component's DOM element
*
@@ -4540,37 +4405,37 @@ var PlayProgressBar = (function (_Component) {
PlayProgressBar.prototype.updateDataAttr = function updateDataAttr() {
var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
- this.el_.setAttribute('data-current-time', _formatTime2['default'](time, this.player_.duration()));
+ this.el_.setAttribute('data-current-time', _utilsFormatTimeJs2['default'](time, this.player_.duration()));
};
return PlayProgressBar;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('PlayProgressBar', PlayProgressBar);
+_componentJs2['default'].registerComponent('PlayProgressBar', PlayProgressBar);
exports['default'] = PlayProgressBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/fn.js":113,"../../utils/format-time.js":114}],62:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/fn.js":109,"../../utils/format-time.js":110}],58:[function(_dereq_,module,exports){
/**
* @file progress-control.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _SeekBar = _dereq_('./seek-bar.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _SeekBar2 = _interopRequireWildcard(_SeekBar);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _seekBarJs = _dereq_('./seek-bar.js');
+
+var _seekBarJs2 = _interopRequireDefault(_seekBarJs);
/**
* The Progress Control component contains the seek bar, load progress,
@@ -4583,16 +4448,14 @@ var _SeekBar2 = _interopRequireWildcard(_SeekBar);
*/
var ProgressControl = (function (_Component) {
+ _inherits(ProgressControl, _Component);
+
function ProgressControl() {
_classCallCheck(this, ProgressControl);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(ProgressControl, _Component);
-
/**
* Create the component's DOM element
*
@@ -4607,55 +4470,57 @@ var ProgressControl = (function (_Component) {
};
return ProgressControl;
-})(_Component3['default']);
+})(_componentJs2['default']);
ProgressControl.prototype.options_ = {
children: {
- seekBar: {}
+ 'seekBar': {}
}
};
-_Component3['default'].registerComponent('ProgressControl', ProgressControl);
+_componentJs2['default'].registerComponent('ProgressControl', ProgressControl);
exports['default'] = ProgressControl;
module.exports = exports['default'];
-},{"../../component.js":52,"./seek-bar.js":63}],63:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./seek-bar.js":59}],59:[function(_dereq_,module,exports){
/**
* @file seek-bar.js
*/
+'use strict';
-var _Slider2 = _dereq_('../../slider/slider.js');
+exports.__esModule = true;
-var _Slider3 = _interopRequireWildcard(_Slider2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _LoadProgressBar = _dereq_('./load-progress-bar.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _LoadProgressBar2 = _interopRequireWildcard(_LoadProgressBar);
+var _sliderSliderJs = _dereq_('../../slider/slider.js');
-var _PlayProgressBar = _dereq_('./play-progress-bar.js');
+var _sliderSliderJs2 = _interopRequireDefault(_sliderSliderJs);
-var _PlayProgressBar2 = _interopRequireWildcard(_PlayProgressBar);
+var _componentJs = _dereq_('../../component.js');
-var _import = _dereq_('../../utils/fn.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Fn = _interopRequireWildcard(_import);
+var _loadProgressBarJs = _dereq_('./load-progress-bar.js');
-var _formatTime = _dereq_('../../utils/format-time.js');
+var _loadProgressBarJs2 = _interopRequireDefault(_loadProgressBarJs);
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _playProgressBarJs = _dereq_('./play-progress-bar.js');
+
+var _playProgressBarJs2 = _interopRequireDefault(_playProgressBarJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Seek Bar and holder for the progress bars
@@ -4667,6 +4532,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var SeekBar = (function (_Slider) {
+ _inherits(SeekBar, _Slider);
+
function SeekBar(player, options) {
_classCallCheck(this, SeekBar);
@@ -4675,8 +4542,6 @@ var SeekBar = (function (_Slider) {
player.ready(Fn.bind(this, this.updateARIAAttributes));
}
- _inherits(SeekBar, _Slider);
-
/**
* Create the component's DOM element
*
@@ -4701,7 +4566,7 @@ var SeekBar = (function (_Slider) {
// Allows for smooth scrubbing, when player can't keep up.
var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)
- this.el_.setAttribute('aria-valuetext', _formatTime2['default'](time, this.player_.duration())); // human readable value of progress bar (time complete)
+ this.el_.setAttribute('aria-valuetext', _utilsFormatTimeJs2['default'](time, this.player_.duration())); // human readable value of progress bar (time complete)
};
/**
@@ -4785,43 +4650,43 @@ var SeekBar = (function (_Slider) {
};
return SeekBar;
-})(_Slider3['default']);
+})(_sliderSliderJs2['default']);
SeekBar.prototype.options_ = {
children: {
- loadProgressBar: {},
- playProgressBar: {}
+ 'loadProgressBar': {},
+ 'playProgressBar': {}
},
- barName: 'playProgressBar'
+ 'barName': 'playProgressBar'
};
SeekBar.prototype.playerEvent = 'timeupdate';
-_Component2['default'].registerComponent('SeekBar', SeekBar);
+_componentJs2['default'].registerComponent('SeekBar', SeekBar);
exports['default'] = SeekBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../slider/slider.js":95,"../../utils/fn.js":113,"../../utils/format-time.js":114,"./load-progress-bar.js":60,"./play-progress-bar.js":61}],64:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../slider/slider.js":91,"../../utils/fn.js":109,"../../utils/format-time.js":110,"./load-progress-bar.js":56,"./play-progress-bar.js":57}],60:[function(_dereq_,module,exports){
/**
* @file custom-control-spacer.js
*/
+'use strict';
-var _Spacer2 = _dereq_('./spacer.js');
+exports.__esModule = true;
-var _Spacer3 = _interopRequireWildcard(_Spacer2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _spacerJs = _dereq_('./spacer.js');
+
+var _spacerJs2 = _interopRequireDefault(_spacerJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Spacer specifically meant to be used as an insertion point for new plugins, etc.
@@ -4831,16 +4696,14 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var CustomControlSpacer = (function (_Spacer) {
+ _inherits(CustomControlSpacer, _Spacer);
+
function CustomControlSpacer() {
_classCallCheck(this, CustomControlSpacer);
- if (_Spacer != null) {
- _Spacer.apply(this, arguments);
- }
+ _Spacer.apply(this, arguments);
}
- _inherits(CustomControlSpacer, _Spacer);
-
/**
* Allow sub components to stack CSS class names
*
@@ -4866,29 +4729,29 @@ var CustomControlSpacer = (function (_Spacer) {
};
return CustomControlSpacer;
-})(_Spacer3['default']);
+})(_spacerJs2['default']);
-_Component2['default'].registerComponent('CustomControlSpacer', CustomControlSpacer);
+_componentJs2['default'].registerComponent('CustomControlSpacer', CustomControlSpacer);
exports['default'] = CustomControlSpacer;
module.exports = exports['default'];
-},{"../../component.js":52,"./spacer.js":65}],65:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./spacer.js":61}],61:[function(_dereq_,module,exports){
/**
* @file spacer.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Just an empty spacer element that can be used as an append point for plugins, etc.
@@ -4899,16 +4762,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var Spacer = (function (_Component) {
+ _inherits(Spacer, _Component);
+
function Spacer() {
_classCallCheck(this, Spacer);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(Spacer, _Component);
-
/**
* Allow sub components to stack CSS class names
*
@@ -4935,34 +4796,34 @@ var Spacer = (function (_Component) {
};
return Spacer;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('Spacer', Spacer);
+_componentJs2['default'].registerComponent('Spacer', Spacer);
exports['default'] = Spacer;
module.exports = exports['default'];
-},{"../../component.js":52}],66:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48}],62:[function(_dereq_,module,exports){
/**
* @file caption-settings-menu-item.js
*/
+'use strict';
-var _TextTrackMenuItem2 = _dereq_('./text-track-menu-item.js');
+exports.__esModule = true;
-var _TextTrackMenuItem3 = _interopRequireWildcard(_TextTrackMenuItem2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
+
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The menu item for caption track settings menu
@@ -4974,13 +4835,15 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var CaptionSettingsMenuItem = (function (_TextTrackMenuItem) {
+ _inherits(CaptionSettingsMenuItem, _TextTrackMenuItem);
+
function CaptionSettingsMenuItem(player, options) {
_classCallCheck(this, CaptionSettingsMenuItem);
- options.track = {
- kind: options.kind,
- player: player,
- label: options.kind + ' settings',
+ options['track'] = {
+ 'kind': options['kind'],
+ 'player': player,
+ 'label': options['kind'] + ' settings',
'default': false,
mode: 'disabled'
};
@@ -4989,8 +4852,6 @@ var CaptionSettingsMenuItem = (function (_TextTrackMenuItem) {
this.addClass('vjs-texttrack-settings');
}
- _inherits(CaptionSettingsMenuItem, _TextTrackMenuItem);
-
/**
* Handle click on menu item
*
@@ -5002,37 +4863,37 @@ var CaptionSettingsMenuItem = (function (_TextTrackMenuItem) {
};
return CaptionSettingsMenuItem;
-})(_TextTrackMenuItem3['default']);
+})(_textTrackMenuItemJs2['default']);
-_Component2['default'].registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);
+_componentJs2['default'].registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);
exports['default'] = CaptionSettingsMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"./text-track-menu-item.js":73}],67:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./text-track-menu-item.js":69}],63:[function(_dereq_,module,exports){
/**
* @file captions-button.js
*/
+'use strict';
-var _TextTrackButton2 = _dereq_('./text-track-button.js');
+exports.__esModule = true;
-var _TextTrackButton3 = _interopRequireWildcard(_TextTrackButton2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _CaptionSettingsMenuItem = _dereq_('./caption-settings-menu-item.js');
+var _textTrackButtonJs = _dereq_('./text-track-button.js');
-var _CaptionSettingsMenuItem2 = _interopRequireWildcard(_CaptionSettingsMenuItem);
+var _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _captionSettingsMenuItemJs = _dereq_('./caption-settings-menu-item.js');
+
+var _captionSettingsMenuItemJs2 = _interopRequireDefault(_captionSettingsMenuItemJs);
/**
* The button component for toggling and selecting captions
@@ -5045,6 +4906,8 @@ var _CaptionSettingsMenuItem2 = _interopRequireWildcard(_CaptionSettingsMenuItem
*/
var CaptionsButton = (function (_TextTrackButton) {
+ _inherits(CaptionsButton, _TextTrackButton);
+
function CaptionsButton(player, options, ready) {
_classCallCheck(this, CaptionsButton);
@@ -5052,8 +4915,6 @@ var CaptionsButton = (function (_TextTrackButton) {
this.el_.setAttribute('aria-label', 'Captions Menu');
}
- _inherits(CaptionsButton, _TextTrackButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -5076,7 +4937,7 @@ var CaptionsButton = (function (_TextTrackButton) {
_TextTrackButton.prototype.update.call(this);
// if native, then threshold is 1 because no settings button
- if (this.player().tech && this.player().tech.featuresNativeTextTracks) {
+ if (this.player().tech && this.player().tech['featuresNativeTextTracks']) {
threshold = 1;
}
@@ -5097,72 +4958,74 @@ var CaptionsButton = (function (_TextTrackButton) {
CaptionsButton.prototype.createItems = function createItems() {
var items = [];
- if (!(this.player().tech && this.player().tech.featuresNativeTextTracks)) {
- items.push(new _CaptionSettingsMenuItem2['default'](this.player_, { kind: this.kind_ }));
+ if (!(this.player().tech && this.player().tech['featuresNativeTextTracks'])) {
+ items.push(new _captionSettingsMenuItemJs2['default'](this.player_, { 'kind': this.kind_ }));
}
return _TextTrackButton.prototype.createItems.call(this, items);
};
return CaptionsButton;
-})(_TextTrackButton3['default']);
+})(_textTrackButtonJs2['default']);
CaptionsButton.prototype.kind_ = 'captions';
CaptionsButton.prototype.controlText_ = 'Captions';
-_Component2['default'].registerComponent('CaptionsButton', CaptionsButton);
+_componentJs2['default'].registerComponent('CaptionsButton', CaptionsButton);
exports['default'] = CaptionsButton;
module.exports = exports['default'];
-},{"../../component.js":52,"./caption-settings-menu-item.js":66,"./text-track-button.js":72}],68:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./caption-settings-menu-item.js":62,"./text-track-button.js":68}],64:[function(_dereq_,module,exports){
/**
* @file chapters-button.js
*/
+'use strict';
-var _TextTrackButton2 = _dereq_('./text-track-button.js');
+exports.__esModule = true;
-var _TextTrackButton3 = _interopRequireWildcard(_TextTrackButton2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _TextTrackMenuItem = _dereq_('./text-track-menu-item.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _TextTrackMenuItem2 = _interopRequireWildcard(_TextTrackMenuItem);
+var _textTrackButtonJs = _dereq_('./text-track-button.js');
-var _ChaptersTrackMenuItem = _dereq_('./chapters-track-menu-item.js');
+var _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);
-var _ChaptersTrackMenuItem2 = _interopRequireWildcard(_ChaptersTrackMenuItem);
+var _componentJs = _dereq_('../../component.js');
-var _Menu = _dereq_('../../menu/menu.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _Menu2 = _interopRequireWildcard(_Menu);
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
-var _import = _dereq_('../../utils/dom.js');
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
-var Dom = _interopRequireWildcard(_import);
+var _chaptersTrackMenuItemJs = _dereq_('./chapters-track-menu-item.js');
-var _import2 = _dereq_('../../utils/fn.js');
+var _chaptersTrackMenuItemJs2 = _interopRequireDefault(_chaptersTrackMenuItemJs);
-var Fn = _interopRequireWildcard(_import2);
+var _menuMenuJs = _dereq_('../../menu/menu.js');
-var _toTitleCase = _dereq_('../../utils/to-title-case.js');
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsDomJs = _dereq_('../../utils/dom.js');
-var _window = _dereq_('global/window');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsToTitleCaseJs = _dereq_('../../utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/**
* The button component for toggling and selecting chapters
@@ -5177,6 +5040,8 @@ var _window2 = _interopRequireWildcard(_window);
*/
var ChaptersButton = (function (_TextTrackButton) {
+ _inherits(ChaptersButton, _TextTrackButton);
+
function ChaptersButton(player, options, ready) {
_classCallCheck(this, ChaptersButton);
@@ -5184,8 +5049,6 @@ var ChaptersButton = (function (_TextTrackButton) {
this.el_.setAttribute('aria-label', 'Chapters Menu');
}
- _inherits(ChaptersButton, _TextTrackButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -5215,9 +5078,9 @@ var ChaptersButton = (function (_TextTrackButton) {
for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
- if (track.kind === this.kind_) {
- items.push(new _TextTrackMenuItem2['default'](this.player_, {
- track: track
+ if (track['kind'] === this.kind_) {
+ items.push(new _textTrackMenuItemJs2['default'](this.player_, {
+ 'track': track
}));
}
}
@@ -5239,42 +5102,42 @@ var ChaptersButton = (function (_TextTrackButton) {
for (var i = 0, l = tracks.length; i < l; i++) {
var track = tracks[i];
- if (track.kind === this.kind_) {
+ if (track['kind'] === this.kind_) {
if (!track.cues) {
- track.mode = 'hidden';
+ track['mode'] = 'hidden';
/* jshint loopfunc:true */
// TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864
- _window2['default'].setTimeout(Fn.bind(this, function () {
+ _globalWindow2['default'].setTimeout(Fn.bind(this, function () {
this.createMenu();
}), 100);
/* jshint loopfunc:false */
} else {
- chaptersTrack = track;
- break;
- }
+ chaptersTrack = track;
+ break;
+ }
}
}
var menu = this.menu;
if (menu === undefined) {
- menu = new _Menu2['default'](this.player_);
+ menu = new _menuMenuJs2['default'](this.player_);
menu.contentEl().appendChild(Dom.createEl('li', {
className: 'vjs-menu-title',
- innerHTML: _toTitleCase2['default'](this.kind_),
+ innerHTML: _utilsToTitleCaseJs2['default'](this.kind_),
tabIndex: -1
}));
}
if (chaptersTrack) {
- var cues = chaptersTrack.cues,
+ var cues = chaptersTrack['cues'],
cue = undefined;
for (var i = 0, l = cues.length; i < l; i++) {
cue = cues[i];
- var mi = new _ChaptersTrackMenuItem2['default'](this.player_, {
- track: chaptersTrack,
- cue: cue
+ var mi = new _chaptersTrackMenuItemJs2['default'](this.player_, {
+ 'track': chaptersTrack,
+ 'cue': cue
});
items.push(mi);
@@ -5292,40 +5155,42 @@ var ChaptersButton = (function (_TextTrackButton) {
};
return ChaptersButton;
-})(_TextTrackButton3['default']);
+})(_textTrackButtonJs2['default']);
ChaptersButton.prototype.kind_ = 'chapters';
ChaptersButton.prototype.controlText_ = 'Chapters';
-_Component2['default'].registerComponent('ChaptersButton', ChaptersButton);
+_componentJs2['default'].registerComponent('ChaptersButton', ChaptersButton);
exports['default'] = ChaptersButton;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu.js":90,"../../utils/dom.js":111,"../../utils/fn.js":113,"../../utils/to-title-case.js":120,"./chapters-track-menu-item.js":69,"./text-track-button.js":72,"./text-track-menu-item.js":73,"global/window":2}],69:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu.js":86,"../../utils/dom.js":107,"../../utils/fn.js":109,"../../utils/to-title-case.js":116,"./chapters-track-menu-item.js":65,"./text-track-button.js":68,"./text-track-menu-item.js":69,"global/window":2}],65:[function(_dereq_,module,exports){
/**
* @file chapters-track-menu-item.js
*/
+'use strict';
-var _MenuItem2 = _dereq_('../../menu/menu-item.js');
+exports.__esModule = true;
-var _MenuItem3 = _interopRequireWildcard(_MenuItem2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuItemJs = _dereq_('../../menu/menu-item.js');
+
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
/**
* The chapter track menu item
@@ -5337,16 +5202,18 @@ var Fn = _interopRequireWildcard(_import);
*/
var ChaptersTrackMenuItem = (function (_MenuItem) {
+ _inherits(ChaptersTrackMenuItem, _MenuItem);
+
function ChaptersTrackMenuItem(player, options) {
_classCallCheck(this, ChaptersTrackMenuItem);
- var track = options.track;
- var cue = options.cue;
+ var track = options['track'];
+ var cue = options['cue'];
var currentTime = player.currentTime();
// Modify options for parent MenuItem class's init.
- options.label = cue.text;
- options.selected = cue.startTime <= currentTime && currentTime < cue.endTime;
+ options['label'] = cue.text;
+ options['selected'] = cue['startTime'] <= currentTime && currentTime < cue['endTime'];
_MenuItem.call(this, player, options);
this.track = track;
@@ -5354,8 +5221,6 @@ var ChaptersTrackMenuItem = (function (_MenuItem) {
track.addEventListener('cuechange', Fn.bind(this, this.update));
}
- _inherits(ChaptersTrackMenuItem, _MenuItem);
-
/**
* Handle click on menu item
*
@@ -5379,37 +5244,37 @@ var ChaptersTrackMenuItem = (function (_MenuItem) {
var currentTime = this.player_.currentTime();
// vjs.log(currentTime, cue.startTime);
- this.selected(cue.startTime <= currentTime && currentTime < cue.endTime);
+ this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);
};
return ChaptersTrackMenuItem;
-})(_MenuItem3['default']);
+})(_menuMenuItemJs2['default']);
-_Component2['default'].registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);
+_componentJs2['default'].registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);
exports['default'] = ChaptersTrackMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-item.js":89,"../../utils/fn.js":113}],70:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-item.js":85,"../../utils/fn.js":109}],66:[function(_dereq_,module,exports){
/**
* @file off-text-track-menu-item.js
*/
+'use strict';
-var _TextTrackMenuItem2 = _dereq_('./text-track-menu-item.js');
+exports.__esModule = true;
-var _TextTrackMenuItem3 = _interopRequireWildcard(_TextTrackMenuItem2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
+
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* A special menu item for turning of a specific type of text track
@@ -5421,25 +5286,25 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var OffTextTrackMenuItem = (function (_TextTrackMenuItem) {
+ _inherits(OffTextTrackMenuItem, _TextTrackMenuItem);
+
function OffTextTrackMenuItem(player, options) {
_classCallCheck(this, OffTextTrackMenuItem);
// Create pseudo track info
// Requires options['kind']
- options.track = {
- kind: options.kind,
- player: player,
- label: options.kind + ' off',
+ options['track'] = {
+ 'kind': options['kind'],
+ 'player': player,
+ 'label': options['kind'] + ' off',
'default': false,
- mode: 'disabled'
+ 'mode': 'disabled'
};
_TextTrackMenuItem.call(this, player, options);
this.selected(true);
}
- _inherits(OffTextTrackMenuItem, _TextTrackMenuItem);
-
/**
* Handle text track change
*
@@ -5453,7 +5318,7 @@ var OffTextTrackMenuItem = (function (_TextTrackMenuItem) {
for (var i = 0, l = tracks.length; i < l; i++) {
var track = tracks[i];
- if (track.kind === this.track.kind && track.mode === 'showing') {
+ if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {
selected = false;
break;
}
@@ -5463,33 +5328,33 @@ var OffTextTrackMenuItem = (function (_TextTrackMenuItem) {
};
return OffTextTrackMenuItem;
-})(_TextTrackMenuItem3['default']);
+})(_textTrackMenuItemJs2['default']);
-_Component2['default'].registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);
+_componentJs2['default'].registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);
exports['default'] = OffTextTrackMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"./text-track-menu-item.js":73}],71:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./text-track-menu-item.js":69}],67:[function(_dereq_,module,exports){
/**
* @file subtitles-button.js
*/
+'use strict';
-var _TextTrackButton2 = _dereq_('./text-track-button.js');
+exports.__esModule = true;
-var _TextTrackButton3 = _interopRequireWildcard(_TextTrackButton2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _textTrackButtonJs = _dereq_('./text-track-button.js');
+
+var _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The button component for toggling and selecting subtitles
@@ -5502,6 +5367,8 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var SubtitlesButton = (function (_TextTrackButton) {
+ _inherits(SubtitlesButton, _TextTrackButton);
+
function SubtitlesButton(player, options, ready) {
_classCallCheck(this, SubtitlesButton);
@@ -5509,8 +5376,6 @@ var SubtitlesButton = (function (_TextTrackButton) {
this.el_.setAttribute('aria-label', 'Subtitles Menu');
}
- _inherits(SubtitlesButton, _TextTrackButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -5523,48 +5388,50 @@ var SubtitlesButton = (function (_TextTrackButton) {
};
return SubtitlesButton;
-})(_TextTrackButton3['default']);
+})(_textTrackButtonJs2['default']);
SubtitlesButton.prototype.kind_ = 'subtitles';
SubtitlesButton.prototype.controlText_ = 'Subtitles';
-_Component2['default'].registerComponent('SubtitlesButton', SubtitlesButton);
+_componentJs2['default'].registerComponent('SubtitlesButton', SubtitlesButton);
exports['default'] = SubtitlesButton;
module.exports = exports['default'];
-},{"../../component.js":52,"./text-track-button.js":72}],72:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./text-track-button.js":68}],68:[function(_dereq_,module,exports){
/**
* @file text-track-button.js
*/
+'use strict';
-var _MenuButton2 = _dereq_('../../menu/menu-button.js');
+exports.__esModule = true;
-var _MenuButton3 = _interopRequireWildcard(_MenuButton2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuButtonJs = _dereq_('../../menu/menu-button.js');
-var _TextTrackMenuItem = _dereq_('./text-track-menu-item.js');
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
-var _TextTrackMenuItem2 = _interopRequireWildcard(_TextTrackMenuItem);
+var _componentJs = _dereq_('../../component.js');
-var _OffTextTrackMenuItem = _dereq_('./off-text-track-menu-item.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _OffTextTrackMenuItem2 = _interopRequireWildcard(_OffTextTrackMenuItem);
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
+
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
+
+var _offTextTrackMenuItemJs = _dereq_('./off-text-track-menu-item.js');
+
+var _offTextTrackMenuItemJs2 = _interopRequireDefault(_offTextTrackMenuItemJs);
/**
* The base class for buttons that toggle specific text track types (e.g. subtitles)
@@ -5576,6 +5443,8 @@ var _OffTextTrackMenuItem2 = _interopRequireWildcard(_OffTextTrackMenuItem);
*/
var TextTrackButton = (function (_MenuButton) {
+ _inherits(TextTrackButton, _MenuButton);
+
function TextTrackButton(player, options) {
_classCallCheck(this, TextTrackButton);
@@ -5601,15 +5470,13 @@ var TextTrackButton = (function (_MenuButton) {
});
}
- _inherits(TextTrackButton, _MenuButton);
-
// Create a menu item for each text track
TextTrackButton.prototype.createItems = function createItems() {
- var items = arguments[0] === undefined ? [] : arguments[0];
+ var items = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
// Add an OFF menu item to turn all tracks off
- items.push(new _OffTextTrackMenuItem2['default'](this.player_, { kind: this.kind_ }));
+ items.push(new _offTextTrackMenuItemJs2['default'](this.player_, { 'kind': this.kind_ }));
var tracks = this.player_.textTracks();
@@ -5621,9 +5488,9 @@ var TextTrackButton = (function (_MenuButton) {
var track = tracks[i];
// only add tracks that are of the appropriate kind and have a label
- if (track.kind === this.kind_) {
- items.push(new _TextTrackMenuItem2['default'](this.player_, {
- track: track
+ if (track['kind'] === this.kind_) {
+ items.push(new _textTrackMenuItemJs2['default'](this.player_, {
+ 'track': track
}));
}
}
@@ -5632,45 +5499,47 @@ var TextTrackButton = (function (_MenuButton) {
};
return TextTrackButton;
-})(_MenuButton3['default']);
+})(_menuMenuButtonJs2['default']);
-_Component2['default'].registerComponent('TextTrackButton', TextTrackButton);
+_componentJs2['default'].registerComponent('TextTrackButton', TextTrackButton);
exports['default'] = TextTrackButton;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-button.js":88,"../../utils/fn.js":113,"./off-text-track-menu-item.js":70,"./text-track-menu-item.js":73}],73:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-button.js":84,"../../utils/fn.js":109,"./off-text-track-menu-item.js":66,"./text-track-menu-item.js":69}],69:[function(_dereq_,module,exports){
/**
* @file text-track-menu-item.js
*/
+'use strict';
-var _MenuItem2 = _dereq_('../../menu/menu-item.js');
+exports.__esModule = true;
-var _MenuItem3 = _interopRequireWildcard(_MenuItem2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuItemJs = _dereq_('../../menu/menu-item.js');
-var _window = _dereq_('global/window');
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
-var _window2 = _interopRequireWildcard(_window);
+var _componentJs = _dereq_('../../component.js');
-var _document = _dereq_('global/document');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _document2 = _interopRequireWildcard(_document);
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* The specific menu item type for selecting a language within a text track kind
@@ -5682,17 +5551,19 @@ var _document2 = _interopRequireWildcard(_document);
*/
var TextTrackMenuItem = (function (_MenuItem) {
+ _inherits(TextTrackMenuItem, _MenuItem);
+
function TextTrackMenuItem(player, options) {
var _this = this;
_classCallCheck(this, TextTrackMenuItem);
- var track = options.track;
+ var track = options['track'];
var tracks = player.textTracks();
// Modify options for parent MenuItem class's init.
- options.label = track.label || track.language || 'Unknown';
- options.selected = track['default'] || track.mode === 'showing';
+ options['label'] = track['label'] || track['language'] || 'Unknown';
+ options['selected'] = track['default'] || track['mode'] === 'showing';
_MenuItem.call(this, player, options);
this.track = track;
@@ -5719,15 +5590,15 @@ var TextTrackMenuItem = (function (_MenuItem) {
var event = undefined;
_this.on(['tap', 'click'], function () {
- if (typeof _window2['default'].Event !== 'object') {
+ if (typeof _globalWindow2['default'].Event !== 'object') {
// Android 2.3 throws an Illegal Constructor error for window.Event
try {
- event = new _window2['default'].Event('change');
+ event = new _globalWindow2['default'].Event('change');
} catch (err) {}
}
if (!event) {
- event = _document2['default'].createEvent('Event');
+ event = _globalDocument2['default'].createEvent('Event');
event.initEvent('change', true, true);
}
@@ -5737,8 +5608,6 @@ var TextTrackMenuItem = (function (_MenuItem) {
}
}
- _inherits(TextTrackMenuItem, _MenuItem);
-
/**
* Handle click on text track
*
@@ -5746,24 +5615,24 @@ var TextTrackMenuItem = (function (_MenuItem) {
*/
TextTrackMenuItem.prototype.handleClick = function handleClick(event) {
- var kind = this.track.kind;
+ var kind = this.track['kind'];
var tracks = this.player_.textTracks();
_MenuItem.prototype.handleClick.call(this, event);
- if (!tracks) {
- return;
- }for (var i = 0; i < tracks.length; i++) {
+ if (!tracks) return;
+
+ for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
- if (track.kind !== kind) {
+ if (track['kind'] !== kind) {
continue;
}
if (track === this.track) {
- track.mode = 'showing';
+ track['mode'] = 'showing';
} else {
- track.mode = 'disabled';
+ track['mode'] = 'disabled';
}
}
};
@@ -5775,41 +5644,43 @@ var TextTrackMenuItem = (function (_MenuItem) {
*/
TextTrackMenuItem.prototype.handleTracksChange = function handleTracksChange(event) {
- this.selected(this.track.mode === 'showing');
+ this.selected(this.track['mode'] === 'showing');
};
return TextTrackMenuItem;
-})(_MenuItem3['default']);
+})(_menuMenuItemJs2['default']);
-_Component2['default'].registerComponent('TextTrackMenuItem', TextTrackMenuItem);
+_componentJs2['default'].registerComponent('TextTrackMenuItem', TextTrackMenuItem);
exports['default'] = TextTrackMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-item.js":89,"../../utils/fn.js":113,"global/document":1,"global/window":2}],74:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-item.js":85,"../../utils/fn.js":109,"global/document":1,"global/window":2}],70:[function(_dereq_,module,exports){
/**
* @file current-time-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Displays the current time
@@ -5821,6 +5692,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var CurrentTimeDisplay = (function (_Component) {
+ _inherits(CurrentTimeDisplay, _Component);
+
function CurrentTimeDisplay(player, options) {
_classCallCheck(this, CurrentTimeDisplay);
@@ -5829,8 +5702,6 @@ var CurrentTimeDisplay = (function (_Component) {
this.on(player, 'timeupdate', this.updateContent);
}
- _inherits(CurrentTimeDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -5863,42 +5734,44 @@ var CurrentTimeDisplay = (function (_Component) {
// Allows for smooth scrubbing, when player can't keep up.
var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
var localizedText = this.localize('Current Time');
- var formattedTime = _formatTime2['default'](time, this.player_.duration());
+ var formattedTime = _utilsFormatTimeJs2['default'](time, this.player_.duration());
this.contentEl_.innerHTML = '' + localizedText + ' ' + formattedTime;
};
return CurrentTimeDisplay;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);
+_componentJs2['default'].registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);
exports['default'] = CurrentTimeDisplay;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],75:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],71:[function(_dereq_,module,exports){
/**
* @file duration-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Displays the duration
@@ -5910,6 +5783,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var DurationDisplay = (function (_Component) {
+ _inherits(DurationDisplay, _Component);
+
function DurationDisplay(player, options) {
_classCallCheck(this, DurationDisplay);
@@ -5924,8 +5799,6 @@ var DurationDisplay = (function (_Component) {
this.on(player, 'loadedmetadata', this.updateContent);
}
- _inherits(DurationDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -5958,43 +5831,45 @@ var DurationDisplay = (function (_Component) {
var duration = this.player_.duration();
if (duration) {
var localizedText = this.localize('Duration Time');
- var formattedTime = _formatTime2['default'](duration);
+ var formattedTime = _utilsFormatTimeJs2['default'](duration);
this.contentEl_.innerHTML = '' + localizedText + ' ' + formattedTime; // label the duration time for screen reader users
}
};
return DurationDisplay;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('DurationDisplay', DurationDisplay);
+_componentJs2['default'].registerComponent('DurationDisplay', DurationDisplay);
exports['default'] = DurationDisplay;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],76:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],72:[function(_dereq_,module,exports){
/**
* @file remaining-time-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Displays the time left in the video
@@ -6006,6 +5881,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var RemainingTimeDisplay = (function (_Component) {
+ _inherits(RemainingTimeDisplay, _Component);
+
function RemainingTimeDisplay(player, options) {
_classCallCheck(this, RemainingTimeDisplay);
@@ -6014,8 +5891,6 @@ var RemainingTimeDisplay = (function (_Component) {
this.on(player, 'timeupdate', this.updateContent);
}
- _inherits(RemainingTimeDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -6047,7 +5922,7 @@ var RemainingTimeDisplay = (function (_Component) {
RemainingTimeDisplay.prototype.updateContent = function updateContent() {
if (this.player_.duration()) {
var localizedText = this.localize('Remaining Time');
- var formattedTime = _formatTime2['default'](this.player_.remainingTime());
+ var formattedTime = _utilsFormatTimeJs2['default'](this.player_.remainingTime());
this.contentEl_.innerHTML = '' + localizedText + ' -' + formattedTime;
}
@@ -6057,29 +5932,29 @@ var RemainingTimeDisplay = (function (_Component) {
};
return RemainingTimeDisplay;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);
+_componentJs2['default'].registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);
exports['default'] = RemainingTimeDisplay;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],77:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],73:[function(_dereq_,module,exports){
/**
* @file time-divider.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The separator between the current time and duration.
@@ -6092,16 +5967,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var TimeDivider = (function (_Component) {
+ _inherits(TimeDivider, _Component);
+
function TimeDivider() {
_classCallCheck(this, TimeDivider);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(TimeDivider, _Component);
-
/**
* Create the component's DOM element
*
@@ -6117,43 +5990,45 @@ var TimeDivider = (function (_Component) {
};
return TimeDivider;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('TimeDivider', TimeDivider);
+_componentJs2['default'].registerComponent('TimeDivider', TimeDivider);
exports['default'] = TimeDivider;
module.exports = exports['default'];
-},{"../../component.js":52}],78:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48}],74:[function(_dereq_,module,exports){
/**
* @file volume-bar.js
*/
+'use strict';
-var _Slider2 = _dereq_('../../slider/slider.js');
+exports.__esModule = true;
-var _Slider3 = _interopRequireWildcard(_Slider2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _sliderSliderJs = _dereq_('../../slider/slider.js');
+
+var _sliderSliderJs2 = _interopRequireDefault(_sliderSliderJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
// Required children
-var _VolumeLevel = _dereq_('./volume-level.js');
+var _volumeLevelJs = _dereq_('./volume-level.js');
-var _VolumeLevel2 = _interopRequireWildcard(_VolumeLevel);
+var _volumeLevelJs2 = _interopRequireDefault(_volumeLevelJs);
/**
* The bar that contains the volume level and can be clicked on to adjust the level
@@ -6165,6 +6040,8 @@ var _VolumeLevel2 = _interopRequireWildcard(_VolumeLevel);
*/
var VolumeBar = (function (_Slider) {
+ _inherits(VolumeBar, _Slider);
+
function VolumeBar(player, options) {
_classCallCheck(this, VolumeBar);
@@ -6173,8 +6050,6 @@ var VolumeBar = (function (_Slider) {
player.ready(Fn.bind(this, this.updateARIAAttributes));
}
- _inherits(VolumeBar, _Slider);
-
/**
* Create the component's DOM element
*
@@ -6252,44 +6127,44 @@ var VolumeBar = (function (_Slider) {
};
return VolumeBar;
-})(_Slider3['default']);
+})(_sliderSliderJs2['default']);
VolumeBar.prototype.options_ = {
children: {
- volumeLevel: {}
+ 'volumeLevel': {}
},
- barName: 'volumeLevel'
+ 'barName': 'volumeLevel'
};
VolumeBar.prototype.playerEvent = 'volumechange';
-_Component2['default'].registerComponent('VolumeBar', VolumeBar);
+_componentJs2['default'].registerComponent('VolumeBar', VolumeBar);
exports['default'] = VolumeBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../slider/slider.js":95,"../../utils/fn.js":113,"./volume-level.js":80}],79:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../slider/slider.js":91,"../../utils/fn.js":109,"./volume-level.js":76}],75:[function(_dereq_,module,exports){
/**
* @file volume-control.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
// Required children
-var _VolumeBar = _dereq_('./volume-bar.js');
+var _volumeBarJs = _dereq_('./volume-bar.js');
-var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
+var _volumeBarJs2 = _interopRequireDefault(_volumeBarJs);
/**
* The component for controlling the volume level
@@ -6301,17 +6176,19 @@ var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
*/
var VolumeControl = (function (_Component) {
+ _inherits(VolumeControl, _Component);
+
function VolumeControl(player, options) {
_classCallCheck(this, VolumeControl);
_Component.call(this, player, options);
// hide volume controls when they're not supported by the current tech
- if (player.tech && player.tech.featuresVolumeControl === false) {
+ if (player.tech && player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
}
this.on(player, 'loadstart', function () {
- if (player.tech.featuresVolumeControl === false) {
+ if (player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
} else {
this.removeClass('vjs-hidden');
@@ -6319,8 +6196,6 @@ var VolumeControl = (function (_Component) {
});
}
- _inherits(VolumeControl, _Component);
-
/**
* Create the component's DOM element
*
@@ -6335,35 +6210,35 @@ var VolumeControl = (function (_Component) {
};
return VolumeControl;
-})(_Component3['default']);
+})(_componentJs2['default']);
VolumeControl.prototype.options_ = {
children: {
- volumeBar: {}
+ 'volumeBar': {}
}
};
-_Component3['default'].registerComponent('VolumeControl', VolumeControl);
+_componentJs2['default'].registerComponent('VolumeControl', VolumeControl);
exports['default'] = VolumeControl;
module.exports = exports['default'];
-},{"../../component.js":52,"./volume-bar.js":78}],80:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./volume-bar.js":74}],76:[function(_dereq_,module,exports){
/**
* @file volume-level.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Shows volume level
@@ -6375,16 +6250,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var VolumeLevel = (function (_Component) {
+ _inherits(VolumeLevel, _Component);
+
function VolumeLevel() {
_classCallCheck(this, VolumeLevel);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(VolumeLevel, _Component);
-
/**
* Create the component's DOM element
*
@@ -6400,49 +6273,49 @@ var VolumeLevel = (function (_Component) {
};
return VolumeLevel;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('VolumeLevel', VolumeLevel);
+_componentJs2['default'].registerComponent('VolumeLevel', VolumeLevel);
exports['default'] = VolumeLevel;
module.exports = exports['default'];
-},{"../../component.js":52}],81:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48}],77:[function(_dereq_,module,exports){
/**
* @file volume-menu-button.js
*/
+'use strict';
-var _Button = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button2 = _interopRequireWildcard(_Button);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _Menu = _dereq_('../menu/menu.js');
+var _buttonJs = _dereq_('../button.js');
-var _Menu2 = _interopRequireWildcard(_Menu);
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
-var _MenuButton2 = _dereq_('../menu/menu-button.js');
+var _componentJs = _dereq_('../component.js');
-var _MenuButton3 = _interopRequireWildcard(_MenuButton2);
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _MuteToggle = _dereq_('./mute-toggle.js');
+var _menuMenuJs = _dereq_('../menu/menu.js');
-var _MuteToggle2 = _interopRequireWildcard(_MuteToggle);
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var _VolumeBar = _dereq_('./volume-control/volume-bar.js');
+var _menuMenuButtonJs = _dereq_('../menu/menu-button.js');
-var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
+
+var _muteToggleJs = _dereq_('./mute-toggle.js');
+
+var _muteToggleJs2 = _interopRequireDefault(_muteToggleJs);
+
+var _volumeControlVolumeBarJs = _dereq_('./volume-control/volume-bar.js');
+
+var _volumeControlVolumeBarJs2 = _interopRequireDefault(_volumeControlVolumeBarJs);
/**
* Button for volume menu
@@ -6454,8 +6327,10 @@ var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
*/
var VolumeMenuButton = (function (_MenuButton) {
+ _inherits(VolumeMenuButton, _MenuButton);
+
function VolumeMenuButton(player) {
- var options = arguments[1] === undefined ? {} : arguments[1];
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
_classCallCheck(this, VolumeMenuButton);
@@ -6482,11 +6357,11 @@ var VolumeMenuButton = (function (_MenuButton) {
this.on(player, 'loadstart', this.volumeUpdate);
// hide mute toggle if the current tech doesn't support volume control
- if (player.tech && player.tech.featuresVolumeControl === false) {
+ if (player.tech && player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
}
this.on(player, 'loadstart', function () {
- if (player.tech.featuresVolumeControl === false) {
+ if (player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
} else {
this.removeClass('vjs-hidden');
@@ -6495,8 +6370,6 @@ var VolumeMenuButton = (function (_MenuButton) {
this.addClass('vjs-menu-button');
}
- _inherits(VolumeMenuButton, _MenuButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -6523,11 +6396,11 @@ var VolumeMenuButton = (function (_MenuButton) {
*/
VolumeMenuButton.prototype.createMenu = function createMenu() {
- var menu = new _Menu2['default'](this.player_, {
+ var menu = new _menuMenuJs2['default'](this.player_, {
contentElType: 'div'
});
- var vc = new _VolumeBar2['default'](this.player_, this.options_.volumeBar);
+ var vc = new _volumeControlVolumeBarJs2['default'](this.player_, this.options_.volumeBar);
vc.on('focus', function () {
menu.lockShowing();
@@ -6546,41 +6419,43 @@ var VolumeMenuButton = (function (_MenuButton) {
*/
VolumeMenuButton.prototype.handleClick = function handleClick() {
- _MuteToggle2['default'].prototype.handleClick.call(this);
+ _muteToggleJs2['default'].prototype.handleClick.call(this);
_MenuButton.prototype.handleClick.call(this);
};
return VolumeMenuButton;
-})(_MenuButton3['default']);
+})(_menuMenuButtonJs2['default']);
-VolumeMenuButton.prototype.volumeUpdate = _MuteToggle2['default'].prototype.update;
+VolumeMenuButton.prototype.volumeUpdate = _muteToggleJs2['default'].prototype.update;
VolumeMenuButton.prototype.controlText_ = 'Mute';
-_Component2['default'].registerComponent('VolumeMenuButton', VolumeMenuButton);
+_componentJs2['default'].registerComponent('VolumeMenuButton', VolumeMenuButton);
exports['default'] = VolumeMenuButton;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52,"../menu/menu-button.js":88,"../menu/menu.js":90,"./mute-toggle.js":56,"./volume-control/volume-bar.js":78}],82:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48,"../menu/menu-button.js":84,"../menu/menu.js":86,"./mute-toggle.js":52,"./volume-control/volume-bar.js":74}],78:[function(_dereq_,module,exports){
/**
* @file error-display.js
*/
+'use strict';
-var _Component2 = _dereq_('./component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('./utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _component = _dereq_('./component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _utilsDomJs = _dereq_('./utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* Display that an error has occurred making the video unplayable
@@ -6592,6 +6467,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var ErrorDisplay = (function (_Component) {
+ _inherits(ErrorDisplay, _Component);
+
function ErrorDisplay(player, options) {
_classCallCheck(this, ErrorDisplay);
@@ -6601,8 +6478,6 @@ var ErrorDisplay = (function (_Component) {
this.on(player, 'error', this.update);
}
- _inherits(ErrorDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -6634,25 +6509,25 @@ var ErrorDisplay = (function (_Component) {
};
return ErrorDisplay;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('ErrorDisplay', ErrorDisplay);
+_component2['default'].registerComponent('ErrorDisplay', ErrorDisplay);
exports['default'] = ErrorDisplay;
module.exports = exports['default'];
-},{"./component":52,"./utils/dom.js":111}],83:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./component":48,"./utils/dom.js":107}],79:[function(_dereq_,module,exports){
/**
* @file event-target.js
*/
+'use strict';
-var _import = _dereq_('./utils/events.js');
+exports.__esModule = true;
-var Events = _interopRequireWildcard(_import);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
+
+var _utilsEventsJs = _dereq_('./utils/events.js');
+
+var Events = _interopRequireWildcard(_utilsEventsJs);
var EventTarget = function EventTarget() {};
@@ -6699,16 +6574,16 @@ EventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;
exports['default'] = EventTarget;
module.exports = exports['default'];
-},{"./utils/events.js":112}],84:[function(_dereq_,module,exports){
+},{"./utils/events.js":108}],80:[function(_dereq_,module,exports){
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
-var _log = _dereq_('./utils/log');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _log2 = _interopRequireWildcard(_log);
+var _utilsLog = _dereq_('./utils/log');
+
+var _utilsLog2 = _interopRequireDefault(_utilsLog);
/*
* @file extends.js
@@ -6755,7 +6630,7 @@ var _inherits = function _inherits(subClass, superClass) {
* ```
*/
var extendsFn = function extendsFn(superClass) {
- var subClassMethods = arguments[1] === undefined ? {} : arguments[1];
+ var subClassMethods = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var subClass = function subClass() {
superClass.apply(this, arguments);
@@ -6764,7 +6639,7 @@ var extendsFn = function extendsFn(superClass) {
if (typeof subClassMethods === 'object') {
if (typeof subClassMethods.init === 'function') {
- _log2['default'].warn('Constructor logic via init() is deprecated; please use constructor() instead.');
+ _utilsLog2['default'].warn('Constructor logic via init() is deprecated; please use constructor() instead.');
subClassMethods.constructor = subClassMethods.init;
}
if (subClassMethods.constructor !== Object.prototype.constructor) {
@@ -6790,19 +6665,19 @@ var extendsFn = function extendsFn(superClass) {
exports['default'] = extendsFn;
module.exports = exports['default'];
-},{"./utils/log":116}],85:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./utils/log":112}],81:[function(_dereq_,module,exports){
/**
* @file fullscreen-api.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/*
* Store the browser-specific methods for the fullscreen API
@@ -6831,7 +6706,7 @@ var browserApi = undefined;
// determine the supported set of functions
for (var i = 0; i < apiMap.length; i++) {
// check for exitFullscreen function
- if (apiMap[i][1] in _document2['default']) {
+ if (apiMap[i][1] in _globalDocument2['default']) {
browserApi = apiMap[i];
break;
}
@@ -6847,23 +6722,23 @@ if (browserApi) {
exports['default'] = FullscreenApi;
module.exports = exports['default'];
-},{"global/document":1}],86:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"global/document":1}],82:[function(_dereq_,module,exports){
/**
* @file loading-spinner.js
*/
+'use strict';
-var _Component2 = _dereq_('./component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _component = _dereq_('./component');
+
+var _component2 = _interopRequireDefault(_component);
/* Loading Spinner
================================================================================ */
@@ -6875,16 +6750,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var LoadingSpinner = (function (_Component) {
+ _inherits(LoadingSpinner, _Component);
+
function LoadingSpinner() {
_classCallCheck(this, LoadingSpinner);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(LoadingSpinner, _Component);
-
/**
* Create the component's DOM element
*
@@ -6898,42 +6771,32 @@ var LoadingSpinner = (function (_Component) {
};
return LoadingSpinner;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('LoadingSpinner', LoadingSpinner);
+_component2['default'].registerComponent('LoadingSpinner', LoadingSpinner);
exports['default'] = LoadingSpinner;
module.exports = exports['default'];
-},{"./component":52}],87:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./component":48}],83:[function(_dereq_,module,exports){
/**
* @file media-error.js
*/
+'use strict';
-var _assign = _dereq_('object.assign');
+exports.__esModule = true;
-var _assign2 = _interopRequireWildcard(_assign);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/*
* Custom MediaError to mimic the HTML5 MediaError
*
* @param {Number} code The media error code
*/
-var MediaError = (function (_MediaError) {
- function MediaError(_x) {
- return _MediaError.apply(this, arguments);
- }
-
- MediaError.toString = function () {
- return _MediaError.toString();
- };
-
- return MediaError;
-})(function (code) {
+var MediaError = function MediaError(code) {
if (typeof code === 'number') {
this.code = code;
} else if (typeof code === 'string') {
@@ -6941,13 +6804,13 @@ var MediaError = (function (_MediaError) {
this.message = code;
} else if (typeof code === 'object') {
// object
- _assign2['default'](this, code);
+ _objectAssign2['default'](this, code);
}
if (!this.message) {
this.message = MediaError.defaultMessages[this.code] || '';
}
-});
+};
/*
* The error code that refers two one of the defined
@@ -7005,43 +6868,45 @@ for (var errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {
exports['default'] = MediaError;
module.exports = exports['default'];
-},{"object.assign":44}],88:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"object.assign":40}],84:[function(_dereq_,module,exports){
/**
* @file menu-button.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Menu = _dereq_('./menu.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _Menu2 = _interopRequireWildcard(_Menu);
+var _buttonJs = _dereq_('../button.js');
-var _import = _dereq_('../utils/dom.js');
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
-var Dom = _interopRequireWildcard(_import);
+var _componentJs = _dereq_('../component.js');
-var _import2 = _dereq_('../utils/fn.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Fn = _interopRequireWildcard(_import2);
+var _menuJs = _dereq_('./menu.js');
-var _toTitleCase = _dereq_('../utils/to-title-case.js');
+var _menuJs2 = _interopRequireDefault(_menuJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFnJs = _dereq_('../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsToTitleCaseJs = _dereq_('../utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
/**
* A button class with a popup menu
@@ -7053,8 +6918,10 @@ var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
*/
var MenuButton = (function (_Button) {
+ _inherits(MenuButton, _Button);
+
function MenuButton(player) {
- var options = arguments[1] === undefined ? {} : arguments[1];
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
_classCallCheck(this, MenuButton);
@@ -7067,8 +6934,6 @@ var MenuButton = (function (_Button) {
this.el_.setAttribute('role', 'button');
}
- _inherits(MenuButton, _Button);
-
/**
* Update menu
*
@@ -7108,18 +6973,18 @@ var MenuButton = (function (_Button) {
*/
MenuButton.prototype.createMenu = function createMenu() {
- var menu = new _Menu2['default'](this.player_);
+ var menu = new _menuJs2['default'](this.player_);
// Add a title list item to the top
if (this.options_.title) {
menu.contentEl().appendChild(Dom.createEl('li', {
className: 'vjs-menu-title',
- innerHTML: _toTitleCase2['default'](this.options_.title),
+ innerHTML: _utilsToTitleCaseJs2['default'](this.options_.title),
tabIndex: -1
}));
}
- this.items = this.createItems();
+ this.items = this['createItems']();
if (this.items) {
// Add menu items to the menu
@@ -7236,11 +7101,11 @@ var MenuButton = (function (_Button) {
event.preventDefault();
// Check for escape (27) key
} else if (event.which === 27) {
- if (this.buttonPressed_) {
- this.unpressButton();
+ if (this.buttonPressed_) {
+ this.unpressButton();
+ }
+ event.preventDefault();
}
- event.preventDefault();
- }
};
/**
@@ -7271,37 +7136,37 @@ var MenuButton = (function (_Button) {
};
return MenuButton;
-})(_Button3['default']);
+})(_buttonJs2['default']);
-_Component2['default'].registerComponent('MenuButton', MenuButton);
+_componentJs2['default'].registerComponent('MenuButton', MenuButton);
exports['default'] = MenuButton;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52,"../utils/dom.js":111,"../utils/fn.js":113,"../utils/to-title-case.js":120,"./menu.js":90}],89:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48,"../utils/dom.js":107,"../utils/fn.js":109,"../utils/to-title-case.js":116,"./menu.js":86}],85:[function(_dereq_,module,exports){
/**
* @file menu-item.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _assign = _dereq_('object.assign');
+var _buttonJs = _dereq_('../button.js');
-var _assign2 = _interopRequireWildcard(_assign);
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/**
* The component for a menu item. `
`
@@ -7313,15 +7178,15 @@ var _assign2 = _interopRequireWildcard(_assign);
*/
var MenuItem = (function (_Button) {
+ _inherits(MenuItem, _Button);
+
function MenuItem(player, options) {
_classCallCheck(this, MenuItem);
_Button.call(this, player, options);
- this.selected(options.selected);
+ this.selected(options['selected']);
}
- _inherits(MenuItem, _Button);
-
/**
* Create the component's DOM element
*
@@ -7332,9 +7197,9 @@ var MenuItem = (function (_Button) {
*/
MenuItem.prototype.createEl = function createEl(type, props) {
- return _Button.prototype.createEl.call(this, 'li', _assign2['default']({
+ return _Button.prototype.createEl.call(this, 'li', _objectAssign2['default']({
className: 'vjs-menu-item',
- innerHTML: this.localize(this.options_.label)
+ innerHTML: this.localize(this.options_['label'])
}, props));
};
@@ -7355,62 +7220,54 @@ var MenuItem = (function (_Button) {
* @method selected
*/
- MenuItem.prototype.selected = (function (_selected) {
- function selected(_x) {
- return _selected.apply(this, arguments);
- }
-
- selected.toString = function () {
- return _selected.toString();
- };
-
- return selected;
- })(function (selected) {
- if (selected) {
+ MenuItem.prototype.selected = function selected(_selected) {
+ if (_selected) {
this.addClass('vjs-selected');
this.el_.setAttribute('aria-selected', true);
} else {
this.removeClass('vjs-selected');
this.el_.setAttribute('aria-selected', false);
}
- });
+ };
return MenuItem;
-})(_Button3['default']);
+})(_buttonJs2['default']);
-_Component2['default'].registerComponent('MenuItem', MenuItem);
+_componentJs2['default'].registerComponent('MenuItem', MenuItem);
exports['default'] = MenuItem;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52,"object.assign":44}],90:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48,"object.assign":40}],86:[function(_dereq_,module,exports){
/**
* @file menu.js
*/
+'use strict';
-var _Component2 = _dereq_('../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import2 = _dereq_('../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import2);
+var _componentJs = _dereq_('../component.js');
-var _import3 = _dereq_('../utils/events.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Events = _interopRequireWildcard(_import3);
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFnJs = _dereq_('../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsEventsJs = _dereq_('../utils/events.js');
+
+var Events = _interopRequireWildcard(_utilsEventsJs);
/**
* The Menu component is used to build pop up menus, including subtitle and
@@ -7421,16 +7278,14 @@ var Events = _interopRequireWildcard(_import3);
*/
var Menu = (function (_Component) {
+ _inherits(Menu, _Component);
+
function Menu() {
_classCallCheck(this, Menu);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(Menu, _Component);
-
/**
* Add a menu item to the menu
*
@@ -7474,138 +7329,140 @@ var Menu = (function (_Component) {
};
return Menu;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('Menu', Menu);
+_componentJs2['default'].registerComponent('Menu', Menu);
exports['default'] = Menu;
module.exports = exports['default'];
-},{"../component.js":52,"../utils/dom.js":111,"../utils/events.js":112,"../utils/fn.js":113}],91:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component.js":48,"../utils/dom.js":107,"../utils/events.js":108,"../utils/fn.js":109}],87:[function(_dereq_,module,exports){
/**
* @file player.js
*/
// Subclasses Component
+'use strict';
-var _Component2 = _dereq_('./component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _document = _dereq_('global/document');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document2 = _interopRequireWildcard(_document);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _window = _dereq_('global/window');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _window2 = _interopRequireWildcard(_window);
+var _componentJs = _dereq_('./component.js');
-var _import = _dereq_('./utils/events.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Events = _interopRequireWildcard(_import);
+var _globalDocument = _dereq_('global/document');
-var _import2 = _dereq_('./utils/dom.js');
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var Dom = _interopRequireWildcard(_import2);
+var _globalWindow = _dereq_('global/window');
-var _import3 = _dereq_('./utils/fn.js');
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
-var Fn = _interopRequireWildcard(_import3);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _import4 = _dereq_('./utils/guid.js');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var Guid = _interopRequireWildcard(_import4);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _import5 = _dereq_('./utils/browser.js');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var browser = _interopRequireWildcard(_import5);
+var _utilsFnJs = _dereq_('./utils/fn.js');
-var _log = _dereq_('./utils/log.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _log2 = _interopRequireWildcard(_log);
+var _utilsGuidJs = _dereq_('./utils/guid.js');
-var _toTitleCase = _dereq_('./utils/to-title-case.js');
+var Guid = _interopRequireWildcard(_utilsGuidJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsBrowserJs = _dereq_('./utils/browser.js');
-var _createTimeRange = _dereq_('./utils/time-ranges.js');
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _bufferedPercent2 = _dereq_('./utils/buffer.js');
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _import6 = _dereq_('./utils/stylesheet.js');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var stylesheet = _interopRequireWildcard(_import6);
+var _utilsToTitleCaseJs = _dereq_('./utils/to-title-case.js');
-var _FullscreenApi = _dereq_('./fullscreen-api.js');
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
-var _FullscreenApi2 = _interopRequireWildcard(_FullscreenApi);
+var _utilsTimeRangesJs = _dereq_('./utils/time-ranges.js');
-var _MediaError = _dereq_('./media-error.js');
+var _utilsBufferJs = _dereq_('./utils/buffer.js');
-var _MediaError2 = _interopRequireWildcard(_MediaError);
+var _utilsStylesheetJs = _dereq_('./utils/stylesheet.js');
-var _safeParseTuple2 = _dereq_('safe-json-parse/tuple');
+var stylesheet = _interopRequireWildcard(_utilsStylesheetJs);
-var _safeParseTuple3 = _interopRequireWildcard(_safeParseTuple2);
+var _fullscreenApiJs = _dereq_('./fullscreen-api.js');
-var _assign = _dereq_('object.assign');
+var _fullscreenApiJs2 = _interopRequireDefault(_fullscreenApiJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _mediaErrorJs = _dereq_('./media-error.js');
-var _mergeOptions = _dereq_('./utils/merge-options.js');
+var _mediaErrorJs2 = _interopRequireDefault(_mediaErrorJs);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _safeJsonParseTuple = _dereq_('safe-json-parse/tuple');
-var _textTrackConverter = _dereq_('./tracks/text-track-list-converter.js');
+var _safeJsonParseTuple2 = _interopRequireDefault(_safeJsonParseTuple);
-var _textTrackConverter2 = _interopRequireWildcard(_textTrackConverter);
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
+
+var _tracksTextTrackListConverterJs = _dereq_('./tracks/text-track-list-converter.js');
+
+var _tracksTextTrackListConverterJs2 = _interopRequireDefault(_tracksTextTrackListConverterJs);
// Include required child components (importing also registers them)
-var _MediaLoader = _dereq_('./tech/loader.js');
+var _techLoaderJs = _dereq_('./tech/loader.js');
-var _MediaLoader2 = _interopRequireWildcard(_MediaLoader);
+var _techLoaderJs2 = _interopRequireDefault(_techLoaderJs);
-var _PosterImage = _dereq_('./poster-image.js');
+var _posterImageJs = _dereq_('./poster-image.js');
-var _PosterImage2 = _interopRequireWildcard(_PosterImage);
+var _posterImageJs2 = _interopRequireDefault(_posterImageJs);
-var _TextTrackDisplay = _dereq_('./tracks/text-track-display.js');
+var _tracksTextTrackDisplayJs = _dereq_('./tracks/text-track-display.js');
-var _TextTrackDisplay2 = _interopRequireWildcard(_TextTrackDisplay);
+var _tracksTextTrackDisplayJs2 = _interopRequireDefault(_tracksTextTrackDisplayJs);
-var _LoadingSpinner = _dereq_('./loading-spinner.js');
+var _loadingSpinnerJs = _dereq_('./loading-spinner.js');
-var _LoadingSpinner2 = _interopRequireWildcard(_LoadingSpinner);
+var _loadingSpinnerJs2 = _interopRequireDefault(_loadingSpinnerJs);
-var _BigPlayButton = _dereq_('./big-play-button.js');
+var _bigPlayButtonJs = _dereq_('./big-play-button.js');
-var _BigPlayButton2 = _interopRequireWildcard(_BigPlayButton);
+var _bigPlayButtonJs2 = _interopRequireDefault(_bigPlayButtonJs);
-var _ControlBar = _dereq_('./control-bar/control-bar.js');
+var _controlBarControlBarJs = _dereq_('./control-bar/control-bar.js');
-var _ControlBar2 = _interopRequireWildcard(_ControlBar);
+var _controlBarControlBarJs2 = _interopRequireDefault(_controlBarControlBarJs);
-var _ErrorDisplay = _dereq_('./error-display.js');
+var _errorDisplayJs = _dereq_('./error-display.js');
-var _ErrorDisplay2 = _interopRequireWildcard(_ErrorDisplay);
+var _errorDisplayJs2 = _interopRequireDefault(_errorDisplayJs);
-var _TextTrackSettings = _dereq_('./tracks/text-track-settings.js');
+var _tracksTextTrackSettingsJs = _dereq_('./tracks/text-track-settings.js');
-var _TextTrackSettings2 = _interopRequireWildcard(_TextTrackSettings);
+var _tracksTextTrackSettingsJs2 = _interopRequireDefault(_tracksTextTrackSettingsJs);
// Require html5 tech, at least for disposing the original video tag
-var _Html5 = _dereq_('./tech/html5.js');
+var _techHtml5Js = _dereq_('./tech/html5.js');
-var _Html52 = _interopRequireWildcard(_Html5);
+var _techHtml5Js2 = _interopRequireDefault(_techHtml5Js);
/**
* An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.
@@ -7628,6 +7485,7 @@ var _Html52 = _interopRequireWildcard(_Html5);
*/
var Player = (function (_Component) {
+ _inherits(Player, _Component);
/**
* player's constructor function
@@ -7652,7 +7510,7 @@ var Player = (function (_Component) {
// which overrides globally set options.
// This latter part coincides with the load order
// (tag must exist before Player)
- options = _assign2['default'](Player.getTagSettings(tag), options);
+ options = _objectAssign2['default'](Player.getTagSettings(tag), options);
// Delay the initialization of children because we need to set up
// player properties first, and can't use `this` before `super()`
@@ -7725,7 +7583,7 @@ var Player = (function (_Component) {
// as well so they don't need to reach back into the player for options later.
// We also need to do another copy of this.options_ so we don't end up with
// an infinite loop.
- var playerOptionsCopy = _mergeOptions2['default'](this.options_);
+ var playerOptionsCopy = _utilsMergeOptionsJs2['default'](this.options_);
// Load plugins
if (options.plugins) {
@@ -7733,11 +7591,10 @@ var Player = (function (_Component) {
var plugins = options.plugins;
Object.getOwnPropertyNames(plugins).forEach(function (name) {
- plugins[name].playerOptions = playerOptionsCopy;
if (typeof this[name] === 'function') {
this[name](plugins[name]);
} else {
- _log2['default'].error('Unable to find plugin:', name);
+ _utilsLogJs2['default'].error('Unable to find plugin:', name);
}
}, _this);
})();
@@ -7785,7 +7642,11 @@ var Player = (function (_Component) {
this.on('stageclick', this.handleStageClick);
}
- _inherits(Player, _Component);
+ /*
+ * Global player list
+ *
+ * @type {Object}
+ */
/**
* Destroys the video player and does any necessary cleanup
@@ -7867,8 +7728,8 @@ var Player = (function (_Component) {
// of the player in a way that's still overrideable by CSS, just like the
// video element
this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');
- var defaultsStyleEl = _document2['default'].querySelector('.vjs-styles-defaults');
- var head = _document2['default'].querySelector('head');
+ var defaultsStyleEl = _globalDocument2['default'].querySelector('.vjs-styles-defaults');
+ var head = _globalDocument2['default'].querySelector('head');
head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);
// Pass in the width/height/aspectRatio options which will update the style el
@@ -7925,18 +7786,8 @@ var Player = (function (_Component) {
* @method dimension
*/
- Player.prototype.dimension = (function (_dimension) {
- function dimension(_x, _x2) {
- return _dimension.apply(this, arguments);
- }
-
- dimension.toString = function () {
- return _dimension.toString();
- };
-
- return dimension;
- })(function (dimension, value) {
- var privDimension = dimension + '_';
+ Player.prototype.dimension = function dimension(_dimension, value) {
+ var privDimension = _dimension + '_';
if (value === undefined) {
return this[privDimension] || 0;
@@ -7949,7 +7800,7 @@ var Player = (function (_Component) {
var parsedVal = parseFloat(value);
if (isNaN(parsedVal)) {
- _log2['default'].error('Improper value "' + value + '" supplied for for ' + dimension);
+ _utilsLogJs2['default'].error('Improper value "' + value + '" supplied for for ' + _dimension);
return this;
}
@@ -7958,7 +7809,7 @@ var Player = (function (_Component) {
this.updateStyleEl_();
return this;
- });
+ };
/**
* Add/remove the vjs-fluid class
@@ -8080,7 +7931,7 @@ var Player = (function (_Component) {
// get rid of the HTML5 video tag as soon as we are using another tech
if (techName !== 'Html5' && this.tag) {
- _Component3['default'].getComponent('Html5').disposeMediaElement(this.tag);
+ _componentJs2['default'].getComponent('Html5').disposeMediaElement(this.tag);
this.tag.player = null;
this.tag = null;
}
@@ -8095,17 +7946,18 @@ var Player = (function (_Component) {
});
// Grab tech-specific options from player options and add source and parent element to use.
- var techOptions = _assign2['default']({
- source: source,
- playerId: this.id(),
- techId: '' + this.id() + '_' + techName + '_api',
- textTracks: this.textTracks_,
- autoplay: this.options_.autoplay,
- preload: this.options_.preload,
- loop: this.options_.loop,
- muted: this.options_.muted,
- poster: this.poster(),
- language: this.language(),
+ var techOptions = _objectAssign2['default']({
+ 'nativeControlsForTouch': this.options_.nativeControlsForTouch,
+ 'source': source,
+ 'playerId': this.id(),
+ 'techId': this.id() + '_' + techName + '_api',
+ 'textTracks': this.textTracks_,
+ 'autoplay': this.options_.autoplay,
+ 'preload': this.options_.preload,
+ 'loop': this.options_.loop,
+ 'muted': this.options_.muted,
+ 'poster': this.poster(),
+ 'language': this.language(),
'vtt.js': this.options_['vtt.js']
}, this.options_[techName.toLowerCase()]);
@@ -8123,13 +7975,12 @@ var Player = (function (_Component) {
}
// Initialize tech instance
- var techComponent = _Component3['default'].getComponent(techName);
+ var techComponent = _componentJs2['default'].getComponent(techName);
this.tech = new techComponent(techOptions);
- _textTrackConverter2['default'].jsonToTextTracks(this.textTracksJson_ || [], this.tech);
+ _tracksTextTrackListConverterJs2['default'].jsonToTextTracks(this.textTracksJson_ || [], this.tech);
this.on(this.tech, 'ready', this.handleTechReady);
- this.on(this.tech, 'usenativecontrols', this.handleTechUseNativeControls);
// Listen to every HTML5 events and trigger them back on the player for the plugins
this.on(this.tech, 'loadstart', this.handleTechLoadStart);
@@ -8159,6 +8010,8 @@ var Player = (function (_Component) {
this.on(this.tech, 'texttrackchange', this.onTextTrackChange);
this.on(this.tech, 'loadedmetadata', this.updateStyleEl_);
+ this.usingNativeControls(this.techGet('controls'));
+
if (this.controls() && !this.usingNativeControls()) {
this.addTechControlsListeners();
}
@@ -8188,7 +8041,7 @@ var Player = (function (_Component) {
Player.prototype.unloadTech = function unloadTech() {
// Save the current text tracks so that we can reuse the same text tracks with the next tech
this.textTracks_ = this.textTracks();
- this.textTracksJson_ = _textTrackConverter2['default'].textTracksToJson(this);
+ this.textTracksJson_ = _tracksTextTrackListConverterJs2['default'].textTracksToJson(this);
this.isReady_ = false;
@@ -8204,6 +8057,9 @@ var Player = (function (_Component) {
*/
Player.prototype.addTechControlsListeners = function addTechControlsListeners() {
+ // Make sure to remove all the previous listeners in case we are called multiple times.
+ this.removeTechControlsListeners();
+
// Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do
// trigger mousedown/up.
// http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object
@@ -8264,17 +8120,6 @@ var Player = (function (_Component) {
}
};
- /**
- * Fired when the native controls are used
- *
- * @private
- * @method handleTechUseNativeControls
- */
-
- Player.prototype.handleTechUseNativeControls = function handleTechUseNativeControls() {
- this.usingNativeControls(true);
- };
-
/**
* Fired when the user agent begins looking for media data
*
@@ -8310,22 +8155,12 @@ var Player = (function (_Component) {
* @method hasStarted
*/
- Player.prototype.hasStarted = (function (_hasStarted) {
- function hasStarted(_x3) {
- return _hasStarted.apply(this, arguments);
- }
-
- hasStarted.toString = function () {
- return _hasStarted.toString();
- };
-
- return hasStarted;
- })(function (hasStarted) {
- if (hasStarted !== undefined) {
+ Player.prototype.hasStarted = function hasStarted(_hasStarted) {
+ if (_hasStarted !== undefined) {
// only update if this is a new value
- if (this.hasStarted_ !== hasStarted) {
- this.hasStarted_ = hasStarted;
- if (hasStarted) {
+ if (this.hasStarted_ !== _hasStarted) {
+ this.hasStarted_ = _hasStarted;
+ if (_hasStarted) {
this.addClass('vjs-has-started');
// trigger the firstplay event if this newly has played
this.trigger('firstplay');
@@ -8336,7 +8171,7 @@ var Player = (function (_Component) {
return this;
}
return !!this.hasStarted_;
- });
+ };
/**
* Fired whenever the media begins or resumes playback
@@ -8511,9 +8346,9 @@ var Player = (function (_Component) {
Player.prototype.handleTechClick = function handleTechClick(event) {
// We're using mousedown to detect clicks thanks to Flash, but mousedown
// will also be triggered with right-clicks, so we need to prevent that
- if (event.button !== 0) {
- return;
- } // When controls are disabled a click should not toggle playback because
+ if (event.button !== 0) return;
+
+ // When controls are disabled a click should not toggle playback because
// the click is considered a control
if (this.controls()) {
if (this.paused()) {
@@ -8640,7 +8475,8 @@ var Player = (function (_Component) {
*/
Player.prototype.handleTechError = function handleTechError() {
- this.error(this.tech.error().code);
+ var error = this.tech.error();
+ this.error(error && error.code);
};
/**
@@ -8771,13 +8607,13 @@ var Player = (function (_Component) {
// Otherwise call method now
} else {
- try {
- this.tech[method](arg);
- } catch (e) {
- _log2['default'](e);
- throw e;
+ try {
+ this.tech[method](arg);
+ } catch (e) {
+ _utilsLogJs2['default'](e);
+ throw e;
+ }
}
- }
};
/**
@@ -8799,14 +8635,14 @@ var Player = (function (_Component) {
} catch (e) {
// When building additional tech libs, an expected method may not be defined yet
if (this.tech[method] === undefined) {
- _log2['default']('Video.js: ' + method + ' method not defined for ' + this.techName + ' playback technology.', e);
+ _utilsLogJs2['default']('Video.js: ' + method + ' method not defined for ' + this.techName + ' playback technology.', e);
} else {
// When a method isn't available on the object it throws a TypeError
if (e.name === 'TypeError') {
- _log2['default']('Video.js: ' + method + ' unavailable on ' + this.techName + ' playback technology element.', e);
+ _utilsLogJs2['default']('Video.js: ' + method + ' unavailable on ' + this.techName + ' playback technology element.', e);
this.tech.isReady_ = false;
} else {
- _log2['default'](e);
+ _utilsLogJs2['default'](e);
}
}
throw e;
@@ -8988,25 +8824,15 @@ var Player = (function (_Component) {
* @method buffered
*/
- Player.prototype.buffered = (function (_buffered) {
- function buffered() {
- return _buffered.apply(this, arguments);
- }
-
- buffered.toString = function () {
- return _buffered.toString();
- };
-
- return buffered;
- })(function () {
+ Player.prototype.buffered = function buffered() {
var buffered = this.techGet('buffered');
if (!buffered || !buffered.length) {
- buffered = _createTimeRange.createTimeRange(0, 0);
+ buffered = _utilsTimeRangesJs.createTimeRange(0, 0);
}
return buffered;
- });
+ };
/**
* Get the percent (as a decimal) of the video that's been downloaded
@@ -9020,19 +8846,9 @@ var Player = (function (_Component) {
* @method bufferedPercent
*/
- Player.prototype.bufferedPercent = (function (_bufferedPercent) {
- function bufferedPercent() {
- return _bufferedPercent.apply(this, arguments);
- }
-
- bufferedPercent.toString = function () {
- return _bufferedPercent.toString();
- };
-
- return bufferedPercent;
- })(function () {
- return _bufferedPercent2.bufferedPercent(this.buffered(), this.duration());
- });
+ Player.prototype.bufferedPercent = function bufferedPercent() {
+ return _utilsBufferJs.bufferedPercent(this.buffered(), this.duration());
+ };
/**
* Get the ending time of the last buffered time range
@@ -9101,23 +8917,13 @@ var Player = (function (_Component) {
* @method muted
*/
- Player.prototype.muted = (function (_muted) {
- function muted(_x4) {
- return _muted.apply(this, arguments);
- }
-
- muted.toString = function () {
- return _muted.toString();
- };
-
- return muted;
- })(function (muted) {
- if (muted !== undefined) {
- this.techCall('setMuted', muted);
+ Player.prototype.muted = function muted(_muted) {
+ if (_muted !== undefined) {
+ this.techCall('setMuted', _muted);
return this;
}
return this.techGet('muted') || false; // Default to false
- });
+ };
// Check if current tech can support native fullscreen
// (e.g. with built in controls like iOS, so not our flash swf)
@@ -9175,7 +8981,7 @@ var Player = (function (_Component) {
*/
Player.prototype.requestFullscreen = function requestFullscreen() {
- var fsApi = _FullscreenApi2['default'];
+ var fsApi = _fullscreenApiJs2['default'];
this.isFullscreen(true);
@@ -9188,12 +8994,12 @@ var Player = (function (_Component) {
// when canceling fullscreen. Otherwise if there's multiple
// players on a page, they would all be reacting to the same fullscreen
// events
- Events.on(_document2['default'], fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e) {
- this.isFullscreen(_document2['default'][fsApi.fullscreenElement]);
+ Events.on(_globalDocument2['default'], fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e) {
+ this.isFullscreen(_globalDocument2['default'][fsApi.fullscreenElement]);
// If cancelling fullscreen, remove event listener.
if (this.isFullscreen() === false) {
- Events.off(_document2['default'], fsApi.fullscreenchange, documentFullscreenChange);
+ Events.off(_globalDocument2['default'], fsApi.fullscreenchange, documentFullscreenChange);
}
this.trigger('fullscreenchange');
@@ -9225,12 +9031,12 @@ var Player = (function (_Component) {
*/
Player.prototype.exitFullscreen = function exitFullscreen() {
- var fsApi = _FullscreenApi2['default'];
+ var fsApi = _fullscreenApiJs2['default'];
this.isFullscreen(false);
// Check for browser element fullscreen support
if (fsApi.requestFullscreen) {
- _document2['default'][fsApi.exitFullscreen]();
+ _globalDocument2['default'][fsApi.exitFullscreen]();
} else if (this.tech.supportsFullScreen()) {
this.techCall('exitFullScreen');
} else {
@@ -9251,16 +9057,16 @@ var Player = (function (_Component) {
this.isFullWindow = true;
// Storing original doc overflow value to return to when fullscreen is off
- this.docOrigOverflow = _document2['default'].documentElement.style.overflow;
+ this.docOrigOverflow = _globalDocument2['default'].documentElement.style.overflow;
// Add listener for esc key to exit fullscreen
- Events.on(_document2['default'], 'keydown', Fn.bind(this, this.fullWindowOnEscKey));
+ Events.on(_globalDocument2['default'], 'keydown', Fn.bind(this, this.fullWindowOnEscKey));
// Hide any scroll bars
- _document2['default'].documentElement.style.overflow = 'hidden';
+ _globalDocument2['default'].documentElement.style.overflow = 'hidden';
// Apply fullscreen styles
- Dom.addElClass(_document2['default'].body, 'vjs-full-window');
+ Dom.addElClass(_globalDocument2['default'].body, 'vjs-full-window');
this.trigger('enterFullWindow');
};
@@ -9290,13 +9096,13 @@ var Player = (function (_Component) {
Player.prototype.exitFullWindow = function exitFullWindow() {
this.isFullWindow = false;
- Events.off(_document2['default'], 'keydown', this.fullWindowOnEscKey);
+ Events.off(_globalDocument2['default'], 'keydown', this.fullWindowOnEscKey);
// Unhide scroll bars.
- _document2['default'].documentElement.style.overflow = this.docOrigOverflow;
+ _globalDocument2['default'].documentElement.style.overflow = this.docOrigOverflow;
// Remove fullscreen styles
- Dom.removeElClass(_document2['default'].body, 'vjs-full-window');
+ Dom.removeElClass(_globalDocument2['default'].body, 'vjs-full-window');
// Resize the box, controller, and poster to original sizes
// this.positionAll();
@@ -9314,12 +9120,12 @@ var Player = (function (_Component) {
Player.prototype.selectSource = function selectSource(sources) {
// Loop through each playback technology in the options order
for (var i = 0, j = this.options_.techOrder; i < j.length; i++) {
- var techName = _toTitleCase2['default'](j[i]);
- var tech = _Component3['default'].getComponent(techName);
+ var techName = _utilsToTitleCaseJs2['default'](j[i]);
+ var tech = _componentJs2['default'].getComponent(techName);
// Check if the current tech is defined before continuing
if (!tech) {
- _log2['default'].error('The "' + techName + '" tech is undefined. Skipped browser support check for that tech.');
+ _utilsLogJs2['default'].error('The "' + techName + '" tech is undefined. Skipped browser support check for that tech.');
continue;
}
@@ -9378,7 +9184,7 @@ var Player = (function (_Component) {
return this.techGet('src');
}
- var currentTech = _Component3['default'].getComponent(this.techName);
+ var currentTech = _componentJs2['default'].getComponent(this.techName);
// case: Array of source objects to choose from and pick the best to play
if (Array.isArray(source)) {
@@ -9386,46 +9192,46 @@ var Player = (function (_Component) {
// case: URL String (http://myvideo...)
} else if (typeof source === 'string') {
- // create a source object from the string
- this.src({ src: source });
+ // create a source object from the string
+ this.src({ src: source });
- // case: Source object { src: '', type: '' ... }
- } else if (source instanceof Object) {
- // check if the source has a type and the loaded tech cannot play the source
- // if there's no type we'll just try the current tech
- if (source.type && !currentTech.canPlaySource(source)) {
- // create a source list with the current source and send through
- // the tech loop to check for a compatible technology
- this.sourceList_([source]);
- } else {
- this.cache_.src = source.src;
- this.currentType_ = source.type || '';
-
- // wait until the tech is ready to set the source
- this.ready(function () {
-
- // The setSource tech method was added with source handlers
- // so older techs won't support it
- // We need to check the direct prototype for the case where subclasses
- // of the tech do not support source handlers
- if (currentTech.prototype.hasOwnProperty('setSource')) {
- this.techCall('setSource', source);
+ // case: Source object { src: '', type: '' ... }
+ } else if (source instanceof Object) {
+ // check if the source has a type and the loaded tech cannot play the source
+ // if there's no type we'll just try the current tech
+ if (source.type && !currentTech.canPlaySource(source)) {
+ // create a source list with the current source and send through
+ // the tech loop to check for a compatible technology
+ this.sourceList_([source]);
} else {
- this.techCall('src', source.src);
- }
+ this.cache_.src = source.src;
+ this.currentType_ = source.type || '';
- if (this.options_.preload === 'auto') {
- this.load();
- }
+ // wait until the tech is ready to set the source
+ this.ready(function () {
- if (this.options_.autoplay) {
- this.play();
- }
+ // The setSource tech method was added with source handlers
+ // so older techs won't support it
+ // We need to check the direct prototype for the case where subclasses
+ // of the tech do not support source handlers
+ if (currentTech.prototype.hasOwnProperty('setSource')) {
+ this.techCall('setSource', source);
+ } else {
+ this.techCall('src', source.src);
+ }
- // Set the source synchronously if possible (#2326)
- }, true);
- }
- }
+ if (this.options_.preload === 'auto') {
+ this.load();
+ }
+
+ if (this.options_.autoplay) {
+ this.play();
+ }
+
+ // Set the source synchronously if possible (#2326)
+ }, true);
+ }
+ }
return this;
};
@@ -9546,7 +9352,7 @@ var Player = (function (_Component) {
Player.prototype.loop = function loop(value) {
if (value !== undefined) {
this.techCall('setLoop', value);
- this.options_.loop = value;
+ this.options_['loop'] = value;
return this;
}
return this.techGet('loop');
@@ -9705,10 +9511,10 @@ var Player = (function (_Component) {
}
// error instance
- if (err instanceof _MediaError2['default']) {
+ if (err instanceof _mediaErrorJs2['default']) {
this.error_ = err;
} else {
- this.error_ = new _MediaError2['default'](err);
+ this.error_ = new _mediaErrorJs2['default'](err);
}
// fire an error event on the player
@@ -9719,7 +9525,7 @@ var Player = (function (_Component) {
// log the name of the error type and any message
// ie8 just logs "[object object]" if you just log the error object
- _log2['default'].error('(CODE:' + this.error_.code + ' ' + _MediaError2['default'].errorTypes[this.error_.code] + ')', this.error_.message, this.error_);
+ _utilsLogJs2['default'].error('(CODE:' + this.error_.code + ' ' + _mediaErrorJs2['default'].errorTypes[this.error_.code] + ')', this.error_.message, this.error_);
return this;
};
@@ -9888,7 +9694,7 @@ var Player = (function (_Component) {
// Clear any existing inactivity timeout to start the timer over
this.clearTimeout(inactivityTimeout);
- var timeout = this.options_.inactivityTimeout;
+ var timeout = this.options_['inactivityTimeout'];
if (timeout > 0) {
// In milliseconds, if no more activity has occurred the
// user will be considered inactive
@@ -9923,10 +9729,10 @@ var Player = (function (_Component) {
return this;
}
- if (this.tech && this.tech.featuresPlaybackRate) {
+ if (this.tech && this.tech['featuresPlaybackRate']) {
return this.techGet('playbackRate');
} else {
- return 1;
+ return 1.0;
}
};
@@ -10021,7 +9827,7 @@ var Player = (function (_Component) {
Player.prototype.textTracks = function textTracks() {
// cannot use techGet directly because it checks to see whether the tech is ready.
// Flash is unlikely to be ready in time but textTracks should still work.
- return this.tech && this.tech.textTracks();
+ return this.tech && this.tech['textTracks']();
};
/**
@@ -10032,7 +9838,7 @@ var Player = (function (_Component) {
*/
Player.prototype.remoteTextTracks = function remoteTextTracks() {
- return this.tech && this.tech.remoteTextTracks();
+ return this.tech && this.tech['remoteTextTracks']();
};
/**
@@ -10047,7 +9853,7 @@ var Player = (function (_Component) {
*/
Player.prototype.addTextTrack = function addTextTrack(kind, label, language) {
- return this.tech && this.tech.addTextTrack(kind, label, language);
+ return this.tech && this.tech['addTextTrack'](kind, label, language);
};
/**
@@ -10058,7 +9864,7 @@ var Player = (function (_Component) {
*/
Player.prototype.addRemoteTextTrack = function addRemoteTextTrack(options) {
- return this.tech && this.tech.addRemoteTextTrack(options);
+ return this.tech && this.tech['addRemoteTextTrack'](options);
};
/**
@@ -10069,7 +9875,7 @@ var Player = (function (_Component) {
*/
Player.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {
- this.tech && this.tech.removeRemoteTextTrack(track);
+ this.tech && this.tech['removeRemoteTextTrack'](track);
};
/**
@@ -10141,7 +9947,7 @@ var Player = (function (_Component) {
*/
Player.prototype.languages = function languages() {
- return _mergeOptions2['default'](Player.prototype.options_.languages, this.languages_);
+ return _utilsMergeOptionsJs2['default'](Player.prototype.options_.languages, this.languages_);
};
/**
@@ -10152,7 +9958,7 @@ var Player = (function (_Component) {
*/
Player.prototype.toJSON = function toJSON() {
- var options = _mergeOptions2['default'](this.options_);
+ var options = _utilsMergeOptionsJs2['default'](this.options_);
var tracks = options.tracks;
options.tracks = [];
@@ -10161,7 +9967,7 @@ var Player = (function (_Component) {
var track = tracks[i];
// deep merge tracks and null out player so no circular references
- track = _mergeOptions2['default'](track);
+ track = _utilsMergeOptionsJs2['default'](track);
track.player = undefined;
options.tracks[i] = track;
}
@@ -10180,8 +9986,8 @@ var Player = (function (_Component) {
Player.getTagSettings = function getTagSettings(tag) {
var baseOptions = {
- sources: [],
- tracks: []
+ 'sources': [],
+ 'tracks': []
};
var tagOptions = Dom.getElAttributes(tag);
@@ -10190,20 +9996,19 @@ var Player = (function (_Component) {
// Check if data-setup attr exists.
if (dataSetup !== null) {
// Parse options JSON
- // If empty string, make it a parsable json object.
- var _safeParseTuple = _safeParseTuple3['default'](dataSetup || '{}');
+ var _safeParseTuple = _safeJsonParseTuple2['default'](dataSetup || '{}');
var err = _safeParseTuple[0];
var data = _safeParseTuple[1];
if (err) {
- _log2['default'].error(err);
+ _utilsLogJs2['default'].error(err);
}
- _assign2['default'](tagOptions, data);
+ _objectAssign2['default'](tagOptions, data);
}
- _assign2['default'](baseOptions, tagOptions);
+ _objectAssign2['default'](baseOptions, tagOptions);
// Get tag children settings
if (tag.hasChildNodes()) {
@@ -10225,16 +10030,11 @@ var Player = (function (_Component) {
};
return Player;
-})(_Component3['default']);
+})(_componentJs2['default']);
-/*
- * Global player list
- *
- * @type {Object}
- */
Player.players = {};
-var navigator = _window2['default'].navigator;
+var navigator = _globalWindow2['default'].navigator;
/*
* Player instance options, surfaced using options
* options = Player.prototype.options_
@@ -10252,7 +10052,7 @@ Player.prototype.options_ = {
flash: {},
// defaultVolume: 0.85,
- defaultVolume: 0, // The freakin seaguls are driving me crazy!
+ defaultVolume: 0.00, // The freakin seaguls are driving me crazy!
// default inactivity timeout
inactivityTimeout: 2000,
@@ -10274,7 +10074,7 @@ Player.prototype.options_ = {
textTrackSettings: {}
},
- language: _document2['default'].getElementsByTagName('html')[0].getAttribute('lang') || navigator.languages && navigator.languages[0] || navigator.userLanguage || navigator.language || 'en',
+ language: _globalDocument2['default'].getElementsByTagName('html')[0].getAttribute('lang') || navigator.languages && navigator.languages[0] || navigator.userLanguage || navigator.language || 'en',
// locales and their language translations
languages: {},
@@ -10342,30 +10142,31 @@ Player.prototype.handleVolumeChange;
Player.prototype.handleError;
Player.prototype.flexNotSupported_ = function () {
- var elem = _document2['default'].createElement('i');
+ var elem = _globalDocument2['default'].createElement('i');
// Note: We don't actually use flexBasis (or flexOrder), but it's one of the more
// common flex features that we can rely on when checking for flex support.
- return !('flexBasis' in elem.style || 'webkitFlexBasis' in elem.style || 'mozFlexBasis' in elem.style || 'msFlexBasis' in elem.style || 'msFlexOrder' in elem.style /* IE10-specific (2012 flex spec) */);
+ return !('flexBasis' in elem.style || 'webkitFlexBasis' in elem.style || 'mozFlexBasis' in elem.style || 'msFlexBasis' in elem.style || 'msFlexOrder' in elem.style) /* IE10-specific (2012 flex spec) */;
};
-_Component3['default'].registerComponent('Player', Player);
+_componentJs2['default'].registerComponent('Player', Player);
exports['default'] = Player;
module.exports = exports['default'];
+// If empty string, make it a parsable json object.
-},{"./big-play-button.js":50,"./component.js":52,"./control-bar/control-bar.js":53,"./error-display.js":82,"./fullscreen-api.js":85,"./loading-spinner.js":86,"./media-error.js":87,"./poster-image.js":93,"./tech/html5.js":98,"./tech/loader.js":99,"./tracks/text-track-display.js":102,"./tracks/text-track-list-converter.js":104,"./tracks/text-track-settings.js":106,"./utils/browser.js":108,"./utils/buffer.js":109,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/guid.js":115,"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/stylesheet.js":118,"./utils/time-ranges.js":119,"./utils/to-title-case.js":120,"global/document":1,"global/window":2,"object.assign":44,"safe-json-parse/tuple":49}],92:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./big-play-button.js":46,"./component.js":48,"./control-bar/control-bar.js":49,"./error-display.js":78,"./fullscreen-api.js":81,"./loading-spinner.js":82,"./media-error.js":83,"./poster-image.js":89,"./tech/html5.js":94,"./tech/loader.js":95,"./tracks/text-track-display.js":98,"./tracks/text-track-list-converter.js":100,"./tracks/text-track-settings.js":102,"./utils/browser.js":104,"./utils/buffer.js":105,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/guid.js":111,"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/stylesheet.js":114,"./utils/time-ranges.js":115,"./utils/to-title-case.js":116,"global/document":1,"global/window":2,"object.assign":40,"safe-json-parse/tuple":45}],88:[function(_dereq_,module,exports){
/**
* @file plugins.js
*/
+'use strict';
-var _Player = _dereq_('./player.js');
+exports.__esModule = true;
-var _Player2 = _interopRequireWildcard(_Player);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _playerJs = _dereq_('./player.js');
+
+var _playerJs2 = _interopRequireDefault(_playerJs);
/**
* The method for registering a video.js plugin
@@ -10375,45 +10176,47 @@ var _Player2 = _interopRequireWildcard(_Player);
* @method plugin
*/
var plugin = function plugin(name, init) {
- _Player2['default'].prototype[name] = init;
+ _playerJs2['default'].prototype[name] = init;
};
exports['default'] = plugin;
module.exports = exports['default'];
-},{"./player.js":91}],93:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./player.js":87}],89:[function(_dereq_,module,exports){
/**
* @file poster-image.js
*/
+'use strict';
-var _Button2 = _dereq_('./button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('./component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('./utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _buttonJs = _dereq_('./button.js');
-var _import2 = _dereq_('./utils/dom.js');
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
-var Dom = _interopRequireWildcard(_import2);
+var _componentJs = _dereq_('./component.js');
-var _import3 = _dereq_('./utils/browser.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var browser = _interopRequireWildcard(_import3);
+var _utilsFnJs = _dereq_('./utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsDomJs = _dereq_('./utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsBrowserJs = _dereq_('./utils/browser.js');
+
+var browser = _interopRequireWildcard(_utilsBrowserJs);
/**
* The component that handles showing the poster image.
@@ -10425,6 +10228,8 @@ var browser = _interopRequireWildcard(_import3);
*/
var PosterImage = (function (_Button) {
+ _inherits(PosterImage, _Button);
+
function PosterImage(player, options) {
_classCallCheck(this, PosterImage);
@@ -10434,8 +10239,6 @@ var PosterImage = (function (_Button) {
player.on('posterchange', Fn.bind(this, this.update));
}
- _inherits(PosterImage, _Button);
-
/**
* Clean up the poster image
*
@@ -10533,36 +10336,38 @@ var PosterImage = (function (_Button) {
};
return PosterImage;
-})(_Button3['default']);
+})(_buttonJs2['default']);
-_Component2['default'].registerComponent('PosterImage', PosterImage);
+_componentJs2['default'].registerComponent('PosterImage', PosterImage);
exports['default'] = PosterImage;
module.exports = exports['default'];
-},{"./button.js":51,"./component.js":52,"./utils/browser.js":108,"./utils/dom.js":111,"./utils/fn.js":113}],94:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./button.js":47,"./component.js":48,"./utils/browser.js":104,"./utils/dom.js":107,"./utils/fn.js":109}],90:[function(_dereq_,module,exports){
/**
* @file setup.js
*
* Functions for automatically setting up a player
* based on the data-setup attribute of the video tag
*/
+'use strict';
-var _import = _dereq_('./utils/events.js');
+exports.__esModule = true;
-var Events = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document = _dereq_('global/document');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _document2 = _interopRequireWildcard(_document);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _window = _dereq_('global/window');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _window2 = _interopRequireWildcard(_window);
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
var _windowLoaded = false;
var videojs = undefined;
@@ -10576,8 +10381,8 @@ var autoSetup = function autoSetup() {
// Because IE8 doesn't support calling slice on a node list, we need to loop through each list of elements
// to build up a new, combined list of elements.
- var vids = _document2['default'].getElementsByTagName('video');
- var audios = _document2['default'].getElementsByTagName('audio');
+ var vids = _globalDocument2['default'].getElementsByTagName('video');
+ var audios = _globalDocument2['default'].getElementsByTagName('audio');
var mediaEls = [];
if (vids && vids.length > 0) {
for (var i = 0, e = vids.length; i < e; i++) {
@@ -10601,7 +10406,7 @@ var autoSetup = function autoSetup() {
if (mediaEl && mediaEl.getAttribute) {
// Make sure this player hasn't already been set up.
- if (mediaEl.player === undefined) {
+ if (mediaEl['player'] === undefined) {
var options = mediaEl.getAttribute('data-setup');
// Check if data-setup attr exists.
@@ -10614,15 +10419,15 @@ var autoSetup = function autoSetup() {
// If getAttribute isn't defined, we need to wait for the DOM.
} else {
- autoSetupTimeout(1);
- break;
- }
+ autoSetupTimeout(1);
+ break;
+ }
}
// No videos were found, so keep looping unless page is finished loading.
} else if (!_windowLoaded) {
- autoSetupTimeout(1);
- }
+ autoSetupTimeout(1);
+ }
};
// Pause to let the DOM keep processing
@@ -10631,10 +10436,10 @@ var autoSetupTimeout = function autoSetupTimeout(wait, vjs) {
setTimeout(autoSetup, wait);
};
-if (_document2['default'].readyState === 'complete') {
+if (_globalDocument2['default'].readyState === 'complete') {
_windowLoaded = true;
} else {
- Events.one(_window2['default'], 'load', function () {
+ Events.one(_globalWindow2['default'], 'load', function () {
_windowLoaded = true;
});
}
@@ -10647,35 +10452,37 @@ exports.autoSetup = autoSetup;
exports.autoSetupTimeout = autoSetupTimeout;
exports.hasLoaded = hasLoaded;
-},{"./utils/events.js":112,"global/document":1,"global/window":2}],95:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./utils/events.js":108,"global/document":1,"global/window":2}],91:[function(_dereq_,module,exports){
/**
* @file slider.js
*/
+'use strict';
-var _Component2 = _dereq_('../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _document = _dereq_('global/document');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _document2 = _interopRequireWildcard(_document);
+var _componentJs = _dereq_('../component.js');
-var _assign = _dereq_('object.assign');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/**
* The base functionality for sliders like the volume bar and seek bar
@@ -10687,6 +10494,8 @@ var _assign2 = _interopRequireWildcard(_assign);
*/
var Slider = (function (_Component) {
+ _inherits(Slider, _Component);
+
function Slider(player, options) {
_classCallCheck(this, Slider);
@@ -10708,8 +10517,6 @@ var Slider = (function (_Component) {
this.on(player, this.playerEvent, this.update);
}
- _inherits(Slider, _Component);
-
/**
* Create the component's DOM element
*
@@ -10720,12 +10527,12 @@ var Slider = (function (_Component) {
*/
Slider.prototype.createEl = function createEl(type) {
- var props = arguments[1] === undefined ? {} : arguments[1];
+ var props = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
// Add the slider element class to all sub classes
props.className = props.className + ' vjs-slider';
- props = _assign2['default']({
- role: 'slider',
+ props = _objectAssign2['default']({
+ 'role': 'slider',
'aria-valuenow': 0,
'aria-valuemin': 0,
'aria-valuemax': 100,
@@ -10747,10 +10554,10 @@ var Slider = (function (_Component) {
Dom.blockTextSelection();
this.addClass('vjs-sliding');
- this.on(_document2['default'], 'mousemove', this.handleMouseMove);
- this.on(_document2['default'], 'mouseup', this.handleMouseUp);
- this.on(_document2['default'], 'touchmove', this.handleMouseMove);
- this.on(_document2['default'], 'touchend', this.handleMouseUp);
+ this.on(_globalDocument2['default'], 'mousemove', this.handleMouseMove);
+ this.on(_globalDocument2['default'], 'mouseup', this.handleMouseUp);
+ this.on(_globalDocument2['default'], 'touchmove', this.handleMouseMove);
+ this.on(_globalDocument2['default'], 'touchend', this.handleMouseUp);
this.handleMouseMove(event);
};
@@ -10773,10 +10580,10 @@ var Slider = (function (_Component) {
Dom.unblockTextSelection();
this.removeClass('vjs-sliding');
- this.off(_document2['default'], 'mousemove', this.handleMouseMove);
- this.off(_document2['default'], 'mouseup', this.handleMouseUp);
- this.off(_document2['default'], 'touchmove', this.handleMouseMove);
- this.off(_document2['default'], 'touchend', this.handleMouseUp);
+ this.off(_globalDocument2['default'], 'mousemove', this.handleMouseMove);
+ this.off(_globalDocument2['default'], 'mouseup', this.handleMouseUp);
+ this.off(_globalDocument2['default'], 'touchmove', this.handleMouseMove);
+ this.off(_globalDocument2['default'], 'touchend', this.handleMouseUp);
this.update();
};
@@ -10790,18 +10597,18 @@ var Slider = (function (_Component) {
Slider.prototype.update = function update() {
// In VolumeBar init we have a setTimeout for update that pops and update to the end of the
// execution stack. The player is destroyed before then update will cause an error
- if (!this.el_) {
- return;
- } // If scrubbing, we could use a cached value to make the handle keep up with the user's mouse.
+ if (!this.el_) return;
+
+ // If scrubbing, we could use a cached value to make the handle keep up with the user's mouse.
// On HTML5 browsers scrubbing is really smooth, but some flash players are slow, so we might want to utilize this later.
// var progress = (this.player_.scrubbing()) ? this.player_.getCache().currentTime / this.player_.duration() : this.player_.currentTime() / this.player_.duration();
var progress = this.getPercent();
var bar = this.bar;
// If there's no bar...
- if (!bar) {
- return;
- } // Protect against no duration and other division issues
+ if (!bar) return;
+
+ // Protect against no duration and other division issues
if (typeof progress !== 'number' || progress !== progress || progress < 0 || progress === Infinity) {
progress = 0;
}
@@ -10864,7 +10671,7 @@ var Slider = (function (_Component) {
*/
Slider.prototype.handleFocus = function handleFocus() {
- this.on(_document2['default'], 'keydown', this.handleKeyPress);
+ this.on(_globalDocument2['default'], 'keydown', this.handleKeyPress);
};
/**
@@ -10893,7 +10700,7 @@ var Slider = (function (_Component) {
*/
Slider.prototype.handleBlur = function handleBlur() {
- this.off(_document2['default'], 'keydown', this.handleKeyPress);
+ this.off(_globalDocument2['default'], 'keydown', this.handleKeyPress);
};
/**
@@ -10934,19 +10741,19 @@ var Slider = (function (_Component) {
};
return Slider;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('Slider', Slider);
+_componentJs2['default'].registerComponent('Slider', Slider);
exports['default'] = Slider;
module.exports = exports['default'];
-},{"../component.js":52,"../utils/dom.js":111,"global/document":1,"object.assign":44}],96:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"../component.js":48,"../utils/dom.js":107,"global/document":1,"object.assign":40}],92:[function(_dereq_,module,exports){
/**
* @file flash-rtmp.js
*/
+'use strict';
+
+exports.__esModule = true;
function FlashRtmpDecorator(Flash) {
Flash.streamingFormats = {
'rtmp/mp4': 'MP4',
@@ -11027,8 +10834,8 @@ function FlashRtmpDecorator(Flash) {
Flash.rtmpSourceHandler.handleSource = function (source, tech) {
var srcParts = Flash.streamToParts(source.src);
- tech.setRtmpConnection(srcParts.connection);
- tech.setRtmpStream(srcParts.stream);
+ tech['setRtmpConnection'](srcParts.connection);
+ tech['setRtmpStream'](srcParts.stream);
};
// Register the native source handler
@@ -11040,16 +10847,7 @@ function FlashRtmpDecorator(Flash) {
exports['default'] = FlashRtmpDecorator;
module.exports = exports['default'];
-},{}],97:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{}],93:[function(_dereq_,module,exports){
/**
* @file flash.js
* VideoJS-SWF - Custom Flash Player with HTML5-ish API
@@ -11057,37 +10855,49 @@ exports.__esModule = true;
* Not using setupTriggers. Using global onEvent func to distribute events
*/
-var _Tech2 = _dereq_('./tech');
+'use strict';
-var _Tech3 = _interopRequireWildcard(_Tech2);
+exports.__esModule = true;
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var Dom = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _import2 = _dereq_('../utils/url.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var Url = _interopRequireWildcard(_import2);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _createTimeRange = _dereq_('../utils/time-ranges.js');
+var _tech = _dereq_('./tech');
-var _FlashRtmpDecorator = _dereq_('./flash-rtmp');
+var _tech2 = _interopRequireDefault(_tech);
-var _FlashRtmpDecorator2 = _interopRequireWildcard(_FlashRtmpDecorator);
+var _utilsDomJs = _dereq_('../utils/dom.js');
-var _Component = _dereq_('../component');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _Component2 = _interopRequireWildcard(_Component);
+var _utilsUrlJs = _dereq_('../utils/url.js');
-var _window = _dereq_('global/window');
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsTimeRangesJs = _dereq_('../utils/time-ranges.js');
-var _assign = _dereq_('object.assign');
+var _flashRtmp = _dereq_('./flash-rtmp');
-var _assign2 = _interopRequireWildcard(_assign);
+var _flashRtmp2 = _interopRequireDefault(_flashRtmp);
-var navigator = _window2['default'].navigator;
+var _component = _dereq_('../component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var navigator = _globalWindow2['default'].navigator;
/**
* Flash Media Controller - Wrapper for fallback SWF API
*
@@ -11098,6 +10908,8 @@ var navigator = _window2['default'].navigator;
*/
var Flash = (function (_Tech) {
+ _inherits(Flash, _Tech);
+
function Flash(options, ready) {
_classCallCheck(this, Flash);
@@ -11124,18 +10936,18 @@ var Flash = (function (_Tech) {
// A 4.x workflow we weren't able to solve for in 5.0
// because of the need to hard code these functions
// into the swf for security reasons
- _window2['default'].videojs = _window2['default'].videojs || {};
- _window2['default'].videojs.Flash = _window2['default'].videojs.Flash || {};
- _window2['default'].videojs.Flash.onReady = Flash.onReady;
- _window2['default'].videojs.Flash.onEvent = Flash.onEvent;
- _window2['default'].videojs.Flash.onError = Flash.onError;
+ _globalWindow2['default'].videojs = _globalWindow2['default'].videojs || {};
+ _globalWindow2['default'].videojs.Flash = _globalWindow2['default'].videojs.Flash || {};
+ _globalWindow2['default'].videojs.Flash.onReady = Flash.onReady;
+ _globalWindow2['default'].videojs.Flash.onEvent = Flash.onEvent;
+ _globalWindow2['default'].videojs.Flash.onError = Flash.onError;
this.on('seeked', function () {
this.lastSeekTarget_ = undefined;
});
}
- _inherits(Flash, _Tech);
+ // Create setters and getters for attributes
/**
* Create the component's DOM element
@@ -11151,31 +10963,31 @@ var Flash = (function (_Tech) {
var objId = options.techId;
// Merge default flashvars with ones passed in to init
- var flashVars = _assign2['default']({
+ var flashVars = _objectAssign2['default']({
// SWF Callback Functions
- readyFunction: 'videojs.Flash.onReady',
- eventProxyFunction: 'videojs.Flash.onEvent',
- errorEventProxyFunction: 'videojs.Flash.onError',
+ 'readyFunction': 'videojs.Flash.onReady',
+ 'eventProxyFunction': 'videojs.Flash.onEvent',
+ 'errorEventProxyFunction': 'videojs.Flash.onError',
// Player Settings
- autoplay: options.autoplay,
- preload: options.preload,
- loop: options.loop,
- muted: options.muted
+ 'autoplay': options.autoplay,
+ 'preload': options.preload,
+ 'loop': options.loop,
+ 'muted': options.muted
}, options.flashVars);
// Merge default parames with ones passed in
- var params = _assign2['default']({
- wmode: 'opaque', // Opaque is needed to overlay controls, but can affect playback performance
- bgcolor: '#000000' // Using bgcolor prevents a white flash when the object is loading
+ var params = _objectAssign2['default']({
+ 'wmode': 'opaque', // Opaque is needed to overlay controls, but can affect playback performance
+ 'bgcolor': '#000000' // Using bgcolor prevents a white flash when the object is loading
}, options.params);
// Merge default attributes with ones passed in
- var attributes = _assign2['default']({
- id: objId,
- name: objId, // Both ID and Name needed or swf to identify itself
+ var attributes = _objectAssign2['default']({
+ 'id': objId,
+ 'name': objId, // Both ID and Name needed or swf to identify itself
'class': 'vjs-tech'
}, options.attributes);
@@ -11192,6 +11004,9 @@ var Flash = (function (_Tech) {
*/
Flash.prototype.play = function play() {
+ if (this.ended()) {
+ this.setCurrentTime(0);
+ }
this.el_.vjs_play();
};
@@ -11213,24 +11028,14 @@ var Flash = (function (_Tech) {
* @method src
*/
- Flash.prototype.src = (function (_src) {
- function src(_x) {
- return _src.apply(this, arguments);
- }
-
- src.toString = function () {
- return _src.toString();
- };
-
- return src;
- })(function (src) {
- if (src === undefined) {
+ Flash.prototype.src = function src(_src) {
+ if (_src === undefined) {
return this.currentSrc();
}
// Setting src through `src` not `setSrc` will be deprecated
- return this.setSrc(src);
- });
+ return this.setSrc(_src);
+ };
/**
* Set video
@@ -11354,9 +11159,9 @@ var Flash = (function (_Tech) {
Flash.prototype.seekable = function seekable() {
var duration = this.duration();
if (duration === 0) {
- return _createTimeRange.createTimeRange();
+ return _utilsTimeRangesJs.createTimeRange();
}
- return _createTimeRange.createTimeRange(0, duration);
+ return _utilsTimeRangesJs.createTimeRange(0, duration);
};
/**
@@ -11367,7 +11172,11 @@ var Flash = (function (_Tech) {
*/
Flash.prototype.buffered = function buffered() {
- return _createTimeRange.createTimeRange(0, this.el_.vjs_getProperty('buffered'));
+ var ranges = this.el_.vjs_getProperty('buffered');
+ if (ranges.length === 0) {
+ return _utilsTimeRangesJs.createTimeRange();
+ }
+ return _utilsTimeRangesJs.createTimeRange(ranges[0][0], ranges[0][1]);
};
/**
@@ -11397,12 +11206,11 @@ var Flash = (function (_Tech) {
};
return Flash;
-})(_Tech3['default']);
+})(_tech2['default']);
-// Create setters and getters for attributes
var _api = Flash.prototype;
var _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');
-var _readOnly = 'error,networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');
+var _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');
function _createSetter(attr) {
var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);
@@ -11435,7 +11243,7 @@ Flash.isSupported = function () {
};
// Add Source Handler pattern functions to this tech
-_Tech3['default'].withSourceHandlers(Flash);
+_tech2['default'].withSourceHandlers(Flash);
/*
* The default native source handler.
@@ -11532,7 +11340,7 @@ Flash.checkReady = function (tech) {
} else {
// wait longer
this.setTimeout(function () {
- Flash.checkReady(tech);
+ Flash['checkReady'](tech);
}, 50);
}
};
@@ -11546,15 +11354,14 @@ Flash.onEvent = function (swfID, eventName) {
// Log errors from the swf
Flash.onError = function (swfID, err) {
var tech = Dom.getEl(swfID).tech;
- var msg = 'FLASH: ' + err;
+ // trigger MEDIA_ERR_SRC_NOT_SUPPORTED
if (err === 'srcnotfound') {
- tech.trigger('error', { code: 4, message: msg });
-
- // errors we haven't categorized into the media errors
- } else {
- tech.trigger('error', msg);
+ return tech.error(4);
}
+
+ // trigger a custom error
+ tech.error('FLASH: ' + err);
};
// Flash Version Check
@@ -11563,7 +11370,7 @@ Flash.version = function () {
// IE
try {
- version = new _window2['default'].ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
+ version = new _globalWindow2['default'].ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
// other browsers
} catch (e) {
@@ -11595,16 +11402,16 @@ Flash.getEmbedCode = function (swf, flashVars, params, attributes) {
// Convert flash vars to string
if (flashVars) {
Object.getOwnPropertyNames(flashVars).forEach(function (key) {
- flashVarsString += '' + key + '=' + flashVars[key] + '&';
+ flashVarsString += key + '=' + flashVars[key] + '&';
});
}
// Add swf, flashVars, and other default params
- params = _assign2['default']({
- movie: swf,
- flashvars: flashVarsString,
- allowScriptAccess: 'always', // Required to talk to swf
- allowNetworking: 'all' // All should be default, but having security issues.
+ params = _objectAssign2['default']({
+ 'movie': swf,
+ 'flashvars': flashVarsString,
+ 'allowScriptAccess': 'always', // Required to talk to swf
+ 'allowNetworking': 'all' // All should be default, but having security issues.
}, params);
// Create param tags string
@@ -11612,89 +11419,92 @@ Flash.getEmbedCode = function (swf, flashVars, params, attributes) {
paramsString += '';
});
- attributes = _assign2['default']({
+ attributes = _objectAssign2['default']({
// Add swf to attributes (need both for IE and Others to work)
- data: swf,
+ 'data': swf,
// Default to 100% width/height
- width: '100%',
- height: '100%'
+ 'width': '100%',
+ 'height': '100%'
}, attributes);
// Create Attributes string
Object.getOwnPropertyNames(attributes).forEach(function (key) {
- attrsString += '' + key + '="' + attributes[key] + '" ';
+ attrsString += key + '="' + attributes[key] + '" ';
});
- return '' + objTag + '' + attrsString + '>' + paramsString + '';
+ return '' + objTag + attrsString + '>' + paramsString + '';
};
// Run Flash through the RTMP decorator
-_FlashRtmpDecorator2['default'](Flash);
+_flashRtmp2['default'](Flash);
-_Component2['default'].registerComponent('Flash', Flash);
+_component2['default'].registerComponent('Flash', Flash);
exports['default'] = Flash;
module.exports = exports['default'];
-},{"../component":52,"../utils/dom.js":111,"../utils/time-ranges.js":119,"../utils/url.js":121,"./flash-rtmp":96,"./tech":100,"global/window":2,"object.assign":44}],98:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/dom.js":107,"../utils/time-ranges.js":115,"../utils/url.js":117,"./flash-rtmp":92,"./tech":96,"global/window":2,"object.assign":40}],94:[function(_dereq_,module,exports){
/**
* @file html5.js
* HTML5 Media Controller - Wrapper for HTML5 Media API
*/
-var _Tech2 = _dereq_('./tech.js');
+'use strict';
-var _Tech3 = _interopRequireWildcard(_Tech2);
+exports.__esModule = true;
-var _Component = _dereq_('../component');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _import = _dereq_('../utils/dom.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var Dom = _interopRequireWildcard(_import);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _import2 = _dereq_('../utils/url.js');
+var _techJs = _dereq_('./tech.js');
-var Url = _interopRequireWildcard(_import2);
+var _techJs2 = _interopRequireDefault(_techJs);
-var _import3 = _dereq_('../utils/fn.js');
+var _component = _dereq_('../component');
-var Fn = _interopRequireWildcard(_import3);
+var _component2 = _interopRequireDefault(_component);
-var _log = _dereq_('../utils/log.js');
+var _utilsDomJs = _dereq_('../utils/dom.js');
-var _log2 = _interopRequireWildcard(_log);
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _import4 = _dereq_('../utils/browser.js');
+var _utilsUrlJs = _dereq_('../utils/url.js');
-var browser = _interopRequireWildcard(_import4);
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _document = _dereq_('global/document');
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _document2 = _interopRequireWildcard(_document);
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _window = _dereq_('global/window');
+var _utilsLogJs = _dereq_('../utils/log.js');
-var _window2 = _interopRequireWildcard(_window);
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _assign = _dereq_('object.assign');
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
-var _assign2 = _interopRequireWildcard(_assign);
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _mergeOptions = _dereq_('../utils/merge-options.js');
+var _globalDocument = _dereq_('global/document');
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var _utilsMergeOptionsJs = _dereq_('../utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
/**
* HTML5 Media Controller - Wrapper for HTML5 Media API
@@ -11706,6 +11516,8 @@ var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
*/
var Html5 = (function (_Tech) {
+ _inherits(Html5, _Tech);
+
function Html5(options, ready) {
_classCallCheck(this, Html5);
@@ -11759,14 +11571,22 @@ var Html5 = (function (_Tech) {
// Our goal should be to get the custom controls on mobile solid everywhere
// so we can remove this all together. Right now this will block custom
// controls on touch enabled laptops like the Chrome Pixel
- if (browser.TOUCH_ENABLED && options.nativeControlsForTouch === true) {
- this.trigger('usenativecontrols');
+ if (browser.TOUCH_ENABLED && options.nativeControlsForTouch === true || browser.IS_IPHONE || browser.IS_NATIVE_ANDROID) {
+ this.setControls(true);
}
this.triggerReady();
}
- _inherits(Html5, _Tech);
+ /* HTML5 Support Testing ---------------------------------------------------- */
+
+ /*
+ * Element for testing browser HTML5 video capabilities
+ *
+ * @type {Element}
+ * @constant
+ * @private
+ */
/**
* Dispose of html5 media element
@@ -11809,7 +11629,7 @@ var Html5 = (function (_Tech) {
// Check if this browser supports moving the element into the box.
// On the iPhone video will break if you move the element,
// So we have to create a brand new element.
- if (!el || this.movingMediaElementInDOM === false) {
+ if (!el || this['movingMediaElementInDOM'] === false) {
// If the original tag is still there, clone and remove it.
if (el) {
@@ -11818,16 +11638,16 @@ var Html5 = (function (_Tech) {
Html5.disposeMediaElement(el);
el = clone;
} else {
- el = _document2['default'].createElement('video');
+ el = _globalDocument2['default'].createElement('video');
// determine if native controls should be used
var tagAttributes = this.options_.tag && Dom.getElAttributes(this.options_.tag);
- var attributes = _mergeOptions2['default']({}, tagAttributes);
+ var attributes = _utilsMergeOptionsJs2['default']({}, tagAttributes);
if (!browser.TOUCH_ENABLED || this.options_.nativeControlsForTouch !== true) {
delete attributes.controls;
}
- Dom.setElAttributes(el, _assign2['default'](attributes, {
+ Dom.setElAttributes(el, _objectAssign2['default'](attributes, {
id: this.options_.techId,
'class': 'vjs-tech'
}));
@@ -11930,7 +11750,7 @@ var Html5 = (function (_Tech) {
try {
this.el_.currentTime = seconds;
} catch (e) {
- _log2['default'](e, 'Video is not ready. (Video.js)');
+ _utilsLogJs2['default'](e, 'Video is not ready. (Video.js)');
// this.warning(VideoJS.warnings.videoNotReady);
}
};
@@ -12034,7 +11854,7 @@ var Html5 = (function (_Tech) {
Html5.prototype.supportsFullScreen = function supportsFullScreen() {
if (typeof this.el_.webkitEnterFullScreen === 'function') {
- var userAgent = _window2['default'].navigator.userAgent;
+ var userAgent = _globalWindow2['default'].navigator.userAgent;
// Seems to be broken in Chromium/Chrome && Safari in Leopard
if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {
return true;
@@ -12096,24 +11916,14 @@ var Html5 = (function (_Tech) {
* @method src
*/
- Html5.prototype.src = (function (_src) {
- function src(_x) {
- return _src.apply(this, arguments);
- }
-
- src.toString = function () {
- return _src.toString();
- };
-
- return src;
- })(function (src) {
- if (src === undefined) {
+ Html5.prototype.src = function src(_src) {
+ if (_src === undefined) {
return this.el_.src;
} else {
// Setting src through `src` instead of `setSrc` will be deprecated
- this.setSrc(src);
+ this.setSrc(_src);
}
- });
+ };
/**
* Set video
@@ -12430,7 +12240,7 @@ var Html5 = (function (_Tech) {
*/
Html5.prototype.addTextTrack = function addTextTrack(kind, label, language) {
- if (!this.featuresNativeTextTracks) {
+ if (!this['featuresNativeTextTracks']) {
return _Tech.prototype.addTextTrack.call(this, kind, label, language);
}
@@ -12447,31 +12257,31 @@ var Html5 = (function (_Tech) {
*/
Html5.prototype.addRemoteTextTrack = function addRemoteTextTrack() {
- var options = arguments[0] === undefined ? {} : arguments[0];
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
- if (!this.featuresNativeTextTracks) {
+ if (!this['featuresNativeTextTracks']) {
return _Tech.prototype.addRemoteTextTrack.call(this, options);
}
- var track = _document2['default'].createElement('track');
+ var track = _globalDocument2['default'].createElement('track');
- if (options.kind) {
- track.kind = options.kind;
+ if (options['kind']) {
+ track['kind'] = options['kind'];
}
- if (options.label) {
- track.label = options.label;
+ if (options['label']) {
+ track['label'] = options['label'];
}
- if (options.language || options.srclang) {
- track.srclang = options.language || options.srclang;
+ if (options['language'] || options['srclang']) {
+ track['srclang'] = options['language'] || options['srclang'];
}
if (options['default']) {
track['default'] = options['default'];
}
- if (options.id) {
- track.id = options.id;
+ if (options['id']) {
+ track['id'] = options['id'];
}
- if (options.src) {
- track.src = options.src;
+ if (options['src']) {
+ track['src'] = options['src'];
}
this.el().appendChild(track);
@@ -12489,7 +12299,7 @@ var Html5 = (function (_Tech) {
*/
Html5.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {
- if (!this.featuresNativeTextTracks) {
+ if (!this['featuresNativeTextTracks']) {
return _Tech.prototype.removeRemoteTextTrack.call(this, track);
}
@@ -12508,19 +12318,10 @@ var Html5 = (function (_Tech) {
};
return Html5;
-})(_Tech3['default']);
+})(_techJs2['default']);
-/* HTML5 Support Testing ---------------------------------------------------- */
-
-/*
-* Element for testing browser HTML5 video capabilities
-*
-* @type {Element}
-* @constant
-* @private
-*/
-Html5.TEST_VID = _document2['default'].createElement('video');
-var track = _document2['default'].createElement('track');
+Html5.TEST_VID = _globalDocument2['default'].createElement('video');
+var track = _globalDocument2['default'].createElement('track');
track.kind = 'captions';
track.srclang = 'en';
track.label = 'English';
@@ -12534,7 +12335,7 @@ Html5.TEST_VID.appendChild(track);
Html5.isSupported = function () {
// IE9 with no Media Player is a LIAR! (#984)
try {
- Html5.TEST_VID.volume = 0.5;
+ Html5.TEST_VID['volume'] = 0.5;
} catch (e) {
return false;
}
@@ -12543,7 +12344,7 @@ Html5.isSupported = function () {
};
// Add Source Handler pattern functions to this tech
-_Tech3['default'].withSourceHandlers(Html5);
+_techJs2['default'].withSourceHandlers(Html5);
/*
* The default native source handler.
@@ -12646,7 +12447,7 @@ Html5.supportsNativeTextTracks = function () {
// TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862
supportsTextTracks = !!Html5.TEST_VID.textTracks;
if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {
- supportsTextTracks = typeof Html5.TEST_VID.textTracks[0].mode !== 'number';
+ supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';
}
if (supportsTextTracks && browser.IS_FIREFOX) {
supportsTextTracks = false;
@@ -12671,14 +12472,14 @@ Html5.Events = ['loadstart', 'suspend', 'abort', 'error', 'emptied', 'stalled',
*
* @type {Boolean}
*/
-Html5.prototype.featuresVolumeControl = Html5.canControlVolume();
+Html5.prototype['featuresVolumeControl'] = Html5.canControlVolume();
/*
* Set the tech's playbackRate support status
*
* @type {Boolean}
*/
-Html5.prototype.featuresPlaybackRate = Html5.canControlPlaybackRate();
+Html5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();
/*
* Set the tech's status on moving the video element.
@@ -12686,27 +12487,27 @@ Html5.prototype.featuresPlaybackRate = Html5.canControlPlaybackRate();
*
* @type {Boolean}
*/
-Html5.prototype.movingMediaElementInDOM = !browser.IS_IOS;
+Html5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;
/*
* Set the the tech's fullscreen resize support status.
* HTML video is able to automatically resize when going to fullscreen.
* (No longer appears to be used. Can probably be removed.)
*/
-Html5.prototype.featuresFullscreenResize = true;
+Html5.prototype['featuresFullscreenResize'] = true;
/*
* Set the tech's progress event support status
* (this disables the manual progress events of the Tech)
*/
-Html5.prototype.featuresProgressEvents = true;
+Html5.prototype['featuresProgressEvents'] = true;
/*
* Sets the tech's status on native text track support
*
* @type {Boolean}
*/
-Html5.prototype.featuresNativeTextTracks = Html5.supportsNativeTextTracks();
+Html5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();
// HTML5 Feature detection and Device Fixes --------------------------------- //
var canPlayType = undefined;
@@ -12715,7 +12516,7 @@ var mp4RE = /^video\/mp4/i;
Html5.patchCanPlayType = function () {
// Android 4.0 and above can play HLS to some extent but it reports being unable to do so
- if (browser.ANDROID_VERSION >= 4) {
+ if (browser.ANDROID_VERSION >= 4.0) {
if (!canPlayType) {
canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;
}
@@ -12778,42 +12579,42 @@ Html5.disposeMediaElement = function (el) {
(function () {
try {
el.load();
- } catch (e) {}
+ } catch (e) {
+ // not supported
+ }
})();
}
};
-_Component2['default'].registerComponent('Html5', Html5);
+_component2['default'].registerComponent('Html5', Html5);
exports['default'] = Html5;
module.exports = exports['default'];
-// not supported
-
-},{"../component":52,"../utils/browser.js":108,"../utils/dom.js":111,"../utils/fn.js":113,"../utils/log.js":116,"../utils/merge-options.js":117,"../utils/url.js":121,"./tech.js":100,"global/document":1,"global/window":2,"object.assign":44}],99:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/browser.js":104,"../utils/dom.js":107,"../utils/fn.js":109,"../utils/log.js":112,"../utils/merge-options.js":113,"../utils/url.js":117,"./tech.js":96,"global/document":1,"global/window":2,"object.assign":40}],95:[function(_dereq_,module,exports){
/**
* @file loader.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _window = _dereq_('global/window');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _window2 = _interopRequireWildcard(_window);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _toTitleCase = _dereq_('../utils/to-title-case.js');
+var _component = _dereq_('../component');
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _component2 = _interopRequireDefault(_component);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _utilsToTitleCaseJs = _dereq_('../utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
/**
* The Media Loader is the component that decides which playback technology to load
@@ -12827,6 +12628,8 @@ var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
*/
var MediaLoader = (function (_Component) {
+ _inherits(MediaLoader, _Component);
+
function MediaLoader(player, options, ready) {
_classCallCheck(this, MediaLoader);
@@ -12835,10 +12638,10 @@ var MediaLoader = (function (_Component) {
// If there are no sources when the player is initialized,
// load the first supported playback technology.
- if (!options.playerOptions.sources || options.playerOptions.sources.length === 0) {
- for (var i = 0, j = options.playerOptions.techOrder; i < j.length; i++) {
- var techName = _toTitleCase2['default'](j[i]);
- var tech = _Component3['default'].getComponent(techName);
+ if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {
+ for (var i = 0, j = options.playerOptions['techOrder']; i < j.length; i++) {
+ var techName = _utilsToTitleCaseJs2['default'](j[i]);
+ var tech = _component2['default'].getComponent(techName);
// Check if the browser supports this technology
if (tech && tech.isSupported()) {
@@ -12851,66 +12654,71 @@ var MediaLoader = (function (_Component) {
// // Then load the best source.
// // A few assumptions here:
// // All playback technologies respect preload false.
- player.src(options.playerOptions.sources);
+ player.src(options.playerOptions['sources']);
}
}
- _inherits(MediaLoader, _Component);
-
return MediaLoader;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('MediaLoader', MediaLoader);
+_component2['default'].registerComponent('MediaLoader', MediaLoader);
exports['default'] = MediaLoader;
module.exports = exports['default'];
-},{"../component":52,"../utils/to-title-case.js":120,"global/window":2}],100:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/to-title-case.js":116,"global/window":2}],96:[function(_dereq_,module,exports){
/**
* @file tech.js
* Media Technology Controller - Base class for media playback
* technology controllers like Flash and HTML5
*/
-var _Component2 = _dereq_('../component');
+'use strict';
-var _Component3 = _interopRequireWildcard(_Component2);
+exports.__esModule = true;
-var _TextTrack = _dereq_('../tracks/text-track');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _TextTrack2 = _interopRequireWildcard(_TextTrack);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _TextTrackList = _dereq_('../tracks/text-track-list');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _TextTrackList2 = _interopRequireWildcard(_TextTrackList);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _import = _dereq_('../utils/fn.js');
+var _component = _dereq_('../component');
-var Fn = _interopRequireWildcard(_import);
+var _component2 = _interopRequireDefault(_component);
-var _log = _dereq_('../utils/log.js');
+var _tracksTextTrack = _dereq_('../tracks/text-track');
-var _log2 = _interopRequireWildcard(_log);
+var _tracksTextTrack2 = _interopRequireDefault(_tracksTextTrack);
-var _createTimeRange = _dereq_('../utils/time-ranges.js');
+var _tracksTextTrackList = _dereq_('../tracks/text-track-list');
-var _bufferedPercent2 = _dereq_('../utils/buffer.js');
+var _tracksTextTrackList2 = _interopRequireDefault(_tracksTextTrackList);
-var _window = _dereq_('global/window');
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _window2 = _interopRequireWildcard(_window);
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _document = _dereq_('global/document');
+var _utilsLogJs = _dereq_('../utils/log.js');
-var _document2 = _interopRequireWildcard(_document);
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
+
+var _utilsTimeRangesJs = _dereq_('../utils/time-ranges.js');
+
+var _utilsBufferJs = _dereq_('../utils/buffer.js');
+
+var _mediaErrorJs = _dereq_('../media-error.js');
+
+var _mediaErrorJs2 = _interopRequireDefault(_mediaErrorJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* Base class for media (HTML5 Video, Flash) controllers
@@ -12922,9 +12730,11 @@ var _document2 = _interopRequireWildcard(_document);
*/
var Tech = (function (_Component) {
+ _inherits(Tech, _Component);
+
function Tech() {
- var options = arguments[0] === undefined ? {} : arguments[0];
- var ready = arguments[1] === undefined ? function () {} : arguments[1];
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
+ var ready = arguments.length <= 1 || arguments[1] === undefined ? function () {} : arguments[1];
_classCallCheck(this, Tech);
@@ -12971,7 +12781,12 @@ var Tech = (function (_Component) {
this.emitTapEvents();
}
- _inherits(Tech, _Component);
+ /*
+ * List of associated text tracks
+ *
+ * @type {Array}
+ * @private
+ */
/**
* Set up click and touch listeners for the playback element
@@ -13082,7 +12897,7 @@ var Tech = (function (_Component) {
*/
Tech.prototype.buffered = function buffered() {
- return _createTimeRange.createTimeRange(0, 0);
+ return _utilsTimeRangesJs.createTimeRange(0, 0);
};
/**
@@ -13092,19 +12907,9 @@ var Tech = (function (_Component) {
* @method bufferedPercent
*/
- Tech.prototype.bufferedPercent = (function (_bufferedPercent) {
- function bufferedPercent() {
- return _bufferedPercent.apply(this, arguments);
- }
-
- bufferedPercent.toString = function () {
- return _bufferedPercent.toString();
- };
-
- return bufferedPercent;
- })(function () {
- return _bufferedPercent2.bufferedPercent(this.buffered(), this.duration_);
- });
+ Tech.prototype.bufferedPercent = function bufferedPercent() {
+ return _utilsBufferJs.bufferedPercent(this.buffered(), this.duration_);
+ };
/**
* Stops tracking progress by clearing progress interval
@@ -13180,10 +12985,13 @@ var Tech = (function (_Component) {
Tech.prototype.dispose = function dispose() {
// clear out text tracks because we can't reuse them between techs
- var tt = this.textTracks();
- var i = tt.length;
- while (i--) {
- this.removeRemoteTextTrack(tt[i]);
+ var textTracks = this.textTracks();
+
+ if (textTracks) {
+ var i = textTracks.length;
+ while (i--) {
+ this.removeRemoteTextTrack(textTracks[i]);
+ }
}
// Turn off any manual progress or timeupdate tracking
@@ -13198,6 +13006,28 @@ var Tech = (function (_Component) {
_Component.prototype.dispose.call(this);
};
+ /**
+ * When invoked without an argument, returns a MediaError object
+ * representing the current error state of the player or null if
+ * there is no error. When invoked with an argument, set the current
+ * error state of the player.
+ * @param {MediaError=} err Optional an error object
+ * @return {MediaError} the current error object or null
+ * @method error
+ */
+
+ Tech.prototype.error = function error(err) {
+ if (err !== undefined) {
+ if (err instanceof _mediaErrorJs2['default']) {
+ this.error_ = err;
+ } else {
+ this.error_ = new _mediaErrorJs2['default'](err);
+ }
+ this.trigger('error');
+ }
+ return this.error_;
+ };
+
/**
* Return the time ranges that have been played through for the
* current source. This implementation is incomplete. It does not
@@ -13210,9 +13040,9 @@ var Tech = (function (_Component) {
Tech.prototype.played = function played() {
if (this.hasStarted_) {
- return _createTimeRange.createTimeRange(0, 0);
+ return _utilsTimeRangesJs.createTimeRange(0, 0);
}
- return _createTimeRange.createTimeRange();
+ return _utilsTimeRangesJs.createTimeRange();
};
/**
@@ -13241,9 +13071,9 @@ var Tech = (function (_Component) {
var tracks = this.textTracks();
- if (!tracks) {
- return;
- }tracks.addEventListener('removetrack', textTrackListChanges);
+ if (!tracks) return;
+
+ tracks.addEventListener('removetrack', textTrackListChanges);
tracks.addEventListener('addtrack', textTrackListChanges);
this.on('dispose', Fn.bind(this, function () {
@@ -13259,11 +13089,11 @@ var Tech = (function (_Component) {
*/
Tech.prototype.emulateTextTracks = function emulateTextTracks() {
- if (!_window2['default'].WebVTT && this.el().parentNode != null) {
- var script = _document2['default'].createElement('script');
+ if (!_globalWindow2['default']['WebVTT'] && this.el().parentNode != null) {
+ var script = _globalDocument2['default'].createElement('script');
script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';
this.el().parentNode.appendChild(script);
- _window2['default'].WebVTT = true;
+ _globalWindow2['default']['WebVTT'] = true;
}
var tracks = this.textTracks();
@@ -13310,7 +13140,7 @@ var Tech = (function (_Component) {
*/
Tech.prototype.textTracks = function textTracks() {
- this.textTracks_ = this.textTracks_ || new _TextTrackList2['default']();
+ this.textTracks_ = this.textTracks_ || new _tracksTextTrackList2['default']();
return this.textTracks_;
};
@@ -13322,7 +13152,7 @@ var Tech = (function (_Component) {
*/
Tech.prototype.remoteTextTracks = function remoteTextTracks() {
- this.remoteTextTracks_ = this.remoteTextTracks_ || new _TextTrackList2['default']();
+ this.remoteTextTracks_ = this.remoteTextTracks_ || new _tracksTextTrackList2['default']();
return this.remoteTextTracks_;
};
@@ -13385,18 +13215,12 @@ var Tech = (function (_Component) {
Tech.prototype.setPoster = function setPoster() {};
return Tech;
-})(_Component3['default']);
+})(_component2['default']);
-/*
- * List of associated text tracks
- *
- * @type {Array}
- * @private
- */
Tech.prototype.textTracks_;
var createTrackHelper = function createTrackHelper(self, kind, label, language) {
- var options = arguments[4] === undefined ? {} : arguments[4];
+ var options = arguments.length <= 4 || arguments[4] === undefined ? {} : arguments[4];
var tracks = self.textTracks();
@@ -13410,7 +13234,7 @@ var createTrackHelper = function createTrackHelper(self, kind, label, language)
}
options.tech = self;
- var track = new _TextTrack2['default'](options);
+ var track = new _tracksTextTrack2['default'](options);
tracks.addTrack_(track);
return track;
@@ -13525,7 +13349,7 @@ Tech.withSourceHandlers = function (_Tech) {
if (_Tech.nativeSourceHandler) {
sh = _Tech.nativeSourceHandler;
} else {
- _log2['default'].error('No source hander found for the current source.');
+ _utilsLogJs2['default'].error('No source hander found for the current source.');
}
}
@@ -13550,29 +13374,31 @@ Tech.withSourceHandlers = function (_Tech) {
};
};
-_Component3['default'].registerComponent('Tech', Tech);
+_component2['default'].registerComponent('Tech', Tech);
// Old name for Tech
-_Component3['default'].registerComponent('MediaTechController', Tech);
+_component2['default'].registerComponent('MediaTechController', Tech);
exports['default'] = Tech;
module.exports = exports['default'];
-},{"../component":52,"../tracks/text-track":107,"../tracks/text-track-list":105,"../utils/buffer.js":109,"../utils/fn.js":113,"../utils/log.js":116,"../utils/time-ranges.js":119,"global/document":1,"global/window":2}],101:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../component":48,"../media-error.js":83,"../tracks/text-track":103,"../tracks/text-track-list":101,"../utils/buffer.js":105,"../utils/fn.js":109,"../utils/log.js":112,"../utils/time-ranges.js":115,"global/document":1,"global/window":2}],97:[function(_dereq_,module,exports){
/**
* @file text-track-cue-list.js
*/
+'use strict';
-var _import = _dereq_('../utils/browser.js');
+exports.__esModule = true;
-var browser = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document = _dereq_('global/document');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _document2 = _interopRequireWildcard(_document);
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
+
+var browser = _interopRequireWildcard(_utilsBrowserJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/*
* https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist
@@ -13584,21 +13410,11 @@ var _document2 = _interopRequireWildcard(_document);
* };
*/
-var TextTrackCueList = (function (_TextTrackCueList) {
- function TextTrackCueList(_x) {
- return _TextTrackCueList.apply(this, arguments);
- }
-
- TextTrackCueList.toString = function () {
- return _TextTrackCueList.toString();
- };
-
- return TextTrackCueList;
-})(function (cues) {
+var TextTrackCueList = function TextTrackCueList(cues) {
var list = this;
if (browser.IS_IE8) {
- list = _document2['default'].createElement('custom');
+ list = _globalDocument2['default'].createElement('custom');
for (var prop in TextTrackCueList.prototype) {
list[prop] = TextTrackCueList.prototype[prop];
@@ -13616,7 +13432,7 @@ var TextTrackCueList = (function (_TextTrackCueList) {
if (browser.IS_IE8) {
return list;
}
-});
+};
TextTrackCueList.prototype.setCues_ = function (cues) {
var oldLength = this.length || 0;
@@ -13661,47 +13477,49 @@ TextTrackCueList.prototype.getCueById = function (id) {
exports['default'] = TextTrackCueList;
module.exports = exports['default'];
-},{"../utils/browser.js":108,"global/document":1}],102:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../utils/browser.js":104,"global/document":1}],98:[function(_dereq_,module,exports){
/**
* @file text-track-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Menu = _dereq_('../menu/menu.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Menu2 = _interopRequireWildcard(_Menu);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _MenuItem = _dereq_('../menu/menu-item.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _MenuItem2 = _interopRequireWildcard(_MenuItem);
+var _component = _dereq_('../component');
-var _MenuButton = _dereq_('../menu/menu-button.js');
+var _component2 = _interopRequireDefault(_component);
-var _MenuButton2 = _interopRequireWildcard(_MenuButton);
+var _menuMenuJs = _dereq_('../menu/menu.js');
-var _import = _dereq_('../utils/fn.js');
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuItemJs = _dereq_('../menu/menu-item.js');
-var _document = _dereq_('global/document');
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
-var _document2 = _interopRequireWildcard(_document);
+var _menuMenuButtonJs = _dereq_('../menu/menu-button.js');
-var _window = _dereq_('global/window');
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsFnJs = _dereq_('../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
var darkGray = '#222';
var lightGray = '#ccc';
@@ -13729,6 +13547,8 @@ var fontMap = {
*/
var TextTrackDisplay = (function (_Component) {
+ _inherits(TextTrackDisplay, _Component);
+
function TextTrackDisplay(player, options, ready) {
_classCallCheck(this, TextTrackDisplay);
@@ -13742,14 +13562,14 @@ var TextTrackDisplay = (function (_Component) {
// Should probably be moved to an external track loader when we support
// tracks that don't need a display.
player.ready(Fn.bind(this, function () {
- if (player.tech && player.tech.featuresNativeTextTracks) {
+ if (player.tech && player.tech['featuresNativeTextTracks']) {
this.hide();
return;
}
player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));
- var tracks = this.options_.playerOptions.tracks || [];
+ var tracks = this.options_.playerOptions['tracks'] || [];
for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
this.player_.addRemoteTextTrack(track);
@@ -13757,7 +13577,14 @@ var TextTrackDisplay = (function (_Component) {
}));
}
- _inherits(TextTrackDisplay, _Component);
+ /**
+ * Add cue HTML to display
+ *
+ * @param {Number} color Hex number for color, like #f0e
+ * @param {Number} opacity Value for opacity,0.0 - 1.0
+ * @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'
+ * @method constructColor
+ */
/**
* Toggle display texttracks
@@ -13766,7 +13593,7 @@ var TextTrackDisplay = (function (_Component) {
*/
TextTrackDisplay.prototype.toggleDisplay = function toggleDisplay() {
- if (this.player_.tech && this.player_.tech.featuresNativeTextTracks) {
+ if (this.player_.tech && this.player_.tech['featuresNativeTextTracks']) {
this.hide();
} else {
this.show();
@@ -13793,8 +13620,8 @@ var TextTrackDisplay = (function (_Component) {
*/
TextTrackDisplay.prototype.clearDisplay = function clearDisplay() {
- if (typeof _window2['default'].WebVTT === 'function') {
- _window2['default'].WebVTT.processCues(_window2['default'], [], this.el_);
+ if (typeof _globalWindow2['default']['WebVTT'] === 'function') {
+ _globalWindow2['default']['WebVTT']['processCues'](_globalWindow2['default'], [], this.el_);
}
};
@@ -13815,7 +13642,7 @@ var TextTrackDisplay = (function (_Component) {
for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
- if (track.mode === 'showing') {
+ if (track['mode'] === 'showing') {
this.updateForTrack(track);
}
}
@@ -13829,18 +13656,18 @@ var TextTrackDisplay = (function (_Component) {
*/
TextTrackDisplay.prototype.updateForTrack = function updateForTrack(track) {
- if (typeof _window2['default'].WebVTT !== 'function' || !track.activeCues) {
+ if (typeof _globalWindow2['default']['WebVTT'] !== 'function' || !track['activeCues']) {
return;
}
- var overrides = this.player_.textTrackSettings.getValues();
+ var overrides = this.player_['textTrackSettings'].getValues();
var cues = [];
- for (var _i = 0; _i < track.activeCues.length; _i++) {
- cues.push(track.activeCues[_i]);
+ for (var _i = 0; _i < track['activeCues'].length; _i++) {
+ cues.push(track['activeCues'][_i]);
}
- _window2['default'].WebVTT.processCues(_window2['default'], track.activeCues, this.el_);
+ _globalWindow2['default']['WebVTT']['processCues'](_globalWindow2['default'], track['activeCues'], this.el_);
var i = cues.length;
while (i--) {
@@ -13876,7 +13703,7 @@ var TextTrackDisplay = (function (_Component) {
}
}
if (overrides.fontPercent && overrides.fontPercent !== 1) {
- var fontSize = _window2['default'].parseFloat(cueDiv.style.fontSize);
+ var fontSize = _globalWindow2['default'].parseFloat(cueDiv.style.fontSize);
cueDiv.style.fontSize = fontSize * overrides.fontPercent + 'px';
cueDiv.style.height = 'auto';
cueDiv.style.top = 'auto';
@@ -13893,16 +13720,8 @@ var TextTrackDisplay = (function (_Component) {
};
return TextTrackDisplay;
-})(_Component3['default']);
+})(_component2['default']);
-/**
-* Add cue HTML to display
-*
-* @param {Number} color Hex number for color, like #f0e
-* @param {Number} opacity Value for opacity,0.0 - 1.0
-* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'
-* @method constructColor
-*/
function constructColor(color, opacity) {
return 'rgba(' +
// color looks like "#f0e"
@@ -13925,14 +13744,11 @@ function tryUpdateStyle(el, style, rule) {
} catch (e) {}
}
-_Component3['default'].registerComponent('TextTrackDisplay', TextTrackDisplay);
+_component2['default'].registerComponent('TextTrackDisplay', TextTrackDisplay);
exports['default'] = TextTrackDisplay;
module.exports = exports['default'];
-},{"../component":52,"../menu/menu-button.js":88,"../menu/menu-item.js":89,"../menu/menu.js":90,"../utils/fn.js":113,"global/document":1,"global/window":2}],103:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"../component":48,"../menu/menu-button.js":84,"../menu/menu-item.js":85,"../menu/menu.js":86,"../utils/fn.js":109,"global/document":1,"global/window":2}],99:[function(_dereq_,module,exports){
/**
* @file text-track-enums.js
*
@@ -13940,10 +13756,13 @@ exports.__esModule = true;
*
* enum TextTrackMode { "disabled", "hidden", "showing" };
*/
+'use strict';
+
+exports.__esModule = true;
var TextTrackMode = {
- disabled: 'disabled',
- hidden: 'hidden',
- showing: 'showing'
+ 'disabled': 'disabled',
+ 'hidden': 'hidden',
+ 'showing': 'showing'
};
/*
@@ -13952,20 +13771,17 @@ var TextTrackMode = {
* enum TextTrackKind { "subtitles", "captions", "descriptions", "chapters", "metadata" };
*/
var TextTrackKind = {
- subtitles: 'subtitles',
- captions: 'captions',
- descriptions: 'descriptions',
- chapters: 'chapters',
- metadata: 'metadata'
+ 'subtitles': 'subtitles',
+ 'captions': 'captions',
+ 'descriptions': 'descriptions',
+ 'chapters': 'chapters',
+ 'metadata': 'metadata'
};
exports.TextTrackMode = TextTrackMode;
exports.TextTrackKind = TextTrackKind;
-},{}],104:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{}],100:[function(_dereq_,module,exports){
/**
* Utilities for capturing text track state and re-creating tracks
* based on a capture.
@@ -13980,6 +13796,9 @@ exports.__esModule = true;
* @return {Object} a serializable javascript representation of the
* @private
*/
+'use strict';
+
+exports.__esModule = true;
var trackToJson_ = function trackToJson_(track) {
return {
kind: track.kind,
@@ -14049,31 +13868,33 @@ var jsonToTextTracks = function jsonToTextTracks(json, tech) {
exports['default'] = { textTracksToJson: textTracksToJson, jsonToTextTracks: jsonToTextTracks, trackToJson_: trackToJson_ };
module.exports = exports['default'];
-},{}],105:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{}],101:[function(_dereq_,module,exports){
/**
* @file text-track-list.js
*/
+'use strict';
-var _EventTarget = _dereq_('../event-target');
+exports.__esModule = true;
-var _EventTarget2 = _interopRequireWildcard(_EventTarget);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/fn.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Fn = _interopRequireWildcard(_import);
+var _eventTarget = _dereq_('../event-target');
-var _import2 = _dereq_('../utils/browser.js');
+var _eventTarget2 = _interopRequireDefault(_eventTarget);
-var browser = _interopRequireWildcard(_import2);
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _document = _dereq_('global/document');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _document2 = _interopRequireWildcard(_document);
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
+
+var browser = _interopRequireWildcard(_utilsBrowserJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/*
* https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist
@@ -14088,21 +13909,11 @@ var _document2 = _interopRequireWildcard(_document);
* attribute EventHandler onremovetrack;
* };
*/
-var TextTrackList = (function (_TextTrackList) {
- function TextTrackList(_x) {
- return _TextTrackList.apply(this, arguments);
- }
-
- TextTrackList.toString = function () {
- return _TextTrackList.toString();
- };
-
- return TextTrackList;
-})(function (tracks) {
+var TextTrackList = function TextTrackList(tracks) {
var list = this;
if (browser.IS_IE8) {
- list = _document2['default'].createElement('custom');
+ list = _globalDocument2['default'].createElement('custom');
for (var prop in TextTrackList.prototype) {
list[prop] = TextTrackList.prototype[prop];
@@ -14125,9 +13936,9 @@ var TextTrackList = (function (_TextTrackList) {
if (browser.IS_IE8) {
return list;
}
-});
+};
-TextTrackList.prototype = Object.create(_EventTarget2['default'].prototype);
+TextTrackList.prototype = Object.create(_eventTarget2['default'].prototype);
TextTrackList.prototype.constructor = TextTrackList;
/*
@@ -14136,9 +13947,9 @@ TextTrackList.prototype.constructor = TextTrackList;
* removetrack - A track has been removed from the track list.
*/
TextTrackList.prototype.allowedEvents_ = {
- change: 'change',
- addtrack: 'addtrack',
- removetrack: 'removetrack'
+ 'change': 'change',
+ 'addtrack': 'addtrack',
+ 'removetrack': 'removetrack'
};
// emulate attribute EventHandler support to allow for feature detection
@@ -14202,43 +14013,45 @@ TextTrackList.prototype.getTrackById = function (id) {
exports['default'] = TextTrackList;
module.exports = exports['default'];
-},{"../event-target":83,"../utils/browser.js":108,"../utils/fn.js":113,"global/document":1}],106:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../event-target":79,"../utils/browser.js":104,"../utils/fn.js":109,"global/document":1}],102:[function(_dereq_,module,exports){
/**
* @file text-track-settings.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/events.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Events = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import2 = _dereq_('../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import2);
+var _component = _dereq_('../component');
-var _log = _dereq_('../utils/log.js');
+var _component2 = _interopRequireDefault(_component);
-var _log2 = _interopRequireWildcard(_log);
+var _utilsEventsJs = _dereq_('../utils/events.js');
-var _safeParseTuple2 = _dereq_('safe-json-parse/tuple');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _safeParseTuple3 = _interopRequireWildcard(_safeParseTuple2);
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _window = _dereq_('global/window');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsLogJs = _dereq_('../utils/log.js');
+
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
+
+var _safeJsonParseTuple = _dereq_('safe-json-parse/tuple');
+
+var _safeJsonParseTuple2 = _interopRequireDefault(_safeJsonParseTuple);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/**
* Manipulate settings of texttracks
@@ -14250,6 +14063,8 @@ var _window2 = _interopRequireWildcard(_window);
*/
var TextTrackSettings = (function (_Component) {
+ _inherits(TextTrackSettings, _Component);
+
function TextTrackSettings(player, options) {
_classCallCheck(this, TextTrackSettings);
@@ -14294,8 +14109,6 @@ var TextTrackSettings = (function (_Component) {
}
}
- _inherits(TextTrackSettings, _Component);
-
/**
* Create the component's DOM element
*
@@ -14337,21 +14150,21 @@ var TextTrackSettings = (function (_Component) {
var bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));
var windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));
var windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));
- var fontPercent = _window2['default'].parseFloat(getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));
+ var fontPercent = _globalWindow2['default']['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));
var result = {
- backgroundOpacity: bgOpacity,
- textOpacity: textOpacity,
- windowOpacity: windowOpacity,
- edgeStyle: textEdge,
- fontFamily: fontFamily,
- color: fgColor,
- backgroundColor: bgColor,
- windowColor: windowColor,
- fontPercent: fontPercent
+ 'backgroundOpacity': bgOpacity,
+ 'textOpacity': textOpacity,
+ 'windowOpacity': windowOpacity,
+ 'edgeStyle': textEdge,
+ 'fontFamily': fontFamily,
+ 'color': fgColor,
+ 'backgroundColor': bgColor,
+ 'windowColor': windowColor,
+ 'fontPercent': fontPercent
};
for (var _name in result) {
- if (result[_name] === '' || result[_name] === 'none' || _name === 'fontPercent' && result[_name] === 1) {
+ if (result[_name] === '' || result[_name] === 'none' || _name === 'fontPercent' && result[_name] === 1.00) {
delete result[_name];
}
}
@@ -14402,13 +14215,13 @@ var TextTrackSettings = (function (_Component) {
*/
TextTrackSettings.prototype.restoreSettings = function restoreSettings() {
- var _safeParseTuple = _safeParseTuple3['default'](_window2['default'].localStorage.getItem('vjs-text-track-settings'));
+ var _safeParseTuple = _safeJsonParseTuple2['default'](_globalWindow2['default'].localStorage.getItem('vjs-text-track-settings'));
var err = _safeParseTuple[0];
var values = _safeParseTuple[1];
if (err) {
- _log2['default'].error(err);
+ _utilsLogJs2['default'].error(err);
}
if (values) {
@@ -14430,9 +14243,9 @@ var TextTrackSettings = (function (_Component) {
var values = this.getValues();
try {
if (Object.getOwnPropertyNames(values).length > 0) {
- _window2['default'].localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));
+ _globalWindow2['default'].localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));
} else {
- _window2['default'].localStorage.removeItem('vjs-text-track-settings');
+ _globalWindow2['default'].localStorage.removeItem('vjs-text-track-settings');
}
} catch (e) {}
};
@@ -14451,9 +14264,9 @@ var TextTrackSettings = (function (_Component) {
};
return TextTrackSettings;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('TextTrackSettings', TextTrackSettings);
+_component2['default'].registerComponent('TextTrackSettings', TextTrackSettings);
function getSelectedOptionValue(target) {
var selectedOption = undefined;
@@ -14492,55 +14305,57 @@ function captionOptionsMenuTemplate() {
exports['default'] = TextTrackSettings;
module.exports = exports['default'];
-},{"../component":52,"../utils/events.js":112,"../utils/fn.js":113,"../utils/log.js":116,"global/window":2,"safe-json-parse/tuple":49}],107:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/events.js":108,"../utils/fn.js":109,"../utils/log.js":112,"global/window":2,"safe-json-parse/tuple":45}],103:[function(_dereq_,module,exports){
/**
* @file text-track.js
*/
+'use strict';
-var _TextTrackCueList = _dereq_('./text-track-cue-list');
+exports.__esModule = true;
-var _TextTrackCueList2 = _interopRequireWildcard(_TextTrackCueList);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/fn.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Fn = _interopRequireWildcard(_import);
+var _textTrackCueList = _dereq_('./text-track-cue-list');
-var _import2 = _dereq_('../utils/guid.js');
+var _textTrackCueList2 = _interopRequireDefault(_textTrackCueList);
-var Guid = _interopRequireWildcard(_import2);
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _import3 = _dereq_('../utils/browser.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var browser = _interopRequireWildcard(_import3);
+var _utilsGuidJs = _dereq_('../utils/guid.js');
-var _import4 = _dereq_('./text-track-enums');
+var Guid = _interopRequireWildcard(_utilsGuidJs);
-var TextTrackEnum = _interopRequireWildcard(_import4);
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
-var _log = _dereq_('../utils/log.js');
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _log2 = _interopRequireWildcard(_log);
+var _textTrackEnums = _dereq_('./text-track-enums');
-var _EventTarget = _dereq_('../event-target');
+var TextTrackEnum = _interopRequireWildcard(_textTrackEnums);
-var _EventTarget2 = _interopRequireWildcard(_EventTarget);
+var _utilsLogJs = _dereq_('../utils/log.js');
-var _document = _dereq_('global/document');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _document2 = _interopRequireWildcard(_document);
+var _eventTarget = _dereq_('../event-target');
-var _window = _dereq_('global/window');
+var _eventTarget2 = _interopRequireDefault(_eventTarget);
-var _window2 = _interopRequireWildcard(_window);
+var _globalDocument = _dereq_('global/document');
-var _XHR = _dereq_('../xhr.js');
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var _XHR2 = _interopRequireWildcard(_XHR);
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _xhrJs = _dereq_('../xhr.js');
+
+var _xhrJs2 = _interopRequireDefault(_xhrJs);
/*
* https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack
@@ -14564,18 +14379,8 @@ var _XHR2 = _interopRequireWildcard(_XHR);
* attribute EventHandler oncuechange;
* };
*/
-var TextTrack = (function (_TextTrack) {
- function TextTrack() {
- return _TextTrack.apply(this, arguments);
- }
-
- TextTrack.toString = function () {
- return _TextTrack.toString();
- };
-
- return TextTrack;
-})(function () {
- var options = arguments[0] === undefined ? {} : arguments[0];
+var TextTrack = function TextTrack() {
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
if (!options.tech) {
throw new Error('A tech was not provided.');
@@ -14583,7 +14388,7 @@ var TextTrack = (function (_TextTrack) {
var tt = this;
if (browser.IS_IE8) {
- tt = _document2['default'].createElement('custom');
+ tt = _globalDocument2['default'].createElement('custom');
for (var prop in TextTrack.prototype) {
tt[prop] = TextTrack.prototype[prop];
@@ -14592,11 +14397,11 @@ var TextTrack = (function (_TextTrack) {
tt.tech_ = options.tech;
- var mode = TextTrackEnum.TextTrackMode[options.mode] || 'disabled';
- var kind = TextTrackEnum.TextTrackKind[options.kind] || 'subtitles';
- var label = options.label || '';
- var language = options.language || options.srclang || '';
- var id = options.id || 'vjs_text_track_' + Guid.newGUID();
+ var mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';
+ var kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';
+ var label = options['label'] || '';
+ var language = options['language'] || options['srclang'] || '';
+ var id = options['id'] || 'vjs_text_track_' + Guid.newGUID();
if (kind === 'metadata' || kind === 'chapters') {
mode = 'hidden';
@@ -14605,14 +14410,14 @@ var TextTrack = (function (_TextTrack) {
tt.cues_ = [];
tt.activeCues_ = [];
- var cues = new _TextTrackCueList2['default'](tt.cues_);
- var activeCues = new _TextTrackCueList2['default'](tt.activeCues_);
+ var cues = new _textTrackCueList2['default'](tt.cues_);
+ var activeCues = new _textTrackCueList2['default'](tt.activeCues_);
var changed = false;
var timeupdateHandler = Fn.bind(tt, function () {
- this.activeCues;
+ this['activeCues'];
if (changed) {
- this.trigger('cuechange');
+ this['trigger']('cuechange');
changed = false;
}
});
@@ -14681,18 +14486,18 @@ var TextTrack = (function (_TextTrack) {
return null;
}
- if (this.cues.length === 0) {
+ if (this['cues'].length === 0) {
return activeCues; // nothing to do
}
var ct = this.tech_.currentTime();
var active = [];
- for (var i = 0, l = this.cues.length; i < l; i++) {
- var cue = this.cues[i];
- if (cue.startTime <= ct && cue.endTime >= ct) {
+ for (var i = 0, l = this['cues'].length; i < l; i++) {
+ var cue = this['cues'][i];
+ if (cue['startTime'] <= ct && cue['endTime'] >= ct) {
active.push(cue);
- } else if (cue.startTime === cue.endTime && cue.startTime <= ct && cue.startTime + 0.5 >= ct) {
+ } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {
active.push(cue);
}
}
@@ -14727,16 +14532,16 @@ var TextTrack = (function (_TextTrack) {
if (browser.IS_IE8) {
return tt;
}
-});
+};
-TextTrack.prototype = Object.create(_EventTarget2['default'].prototype);
+TextTrack.prototype = Object.create(_eventTarget2['default'].prototype);
TextTrack.prototype.constructor = TextTrack;
/*
* cuechange - One or more cues in the track have become active or stopped being active.
*/
TextTrack.prototype.allowedEvents_ = {
- cuechange: 'cuechange'
+ 'cuechange': 'cuechange'
};
TextTrack.prototype.addCue = function (cue) {
@@ -14751,7 +14556,7 @@ TextTrack.prototype.addCue = function (cue) {
}
this.cues_.push(cue);
- this.cues.setCues_(this.cues_);
+ this['cues'].setCues_(this.cues_);
};
TextTrack.prototype.removeCue = function (removeCue) {
@@ -14773,41 +14578,31 @@ TextTrack.prototype.removeCue = function (removeCue) {
/*
* Downloading stuff happens below this point
*/
-var parseCues = (function (_parseCues) {
- function parseCues(_x, _x2) {
- return _parseCues.apply(this, arguments);
- }
-
- parseCues.toString = function () {
- return _parseCues.toString();
- };
-
- return parseCues;
-})(function (srcContent, track) {
- if (typeof _window2['default'].WebVTT !== 'function') {
+var parseCues = function parseCues(srcContent, track) {
+ if (typeof _globalWindow2['default']['WebVTT'] !== 'function') {
//try again a bit later
- return _window2['default'].setTimeout(function () {
+ return _globalWindow2['default'].setTimeout(function () {
parseCues(srcContent, track);
}, 25);
}
- var parser = new _window2['default'].WebVTT.Parser(_window2['default'], _window2['default'].vttjs, _window2['default'].WebVTT.StringDecoder());
+ var parser = new _globalWindow2['default']['WebVTT']['Parser'](_globalWindow2['default'], _globalWindow2['default']['vttjs'], _globalWindow2['default']['WebVTT']['StringDecoder']());
- parser.oncue = function (cue) {
+ parser['oncue'] = function (cue) {
track.addCue(cue);
};
- parser.onparsingerror = function (error) {
- _log2['default'].error(error);
+ parser['onparsingerror'] = function (error) {
+ _utilsLogJs2['default'].error(error);
};
- parser.parse(srcContent);
- parser.flush();
-});
+ parser['parse'](srcContent);
+ parser['flush']();
+};
var loadTrack = function loadTrack(src, track) {
- _XHR2['default'](src, Fn.bind(this, function (err, response, responseBody) {
+ _xhrJs2['default'](src, Fn.bind(this, function (err, response, responseBody) {
if (err) {
- return _log2['default'].error(err);
+ return _utilsLogJs2['default'].error(err, response);
}
track.loaded_ = true;
@@ -14852,25 +14647,27 @@ var indexOf = function indexOf(searchElement, fromIndex) {
exports['default'] = TextTrack;
module.exports = exports['default'];
-},{"../event-target":83,"../utils/browser.js":108,"../utils/fn.js":113,"../utils/guid.js":115,"../utils/log.js":116,"../xhr.js":123,"./text-track-cue-list":101,"./text-track-enums":103,"global/document":1,"global/window":2}],108:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../event-target":79,"../utils/browser.js":104,"../utils/fn.js":109,"../utils/guid.js":111,"../utils/log.js":112,"../xhr.js":119,"./text-track-cue-list":97,"./text-track-enums":99,"global/document":1,"global/window":2}],104:[function(_dereq_,module,exports){
/**
* @file browser.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _window = _dereq_('global/window');
+var _globalDocument = _dereq_('global/document');
-var _window2 = _interopRequireWildcard(_window);
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var USER_AGENT = _window2['default'].navigator.userAgent;
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var USER_AGENT = _globalWindow2['default'].navigator.userAgent;
+var webkitVersionMap = /AppleWebKit\/([\d.]+)/i.exec(USER_AGENT);
+var appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;
/*
* Device is an iPhone
@@ -14923,8 +14720,10 @@ var ANDROID_VERSION = (function () {
exports.ANDROID_VERSION = ANDROID_VERSION;
// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser
var IS_OLD_ANDROID = IS_ANDROID && /webkit/i.test(USER_AGENT) && ANDROID_VERSION < 2.3;
-
exports.IS_OLD_ANDROID = IS_OLD_ANDROID;
+var IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;
+
+exports.IS_NATIVE_ANDROID = IS_NATIVE_ANDROID;
var IS_FIREFOX = /Firefox/i.test(USER_AGENT);
exports.IS_FIREFOX = IS_FIREFOX;
var IS_CHROME = /Chrome/i.test(USER_AGENT);
@@ -14932,15 +14731,21 @@ exports.IS_CHROME = IS_CHROME;
var IS_IE8 = /MSIE\s8\.0/.test(USER_AGENT);
exports.IS_IE8 = IS_IE8;
-var TOUCH_ENABLED = !!('ontouchstart' in _window2['default'] || _window2['default'].DocumentTouch && _document2['default'] instanceof _window2['default'].DocumentTouch);
+var TOUCH_ENABLED = !!('ontouchstart' in _globalWindow2['default'] || _globalWindow2['default'].DocumentTouch && _globalDocument2['default'] instanceof _globalWindow2['default'].DocumentTouch);
exports.TOUCH_ENABLED = TOUCH_ENABLED;
-var BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _document2['default'].createElement('video').style);
+var BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _globalDocument2['default'].createElement('video').style);
exports.BACKGROUND_SIZE_SUPPORTED = BACKGROUND_SIZE_SUPPORTED;
-},{"global/document":1,"global/window":2}],109:[function(_dereq_,module,exports){
+},{"global/document":1,"global/window":2}],105:[function(_dereq_,module,exports){
+/**
+ * @file buffer.js
+ */
'use strict';
exports.__esModule = true;
+exports.bufferedPercent = bufferedPercent;
+
+var _timeRangesJs = _dereq_('./time-ranges.js');
/**
* Compute how much your video has been buffered
@@ -14951,12 +14756,6 @@ exports.__esModule = true;
* @private
* @function bufferedPercent
*/
-exports.bufferedPercent = bufferedPercent;
-/**
- * @file buffer.js
- */
-
-var _createTimeRange = _dereq_('./time-ranges.js');
function bufferedPercent(buffered, duration) {
var bufferedDuration = 0,
@@ -14968,7 +14767,7 @@ function bufferedPercent(buffered, duration) {
}
if (!buffered || !buffered.length) {
- buffered = _createTimeRange.createTimeRange(0, 0);
+ buffered = _timeRangesJs.createTimeRange(0, 0);
}
for (var i = 0; i < buffered.length; i++) {
@@ -14986,16 +14785,16 @@ function bufferedPercent(buffered, duration) {
return bufferedDuration / duration;
}
-},{"./time-ranges.js":119}],110:[function(_dereq_,module,exports){
+},{"./time-ranges.js":115}],106:[function(_dereq_,module,exports){
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
-var _log = _dereq_('./log.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _log2 = _interopRequireWildcard(_log);
+var _logJs = _dereq_('./log.js');
+
+var _logJs2 = _interopRequireDefault(_logJs);
/**
* Object containing the default behaviors for available handler methods.
@@ -15028,7 +14827,7 @@ var defaultBehaviors = {
*/
exports['default'] = function (target) {
- var messages = arguments[1] === undefined ? {} : arguments[1];
+ var messages = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
if (typeof Proxy === 'function') {
var _ret = (function () {
@@ -15039,7 +14838,7 @@ exports['default'] = function (target) {
Object.keys(messages).forEach(function (key) {
if (defaultBehaviors.hasOwnProperty(key)) {
handler[key] = function () {
- _log2['default'].warn(messages[key]);
+ _logJs2['default'].warn(messages[key]);
return defaultBehaviors[key].apply(this, arguments);
};
}
@@ -15057,12 +14856,43 @@ exports['default'] = function (target) {
module.exports = exports['default'];
-},{"./log.js":116}],111:[function(_dereq_,module,exports){
+},{"./log.js":112}],107:[function(_dereq_,module,exports){
+/**
+ * @file dom.js
+ */
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
+exports.getEl = getEl;
+exports.createEl = createEl;
+exports.insertElFirst = insertElFirst;
+exports.getElData = getElData;
+exports.hasElData = hasElData;
+exports.removeElData = removeElData;
+exports.hasElClass = hasElClass;
+exports.addElClass = addElClass;
+exports.removeElClass = removeElClass;
+exports.setElAttributes = setElAttributes;
+exports.getElAttributes = getElAttributes;
+exports.blockTextSelection = blockTextSelection;
+exports.unblockTextSelection = unblockTextSelection;
+exports.findElPosition = findElPosition;
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _guidJs = _dereq_('./guid.js');
+
+var Guid = _interopRequireWildcard(_guidJs);
/**
* Shorthand for document.getElementById()
@@ -15072,7 +14902,14 @@ exports.__esModule = true;
* @return {Element} Element with supplied ID
* @function getEl
*/
-exports.getEl = getEl;
+
+function getEl(id) {
+ if (id.indexOf('#') === 0) {
+ id = id.slice(1);
+ }
+
+ return _globalDocument2['default'].getElementById(id);
+}
/**
* Creates an element and applies properties.
@@ -15082,151 +14919,12 @@ exports.getEl = getEl;
* @return {Element}
* @function createEl
*/
-exports.createEl = createEl;
-
-/**
- * Insert an element as the first child node of another
- *
- * @param {Element} child Element to insert
- * @param {Element} parent Element to insert child into
- * @private
- * @function insertElFirst
- */
-exports.insertElFirst = insertElFirst;
-
-/**
- * Returns the cache object where data for an element is stored
- *
- * @param {Element} el Element to store data for.
- * @return {Object}
- * @function getElData
- */
-exports.getElData = getElData;
-
-/**
- * Returns whether or not an element has cached data
- *
- * @param {Element} el A dom element
- * @return {Boolean}
- * @private
- * @function hasElData
- */
-exports.hasElData = hasElData;
-
-/**
- * Delete data for the element from the cache and the guid attr from getElementById
- *
- * @param {Element} el Remove data for an element
- * @private
- * @function removeElData
- */
-exports.removeElData = removeElData;
-
-/**
- * Check if an element has a CSS class
- *
- * @param {Element} element Element to check
- * @param {String} classToCheck Classname to check
- * @function hasElClass
- */
-exports.hasElClass = hasElClass;
-
-/**
- * Add a CSS class name to an element
- *
- * @param {Element} element Element to add class name to
- * @param {String} classToAdd Classname to add
- * @function addElClass
- */
-exports.addElClass = addElClass;
-
-/**
- * Remove a CSS class name from an element
- *
- * @param {Element} element Element to remove from class name
- * @param {String} classToRemove Classname to remove
- * @function removeElClass
- */
-exports.removeElClass = removeElClass;
-
-/**
- * Apply attributes to an HTML element.
- *
- * @param {Element} el Target element.
- * @param {Object=} attributes Element attributes to be applied.
- * @private
- * @function setElAttributes
- */
-exports.setElAttributes = setElAttributes;
-
-/**
- * Get an element's attribute values, as defined on the HTML tag
- * Attributes are not the same as properties. They're defined on the tag
- * or with setAttribute (which shouldn't be used with HTML)
- * This will return true or false for boolean attributes.
- *
- * @param {Element} tag Element from which to get tag attributes
- * @return {Object}
- * @private
- * @function getElAttributes
- */
-exports.getElAttributes = getElAttributes;
-
-/**
- * Attempt to block the ability to select text while dragging controls
- *
- * @return {Boolean}
- * @method blockTextSelection
- */
-exports.blockTextSelection = blockTextSelection;
-
-/**
- * Turn off text selection blocking
- *
- * @return {Boolean}
- * @method unblockTextSelection
- */
-exports.unblockTextSelection = unblockTextSelection;
-
-/**
- * Offset Left
- * getBoundingClientRect technique from
- * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/
- *
- * @param {Element} el Element from which to get offset
- * @return {Object=}
- * @method findElPosition
- */
-exports.findElPosition = findElPosition;
-/**
- * @file dom.js
- */
-
-var _document = _dereq_('global/document');
-
-var _document2 = _interopRequireWildcard(_document);
-
-var _window = _dereq_('global/window');
-
-var _window2 = _interopRequireWildcard(_window);
-
-var _import = _dereq_('./guid.js');
-
-var Guid = _interopRequireWildcard(_import);
-
-function getEl(id) {
- if (id.indexOf('#') === 0) {
- id = id.slice(1);
- }
-
- return _document2['default'].getElementById(id);
-}
function createEl() {
- var tagName = arguments[0] === undefined ? 'div' : arguments[0];
- var properties = arguments[1] === undefined ? {} : arguments[1];
+ var tagName = arguments.length <= 0 || arguments[0] === undefined ? 'div' : arguments[0];
+ var properties = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
- var el = _document2['default'].createElement(tagName);
+ var el = _globalDocument2['default'].createElement(tagName);
Object.getOwnPropertyNames(properties).forEach(function (propName) {
var val = properties[propName];
@@ -15249,6 +14947,15 @@ function createEl() {
return el;
}
+/**
+ * Insert an element as the first child node of another
+ *
+ * @param {Element} child Element to insert
+ * @param {Element} parent Element to insert child into
+ * @private
+ * @function insertElFirst
+ */
+
function insertElFirst(child, parent) {
if (parent.firstChild) {
parent.insertBefore(child, parent.firstChild);
@@ -15275,6 +14982,15 @@ var elData = {};
* @private
*/
var elIdAttr = 'vdata' + new Date().getTime();
+
+/**
+ * Returns the cache object where data for an element is stored
+ *
+ * @param {Element} el Element to store data for.
+ * @return {Object}
+ * @function getElData
+ */
+
function getElData(el) {
var id = el[elIdAttr];
@@ -15289,6 +15005,15 @@ function getElData(el) {
return elData[id];
}
+/**
+ * Returns whether or not an element has cached data
+ *
+ * @param {Element} el A dom element
+ * @return {Boolean}
+ * @private
+ * @function hasElData
+ */
+
function hasElData(el) {
var id = el[elIdAttr];
@@ -15299,6 +15024,14 @@ function hasElData(el) {
return !!Object.getOwnPropertyNames(elData[id]).length;
}
+/**
+ * Delete data for the element from the cache and the guid attr from getElementById
+ *
+ * @param {Element} el Remove data for an element
+ * @private
+ * @function removeElData
+ */
+
function removeElData(el) {
var id = el[elIdAttr];
@@ -15322,16 +15055,40 @@ function removeElData(el) {
}
}
+/**
+ * Check if an element has a CSS class
+ *
+ * @param {Element} element Element to check
+ * @param {String} classToCheck Classname to check
+ * @function hasElClass
+ */
+
function hasElClass(element, classToCheck) {
return (' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1;
}
+/**
+ * Add a CSS class name to an element
+ *
+ * @param {Element} element Element to add class name to
+ * @param {String} classToAdd Classname to add
+ * @function addElClass
+ */
+
function addElClass(element, classToAdd) {
if (!hasElClass(element, classToAdd)) {
element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;
}
}
+/**
+ * Remove a CSS class name from an element
+ *
+ * @param {Element} element Element to remove from class name
+ * @param {String} classToRemove Classname to remove
+ * @function removeElClass
+ */
+
function removeElClass(element, classToRemove) {
if (!hasElClass(element, classToRemove)) {
return;
@@ -15349,6 +15106,15 @@ function removeElClass(element, classToRemove) {
element.className = classNames.join(' ');
}
+/**
+ * Apply attributes to an HTML element.
+ *
+ * @param {Element} el Target element.
+ * @param {Object=} attributes Element attributes to be applied.
+ * @private
+ * @function setElAttributes
+ */
+
function setElAttributes(el, attributes) {
Object.getOwnPropertyNames(attributes).forEach(function (attrName) {
var attrValue = attributes[attrName];
@@ -15361,6 +15127,18 @@ function setElAttributes(el, attributes) {
});
}
+/**
+ * Get an element's attribute values, as defined on the HTML tag
+ * Attributes are not the same as properties. They're defined on the tag
+ * or with setAttribute (which shouldn't be used with HTML)
+ * This will return true or false for boolean attributes.
+ *
+ * @param {Element} tag Element from which to get tag attributes
+ * @return {Object}
+ * @private
+ * @function getElAttributes
+ */
+
function getElAttributes(tag) {
var obj, knownBooleans, attrs, attrName, attrVal;
@@ -15394,19 +15172,43 @@ function getElAttributes(tag) {
return obj;
}
+/**
+ * Attempt to block the ability to select text while dragging controls
+ *
+ * @return {Boolean}
+ * @method blockTextSelection
+ */
+
function blockTextSelection() {
- _document2['default'].body.focus();
- _document2['default'].onselectstart = function () {
+ _globalDocument2['default'].body.focus();
+ _globalDocument2['default'].onselectstart = function () {
return false;
};
}
+/**
+ * Turn off text selection blocking
+ *
+ * @return {Boolean}
+ * @method unblockTextSelection
+ */
+
function unblockTextSelection() {
- _document2['default'].onselectstart = function () {
+ _globalDocument2['default'].onselectstart = function () {
return true;
};
}
+/**
+ * Offset Left
+ * getBoundingClientRect technique from
+ * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/
+ *
+ * @param {Element} el Element from which to get offset
+ * @return {Object=}
+ * @method findElPosition
+ */
+
function findElPosition(el) {
var box = undefined;
@@ -15421,15 +15223,15 @@ function findElPosition(el) {
};
}
- var docEl = _document2['default'].documentElement;
- var body = _document2['default'].body;
+ var docEl = _globalDocument2['default'].documentElement;
+ var body = _globalDocument2['default'].body;
var clientLeft = docEl.clientLeft || body.clientLeft || 0;
- var scrollLeft = _window2['default'].pageXOffset || body.scrollLeft;
+ var scrollLeft = _globalWindow2['default'].pageXOffset || body.scrollLeft;
var left = box.left + scrollLeft - clientLeft;
var clientTop = docEl.clientTop || body.clientTop || 0;
- var scrollTop = _window2['default'].pageYOffset || body.scrollTop;
+ var scrollTop = _globalWindow2['default'].pageYOffset || body.scrollTop;
var top = box.top + scrollTop - clientTop;
// Android sometimes returns slightly off decimal values, so need to round
@@ -15439,12 +15241,44 @@ function findElPosition(el) {
};
}
-},{"./guid.js":115,"global/document":1,"global/window":2}],112:[function(_dereq_,module,exports){
+},{"./guid.js":111,"global/document":1,"global/window":2}],108:[function(_dereq_,module,exports){
+/**
+ * @file events.js
+ *
+ * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)
+ * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)
+ * This should work very similarly to jQuery's events, however it's based off the book version which isn't as
+ * robust as jquery's, so there's probably some differences.
+ */
+
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
+exports.on = on;
+exports.off = off;
+exports.trigger = trigger;
+exports.one = one;
+exports.fixEvent = fixEvent;
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
+
+var _domJs = _dereq_('./dom.js');
+
+var Dom = _interopRequireWildcard(_domJs);
+
+var _guidJs = _dereq_('./guid.js');
+
+var Guid = _interopRequireWildcard(_guidJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* Add an event listener to element
@@ -15457,72 +15291,6 @@ exports.__esModule = true;
* @param {Function} fn Event listener.
* @method on
*/
-exports.on = on;
-
-/**
- * Removes event listeners from an element
- *
- * @param {Element|Object} elem Object to remove listeners from
- * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.
- * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.
- * @method off
- */
-exports.off = off;
-
-/**
- * Trigger an event for an element
- *
- * @param {Element|Object} elem Element to trigger an event on
- * @param {Event|Object|String} event A string (the type) or an event object with a type attribute
- * @param {Object} [hash] data hash to pass along with the event
- * @return {Boolean=} Returned only if default was prevented
- * @method trigger
- */
-exports.trigger = trigger;
-
-/**
- * Trigger a listener only once for an event
- *
- * @param {Element|Object} elem Element or object to
- * @param {String|Array} type Name/type of event
- * @param {Function} fn Event handler function
- * @method one
- */
-exports.one = one;
-
-/**
- * Fix a native event to have standard property values
- *
- * @param {Object} event Event object to fix
- * @return {Object}
- * @private
- * @method fixEvent
- */
-exports.fixEvent = fixEvent;
-/**
- * @file events.js
- *
- * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)
- * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)
- * This should work very similarly to jQuery's events, however it's based off the book version which isn't as
- * robust as jquery's, so there's probably some differences.
- */
-
-var _import = _dereq_('./dom.js');
-
-var Dom = _interopRequireWildcard(_import);
-
-var _import2 = _dereq_('./guid.js');
-
-var Guid = _interopRequireWildcard(_import2);
-
-var _window = _dereq_('global/window');
-
-var _window2 = _interopRequireWildcard(_window);
-
-var _document = _dereq_('global/document');
-
-var _document2 = _interopRequireWildcard(_document);
function on(elem, type, fn) {
if (Array.isArray(type)) {
@@ -15574,11 +15342,20 @@ function on(elem, type, fn) {
}
}
+/**
+ * Removes event listeners from an element
+ *
+ * @param {Element|Object} elem Object to remove listeners from
+ * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.
+ * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.
+ * @method off
+ */
+
function off(elem, type, fn) {
// Don't want to add a cache object through getElData if not needed
- if (!Dom.hasElData(elem)) {
- return;
- }var data = Dom.getElData(elem);
+ if (!Dom.hasElData(elem)) return;
+
+ var data = Dom.getElData(elem);
// If no events exist, nothing to unbind
if (!data.handlers) {
@@ -15605,9 +15382,9 @@ function off(elem, type, fn) {
var handlers = data.handlers[type];
// If no handlers exist, nothing to unbind
- if (!handlers) {
- return;
- } // If no listener was provided, remove all listeners for type
+ if (!handlers) return;
+
+ // If no listener was provided, remove all listeners for type
if (!fn) {
removeType(type);
return;
@@ -15625,6 +15402,16 @@ function off(elem, type, fn) {
_cleanUpEvents(elem, type);
}
+/**
+ * Trigger an event for an element
+ *
+ * @param {Element|Object} elem Element to trigger an event on
+ * @param {Event|Object|String} event A string (the type) or an event object with a type attribute
+ * @param {Object} [hash] data hash to pass along with the event
+ * @return {Boolean=} Returned only if default was prevented
+ * @method trigger
+ */
+
function trigger(elem, event, hash) {
// Fetches element data and a reference to the parent (for bubbling).
// Don't want to add a data object to cache for every parent,
@@ -15653,48 +15440,56 @@ function trigger(elem, event, hash) {
// If at the top of the DOM, triggers the default action unless disabled.
} else if (!parent && !event.defaultPrevented) {
- var targetData = Dom.getElData(event.target);
+ var targetData = Dom.getElData(event.target);
- // Checks if the target has a default action for this event.
- if (event.target[event.type]) {
- // Temporarily disables event dispatching on the target as we have already executed the handler.
- targetData.disabled = true;
- // Executes the default action.
- if (typeof event.target[event.type] === 'function') {
- event.target[event.type]();
+ // Checks if the target has a default action for this event.
+ if (event.target[event.type]) {
+ // Temporarily disables event dispatching on the target as we have already executed the handler.
+ targetData.disabled = true;
+ // Executes the default action.
+ if (typeof event.target[event.type] === 'function') {
+ event.target[event.type]();
+ }
+ // Re-enables event dispatching.
+ targetData.disabled = false;
}
- // Re-enables event dispatching.
- targetData.disabled = false;
}
- }
// Inform the triggerer if the default was prevented by returning false
return !event.defaultPrevented;
}
+/**
+ * Trigger a listener only once for an event
+ *
+ * @param {Element|Object} elem Element or object to
+ * @param {String|Array} type Name/type of event
+ * @param {Function} fn Event handler function
+ * @method one
+ */
+
function one(elem, type, fn) {
if (Array.isArray(type)) {
return _handleMultipleEvents(one, elem, type, fn);
}
- var func = (function (_func) {
- function func() {
- return _func.apply(this, arguments);
- }
-
- func.toString = function () {
- return _func.toString();
- };
-
- return func;
- })(function () {
+ var func = function func() {
off(elem, type, func);
fn.apply(this, arguments);
- });
+ };
// copy the guid to the new function so it can removed using the original function's ID
func.guid = fn.guid = fn.guid || Guid.newGUID();
on(elem, type, func);
}
+/**
+ * Fix a native event to have standard property values
+ *
+ * @param {Object} event Event object to fix
+ * @return {Object}
+ * @private
+ * @method fixEvent
+ */
+
function fixEvent(event) {
function returnTrue() {
@@ -15710,7 +15505,7 @@ function fixEvent(event) {
// other expected methods like isPropagationStopped. Seems to be a problem
// with the Javascript Ninja code. So we're just overriding all events now.
if (!event || !event.isPropagationStopped) {
- var old = event || _window2['default'].event;
+ var old = event || _globalWindow2['default'].event;
event = {};
// Clone the old object so that we can modify the values event = {};
@@ -15732,7 +15527,7 @@ function fixEvent(event) {
// The event occurred on this element
if (!event.target) {
- event.target = event.srcElement || _document2['default'];
+ event.target = event.srcElement || _globalDocument2['default'];
}
// Handle which other element the event is related to
@@ -15775,8 +15570,8 @@ function fixEvent(event) {
// Handle mouse position
if (event.clientX != null) {
- var doc = _document2['default'].documentElement,
- body = _document2['default'].body;
+ var doc = _globalDocument2['default'].documentElement,
+ body = _globalDocument2['default'].body;
event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
@@ -15851,15 +15646,15 @@ function _handleMultipleEvents(fn, elem, types, callback) {
});
}
-},{"./dom.js":111,"./guid.js":115,"global/document":1,"global/window":2}],113:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"./dom.js":107,"./guid.js":111,"global/document":1,"global/window":2}],109:[function(_dereq_,module,exports){
/**
* @file fn.js
*/
+'use strict';
-var _newGUID = _dereq_('./guid.js');
+exports.__esModule = true;
+
+var _guidJs = _dereq_('./guid.js');
/**
* Bind (a.k.a proxy or Context). A simple method for changing the context of a function
@@ -15875,7 +15670,7 @@ var _newGUID = _dereq_('./guid.js');
var bind = function bind(context, fn, uid) {
// Make sure the function has a unique ID
if (!fn.guid) {
- fn.guid = _newGUID.newGUID();
+ fn.guid = _guidJs.newGUID();
}
// Create the new function that changes the context
@@ -15895,10 +15690,7 @@ var bind = function bind(context, fn, uid) {
};
exports.bind = bind;
-},{"./guid.js":115}],114:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"./guid.js":111}],110:[function(_dereq_,module,exports){
/**
* @file format-time.js
*
@@ -15912,8 +15704,11 @@ exports.__esModule = true;
* @private
* @function formatTime
*/
+'use strict';
+
+exports.__esModule = true;
function formatTime(seconds) {
- var guide = arguments[1] === undefined ? seconds : arguments[1];
+ var guide = arguments.length <= 1 || arguments[1] === undefined ? seconds : arguments[1];
return (function () {
var s = Math.floor(seconds % 60);
var m = Math.floor(seconds / 60 % 60);
@@ -15945,18 +15740,7 @@ function formatTime(seconds) {
exports['default'] = formatTime;
module.exports = exports['default'];
-},{}],115:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
-
-/**
- * Get the next unique ID
- *
- * @return {String}
- * @function newGUID
- */
-exports.newGUID = newGUID;
+},{}],111:[function(_dereq_,module,exports){
/**
* @file guid.js
*
@@ -15964,24 +15748,36 @@ exports.newGUID = newGUID;
* @type {Number}
* @private
*/
+"use strict";
+
+exports.__esModule = true;
+exports.newGUID = newGUID;
var _guid = 1;
+
+/**
+ * Get the next unique ID
+ *
+ * @return {String}
+ * @function newGUID
+ */
+
function newGUID() {
return _guid++;
}
-},{}],116:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{}],112:[function(_dereq_,module,exports){
/**
* @file log.js
*/
+'use strict';
-var _window = _dereq_('global/window');
+exports.__esModule = true;
-var _window2 = _interopRequireWildcard(_window);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/**
* Log plain debug messages
@@ -16027,10 +15823,10 @@ function _logType(type, args) {
// in the function makes it easier to test cases where console doesn't exist
var noop = function noop() {};
- var console = _window2['default'].console || {
- log: noop,
- warn: noop,
- error: noop
+ var console = _globalWindow2['default']['console'] || {
+ 'log': noop,
+ 'warn': noop,
+ 'error': noop
};
if (type) {
@@ -16059,30 +15855,20 @@ function _logType(type, args) {
exports['default'] = log;
module.exports = exports['default'];
-},{"global/window":2}],117:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
-
-/**
- * Merge one or more options objects, recursively merging **only**
- * plain object properties. Previously `deepMerge`.
- *
- * @param {...Object} source One or more objects to merge
- * @returns {Object} a new object that is the union of all
- * provided objects
- * @function mergeOptions
- */
-exports['default'] = mergeOptions;
+},{"global/window":2}],113:[function(_dereq_,module,exports){
/**
* @file merge-options.js
*/
+'use strict';
-var _merge = _dereq_('lodash-compat/object/merge');
+exports.__esModule = true;
+exports['default'] = mergeOptions;
-var _merge2 = _interopRequireWildcard(_merge);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');
+
+var _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);
function isPlain(obj) {
return !!obj && typeof obj === 'object' && obj.toString() === '[object Object]' && obj.constructor === Object;
@@ -16109,6 +15895,17 @@ var customizer = function customizer(destination, source) {
return mergeOptions(source);
}
};
+
+/**
+ * Merge one or more options objects, recursively merging **only**
+ * plain object properties. Previously `deepMerge`.
+ *
+ * @param {...Object} source One or more objects to merge
+ * @returns {Object} a new object that is the union of all
+ * provided objects
+ * @function mergeOptions
+ */
+
function mergeOptions() {
// contruct the call dynamically to handle the variable number of
// objects to merge
@@ -16121,7 +15918,7 @@ function mergeOptions() {
// customize conflict resolution to match our historical merge behavior
args.push(customizer);
- _merge2['default'].apply(null, args);
+ _lodashCompatObjectMerge2['default'].apply(null, args);
// return the mutated result object
return args[0];
@@ -16129,19 +15926,19 @@ function mergeOptions() {
module.exports = exports['default'];
-},{"lodash-compat/object/merge":40}],118:[function(_dereq_,module,exports){
+},{"lodash-compat/object/merge":37}],114:[function(_dereq_,module,exports){
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
-var _document = _dereq_('global/document');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document2 = _interopRequireWildcard(_document);
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
var createStyleElement = function createStyleElement(className) {
- var style = _document2['default'].createElement('style');
+ var style = _globalDocument2['default'].createElement('style');
style.className = className;
return style;
@@ -16157,10 +15954,7 @@ var setTextContent = function setTextContent(el, content) {
};
exports.setTextContent = setTextContent;
-},{"global/document":1}],119:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"global/document":1}],115:[function(_dereq_,module,exports){
/**
* @file time-ranges.js
*
@@ -16175,10 +15969,13 @@ exports.__esModule = true;
* @private
* @method createTimeRange
*/
+'use strict';
+
+exports.__esModule = true;
exports.createTimeRange = createTimeRange;
-function createTimeRange(start, end) {
- if (start === undefined && end === undefined) {
+function createTimeRange(_start, _end) {
+ if (_start === undefined && _end === undefined) {
return {
length: 0,
start: function start() {
@@ -16191,39 +15988,16 @@ function createTimeRange(start, end) {
}
return {
length: 1,
- start: (function (_start) {
- function start() {
- return _start.apply(this, arguments);
- }
-
- start.toString = function () {
- return _start.toString();
- };
-
- return start;
- })(function () {
- return start;
- }),
- end: (function (_end) {
- function end() {
- return _end.apply(this, arguments);
- }
-
- end.toString = function () {
- return _end.toString();
- };
-
- return end;
- })(function () {
- return end;
- })
+ start: function start() {
+ return _start;
+ },
+ end: function end() {
+ return _end;
+ }
};
}
-},{}],120:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
+},{}],116:[function(_dereq_,module,exports){
/**
* @file to-title-case.js
*
@@ -16234,6 +16008,9 @@ exports.__esModule = true;
* @private
* @method toTitleCase
*/
+"use strict";
+
+exports.__esModule = true;
function toTitleCase(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
@@ -16241,19 +16018,19 @@ function toTitleCase(string) {
exports["default"] = toTitleCase;
module.exports = exports["default"];
-},{}],121:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{}],117:[function(_dereq_,module,exports){
/**
* @file url.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* Resolve and parse the elements of a URL
@@ -16266,7 +16043,7 @@ var parseUrl = function parseUrl(url) {
var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];
// add the url to an anchor and let the browser parse the URL
- var a = _document2['default'].createElement('a');
+ var a = _globalDocument2['default'].createElement('a');
a.href = url;
// IE8 (and 9?) Fix
@@ -16275,12 +16052,12 @@ var parseUrl = function parseUrl(url) {
var addToBody = a.host === '' && a.protocol !== 'file:';
var div = undefined;
if (addToBody) {
- div = _document2['default'].createElement('div');
+ div = _globalDocument2['default'].createElement('div');
div.innerHTML = '';
a = div.firstChild;
// prevent the div from affecting layout
div.setAttribute('style', 'display:none; position:absolute;');
- _document2['default'].body.appendChild(div);
+ _globalDocument2['default'].body.appendChild(div);
}
// Copy the specific URL properties to a new object
@@ -16301,7 +16078,7 @@ var parseUrl = function parseUrl(url) {
}
if (addToBody) {
- _document2['default'].body.removeChild(div);
+ _globalDocument2['default'].body.removeChild(div);
}
return details;
@@ -16321,7 +16098,7 @@ var getAbsoluteURL = function getAbsoluteURL(url) {
// Check if absolute URL
if (!url.match(/^https?:\/\//)) {
// Convert to absolute URL. Flash hosted off-site needs an absolute URL.
- var div = _document2['default'].createElement('div');
+ var div = _globalDocument2['default'].createElement('div');
div.innerHTML = 'x';
url = div.firstChild.href;
}
@@ -16351,113 +16128,115 @@ var getFileExtension = function getFileExtension(path) {
};
exports.getFileExtension = getFileExtension;
-},{"global/document":1}],122:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"global/document":1}],118:[function(_dereq_,module,exports){
/**
* @file video.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('./setup');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var setup = _interopRequireWildcard(_import);
+var _globalDocument = _dereq_('global/document');
-var _import2 = _dereq_('./utils/stylesheet.js');
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var stylesheet = _interopRequireWildcard(_import2);
+var _setup = _dereq_('./setup');
-var _Component = _dereq_('./component');
+var setup = _interopRequireWildcard(_setup);
-var _Component2 = _interopRequireWildcard(_Component);
+var _utilsStylesheetJs = _dereq_('./utils/stylesheet.js');
-var _EventTarget = _dereq_('./event-target');
+var stylesheet = _interopRequireWildcard(_utilsStylesheetJs);
-var _EventTarget2 = _interopRequireWildcard(_EventTarget);
+var _component = _dereq_('./component');
-var _import3 = _dereq_('./utils/events.js');
+var _component2 = _interopRequireDefault(_component);
-var Events = _interopRequireWildcard(_import3);
+var _eventTarget = _dereq_('./event-target');
-var _Player = _dereq_('./player');
+var _eventTarget2 = _interopRequireDefault(_eventTarget);
-var _Player2 = _interopRequireWildcard(_Player);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _plugin = _dereq_('./plugins.js');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _plugin2 = _interopRequireWildcard(_plugin);
+var _player = _dereq_('./player');
-var _mergeOptions = _dereq_('../../src/js/utils/merge-options.js');
+var _player2 = _interopRequireDefault(_player);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _pluginsJs = _dereq_('./plugins.js');
-var _import4 = _dereq_('./utils/fn.js');
+var _pluginsJs2 = _interopRequireDefault(_pluginsJs);
-var Fn = _interopRequireWildcard(_import4);
+var _srcJsUtilsMergeOptionsJs = _dereq_('../../src/js/utils/merge-options.js');
-var _assign = _dereq_('object.assign');
+var _srcJsUtilsMergeOptionsJs2 = _interopRequireDefault(_srcJsUtilsMergeOptionsJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsFnJs = _dereq_('./utils/fn.js');
-var _createTimeRange = _dereq_('./utils/time-ranges.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _formatTime = _dereq_('./utils/format-time.js');
+var _objectAssign = _dereq_('object.assign');
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
-var _log = _dereq_('./utils/log.js');
+var _utilsTimeRangesJs = _dereq_('./utils/time-ranges.js');
-var _log2 = _interopRequireWildcard(_log);
+var _utilsFormatTimeJs = _dereq_('./utils/format-time.js');
-var _xhr = _dereq_('./xhr.js');
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
-var _xhr2 = _interopRequireWildcard(_xhr);
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _import5 = _dereq_('./utils/dom.js');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var Dom = _interopRequireWildcard(_import5);
+var _xhrJs = _dereq_('./xhr.js');
-var _import6 = _dereq_('./utils/browser.js');
+var _xhrJs2 = _interopRequireDefault(_xhrJs);
-var browser = _interopRequireWildcard(_import6);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _import7 = _dereq_('./utils/url.js');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var Url = _interopRequireWildcard(_import7);
+var _utilsBrowserJs = _dereq_('./utils/browser.js');
-var _extendsFn = _dereq_('./extends.js');
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _extendsFn2 = _interopRequireWildcard(_extendsFn);
+var _utilsUrlJs = _dereq_('./utils/url.js');
-var _merge2 = _dereq_('lodash-compat/object/merge');
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _merge3 = _interopRequireWildcard(_merge2);
+var _extendsJs = _dereq_('./extends.js');
-var _createDeprecationProxy = _dereq_('./utils/create-deprecation-proxy.js');
+var _extendsJs2 = _interopRequireDefault(_extendsJs);
-var _createDeprecationProxy2 = _interopRequireWildcard(_createDeprecationProxy);
+var _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');
+
+var _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);
+
+var _utilsCreateDeprecationProxyJs = _dereq_('./utils/create-deprecation-proxy.js');
+
+var _utilsCreateDeprecationProxyJs2 = _interopRequireDefault(_utilsCreateDeprecationProxyJs);
// Include the built-in techs
-var _Html5 = _dereq_('./tech/html5.js');
+var _techHtml5Js = _dereq_('./tech/html5.js');
-var _Html52 = _interopRequireWildcard(_Html5);
+var _techHtml5Js2 = _interopRequireDefault(_techHtml5Js);
-var _Flash = _dereq_('./tech/flash.js');
+var _techFlashJs = _dereq_('./tech/flash.js');
-var _Flash2 = _interopRequireWildcard(_Flash);
+var _techFlashJs2 = _interopRequireDefault(_techFlashJs);
// HTML5 Element Shim for IE8
if (typeof HTMLVideoElement === 'undefined') {
- _document2['default'].createElement('video');
- _document2['default'].createElement('audio');
- _document2['default'].createElement('track');
+ _globalDocument2['default'].createElement('video');
+ _globalDocument2['default'].createElement('audio');
+ _globalDocument2['default'].createElement('track');
}
/**
@@ -16475,17 +16254,7 @@ if (typeof HTMLVideoElement === 'undefined') {
* @mixes videojs
* @method videojs
*/
-var videojs = (function (_videojs) {
- function videojs(_x, _x2, _x3) {
- return _videojs.apply(this, arguments);
- }
-
- videojs.toString = function () {
- return _videojs.toString();
- };
-
- return videojs;
-})(function (id, options, ready) {
+var videojs = function videojs(id, options, ready) {
var tag; // Element of ID
// Allow for element or ID to be passed in
@@ -16502,7 +16271,7 @@ var videojs = (function (_videojs) {
// If options or ready funtion are passed, warn
if (options) {
- _log2['default'].warn('Player "' + id + '" is already initialised. Options will not be applied.');
+ _utilsLogJs2['default'].warn('Player "' + id + '" is already initialised. Options will not be applied.');
}
if (ready) {
@@ -16513,13 +16282,13 @@ var videojs = (function (_videojs) {
// Otherwise get element for ID
} else {
- tag = Dom.getEl(id);
- }
+ tag = Dom.getEl(id);
+ }
// ID is a media element
} else {
- tag = id;
- }
+ tag = id;
+ }
// Check for a useable element
if (!tag || !tag.nodeName) {
@@ -16529,12 +16298,12 @@ var videojs = (function (_videojs) {
// Element may have a player attr referring to an already created player instance.
// If not, set up a new player and return the instance.
- return tag.player || new _Player2['default'](tag, options, ready);
-});
+ return tag['player'] || new _player2['default'](tag, options, ready);
+};
// Add default styles
var style = stylesheet.createStyleElement('vjs-styles-defaults');
-var head = _document2['default'].querySelector('head');
+var head = _globalDocument2['default'].querySelector('head');
head.insertBefore(style, head.firstChild);
stylesheet.setTextContent(style, '\n .video-js {\n width: 300px;\n height: 150px;\n');
@@ -16547,7 +16316,7 @@ setup.autoSetupTimeout(1, videojs);
*
* @type {String}
*/
-videojs.VERSION = '5.0.0-rc.59';
+videojs.VERSION = '5.0.0-rc.72';
/**
* The global options object. These are the settings that take effect
@@ -16560,7 +16329,7 @@ videojs.VERSION = '5.0.0-rc.59';
*
* @type {Object}
*/
-videojs.options = _Player2['default'].prototype.options_;
+videojs.options = _player2['default'].prototype.options_;
/**
* Get an object with the currently created players, keyed by player ID
@@ -16570,7 +16339,7 @@ videojs.options = _Player2['default'].prototype.options_;
* @method getPlayers
*/
videojs.getPlayers = function () {
- return _Player2['default'].players;
+ return _player2['default'].players;
};
/**
@@ -16580,7 +16349,7 @@ videojs.getPlayers = function () {
* @memberOf videojs
* @property {Object|Proxy} players
*/
-videojs.players = _createDeprecationProxy2['default'](_Player2['default'].players, {
+videojs.players = _utilsCreateDeprecationProxyJs2['default'](_player2['default'].players, {
get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',
set: 'Modification of videojs.players is deprecated'
});
@@ -16597,7 +16366,7 @@ videojs.players = _createDeprecationProxy2['default'](_Player2['default'].player
* @mixes videojs
* @method getComponent
*/
-videojs.getComponent = _Component2['default'].getComponent;
+videojs.getComponent = _component2['default'].getComponent;
/**
* Register a component so it can referred to by name
@@ -16625,7 +16394,7 @@ videojs.getComponent = _Component2['default'].getComponent;
* @mixes videojs
* @method registerComponent
*/
-videojs.registerComponent = _Component2['default'].registerComponent;
+videojs.registerComponent = _component2['default'].registerComponent;
/**
* A suite of browser and device tests
@@ -16678,7 +16447,7 @@ videojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;
* @mixes videojs
* @method extends
*/
-videojs['extends'] = _extendsFn2['default'];
+videojs['extends'] = _extendsJs2['default'];
/**
* Merge two options objects recursively
@@ -16713,7 +16482,7 @@ videojs['extends'] = _extendsFn2['default'];
* @mixes videojs
* @method mergeOptions
*/
-videojs.mergeOptions = _mergeOptions2['default'];
+videojs.mergeOptions = _srcJsUtilsMergeOptionsJs2['default'];
/**
* Change the context (this) of a function
@@ -16777,7 +16546,7 @@ videojs.bind = Fn.bind;
* @mixes videojs
* @method plugin
*/
-videojs.plugin = _plugin2['default'];
+videojs.plugin = _pluginsJs2['default'];
/**
* Adding languages so that they're available to all players.
@@ -16795,7 +16564,7 @@ videojs.addLanguage = function (code, data) {
var _merge;
code = ('' + code).toLowerCase();
- return _merge3['default'](videojs.options.languages, (_merge = {}, _merge[code] = data, _merge))[code];
+ return _lodashCompatObjectMerge2['default'](videojs.options.languages, (_merge = {}, _merge[code] = data, _merge))[code];
};
/**
@@ -16803,7 +16572,7 @@ videojs.addLanguage = function (code, data) {
*
* @param {...Object} messages One or more messages to log
*/
-videojs.log = _log2['default'];
+videojs.log = _utilsLogJs2['default'];
/**
* Creates an emulated TimeRange object.
@@ -16813,7 +16582,7 @@ videojs.log = _log2['default'];
* @return {Object} Fake TimeRange object
* @method createTimeRange
*/
-videojs.createTimeRange = _createTimeRange.createTimeRange;
+videojs.createTimeRange = _utilsTimeRangesJs.createTimeRange;
/**
* Format seconds as a time string, H:MM:SS or M:SS
@@ -16825,7 +16594,7 @@ videojs.createTimeRange = _createTimeRange.createTimeRange;
* @return {String} Time formatted as H:MM:SS or M:SS
* @method formatTime
*/
-videojs.formatTime = _formatTime2['default'];
+videojs.formatTime = _utilsFormatTimeJs2['default'];
/**
* Simple http request for retrieving external files (e.g. text tracks)
@@ -16856,7 +16625,7 @@ videojs.formatTime = _formatTime2['default'];
* @param {Function} callback The callback function
* @returns {Object} The request
*/
-videojs.xhr = _xhr2['default'];
+videojs.xhr = _xhrJs2['default'];
/**
* Resolve and parse the elements of a URL
@@ -16872,7 +16641,7 @@ videojs.parseUrl = Url.parseUrl;
*
* @type {Function}
*/
-videojs.EventTarget = _EventTarget2['default'];
+videojs.EventTarget = _eventTarget2['default'];
/**
* Add an event listener to element
@@ -16942,44 +16711,46 @@ videojs.trigger = Events.trigger;
* still support requirejs and browserify. This also needs to be closure
* compiler compatible, so string keys are used.
*/
-if (typeof define === 'function' && define.amd) {
+if (typeof define === 'function' && define['amd']) {
define('videojs', [], function () {
return videojs;
});
// checking that module is an object too because of umdjs/umd#35
} else if (typeof exports === 'object' && typeof module === 'object') {
- module.exports = videojs;
-}
+ module['exports'] = videojs;
+ }
exports['default'] = videojs;
module.exports = exports['default'];
-},{"../../src/js/utils/merge-options.js":117,"./component":52,"./event-target":83,"./extends.js":84,"./player":91,"./plugins.js":92,"./setup":94,"./tech/flash.js":97,"./tech/html5.js":98,"./utils/browser.js":108,"./utils/create-deprecation-proxy.js":110,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/format-time.js":114,"./utils/log.js":116,"./utils/stylesheet.js":118,"./utils/time-ranges.js":119,"./utils/url.js":121,"./xhr.js":123,"global/document":1,"lodash-compat/object/merge":40,"object.assign":44}],123:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../../src/js/utils/merge-options.js":113,"./component":48,"./event-target":79,"./extends.js":80,"./player":87,"./plugins.js":88,"./setup":90,"./tech/flash.js":93,"./tech/html5.js":94,"./utils/browser.js":104,"./utils/create-deprecation-proxy.js":106,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/format-time.js":110,"./utils/log.js":112,"./utils/stylesheet.js":114,"./utils/time-ranges.js":115,"./utils/url.js":117,"./xhr.js":119,"global/document":1,"lodash-compat/object/merge":37,"object.assign":40}],119:[function(_dereq_,module,exports){
/**
* @file xhr.js
*/
+'use strict';
-var _import = _dereq_('./utils/url.js');
+exports.__esModule = true;
-var Url = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _log = _dereq_('./utils/log.js');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _log2 = _interopRequireWildcard(_log);
+var _utilsUrlJs = _dereq_('./utils/url.js');
-var _mergeOptions = _dereq_('./utils/merge-options.js');
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _window = _dereq_('global/window');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/*
* Simple http request for retrieving external files (e.g. text tracks)
@@ -17020,26 +16791,26 @@ var xhr = function xhr(options, callback) {
}
// Merge with default options
- options = _mergeOptions2['default']({
+ options = _utilsMergeOptionsJs2['default']({
method: 'GET',
timeout: 45 * 1000
}, options);
callback = callback || function () {};
- var XHR = _window2['default'].XMLHttpRequest;
+ var XHR = _globalWindow2['default'].XMLHttpRequest;
if (typeof XHR === 'undefined') {
// Shim XMLHttpRequest for older IEs
XHR = function () {
try {
- return new _window2['default'].ActiveXObject('Msxml2.XMLHTTP.6.0');
+ return new _globalWindow2['default'].ActiveXObject('Msxml2.XMLHTTP.6.0');
} catch (e) {}
try {
- return new _window2['default'].ActiveXObject('Msxml2.XMLHTTP.3.0');
+ return new _globalWindow2['default'].ActiveXObject('Msxml2.XMLHTTP.3.0');
} catch (f) {}
try {
- return new _window2['default'].ActiveXObject('Msxml2.XMLHTTP');
+ return new _globalWindow2['default'].ActiveXObject('Msxml2.XMLHTTP');
} catch (g) {}
throw new Error('This browser does not support XMLHttpRequest.');
};
@@ -17050,18 +16821,18 @@ var xhr = function xhr(options, callback) {
request.uri = options.uri;
var urlInfo = Url.parseUrl(options.uri);
- var winLoc = _window2['default'].location;
+ var winLoc = _globalWindow2['default'].location;
var successHandler = function successHandler() {
- _window2['default'].clearTimeout(abortTimeout);
+ _globalWindow2['default'].clearTimeout(abortTimeout);
callback(null, request, request.response || request.responseText);
};
var errorHandler = function errorHandler(err) {
- _window2['default'].clearTimeout(abortTimeout);
+ _globalWindow2['default'].clearTimeout(abortTimeout);
if (!err || typeof err === 'string') {
- err = new Error(err);
+ err = new Error(err || 'XHR Failed with a response of: ' + (request && (request.response || request.responseText)));
}
callback(err, request);
@@ -17074,8 +16845,8 @@ var xhr = function xhr(options, callback) {
// XDomainRequest -- Use for IE if XMLHTTPRequest2 isn't available
// 'withCredentials' is only available in XMLHTTPRequest2
// Also XDomainRequest has a lot of gotchas, so only use if cross domain
- if (crossOrigin && _window2['default'].XDomainRequest && !('withCredentials' in request)) {
- request = new _window2['default'].XDomainRequest();
+ if (crossOrigin && _globalWindow2['default'].XDomainRequest && !('withCredentials' in request)) {
+ request = new _globalWindow2['default'].XDomainRequest();
request.onload = successHandler;
request.onerror = errorHandler;
// These blank handlers need to be set to fix ie9
@@ -17085,33 +16856,33 @@ var xhr = function xhr(options, callback) {
// XMLHTTPRequest
} else {
- (function () {
- var fileUrl = urlInfo.protocol === 'file:' || winLoc.protocol === 'file:';
+ (function () {
+ var fileUrl = urlInfo.protocol === 'file:' || winLoc.protocol === 'file:';
- request.onreadystatechange = function () {
- if (request.readyState === 4) {
- if (request.timedout) {
- return errorHandler('timeout');
- }
+ request.onreadystatechange = function () {
+ if (request.readyState === 4) {
+ if (request.timedout) {
+ return errorHandler('timeout');
+ }
- if (request.status === 200 || fileUrl && request.status === 0) {
- successHandler();
- } else {
- errorHandler();
+ if (request.status === 200 || fileUrl && request.status === 0) {
+ successHandler();
+ } else {
+ errorHandler();
+ }
}
+ };
+
+ if (options.timeout) {
+ abortTimeout = _globalWindow2['default'].setTimeout(function () {
+ if (request.readyState !== 4) {
+ request.timedout = true;
+ request.abort();
+ }
+ }, options.timeout);
}
- };
-
- if (options.timeout) {
- abortTimeout = _window2['default'].setTimeout(function () {
- if (request.readyState !== 4) {
- request.timedout = true;
- request.abort();
- }
- }, options.timeout);
- }
- })();
- }
+ })();
+ }
// open the connection
try {
@@ -17143,7 +16914,7 @@ var xhr = function xhr(options, callback) {
exports['default'] = xhr;
module.exports = exports['default'];
-},{"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/url.js":121,"global/window":2}]},{},[122])(122)
+},{"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/url.js":117,"global/window":2}]},{},[118])(118)
});
diff --git a/node_modules/video.js/dist/video.js.map b/node_modules/video.js/dist/video.js.map
index 79b461f..3347e1f 100644
--- a/node_modules/video.js/dist/video.js.map
+++ b/node_modules/video.js/dist/video.js.map
@@ -11,11 +11,9 @@
"node_modules/lodash-compat/internal/baseCopy.js",
"node_modules/lodash-compat/internal/baseFor.js",
"node_modules/lodash-compat/internal/baseForIn.js",
- "node_modules/lodash-compat/internal/baseIsFunction.js",
"node_modules/lodash-compat/internal/baseMerge.js",
"node_modules/lodash-compat/internal/baseMergeDeep.js",
"node_modules/lodash-compat/internal/baseProperty.js",
- "node_modules/lodash-compat/internal/baseToString.js",
"node_modules/lodash-compat/internal/bindCallback.js",
"node_modules/lodash-compat/internal/createAssigner.js",
"node_modules/lodash-compat/internal/createBaseFor.js",
@@ -27,7 +25,6 @@
"node_modules/lodash-compat/internal/isIterateeCall.js",
"node_modules/lodash-compat/internal/isLength.js",
"node_modules/lodash-compat/internal/isObjectLike.js",
- "node_modules/lodash-compat/internal/shimIsPlainObject.js",
"node_modules/lodash-compat/internal/shimKeys.js",
"node_modules/lodash-compat/internal/toObject.js",
"node_modules/lodash-compat/lang/isArguments.js",
@@ -42,7 +39,6 @@
"node_modules/lodash-compat/object/keys.js",
"node_modules/lodash-compat/object/keysIn.js",
"node_modules/lodash-compat/object/merge.js",
- "node_modules/lodash-compat/string/escapeRegExp.js",
"node_modules/lodash-compat/support.js",
"node_modules/lodash-compat/utility/identity.js",
"node_modules/object.assign/index.js",
@@ -127,59 +123,55 @@
"src/js/xhr.js"
],
"names": [],
- "mappings": "AAAA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACTA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;uBCXmB,aAAa;;;;yBACV,gBAAgB;;;;;;;;;;;;;;IAWhC,aAAa;AAEN,WAFP,aAAa,CAEL,MAAM,EAAE,OAAO,EAAE;0BAFzB,aAAa;;AAGf,uBAAM,MAAM,EAAE,OAAO,CAAC,CAAC;GACxB;;YA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",
+ "mappings": "AAAA;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;A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",
"file": "generated.js",
"sourceRoot": "",
"sourcesContent": [
"(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n",
+ "/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n",
"/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n",
"/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n",
"/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n",
"var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n",
"var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n",
- "/**\n * The base implementation of `_.isFunction` without support for environments\n * with incorrect `typeof` results.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n */\nfunction baseIsFunction(value) {\n // Avoid a Chakra JIT bug in compatibility modes of IE 11.\n // See https://github.com/jashkenas/underscore/issues/1621 for more details.\n return typeof value == 'function' || false;\n}\n\nmodule.exports = baseIsFunction;\n",
- "var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merging properties.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? null : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n",
- "var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merging properties.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n",
+ "var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n",
+ "var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n",
"var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n",
- "/**\n * Converts `value` to a string if it's not one. An empty string is returned\n * for `null` or `undefined` values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n if (typeof value == 'string') {\n return value;\n }\n return value == null ? '' : (value + '');\n}\n\nmodule.exports = baseToString;\n",
"var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n",
- "var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a function that assigns properties of source object(s) to a given\n * destination object.\n *\n * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n",
+ "var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n",
"var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n",
"var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n",
"var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n",
"var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n",
"/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n",
- "/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n",
+ "/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n",
"var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n",
- "/**\n * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n",
+ "/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n",
"/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n",
- "var baseForIn = require('./baseForIn'),\n isArguments = require('../lang/isArguments'),\n isHostObject = require('./isHostObject'),\n isObjectLike = require('./isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * A fallback implementation of `_.isPlainObject` which checks if `value`\n * is an object created by the `Object` constructor or has a `[[Prototype]]`\n * of `null`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n */\nfunction shimIsPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value)) ||\n (!hasOwnProperty.call(value, 'constructor') &&\n (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor))) ||\n (!support.argsTag && isArguments(value))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = shimIsPlainObject;\n",
"var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n",
"var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n",
- "var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) && objToString.call(value) == argsTag;\n}\n// Fallback for environments without a `toStringTag` for `arguments` objects.\nif (!support.argsTag) {\n isArguments = function(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n };\n}\n\nmodule.exports = isArguments;\n",
- "var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n",
- "var baseIsFunction = require('../internal/baseIsFunction'),\n getNative = require('../internal/getNative');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar Uint8Array = getNative(global, 'Uint8Array');\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nvar isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return objToString.call(value) == funcTag;\n};\n\nmodule.exports = isFunction;\n",
- "var escapeRegExp = require('../string/escapeRegExp'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n escapeRegExp(fnToString.call(hasOwnProperty))\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (objToString.call(value) == funcTag) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n",
+ "var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n",
+ "var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n",
+ "var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n",
+ "var isFunction = require('./isFunction'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n",
"/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n",
- "var getNative = require('../internal/getNative'),\n isArguments = require('./isArguments'),\n shimIsPlainObject = require('../internal/shimIsPlainObject'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar getPrototypeOf = getNative(Object, 'getPrototypeOf');\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nvar isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) {\n if (!(value && objToString.call(value) == objectTag) || (!support.argsTag && isArguments(value))) {\n return false;\n }\n var valueOf = getNative(value, 'valueOf'),\n objProto = valueOf && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);\n\n return objProto\n ? (value == objProto || getPrototypeOf(value) == objProto)\n : shimIsPlainObject(value);\n};\n\nmodule.exports = isPlainObject;\n",
- "var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n",
- "var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n",
+ "var baseForIn = require('../internal/baseForIn'),\n isArguments = require('./isArguments'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n",
+ "var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n",
+ "var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n",
"var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n",
- "var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? null : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n",
- "var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it is iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n",
- "var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it is invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n",
- "var baseToString = require('../internal/baseToString');\n\n/**\n * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n * In addition to special characters the forward slash is escaped to allow for\n * easier `eval` use and `Function` compilation.\n */\nvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n reHasRegExpChars = RegExp(reRegExpChars.source);\n\n/**\n * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n *\n * @static\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n */\nfunction escapeRegExp(string) {\n string = baseToString(string);\n return (string && reHasRegExpChars.test(string))\n ? string.replace(reRegExpChars, '\\\\$&')\n : string;\n}\n\nmodule.exports = escapeRegExp;\n",
- "/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect DOM support. */\nvar document = (document = global.window) ? document.document : null;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if the `toStringTag` of `arguments` objects is resolvable\n * (all but Firefox < 4, IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.argsTag = objToString.call(arguments) == argsTag;\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if the `toStringTag` of DOM nodes is resolvable (all but IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nodeTag = objToString.call(document) != objectTag;\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n\n /**\n * Detect if the DOM is supported.\n *\n * @memberOf _.support\n * @type boolean\n */\n try {\n support.dom = document.createDocumentFragment().nodeType === 11;\n } catch(e) {\n support.dom = false;\n }\n}(1, 0));\n\nmodule.exports = support;\n",
+ "var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n",
+ "var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n",
+ "var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n",
+ "/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n",
"/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n",
- "'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\nvar isEnumerableOn = function (obj) {\n\treturn function isEnumerable(prop) {\n\t\treturn propIsEnumerable.call(obj, prop);\n\t};\n};\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = Object(target);\n\tvar s, source, i, props;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = Object(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tprops.push.apply(props, Object.getOwnPropertySymbols(source).filter(isEnumerableOn(source)));\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\nassignShim.shim = function shimObjectAssign() {\n\tif (Object.assign && Object.preventExtensions) {\n\t\tvar assignHasPendingExceptions = (function () {\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t}());\n\t\tif (assignHasPendingExceptions) {\n\t\t\tdelete Object.assign;\n\t\t}\n\t}\n\tif (!Object.assign) {\n\t\tdefineProperties(Object, {\n\t\t\tassign: assignShim\n\t\t});\n\t}\n\treturn Object.assign || assignShim;\n};\n\nmodule.exports = assignShim;\n\n",
- "'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj });\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tforeach(keys(map), function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n",
+ "'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar toObject = Object;\nvar push = Array.prototype.push;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable.call(source, syms[i])) {\n\t\t\t\t\tpush.call(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\ndefineProperties(assignShim, {\n\tshim: function shimObjectAssign() {\n\t\tvar assignHasPendingExceptions = function () {\n\t\t\tif (!Object.assign || !Object.preventExtensions) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t};\n\t\tdefineProperties(\n\t\t\tObject,\n\t\t\t{ assign: assignShim },\n\t\t\t{ assign: assignHasPendingExceptions }\n\t\t);\n\t\treturn Object.assign || assignShim;\n\t}\n});\n\nmodule.exports = assignShim;\n",
+ "'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj, enumerable: false });\n /* eslint-disable no-unused-vars */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n",
"\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n",
- "'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar ctor = object.constructor;\n\t\tvar skipConstructor = ctor && ctor.prototype === object;\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n",
- "'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]'\n\t\t\t&& value !== null\n\t\t\t&& typeof value === 'object'\n\t\t\t&& typeof value.length === 'number'\n\t\t\t&& value.length >= 0\n\t\t\t&& toStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n",
+ "'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$window: true,\n\t$console: true,\n\t$parent: true,\n\t$self: true,\n\t$frames: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\ttry {\n\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' && !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t} else {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n",
+ "'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n",
"module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n",
"/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n",
"/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}) {\n // Add standard Aria and Tabindex info\n props = assign({\n className: this.buildCSSClass(),\n 'role': 'button',\n 'type': 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite', // let the screen reader user know that the text of the button may change\n tabIndex: 0\n }, props);\n\n let el = super.createEl(tag, props);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick();\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n",
@@ -222,24 +214,24 @@
"/**\n * @file menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from './menu.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * A button class with a popup menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuButton\n */\nclass MenuButton extends Button {\n\n constructor(player, options={}){\n super(player, options);\n\n this.update();\n\n this.on('keydown', this.handleKeyPress);\n this.el_.setAttribute('aria-haspopup', true);\n this.el_.setAttribute('role', 'button');\n }\n\n /**\n * Update menu\n *\n * @method update\n */\n update() {\n let menu = this.createMenu();\n\n if (this.menu) {\n this.removeChild(this.menu);\n }\n\n this.menu = menu;\n this.addChild(menu);\n\n /**\n * Track the state of the menu button\n *\n * @type {Boolean}\n * @private\n */\n this.buttonPressed_ = false;\n\n if (this.items && this.items.length === 0) {\n this.hide();\n } else if (this.items && this.items.length > 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n",
"/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
`\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc \n * @return {Element}\n * @method createEl\n */\n createEl(type, props) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props));\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n",
"/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n",
- "/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n plugins[name].playerOptions = playerOptionsCopy;\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive_ = true;\n this.reportUserActivity();\n this.listenForUserActivity();\n\n this.on('fullscreenchange', this.handleFullscreenChange);\n this.on('stageclick', this.handleStageClick);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech) { this.tech.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech\n */\n loadTech(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech) {\n this.unloadTech();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n var techReady = Fn.bind(this, function() {\n this.triggerReady();\n });\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech = new techComponent(techOptions);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech);\n\n this.on(this.tech, 'ready', this.handleTechReady);\n this.on(this.tech, 'usenativecontrols', this.handleTechUseNativeControls);\n\n // Listen to every HTML5 events and trigger them back on the player for the plugins\n this.on(this.tech, 'loadstart', this.handleTechLoadStart);\n this.on(this.tech, 'waiting', this.handleTechWaiting);\n this.on(this.tech, 'canplay', this.handleTechCanPlay);\n this.on(this.tech, 'canplaythrough', this.handleTechCanPlayThrough);\n this.on(this.tech, 'playing', this.handleTechPlaying);\n this.on(this.tech, 'ended', this.handleTechEnded);\n this.on(this.tech, 'seeking', this.handleTechSeeking);\n this.on(this.tech, 'seeked', this.handleTechSeeked);\n this.on(this.tech, 'play', this.handleTechPlay);\n this.on(this.tech, 'firstplay', this.handleTechFirstPlay);\n this.on(this.tech, 'pause', this.handleTechPause);\n this.on(this.tech, 'progress', this.handleTechProgress);\n this.on(this.tech, 'durationchange', this.handleTechDurationChange);\n this.on(this.tech, 'fullscreenchange', this.handleTechFullscreenChange);\n this.on(this.tech, 'error', this.handleTechError);\n this.on(this.tech, 'suspend', this.handleTechSuspend);\n this.on(this.tech, 'abort', this.handleTechAbort);\n this.on(this.tech, 'emptied', this.handleTechEmptied);\n this.on(this.tech, 'stalled', this.handleTechStalled);\n this.on(this.tech, 'loadedmetadata', this.handleTechLoadedMetaData);\n this.on(this.tech, 'loadeddata', this.handleTechLoadedData);\n this.on(this.tech, 'timeupdate', this.handleTechTimeUpdate);\n this.on(this.tech, 'ratechange', this.handleTechRateChange);\n this.on(this.tech, 'volumechange', this.handleTechVolumeChange);\n this.on(this.tech, 'texttrackchange', this.onTextTrackChange);\n this.on(this.tech, 'loadedmetadata', this.updateStyleEl_);\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech.ready(techReady, true);\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech\n */\n unloadTech() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech.dispose();\n\n this.tech = false;\n }\n\n /**\n * Add playback technology listeners\n *\n * @method addTechControlsListeners\n */\n addTechControlsListeners() {\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech, 'mousedown', this.handleTechClick);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech, 'touchstart', this.handleTechTouchStart);\n this.on(this.tech, 'touchmove', this.handleTechTouchMove);\n this.on(this.tech, 'touchend', this.handleTechTouchEnd);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech, 'tap', this.handleTechTap);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners\n */\n removeTechControlsListeners() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech, 'tap', this.handleTechTap);\n this.off(this.tech, 'touchstart', this.handleTechTouchStart);\n this.off(this.tech, 'touchmove', this.handleTechTouchMove);\n this.off(this.tech, 'touchend', this.handleTechTouchEnd);\n this.off(this.tech, 'mousedown', this.handleTechClick);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @private\n * @method handleTechReady\n */\n handleTechReady() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall('setVolume', this.cache_.volume);\n }\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the native controls are used\n *\n * @private\n * @method handleTechUseNativeControls\n */\n handleTechUseNativeControls() {\n this.usingNativeControls(true);\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @event loadstart\n */\n handleTechLoadStart() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @event play\n */\n handleTechPlay() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @event waiting\n */\n handleTechWaiting() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplay\n */\n handleTechCanPlay() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplaythrough\n */\n handleTechCanPlayThrough() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event playing\n */\n handleTechPlaying() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @event seeking\n */\n handleTechSeeking() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @event seeked\n */\n handleTechSeeked() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @event firstplay\n */\n handleTechFirstPlay() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @event pause\n */\n handleTechPause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @event progress\n */\n handleTechProgress() {\n this.trigger('progress');\n\n // Add custom event for when source is finished downloading.\n if (this.bufferedPercent() === 1) {\n this.trigger('loadedalldata');\n }\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @event ended\n */\n handleTechEnded() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @event durationchange\n */\n handleTechDurationChange() {\n this.updateDuration();\n this.trigger('durationchange');\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @method handleTechClick\n */\n handleTechClick(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @method handleTechTap\n */\n handleTechTap() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @method handleTechTouchStart\n */\n handleTechTouchStart() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @method handleTechTouchMove\n */\n handleTechTouchMove() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @method handleTechTouchEnd\n */\n handleTechTouchEnd(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Update the duration of the player using the tech\n *\n * @private\n * @method updateDuration\n */\n updateDuration() {\n // Allows for caching value instead of asking player each time.\n // We need to get the techGet response and check for a value so we don't\n // accidentally cause the stack to blow up.\n var duration = this.techGet('duration');\n if (duration) {\n if (duration < 0) {\n duration = Infinity;\n }\n this.duration(duration);\n // Determine if the stream is live and propagate styles down to UI.\n if (duration === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n }\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @event fullscreenchange\n */\n handleFullscreenChange() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick\n */\n handleStageClick() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @method handleTechFullscreenChange\n */\n handleTechFullscreenChange(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @event error\n */\n handleTechError() {\n this.error(this.tech.error().code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @event suspend\n */\n handleTechSuspend() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @event abort\n */\n handleTechAbort() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @event emptied\n */\n handleTechEmptied() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @event stalled\n */\n handleTechStalled() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @event loadedmetadata\n */\n handleTechLoadedMetaData() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @event loaddata\n */\n handleTechLoadedData() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @event timeupdate\n */\n handleTechTimeUpdate() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @event ratechange\n */\n handleTechRateChange() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @event volumechange\n */\n handleTechVolumeChange() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @event texttrackchange\n */\n onTextTrackChange() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @method techCall\n */\n techCall(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech && !this.tech.isReady_) {\n this.tech.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @method techGet\n */\n techGet(method) {\n if (this.tech && this.tech.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName} playback technology element.`, e);\n this.tech.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds !== undefined) {\n\n // cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = parseFloat(seconds);\n\n return this;\n }\n\n if (this.cache_.duration === undefined) {\n this.updateDuration();\n }\n\n return this.cache_.duration || 0;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall('setMuted', muted);\n return this;\n }\n return this.techGet('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech.supportsFullScreen()) {\n this.techCall('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech && this.tech['featuresPlaybackRate']) {\n return this.techGet('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech && this.tech['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech && this.tech['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech && this.tech['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech && this.tech['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech && this.tech['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech && this.tech.videoWidth && this.tech.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech && this.tech.videoHeight && this.tech.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall('initialTime'); },\n // startOffsetTime: function(){ return this.techCall('startOffsetTime'); },\n // played: function(){ return this.techCall('played'); },\n // seekable: function(){ return this.techCall('seekable'); },\n // videoTracks: function(){ return this.techCall('videoTracks'); },\n // audioTracks: function(){ return this.techCall('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall('defaultPlaybackRate'); },\n // mediaGroup: function(){ return this.techCall('mediaGroup'); },\n // controller: function(){ return this.techCall('controller'); },\n // defaultMuted: function(){ return this.techCall('defaultMuted'); }\n\n // TODO\n // currentSrcList: the array of sources including other formats and bitrates\n // playList: array of source lists in order of playback\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i\n * \n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive_ = true;\n this.reportUserActivity();\n this.listenForUserActivity();\n\n this.on('fullscreenchange', this.handleFullscreenChange);\n this.on('stageclick', this.handleStageClick);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech) { this.tech.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech\n */\n loadTech(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech) {\n this.unloadTech();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n var techReady = Fn.bind(this, function() {\n this.triggerReady();\n });\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech = new techComponent(techOptions);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech);\n\n this.on(this.tech, 'ready', this.handleTechReady);\n\n // Listen to every HTML5 events and trigger them back on the player for the plugins\n this.on(this.tech, 'loadstart', this.handleTechLoadStart);\n this.on(this.tech, 'waiting', this.handleTechWaiting);\n this.on(this.tech, 'canplay', this.handleTechCanPlay);\n this.on(this.tech, 'canplaythrough', this.handleTechCanPlayThrough);\n this.on(this.tech, 'playing', this.handleTechPlaying);\n this.on(this.tech, 'ended', this.handleTechEnded);\n this.on(this.tech, 'seeking', this.handleTechSeeking);\n this.on(this.tech, 'seeked', this.handleTechSeeked);\n this.on(this.tech, 'play', this.handleTechPlay);\n this.on(this.tech, 'firstplay', this.handleTechFirstPlay);\n this.on(this.tech, 'pause', this.handleTechPause);\n this.on(this.tech, 'progress', this.handleTechProgress);\n this.on(this.tech, 'durationchange', this.handleTechDurationChange);\n this.on(this.tech, 'fullscreenchange', this.handleTechFullscreenChange);\n this.on(this.tech, 'error', this.handleTechError);\n this.on(this.tech, 'suspend', this.handleTechSuspend);\n this.on(this.tech, 'abort', this.handleTechAbort);\n this.on(this.tech, 'emptied', this.handleTechEmptied);\n this.on(this.tech, 'stalled', this.handleTechStalled);\n this.on(this.tech, 'loadedmetadata', this.handleTechLoadedMetaData);\n this.on(this.tech, 'loadeddata', this.handleTechLoadedData);\n this.on(this.tech, 'timeupdate', this.handleTechTimeUpdate);\n this.on(this.tech, 'ratechange', this.handleTechRateChange);\n this.on(this.tech, 'volumechange', this.handleTechVolumeChange);\n this.on(this.tech, 'texttrackchange', this.onTextTrackChange);\n this.on(this.tech, 'loadedmetadata', this.updateStyleEl_);\n\n this.usingNativeControls(this.techGet('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech.ready(techReady, true);\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech\n */\n unloadTech() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech.dispose();\n\n this.tech = false;\n }\n\n /**\n * Add playback technology listeners\n *\n * @method addTechControlsListeners\n */\n addTechControlsListeners() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech, 'mousedown', this.handleTechClick);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech, 'touchstart', this.handleTechTouchStart);\n this.on(this.tech, 'touchmove', this.handleTechTouchMove);\n this.on(this.tech, 'touchend', this.handleTechTouchEnd);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech, 'tap', this.handleTechTap);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners\n */\n removeTechControlsListeners() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech, 'tap', this.handleTechTap);\n this.off(this.tech, 'touchstart', this.handleTechTouchStart);\n this.off(this.tech, 'touchmove', this.handleTechTouchMove);\n this.off(this.tech, 'touchend', this.handleTechTouchEnd);\n this.off(this.tech, 'mousedown', this.handleTechClick);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @private\n * @method handleTechReady\n */\n handleTechReady() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall('setVolume', this.cache_.volume);\n }\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @event loadstart\n */\n handleTechLoadStart() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @event play\n */\n handleTechPlay() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @event waiting\n */\n handleTechWaiting() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplay\n */\n handleTechCanPlay() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplaythrough\n */\n handleTechCanPlayThrough() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event playing\n */\n handleTechPlaying() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @event seeking\n */\n handleTechSeeking() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @event seeked\n */\n handleTechSeeked() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @event firstplay\n */\n handleTechFirstPlay() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @event pause\n */\n handleTechPause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @event progress\n */\n handleTechProgress() {\n this.trigger('progress');\n\n // Add custom event for when source is finished downloading.\n if (this.bufferedPercent() === 1) {\n this.trigger('loadedalldata');\n }\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @event ended\n */\n handleTechEnded() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @event durationchange\n */\n handleTechDurationChange() {\n this.updateDuration();\n this.trigger('durationchange');\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @method handleTechClick\n */\n handleTechClick(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @method handleTechTap\n */\n handleTechTap() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @method handleTechTouchStart\n */\n handleTechTouchStart() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @method handleTechTouchMove\n */\n handleTechTouchMove() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @method handleTechTouchEnd\n */\n handleTechTouchEnd(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Update the duration of the player using the tech\n *\n * @private\n * @method updateDuration\n */\n updateDuration() {\n // Allows for caching value instead of asking player each time.\n // We need to get the techGet response and check for a value so we don't\n // accidentally cause the stack to blow up.\n var duration = this.techGet('duration');\n if (duration) {\n if (duration < 0) {\n duration = Infinity;\n }\n this.duration(duration);\n // Determine if the stream is live and propagate styles down to UI.\n if (duration === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n }\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @event fullscreenchange\n */\n handleFullscreenChange() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick\n */\n handleStageClick() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @method handleTechFullscreenChange\n */\n handleTechFullscreenChange(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @event error\n */\n handleTechError() {\n let error = this.tech.error();\n this.error(error && error.code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @event suspend\n */\n handleTechSuspend() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @event abort\n */\n handleTechAbort() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @event emptied\n */\n handleTechEmptied() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @event stalled\n */\n handleTechStalled() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @event loadedmetadata\n */\n handleTechLoadedMetaData() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @event loaddata\n */\n handleTechLoadedData() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @event timeupdate\n */\n handleTechTimeUpdate() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @event ratechange\n */\n handleTechRateChange() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @event volumechange\n */\n handleTechVolumeChange() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @event texttrackchange\n */\n onTextTrackChange() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @method techCall\n */\n techCall(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech && !this.tech.isReady_) {\n this.tech.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @method techGet\n */\n techGet(method) {\n if (this.tech && this.tech.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName} playback technology element.`, e);\n this.tech.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds !== undefined) {\n\n // cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = parseFloat(seconds);\n\n return this;\n }\n\n if (this.cache_.duration === undefined) {\n this.updateDuration();\n }\n\n return this.cache_.duration || 0;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall('setMuted', muted);\n return this;\n }\n return this.techGet('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech.supportsFullScreen()) {\n this.techCall('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech && this.tech['featuresPlaybackRate']) {\n return this.techGet('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech && this.tech['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech && this.tech['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech && this.tech['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech && this.tech['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech && this.tech['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech && this.tech.videoWidth && this.tech.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech && this.tech.videoHeight && this.tech.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall('initialTime'); },\n // startOffsetTime: function(){ return this.techCall('startOffsetTime'); },\n // played: function(){ return this.techCall('played'); },\n // seekable: function(){ return this.techCall('seekable'); },\n // videoTracks: function(){ return this.techCall('videoTracks'); },\n // audioTracks: function(){ return this.techCall('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall('defaultPlaybackRate'); },\n // mediaGroup: function(){ return this.techCall('mediaGroup'); },\n // controller: function(){ return this.techCall('controller'); },\n // defaultMuted: function(){ return this.techCall('defaultMuted'); }\n\n // TODO\n // currentSrcList: the array of sources including other formats and bitrates\n // playList: array of source lists in order of playback\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n return createTimeRange(0, this.el_.vjs_getProperty('buffered'));\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'error,networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n const msg = 'FLASH: '+err;\n\n if (err === 'srcnotfound') {\n tech.trigger('error', { code: 4, message: msg });\n\n // errors we haven't categorized into the media errors\n } else {\n tech.trigger('error', msg);\n }\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n",
- "/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) { this.el_.src = src; }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){ this.el_.load(); }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n",
+ "/**\n * @file flash.js\n * VideoJS-SWF - Custom Flash Player with HTML5-ish API\n * https://github.com/zencoder/video-js-swf\n * Not using setupTriggers. Using global onEvent func to distribute events\n */\n\nimport Tech from './tech';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport { createTimeRange } from '../utils/time-ranges.js';\nimport FlashRtmpDecorator from './flash-rtmp';\nimport Component from '../component';\nimport window from 'global/window';\nimport assign from 'object.assign';\n\nlet navigator = window.navigator;\n/**\n * Flash Media Controller - Wrapper for fallback SWF API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Flash\n */\nclass Flash extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n // Set the source when ready\n if (options.source) {\n this.ready(function(){\n this.setSource(options.source);\n }, true);\n }\n\n // Having issues with Flash reloading on certain page actions (hide/resize/fullscreen) in certain browsers\n // This allows resetting the playhead when we catch the reload\n if (options.startTime) {\n this.ready(function(){\n this.load();\n this.play();\n this.currentTime(options.startTime);\n }, true);\n }\n\n // Add global window functions that the swf expects\n // A 4.x workflow we weren't able to solve for in 5.0\n // because of the need to hard code these functions\n // into the swf for security reasons\n window.videojs = window.videojs || {};\n window.videojs.Flash = window.videojs.Flash || {};\n window.videojs.Flash.onReady = Flash.onReady;\n window.videojs.Flash.onEvent = Flash.onEvent;\n window.videojs.Flash.onError = Flash.onError;\n\n this.on('seeked', function() {\n this.lastSeekTarget_ = undefined;\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let options = this.options_;\n\n // Generate ID for swf object\n let objId = options.techId;\n\n // Merge default flashvars with ones passed in to init\n let flashVars = assign({\n\n // SWF Callback Functions\n 'readyFunction': 'videojs.Flash.onReady',\n 'eventProxyFunction': 'videojs.Flash.onEvent',\n 'errorEventProxyFunction': 'videojs.Flash.onError',\n\n // Player Settings\n 'autoplay': options.autoplay,\n 'preload': options.preload,\n 'loop': options.loop,\n 'muted': options.muted\n\n }, options.flashVars);\n\n // Merge default parames with ones passed in\n let params = assign({\n 'wmode': 'opaque', // Opaque is needed to overlay controls, but can affect playback performance\n 'bgcolor': '#000000' // Using bgcolor prevents a white flash when the object is loading\n }, options.params);\n\n // Merge default attributes with ones passed in\n let attributes = assign({\n 'id': objId,\n 'name': objId, // Both ID and Name needed or swf to identify itself\n 'class': 'vjs-tech'\n }, options.attributes);\n\n this.el_ = Flash.embed(options.swf, flashVars, params, attributes);\n this.el_.tech = this;\n\n return this.el_;\n }\n\n /**\n * Play for flash tech\n *\n * @method play\n */\n play() {\n if (this.ended()) {\n this.setCurrentTime(0);\n }\n this.el_.vjs_play();\n }\n\n /**\n * Pause for flash tech\n *\n * @method pause\n */\n pause() {\n this.el_.vjs_pause();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.currentSrc();\n }\n\n // Setting src through `src` not `setSrc` will be deprecated\n return this.setSrc(src);\n }\n\n /**\n * Set video\n *\n * @param {Object=} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) {\n // Make sure source URL is absolute.\n src = Url.getAbsoluteURL(src);\n this.el_.vjs_src(src);\n\n // Currently the SWF doesn't autoplay if you load a source later.\n // e.g. Load player w/ no source, wait 2s, set src.\n if (this.autoplay()) {\n var tech = this;\n this.setTimeout(function(){ tech.play(); }, 0);\n }\n }\n\n /**\n * Returns true if the tech is currently seeking.\n * @return {boolean} true if seeking\n */\n seeking() {\n return this.lastSeekTarget_ !== undefined;\n }\n\n /**\n * Set current time\n *\n * @param {Number} time Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(time) {\n let seekable = this.seekable();\n if (seekable.length) {\n // clamp to the current seekable range\n time = time > seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n",
+ "/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) { this.el_.src = src; }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){ this.el_.load(); }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n",
"/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i 0) {\n this.trigger('loadstart');\n }\n // Allow the tech ready event to handle synchronisity\n }, true);\n }\n\n /* Fallbacks for unsupported event types\n ================================================================================ */\n // Manually trigger progress events based on changes to the buffered amount\n // Many flash players and older HTML5 browsers don't send progress or progress-like events\n /**\n * Turn on progress events\n *\n * @method manualProgressOn\n */\n manualProgressOn() {\n this.on('durationchange', this.onDurationChange);\n\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress);\n }\n\n /**\n * Turn off progress events\n *\n * @method manualProgressOff\n */\n manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n\n this.off('durationchange', this.onDurationChange);\n }\n\n /**\n * Track progress\n *\n * @method trackProgress\n */\n trackProgress() {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(Fn.bind(this, function(){\n // Don't trigger unless buffered amount is greater than last time\n\n let numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n\n /**\n * Update duration\n *\n * @method onDurationChange\n */\n onDurationChange() {\n this.duration_ = this.duration();\n }\n\n /**\n * Create and get TimeRange object for buffering\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n return createTimeRange(0, 0);\n }\n\n /**\n * Get buffered percent\n *\n * @return {Number}\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n\n /**\n * Stops tracking progress by clearing progress interval\n *\n * @method stopTrackingProgress\n */\n stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n\n /*! Time Tracking -------------------------------------------------------------- */\n /**\n * Set event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOn\n */\n manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n\n this.on('play', this.trackCurrentTime);\n this.on('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Remove event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOff\n */\n manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime);\n this.off('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Tracks current time\n *\n * @method trackCurrentTime\n */\n trackCurrentTime() {\n if (this.currentTimeInterval) { this.stopTrackingCurrentTime(); }\n this.currentTimeInterval = this.setInterval(function(){\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }, 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }\n\n /**\n * Turn off play progress tracking (when paused or dragging)\n *\n * @method stopTrackingCurrentTime\n */\n stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }\n\n /**\n * Turn off any manual progress or timeupdate tracking\n *\n * @method dispose\n */\n dispose() {\n // clear out text tracks because we can't reuse them between techs\n let tt = this.textTracks();\n let i = tt.length;\n while(i--) {\n this.removeRemoteTextTrack(tt[i]);\n }\n\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) { this.manualProgressOff(); }\n\n if (this.manualTimeUpdates) { this.manualTimeUpdatesOff(); }\n\n super.dispose();\n }\n\n /**\n * Return the time ranges that have been played through for the\n * current source. This implementation is incomplete. It does not\n * track the played time ranges, only whether the source has played\n * at all or not.\n * @return {TimeRangeObject} a single time range if this video has\n * played or an empty set of ranges if not.\n * @method played\n */\n played() {\n if (this.hasStarted_) {\n return createTimeRange(0, 0);\n }\n return createTimeRange();\n }\n\n /**\n * Set current time\n *\n * @method setCurrentTime\n */\n setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) { this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true }); }\n }\n\n /**\n * Initialize texttrack listeners\n *\n * @method initTextTrackListeners\n */\n initTextTrackListeners() {\n let textTrackListChanges = Fn.bind(this, function() {\n this.trigger('texttrackchange');\n });\n\n let tracks = this.textTracks();\n\n if (!tracks) return;\n\n tracks.addEventListener('removetrack', textTrackListChanges);\n tracks.addEventListener('addtrack', textTrackListChanges);\n\n this.on('dispose', Fn.bind(this, function() {\n tracks.removeEventListener('removetrack', textTrackListChanges);\n tracks.removeEventListener('addtrack', textTrackListChanges);\n }));\n }\n\n /**\n * Emulate texttracks\n *\n * @method emulateTextTracks\n */\n emulateTextTracks() {\n if (!window['WebVTT'] && this.el().parentNode != null) {\n let script = document.createElement('script');\n script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';\n this.el().parentNode.appendChild(script);\n window['WebVTT'] = true;\n }\n\n let tracks = this.textTracks();\n if (!tracks) {\n return;\n }\n\n let textTracksChanges = Fn.bind(this, function() {\n let updateDisplay = () => this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n",
+ "/**\n * @file tech.js\n * Media Technology Controller - Base class for media playback\n * technology controllers like Flash and HTML5\n */\n\nimport Component from '../component';\nimport TextTrack from '../tracks/text-track';\nimport TextTrackList from '../tracks/text-track-list';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport { createTimeRange } from '../utils/time-ranges.js';\nimport { bufferedPercent } from '../utils/buffer.js';\nimport MediaError from '../media-error.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Base class for media (HTML5 Video, Flash) controllers\n *\n * @param {Object=} options Options object\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Tech\n */\nclass Tech extends Component {\n\n constructor(options={}, ready=function(){}){\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n options.reportTouchActivity = false;\n super(null, options, ready);\n\n // keep track of whether the current source has played at all to\n // implement a very limited played()\n this.hasStarted_ = false;\n this.on('playing', function() {\n this.hasStarted_ = true;\n });\n this.on('loadstart', function() {\n this.hasStarted_ = false;\n });\n\n this.textTracks_ = options.textTracks;\n\n // Manually track progress in cases where the browser/flash player doesn't report it.\n if (!this.featuresProgressEvents) {\n this.manualProgressOn();\n }\n\n // Manually track timeupdates in cases where the browser/flash player doesn't report it.\n if (!this.featuresTimeupdateEvents) {\n this.manualTimeUpdatesOn();\n }\n\n this.initControlsListeners();\n\n if (options.nativeCaptions === false || options.nativeTextTracks === false) {\n this.featuresNativeTextTracks = false;\n }\n\n if (!this.featuresNativeTextTracks) {\n this.emulateTextTracks();\n }\n\n this.initTextTrackListeners();\n\n // Turn on component tap events\n this.emitTapEvents();\n }\n\n /**\n * Set up click and touch listeners for the playback element\n * On desktops, a click on the video itself will toggle playback,\n * on a mobile device a click on the video toggles controls.\n * (toggling controls is done by toggling the user state between active and\n * inactive)\n * A tap can signal that a user has become active, or has become inactive\n * e.g. a quick tap on an iPhone movie should reveal the controls. Another\n * quick tap should hide them again (signaling the user is in an inactive\n * viewing state)\n * In addition to this, we still want the user to be considered inactive after\n * a few seconds of inactivity.\n * Note: the only part of iOS interaction we can't mimic with this setup\n * is a touch and hold on the video element counting as activity in order to\n * keep the controls showing, but that shouldn't be an issue. A touch and hold on\n * any controls will still keep the user active\n *\n * @method initControlsListeners\n */\n initControlsListeners() {\n // if we're loading the playback object after it has started loading or playing the\n // video (often with autoplay on) then the loadstart event has already fired and we\n // need to fire it manually because many things rely on it.\n // Long term we might consider how we would do this for other events like 'canplay'\n // that may also have fired.\n this.ready(function(){\n if (this.networkState && this.networkState() > 0) {\n this.trigger('loadstart');\n }\n // Allow the tech ready event to handle synchronisity\n }, true);\n }\n\n /* Fallbacks for unsupported event types\n ================================================================================ */\n // Manually trigger progress events based on changes to the buffered amount\n // Many flash players and older HTML5 browsers don't send progress or progress-like events\n /**\n * Turn on progress events\n *\n * @method manualProgressOn\n */\n manualProgressOn() {\n this.on('durationchange', this.onDurationChange);\n\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress);\n }\n\n /**\n * Turn off progress events\n *\n * @method manualProgressOff\n */\n manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n\n this.off('durationchange', this.onDurationChange);\n }\n\n /**\n * Track progress\n *\n * @method trackProgress\n */\n trackProgress() {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(Fn.bind(this, function(){\n // Don't trigger unless buffered amount is greater than last time\n\n let numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n\n /**\n * Update duration\n *\n * @method onDurationChange\n */\n onDurationChange() {\n this.duration_ = this.duration();\n }\n\n /**\n * Create and get TimeRange object for buffering\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n return createTimeRange(0, 0);\n }\n\n /**\n * Get buffered percent\n *\n * @return {Number}\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n\n /**\n * Stops tracking progress by clearing progress interval\n *\n * @method stopTrackingProgress\n */\n stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n\n /*! Time Tracking -------------------------------------------------------------- */\n /**\n * Set event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOn\n */\n manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n\n this.on('play', this.trackCurrentTime);\n this.on('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Remove event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOff\n */\n manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime);\n this.off('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Tracks current time\n *\n * @method trackCurrentTime\n */\n trackCurrentTime() {\n if (this.currentTimeInterval) { this.stopTrackingCurrentTime(); }\n this.currentTimeInterval = this.setInterval(function(){\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }, 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }\n\n /**\n * Turn off play progress tracking (when paused or dragging)\n *\n * @method stopTrackingCurrentTime\n */\n stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }\n\n /**\n * Turn off any manual progress or timeupdate tracking\n *\n * @method dispose\n */\n dispose() {\n // clear out text tracks because we can't reuse them between techs\n let textTracks = this.textTracks();\n\n if (textTracks) {\n let i = textTracks.length;\n while(i--) {\n this.removeRemoteTextTrack(textTracks[i]);\n }\n }\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) { this.manualProgressOff(); }\n\n if (this.manualTimeUpdates) { this.manualTimeUpdatesOff(); }\n\n super.dispose();\n }\n\n /**\n * When invoked without an argument, returns a MediaError object\n * representing the current error state of the player or null if\n * there is no error. When invoked with an argument, set the current\n * error state of the player.\n * @param {MediaError=} err Optional an error object\n * @return {MediaError} the current error object or null\n * @method error\n */\n error(err) {\n if (err !== undefined) {\n if (err instanceof MediaError) {\n this.error_ = err;\n } else {\n this.error_ = new MediaError(err);\n }\n this.trigger('error');\n }\n return this.error_;\n }\n\n /**\n * Return the time ranges that have been played through for the\n * current source. This implementation is incomplete. It does not\n * track the played time ranges, only whether the source has played\n * at all or not.\n * @return {TimeRangeObject} a single time range if this video has\n * played or an empty set of ranges if not.\n * @method played\n */\n played() {\n if (this.hasStarted_) {\n return createTimeRange(0, 0);\n }\n return createTimeRange();\n }\n\n /**\n * Set current time\n *\n * @method setCurrentTime\n */\n setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) { this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true }); }\n }\n\n /**\n * Initialize texttrack listeners\n *\n * @method initTextTrackListeners\n */\n initTextTrackListeners() {\n let textTrackListChanges = Fn.bind(this, function() {\n this.trigger('texttrackchange');\n });\n\n let tracks = this.textTracks();\n\n if (!tracks) return;\n\n tracks.addEventListener('removetrack', textTrackListChanges);\n tracks.addEventListener('addtrack', textTrackListChanges);\n\n this.on('dispose', Fn.bind(this, function() {\n tracks.removeEventListener('removetrack', textTrackListChanges);\n tracks.removeEventListener('addtrack', textTrackListChanges);\n }));\n }\n\n /**\n * Emulate texttracks\n *\n * @method emulateTextTracks\n */\n emulateTextTracks() {\n if (!window['WebVTT'] && this.el().parentNode != null) {\n let script = document.createElement('script');\n script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';\n this.el().parentNode.appendChild(script);\n window['WebVTT'] = true;\n }\n\n let tracks = this.textTracks();\n if (!tracks) {\n return;\n }\n\n let textTracksChanges = Fn.bind(this, function() {\n let updateDisplay = () => this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n",
"/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n",
"/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech && player.tech['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks \n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech && this.player_.tech['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks \n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks \n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list \n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n // \n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n",
"/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n",
"/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n",
"/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n",
"/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
\n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
`;\n\n return template;\n}\n\nexport default TextTrackSettings;\n",
- "/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport XHR from '../xhr.js';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n XHR(src, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err);\n }\n\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n",
- "/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n",
+ "/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport XHR from '../xhr.js';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n XHR(src, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n",
+ "/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\nconst webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\nconst appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexport const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n",
"/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n",
"import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n",
"/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // Not remembering why we were checking for dash\n // but using setAttribute means you have to use getAttribute\n\n // The check for dash checks for the aria- * attributes, like aria-label, aria-valuemin.\n // The additional check for \"role\" is because the default method for adding attributes does not\n // add the attribute \"role\". My guess is because it's not a valid attribute in some namespaces, although\n // browsers handle the attribute just fine. The W3C allows for aria- * attributes to be used in pre-HTML5 docs.\n // http://www.w3.org/TR/wai-aria-primer/#ariahtml. Using setAttribute gets around this problem.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n",
@@ -254,6 +246,6 @@
"/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n",
"/**\n * @file url.js\n */\nimport document from 'global/document';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n",
"/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\n\nimport assign from 'object.assign';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport xhr from './xhr.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendsFn from './extends.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = stylesheet.createStyleElement('vjs-styles-defaults');\nlet head = document.querySelector('head');\nhead.insertBefore(style, head.firstChild);\nstylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n`);\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extends' doc for more info)\n * var MySpecialButton = videojs.extends(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extends` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extends(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extends\n */\nvideojs.extends = extendsFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number} start Start time in seconds\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = createTimeRange;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Simple http request for retrieving external files (e.g. text tracks)\n *\n * ##### Example\n *\n * // using url string\n * videojs.xhr('http://example.com/myfile.vtt', function(error, response, responseBody){});\n *\n * // or options block\n * videojs.xhr({\n * uri: 'http://example.com/myfile.vtt',\n * method: 'GET',\n * responseType: 'text'\n * }, function(error, response, responseBody){\n * if (error) {\n * // log the error\n * } else {\n * // successful, do something with the response\n * }\n * });\n *\n *\n * API is modeled after the Raynos/xhr.\n * https://github.com/Raynos/xhr/blob/master/index.js\n *\n * @param {Object|String} options Options block or URL string\n * @param {Function} callback The callback function\n * @returns {Object} The request\n */\nvideojs.xhr = xhr;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n",
- "/**\n * @file xhr.js\n */\nimport * as Url from './utils/url.js';\nimport log from './utils/log.js';\nimport mergeOptions from './utils/merge-options.js';\nimport window from 'global/window';\n\n/*\n * Simple http request for retrieving external files (e.g. text tracks)\n * ##### Example\n * // using url string\n * videojs.xhr('http://example.com/myfile.vtt', function(error, response, responseBody){});\n *\n * // or options block\n * videojs.xhr({\n * uri: 'http://example.com/myfile.vtt',\n * method: 'GET',\n * responseType: 'text'\n * }, function(error, response, responseBody){\n * if (error) {\n * // log the error\n * } else {\n * // successful, do something with the response\n * }\n * });\n * /////////////\n * API is modeled after the Raynos/xhr, which we hope to use after\n * getting browserify implemented.\n * https://github.com/Raynos/xhr/blob/master/index.js\n *\n * @param {Object|String} options Options block or URL string\n * @param {Function} callback The callback function\n * @return {Object} The request\n * @method xhr\n */\nvar xhr = function(options, callback){\n let abortTimeout;\n\n // If options is a string it's the url\n if (typeof options === 'string') {\n options = {\n uri: options\n };\n }\n\n // Merge with default options\n options = mergeOptions({\n method: 'GET',\n timeout: 45 * 1000\n }, options);\n\n callback = callback || function(){};\n\n let XHR = window.XMLHttpRequest;\n\n if (typeof XHR === 'undefined') {\n // Shim XMLHttpRequest for older IEs\n XHR = function () {\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch (e) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch (f) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP'); } catch (g) {}\n throw new Error('This browser does not support XMLHttpRequest.');\n };\n }\n\n let request = new XHR();\n // Store a reference to the url on the request instance\n request.uri = options.uri;\n\n let urlInfo = Url.parseUrl(options.uri);\n let winLoc = window.location;\n\n let successHandler = function(){\n window.clearTimeout(abortTimeout);\n callback(null, request, request.response || request.responseText);\n };\n\n let errorHandler = function(err){\n window.clearTimeout(abortTimeout);\n\n if (!err || typeof err === 'string') {\n err = new Error(err);\n }\n\n callback(err, request);\n };\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n const crossOrigin = (urlInfo.protocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n // XDomainRequest -- Use for IE if XMLHTTPRequest2 isn't available\n // 'withCredentials' is only available in XMLHTTPRequest2\n // Also XDomainRequest has a lot of gotchas, so only use if cross domain\n if (crossOrigin && window.XDomainRequest && !('withCredentials' in request)) {\n request = new window.XDomainRequest();\n request.onload = successHandler;\n request.onerror = errorHandler;\n // These blank handlers need to be set to fix ie9\n // http://cypressnorth.com/programming/internet-explorer-aborting-ajax-requests-fixed/\n request.onprogress = function(){};\n request.ontimeout = function(){};\n\n // XMLHTTPRequest\n } else {\n const fileUrl = (urlInfo.protocol === 'file:' || winLoc.protocol === 'file:');\n\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n if (request.timedout) {\n return errorHandler('timeout');\n }\n\n if (request.status === 200 || fileUrl && request.status === 0) {\n successHandler();\n } else {\n errorHandler();\n }\n }\n };\n\n if (options.timeout) {\n abortTimeout = window.setTimeout(function() {\n if (request.readyState !== 4) {\n request.timedout = true;\n request.abort();\n }\n }, options.timeout);\n }\n }\n\n // open the connection\n try {\n // Third arg is async, or ignored by XDomainRequest\n request.open(options.method || 'GET', options.uri, true);\n } catch(err) {\n return errorHandler(err);\n }\n\n // withCredentials only supported by XMLHttpRequest2\n if(options.withCredentials) {\n request.withCredentials = true;\n }\n\n if (options.responseType) {\n request.responseType = options.responseType;\n }\n\n // send the request\n try {\n request.send();\n } catch(err) {\n return errorHandler(err);\n }\n\n return request;\n};\n\nexport default xhr;\n"
+ "/**\n * @file xhr.js\n */\nimport * as Url from './utils/url.js';\nimport log from './utils/log.js';\nimport mergeOptions from './utils/merge-options.js';\nimport window from 'global/window';\n\n/*\n * Simple http request for retrieving external files (e.g. text tracks)\n * ##### Example\n * // using url string\n * videojs.xhr('http://example.com/myfile.vtt', function(error, response, responseBody){});\n *\n * // or options block\n * videojs.xhr({\n * uri: 'http://example.com/myfile.vtt',\n * method: 'GET',\n * responseType: 'text'\n * }, function(error, response, responseBody){\n * if (error) {\n * // log the error\n * } else {\n * // successful, do something with the response\n * }\n * });\n * /////////////\n * API is modeled after the Raynos/xhr, which we hope to use after\n * getting browserify implemented.\n * https://github.com/Raynos/xhr/blob/master/index.js\n *\n * @param {Object|String} options Options block or URL string\n * @param {Function} callback The callback function\n * @return {Object} The request\n * @method xhr\n */\nvar xhr = function(options, callback){\n let abortTimeout;\n\n // If options is a string it's the url\n if (typeof options === 'string') {\n options = {\n uri: options\n };\n }\n\n // Merge with default options\n options = mergeOptions({\n method: 'GET',\n timeout: 45 * 1000\n }, options);\n\n callback = callback || function(){};\n\n let XHR = window.XMLHttpRequest;\n\n if (typeof XHR === 'undefined') {\n // Shim XMLHttpRequest for older IEs\n XHR = function () {\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch (e) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch (f) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP'); } catch (g) {}\n throw new Error('This browser does not support XMLHttpRequest.');\n };\n }\n\n let request = new XHR();\n // Store a reference to the url on the request instance\n request.uri = options.uri;\n\n let urlInfo = Url.parseUrl(options.uri);\n let winLoc = window.location;\n\n let successHandler = function(){\n window.clearTimeout(abortTimeout);\n callback(null, request, request.response || request.responseText);\n };\n\n let errorHandler = function(err){\n window.clearTimeout(abortTimeout);\n\n if (!err || typeof err === 'string') {\n err = new Error(err || 'XHR Failed with a response of: '+(request && (request.response || request.responseText)));\n }\n\n callback(err, request);\n };\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n const crossOrigin = (urlInfo.protocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n // XDomainRequest -- Use for IE if XMLHTTPRequest2 isn't available\n // 'withCredentials' is only available in XMLHTTPRequest2\n // Also XDomainRequest has a lot of gotchas, so only use if cross domain\n if (crossOrigin && window.XDomainRequest && !('withCredentials' in request)) {\n request = new window.XDomainRequest();\n request.onload = successHandler;\n request.onerror = errorHandler;\n // These blank handlers need to be set to fix ie9\n // http://cypressnorth.com/programming/internet-explorer-aborting-ajax-requests-fixed/\n request.onprogress = function(){};\n request.ontimeout = function(){};\n\n // XMLHTTPRequest\n } else {\n const fileUrl = (urlInfo.protocol === 'file:' || winLoc.protocol === 'file:');\n\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n if (request.timedout) {\n return errorHandler('timeout');\n }\n\n if (request.status === 200 || fileUrl && request.status === 0) {\n successHandler();\n } else {\n errorHandler();\n }\n }\n };\n\n if (options.timeout) {\n abortTimeout = window.setTimeout(function() {\n if (request.readyState !== 4) {\n request.timedout = true;\n request.abort();\n }\n }, options.timeout);\n }\n }\n\n // open the connection\n try {\n // Third arg is async, or ignored by XDomainRequest\n request.open(options.method || 'GET', options.uri, true);\n } catch(err) {\n return errorHandler(err);\n }\n\n // withCredentials only supported by XMLHttpRequest2\n if(options.withCredentials) {\n request.withCredentials = true;\n }\n\n if (options.responseType) {\n request.responseType = options.responseType;\n }\n\n // send the request\n try {\n request.send();\n } catch(err) {\n return errorHandler(err);\n }\n\n return request;\n};\n\nexport default xhr;\n"
]
}
\ No newline at end of file
diff --git a/node_modules/video.js/dist/video.min.js b/node_modules/video.js/dist/video.min.js
index 8a93aec..fcf8146 100644
--- a/node_modules/video.js/dist/video.min.js
+++ b/node_modules/video.js/dist/video.min.js
@@ -1,6 +1,6 @@
/**
* @license
- * Video.js 5.0.0-rc.59
+ * Video.js 5.0.0-rc.72
* Copyright Brightcove, Inc.
* Available under Apache License Version 2.0
*
@@ -9,15 +9,14 @@
* Available under Apache License Version 2.0
*
*/
-!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g2?c[g-2]:void 0,i=g>2?c[2]:void 0,j=g>1?c[g-1]:void 0;for("function"==typeof h?(h=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],23:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":33,"./isArrayLike":20,"./isIndex":22}],24:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],25:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],26:[function(a,b){function c(a){var b;if(!g(a)||l.call(a)!=i||f(a)||!k.call(a,"constructor")&&(b=a.constructor,"function"==typeof b&&!(b instanceof b))||!h.argsTag&&e(a))return!1;var c;return h.ownLast?(d(a,function(a,b,d){return c=k.call(d,b),!1}),c!==!1):(d(a,function(a,b){c=b}),void 0===c||k.call(a,c))}var d=a("./baseForIn"),e=a("../lang/isArguments"),f=a("./isHostObject"),g=a("./isObjectLike"),h=a("../support"),i="[object Object]",j=Object.prototype,k=j.hasOwnProperty,l=j.toString;b.exports=c},{"../lang/isArguments":29,"../support":42,"./baseForIn":9,"./isHostObject":21,"./isObjectLike":25}],27:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{};d(c(b),function(c){i(a,c,b[c],e[c])})};j.supportsDescriptors=!!h,b.exports=j},{foreach:46,"object-keys":47}],46:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],47:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=a("./isArguments"),f=!{toString:null}.propertyIsEnumerable("toString"),g=function(){}.propertyIsEnumerable("prototype"),h=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],i=function(a){var b=null!==a&&"object"==typeof a,i="[object Function]"===d.call(a),j=e(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!i&&!j)throw new TypeError("Object.keys called on a non-object");var m=g&&i;if(k&&a.length>0&&!c.call(a,0))for(var n=0;n0)for(var o=0;o=0&&"[object Function]"===c.call(a.callee)),d}},{}],49:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],50:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./button.js"),h=d(g),i=a("./component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(){this.player_.play()},b}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":51,"./component.js":52}],51:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./component"),h=d(g),i=a("./utils/dom.js"),j=d(i),k=a("./utils/events.js"),l=d(k),m=a("./utils/fn.js"),n=d(m),o=a("global/document"),p=d(o),q=a("object.assign"),r=d(q),s=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.emitTapEvents(),this.on("tap",this.handleClick),this.on("click",this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur)}return f(b,a),b.prototype.createEl=function(){var b=void 0===arguments[0]?"button":arguments[0],c=void 0===arguments[1]?{}:arguments[1];c=r["default"]({className:this.buildCSSClass(),role:"button",type:"button","aria-live":"polite",tabIndex:0},c);var d=a.prototype.createEl.call(this,b,c);return this.controlTextEl_=j.createEl("span",{className:"vjs-control-text"}),d.appendChild(this.controlTextEl_),this.controlText(this.controlText_),d},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){l.on(p["default"],"keydown",n.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick())},b.prototype.handleBlur=function(){l.off(p["default"],"keydown",n.bind(this,this.handleKeyPress))},b}(h["default"]);h["default"].registerComponent("Button",s),c["default"]=s,b.exports=c["default"]},{"./component":52,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"global/document":1,"object.assign":44}],52:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")};c.__esModule=!0;var f=a("global/window"),g=d(f),h=a("./utils/dom.js"),i=d(h),j=a("./utils/fn.js"),k=d(j),l=a("./utils/guid.js"),m=d(l),n=a("./utils/events.js"),o=d(n),p=a("./utils/log.js"),q=d(p),r=a("./utils/to-title-case.js"),s=d(r),t=a("object.assign"),u=d(t),v=a("./utils/merge-options.js"),w=d(v),x=function(){function a(b,c,d){if(e(this,a),this.player_=!b&&this.play?b=this:b,this.options_=w["default"]({},this.options_),c=this.options_=w["default"](this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var f=b&&b.id&&b.id()||"no_player";this.id_=""+f+"_component_"+m.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),i.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return q["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=w["default"](this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b){return i.createEl(a,b)},a.prototype.localize=function(a){var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){return this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=void 0===arguments[1]?{}:arguments[1],d=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(q["default"].warn("Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var f=c.componentClass||s["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions,a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&(a.forEach(function(a){a.call(this)},this),this.readyQueue_=[]),this.trigger("ready")},1)},a.prototype.hasClass=function(a){return i.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return i.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return i.removeElClass(this.el_,a),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"),this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(void 0!==b)return(null===b||b!==b)&&(b=0),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+s["default"](a)],10)},a.prototype.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=u["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=k.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=k.bind(this,a);var c=g["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){g["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=k.bind(this,a);var c=g["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){g["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){return a.components_||(a.components_={}),a.components_[b]=c,c},a.getComponent=function(b){return a.components_&&a.components_[b]?a.components_[b]:g["default"]&&g["default"].videojs&&g["default"].videojs[b]?(q["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),g["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},q["default"].warn("Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();x.registerComponent("Component",x),c["default"]=x,b.exports=c["default"]},{"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/guid.js":115,"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/to-title-case.js":120,"global/window":2,"object.assign":44}],53:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("./play-toggle.js"),j=(d(i),a("./time-controls/current-time-display.js")),k=(d(j),a("./time-controls/duration-display.js")),l=(d(k),a("./time-controls/time-divider.js")),m=(d(l),a("./time-controls/remaining-time-display.js")),n=(d(m),a("./live-display.js")),o=(d(n),a("./progress-control/progress-control.js")),p=(d(o),a("./fullscreen-toggle.js")),q=(d(p),a("./volume-control/volume-control.js")),r=(d(q),a("./volume-menu-button.js")),s=(d(r),a("./mute-toggle.js")),t=(d(s),a("./text-track-controls/chapters-button.js")),u=(d(t),a("./text-track-controls/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","muteToggle","volumeControl","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]
-},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":52,"./fullscreen-toggle.js":54,"./live-display.js":55,"./mute-toggle.js":56,"./play-toggle.js":57,"./playback-rate-menu/playback-rate-menu-button.js":58,"./progress-control/progress-control.js":62,"./spacer-controls/custom-control-spacer.js":64,"./text-track-controls/captions-button.js":67,"./text-track-controls/chapters-button.js":68,"./text-track-controls/subtitles-button.js":71,"./time-controls/current-time-display.js":74,"./time-controls/duration-display.js":75,"./time-controls/remaining-time-display.js":76,"./time-controls/time-divider.js":77,"./volume-control/volume-control.js":79,"./volume-menu-button.js":81}],54:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.isFullscreen()?(this.player_.exitFullscreen(),this.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":51,"../component.js":52}],55:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../component"),h=d(g),i=a("../utils/dom.js"),j=d(i),k=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=j.createEl("div",{className:"vjs-live-display",innerHTML:''+this.localize("Stream Type")+""+this.localize("LIVE"),"aria-live":"off"}),b.appendChild(this.contentEl_),b},b}(h["default"]);h["default"].registerComponent("LiveDisplay",k),c["default"]=k,b.exports=c["default"]},{"../component":52,"../utils/dom.js":111}],56:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../button"),h=d(g),i=a("../component"),j=d(i),k=a("../utils/dom.js"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.muted(this.player_.muted()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)l.removeElClass(this.el_,"vjs-vol-"+e);l.addElClass(this.el_,"vjs-vol-"+b)},b}(h["default"]);m.prototype.controlText_="Mute",j["default"].registerComponent("MuteToggle",m),c["default"]=m,b.exports=c["default"]},{"../button":51,"../component":52,"../utils/dom.js":111}],57:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"play",this.handlePlay),this.on(c,"pause",this.handlePause)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(h["default"]);k.prototype.controlText_="Play",j["default"].registerComponent("PlayToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":51,"../component.js":52}],58:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../menu/menu-button.js"),h=d(g),i=a("../../menu/menu.js"),j=d(i),k=a("./playback-rate-menu-item.js"),l=d(k),m=a("../../component.js"),n=d(m),o=a("../../utils/dom.js"),p=d(o),q=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=p.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new j["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new l["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(){for(var a=this.player().playbackRate(),b=this.playbackRates(),c=b[0],d=0;da){c=b[d];break}this.player().playbackRate(c)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech&&this.player().tech.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(h["default"]);q.prototype.controlText_="Playback Rate",n["default"].registerComponent("PlaybackRateMenuButton",q),c["default"]=q,b.exports=c["default"]},{"../../component.js":52,"../../menu/menu-button.js":88,"../../menu/menu.js":90,"../../utils/dom.js":111,"./playback-rate-menu-item.js":59}],59:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../menu/menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b);var f=d.rate,g=parseFloat(f,10);d.label=f,d.selected=1===g,a.call(this,c,d),this.label=f,this.rate=g,this.on(c,"ratechange",this.update)}return f(b,a),b.prototype.handleClick=function(){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(){this.selected(this.player().playbackRate()===this.rate)},b}(h["default"]);k.prototype.contentElType="button",j["default"].registerComponent("PlaybackRateMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"../../menu/menu-item.js":89}],60:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("../../utils/dom.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:''+this.localize("Loaded")+": 0%"})},b.prototype.update=function(){var a=this.player_.buffered(),b=this.player_.duration(),c=this.player_.bufferedEnd(),d=this.el_.children,e=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=e(c,b);for(var f=0;fa.length;f--)this.el_.removeChild(d[f-1])},b}(h["default"]);h["default"].registerComponent("LoadProgressBar",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"../../utils/dom.js":111}],61:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("../../utils/fn.js"),j=d(i),k=a("../../utils/format-time.js"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateDataAttr),c.ready(j.bind(this,this.updateDataAttr))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress",innerHTML:''+this.localize("Progress")+": 0%"})},b.prototype.updateDataAttr=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",l["default"](a,this.player_.duration()))},b}(h["default"]);h["default"].registerComponent("PlayProgressBar",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":52,"../../utils/fn.js":113,"../../utils/format-time.js":114}],62:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./seek-bar.js"),j=(d(i),function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:{seekBar:{}}},h["default"].registerComponent("ProgressControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":52,"./seek-bar.js":63}],63:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../slider/slider.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./load-progress-bar.js"),l=(d(k),a("./play-progress-bar.js")),m=(d(l),a("../../utils/fn.js")),n=d(m),o=a("../../utils/format-time.js"),p=d(o),q=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(n.bind(this,this.updateARIAAttributes))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder","aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",p["default"](a,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(h["default"]);q.prototype.options_={children:{loadProgressBar:{},playProgressBar:{}},barName:"playProgressBar"},q.prototype.playerEvent="timeupdate",j["default"].registerComponent("SeekBar",q),c["default"]=q,b.exports=c["default"]},{"../../component.js":52,"../../slider/slider.js":95,"../../utils/fn.js":113,"../../utils/format-time.js":114,"./load-progress-bar.js":60,"./play-progress-bar.js":61}],64:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./spacer.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,{className:this.buildCSSClass()})},b}(h["default"]);j["default"].registerComponent("CustomControlSpacer",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"./spacer.js":65}],65:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":52}],66:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./text-track-menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),d.track={kind:d.kind,player:c,label:d.kind+" settings","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"./text-track-menu-item.js":73}],67:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./caption-settings-menu-item.js"),l=d(k),m=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Captions Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(){var b=2;a.prototype.update.call(this),this.player().tech&&this.player().tech.featuresNativeTextTracks&&(b=1),this.items&&this.items.length>b?this.show():this.hide()},b.prototype.createItems=function(){var b=[];return this.player().tech&&this.player().tech.featuresNativeTextTracks||b.push(new l["default"](this.player_,{kind:this.kind_})),a.prototype.createItems.call(this,b)},b}(h["default"]);m.prototype.kind_="captions",m.prototype.controlText_="Captions",j["default"].registerComponent("CaptionsButton",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":52,"./caption-settings-menu-item.js":66,"./text-track-button.js":72}],68:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./text-track-menu-item.js"),l=d(k),m=a("./chapters-track-menu-item.js"),n=d(m),o=a("../../menu/menu.js"),p=d(o),q=a("../../utils/dom.js"),r=d(q),s=a("../../utils/fn.js"),t=d(s),u=a("../../utils/to-title-case.js"),v=d(u),w=a("global/window"),x=d(w),y=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Chapters Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=[],b=this.player_.textTracks();if(!b)return a;for(var c=0;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",x["default"].setTimeout(t.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new p["default"](this.player_),g.contentEl().appendChild(r.createEl("li",{className:"vjs-menu-title",innerHTML:v["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new n["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(h["default"]);y.prototype.kind_="chapters",y.prototype.controlText_="Chapters",j["default"].registerComponent("ChaptersButton",y),c["default"]=y,b.exports=c["default"]},{"../../component.js":52,"../../menu/menu.js":90,"../../utils/dom.js":111,"../../utils/fn.js":113,"../../utils/to-title-case.js":120,"./chapters-track-menu-item.js":69,"./text-track-button.js":72,"./text-track-menu-item.js":73,"global/window":2}],69:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../menu/menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("../../utils/fn.js"),l=d(k),m=function(a){function b(c,d){e(this,b);var f=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"./text-track-menu-item.js":73}],71:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Subtitles Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(h["default"]);k.prototype.kind_="subtitles",k.prototype.controlText_="Subtitles",j["default"].registerComponent("SubtitlesButton",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":52,"./text-track-button.js":72}],72:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../menu/menu-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("../../utils/fn.js"),l=d(k),m=a("./text-track-menu-item.js"),n=d(m),o=a("./off-text-track-menu-item.js"),p=d(o),q=function(a){function b(c,d){e(this,b),a.call(this,c,d);var f=this.player_.textTracks();if(this.items.length<=1&&this.hide(),f){var g=l.bind(this,this.update);f.addEventListener("removetrack",g),f.addEventListener("addtrack",g),this.player_.on("dispose",function(){f.removeEventListener("removetrack",g),f.removeEventListener("addtrack",g)})}}return f(b,a),b.prototype.createItems=function(){var a=void 0===arguments[0]?[]:arguments[0];a.push(new p["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent Time 0:00',"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),b=this.localize("Current Time"),c=l["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(h["default"]);h["default"].registerComponent("CurrentTimeDisplay",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],75:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("../../utils/dom.js"),j=d(i),k=a("../../utils/format-time.js"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=j.createEl("div",{className:"vjs-duration-display",innerHTML:''+this.localize("Duration Time")+" 0:00","aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.duration();if(a){var b=this.localize("Duration Time"),c=l["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(h["default"]);h["default"].registerComponent("DurationDisplay",m),c["default"]=m,b.exports=c["default"];
+!function(a){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=a();else if("function"==typeof define&&define.amd)define([],a);else{var b;b="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,b.videojs=a()}}(function(){var a;return function b(a,c,d){function e(g,h){if(!c[g]){if(!a[g]){var i="function"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error("Cannot find module '"+g+"'");throw j.code="MODULE_NOT_FOUND",j}var k=c[g]={exports:{}};a[g][0].call(k.exports,function(b){var c=a[g][1][b];return e(c?c:b)},k,k.exports,b,a,c,d)}return c[g].exports}for(var f="function"==typeof require&&require,g=0;g2?c[g-2]:void 0,i=g>2?c[2]:void 0,j=g>1?c[g-1]:void 0;for("function"==typeof h?(h=d(h,j,5),g-=2):(h="function"==typeof j?j:void 0,g-=h?1:0),i&&e(c[0],c[1],i)&&(h=3>g?void 0:h,g=1);++f-1&&a%1==0&&b>a}var d=/^\d+$/,e=9007199254740991;b.exports=c},{}],21:[function(a,b){function c(a,b,c){if(!f(c))return!1;var g=typeof b;if("number"==g?d(c)&&e(b,c.length):"string"==g&&b in c){var h=c[b];return a===a?a===h:h!==h}return!1}var d=a("./isArrayLike"),e=a("./isIndex"),f=a("../lang/isObject");b.exports=c},{"../lang/isObject":30,"./isArrayLike":18,"./isIndex":20}],22:[function(a,b){function c(a){return"number"==typeof a&&a>-1&&a%1==0&&d>=a}var d=9007199254740991;b.exports=c},{}],23:[function(a,b){function c(a){return!!a&&"object"==typeof a}b.exports=c},{}],24:[function(a,b){function c(a){for(var b=i(a),c=b.length,j=c&&a.length,l=!!j&&g(j)&&(e(a)||d(a)||h(a)),m=-1,n=[];++m0,r=l.enumErrorProps&&(a===w||a instanceof Error),t=l.enumPrototypes&&g(a);++d2?arguments[2]:{},g=c(b);e&&(g=g.concat(Object.getOwnPropertySymbols(b))),d(g,function(c){j(a,c,b[c],f[c])})};k.supportsDescriptors=!!i,b.exports=k},{foreach:42,"object-keys":43}],42:[function(a,b){var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString;b.exports=function(a,b,e){if("[object Function]"!==d.call(b))throw new TypeError("iterator must be a function");var f=a.length;if(f===+f)for(var g=0;f>g;g++)b.call(e,a[g],g,a);else for(var h in a)c.call(a,h)&&b.call(e,a[h],h,a)}},{}],43:[function(a,b){"use strict";var c=Object.prototype.hasOwnProperty,d=Object.prototype.toString,e=Array.prototype.slice,f=a("./isArguments"),g=!{toString:null}.propertyIsEnumerable("toString"),h=function(){}.propertyIsEnumerable("prototype"),i=["toString","toLocaleString","valueOf","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","constructor"],j=function(a){var b=a.constructor;return b&&b.prototype===a},k={$window:!0,$console:!0,$parent:!0,$self:!0,$frames:!0,$webkitIndexedDB:!0,$webkitStorageInfo:!0},l=function(){if("undefined"==typeof window)return!1;for(var a in window)if(!k["$"+a]&&c.call(window,a)&&null!==window[a]&&"object"==typeof window[a])try{j(window[a])}catch(b){return!0}return!1}(),m=function(a){if("undefined"==typeof window&&!l)return j(a);try{return j(a)}catch(b){return!1}},n=function(a){var b=null!==a&&"object"==typeof a,e="[object Function]"===d.call(a),j=f(a),k=b&&"[object String]"===d.call(a),l=[];if(!b&&!e&&!j)throw new TypeError("Object.keys called on a non-object");var n=h&&e;if(k&&a.length>0&&!c.call(a,0))for(var o=0;o0)for(var p=0;p=0&&"[object Function]"===c.call(a.callee)),d}},{}],45:[function(a,b){function c(a,b){var c,d=null;try{c=JSON.parse(a,b)}catch(e){d=e}return[d,c]}b.exports=c},{}],46:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./button.js"),h=d(g),i=a("./component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-big-play-button"},b.prototype.handleClick=function(){this.player_.play()},b}(h["default"]);k.prototype.controlText_="Play Video",j["default"].registerComponent("BigPlayButton",k),c["default"]=k,b.exports=c["default"]},{"./button.js":47,"./component.js":48}],47:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=a("./utils/events.js"),m=d(l),n=a("./utils/fn.js"),o=d(n),p=a("global/document"),q=e(p),r=a("object.assign"),s=e(r),t=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.emitTapEvents(),this.on("tap",this.handleClick),this.on("click",this.handleClick),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur)}return g(b,a),b.prototype.createEl=function(){var b=arguments.length<=0||void 0===arguments[0]?"button":arguments[0],c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];c=s["default"]({className:this.buildCSSClass(),role:"button",type:"button","aria-live":"polite",tabIndex:0},c);var d=a.prototype.createEl.call(this,b,c);return this.controlTextEl_=k.createEl("span",{className:"vjs-control-text"}),d.appendChild(this.controlTextEl_),this.controlText(this.controlText_),d},b.prototype.controlText=function(a){return a?(this.controlText_=a,this.controlTextEl_.innerHTML=this.localize(this.controlText_),this):this.controlText_||"Need Text"},b.prototype.buildCSSClass=function(){return"vjs-control vjs-button "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){},b.prototype.handleFocus=function(){m.on(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b.prototype.handleKeyPress=function(a){(32===a.which||13===a.which)&&(a.preventDefault(),this.handleClick())},b.prototype.handleBlur=function(){m.off(q["default"],"keydown",o.bind(this,this.handleKeyPress))},b}(i["default"]);i["default"].registerComponent("Button",t),c["default"]=t,b.exports=c["default"]},{"./component":48,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"global/document":1,"object.assign":40}],48:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}c.__esModule=!0;var g=a("global/window"),h=e(g),i=a("./utils/dom.js"),j=d(i),k=a("./utils/fn.js"),l=d(k),m=a("./utils/guid.js"),n=d(m),o=a("./utils/events.js"),p=d(o),q=a("./utils/log.js"),r=e(q),s=a("./utils/to-title-case.js"),t=e(s),u=a("object.assign"),v=e(u),w=a("./utils/merge-options.js"),x=e(w),y=function(){function a(b,c,d){if(f(this,a),this.player_=!b&&this.play?b=this:b,this.options_=x["default"]({},this.options_),c=this.options_=x["default"](this.options_,c),this.id_=c.id||c.el&&c.el.id,!this.id_){var e=b&&b.id&&b.id()||"no_player";this.id_=e+"_component_"+n.newGUID()}this.name_=c.name||null,c.el?this.el_=c.el:c.createEl!==!1&&(this.el_=this.createEl()),this.children_=[],this.childIndex_={},this.childNameIndex_={},c.initChildren!==!1&&this.initChildren(),this.ready(d),c.reportTouchActivity!==!1&&this.enableTouchActivity()}return a.prototype.dispose=function(){if(this.trigger({type:"dispose",bubbles:!1}),this.children_)for(var a=this.children_.length-1;a>=0;a--)this.children_[a].dispose&&this.children_[a].dispose();this.children_=null,this.childIndex_=null,this.childNameIndex_=null,this.off(),this.el_.parentNode&&this.el_.parentNode.removeChild(this.el_),j.removeElData(this.el_),this.el_=null},a.prototype.player=function(){return this.player_},a.prototype.options=function(a){return r["default"].warn("this.options() has been deprecated and will be moved to the constructor in 6.0"),a?(this.options_=x["default"](this.options_,a),this.options_):this.options_},a.prototype.el=function(){return this.el_},a.prototype.createEl=function(a,b){return j.createEl(a,b)},a.prototype.localize=function(a){var b=this.player_.language&&this.player_.language(),c=this.player_.languages&&this.player_.languages();if(!b||!c)return a;var d=c[b];if(d&&d[a])return d[a];var e=b.split("-")[0],f=c[e];return f&&f[a]?f[a]:a},a.prototype.contentEl=function(){return this.contentEl_||this.el_},a.prototype.id=function(){return this.id_},a.prototype.name=function(){return this.name_},a.prototype.children=function(){return this.children_},a.prototype.getChildById=function(a){return this.childIndex_[a]},a.prototype.getChild=function(a){return this.childNameIndex_[a]},a.prototype.addChild=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],d=void 0,e=void 0;if("string"==typeof b){e=b,c||(c={}),c===!0&&(r["default"].warn("Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`."),c={});var f=c.componentClass||t["default"](e);c.name=e;var g=a.getComponent(f);d=new g(this.player_||this,c)}else d=b;return this.children_.push(d),"function"==typeof d.id&&(this.childIndex_[d.id()]=d),e=e||d.name&&d.name(),e&&(this.childNameIndex_[e]=d),"function"==typeof d.el&&d.el()&&this.contentEl().appendChild(d.el()),d},a.prototype.removeChild=function(a){if("string"==typeof a&&(a=this.getChild(a)),a&&this.children_){for(var b=!1,c=this.children_.length-1;c>=0;c--)if(this.children_[c]===a){b=!0,this.children_.splice(c,1);break}if(b){this.childIndex_[a.id()]=null,this.childNameIndex_[a.name()]=null;var d=a.el();d&&d.parentNode===this.contentEl()&&this.contentEl().removeChild(a.el())}}},a.prototype.initChildren=function(){var a=this,b=this.options_.children;b&&!function(){var c=a.options_,d=function(b,d){void 0!==c[b]&&(d=c[b]),d!==!1&&(d===!0&&(d={}),d.playerOptions=a.options_.playerOptions,a[b]=a.addChild(b,d))};if(Array.isArray(b))for(var e=0;e0&&(a.forEach(function(a){a.call(this)},this),this.readyQueue_=[]),this.trigger("ready")},1)},a.prototype.hasClass=function(a){return j.hasElClass(this.el_,a)},a.prototype.addClass=function(a){return j.addElClass(this.el_,a),this},a.prototype.removeClass=function(a){return j.removeElClass(this.el_,a),this},a.prototype.show=function(){return this.removeClass("vjs-hidden"),this},a.prototype.hide=function(){return this.addClass("vjs-hidden"),this},a.prototype.lockShowing=function(){return this.addClass("vjs-lock-showing"),this},a.prototype.unlockShowing=function(){return this.removeClass("vjs-lock-showing"),this},a.prototype.width=function(a,b){return this.dimension("width",a,b)},a.prototype.height=function(a,b){return this.dimension("height",a,b)},a.prototype.dimensions=function(a,b){return this.width(a,!0).height(b)},a.prototype.dimension=function(a,b,c){if(void 0!==b)return(null===b||b!==b)&&(b=0),this.el_.style[a]=-1!==(""+b).indexOf("%")||-1!==(""+b).indexOf("px")?b:"auto"===b?"":b+"px",c||this.trigger("resize"),this;if(!this.el_)return 0;var d=this.el_.style[a],e=d.indexOf("px");return-1!==e?parseInt(d.slice(0,e),10):parseInt(this.el_["offset"+t["default"](a)],10)},a.prototype.emitTapEvents=function(){var a=0,b=null,c=10,d=200,e=void 0;this.on("touchstart",function(c){1===c.touches.length&&(b=v["default"]({},c.touches[0]),a=(new Date).getTime(),e=!0)}),this.on("touchmove",function(a){if(a.touches.length>1)e=!1;else if(b){var d=a.touches[0].pageX-b.pageX,f=a.touches[0].pageY-b.pageY,g=Math.sqrt(d*d+f*f);g>c&&(e=!1)}});var f=function(){e=!1};this.on("touchleave",f),this.on("touchcancel",f),this.on("touchend",function(c){if(b=null,e===!0){var f=(new Date).getTime()-a;d>f&&(c.preventDefault(),this.trigger("tap"))}})},a.prototype.enableTouchActivity=function(){if(this.player()&&this.player().reportUserActivity){var a=l.bind(this.player(),this.player().reportUserActivity),b=void 0;this.on("touchstart",function(){a(),this.clearInterval(b),b=this.setInterval(a,250)});var c=function(){a(),this.clearInterval(b)};this.on("touchmove",a),this.on("touchend",c),this.on("touchcancel",c)}},a.prototype.setTimeout=function(a,b){a=l.bind(this,a);var c=h["default"].setTimeout(a,b),d=function(){this.clearTimeout(c)};return d.guid="vjs-timeout-"+c,this.on("dispose",d),c},a.prototype.clearTimeout=function(a){h["default"].clearTimeout(a);var b=function(){};return b.guid="vjs-timeout-"+a,this.off("dispose",b),a},a.prototype.setInterval=function(a,b){a=l.bind(this,a);var c=h["default"].setInterval(a,b),d=function(){this.clearInterval(c)};return d.guid="vjs-interval-"+c,this.on("dispose",d),c},a.prototype.clearInterval=function(a){h["default"].clearInterval(a);var b=function(){};return b.guid="vjs-interval-"+a,this.off("dispose",b),a},a.registerComponent=function(b,c){return a.components_||(a.components_={}),a.components_[b]=c,c},a.getComponent=function(b){return a.components_&&a.components_[b]?a.components_[b]:h["default"]&&h["default"].videojs&&h["default"].videojs[b]?(r["default"].warn("The "+b+" component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)"),h["default"].videojs[b]):void 0},a.extend=function(b){b=b||{},r["default"].warn("Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead");var c=b.init||b.init||this.prototype.init||this.prototype.init||function(){},d=function(){c.apply(this,arguments)};d.prototype=Object.create(this.prototype),d.prototype.constructor=d,d.extend=a.extend;for(var e in b)b.hasOwnProperty(e)&&(d.prototype[e]=b[e]);return d},a}();y.registerComponent("Component",y),c["default"]=y,b.exports=c["default"]},{"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/guid.js":111,"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/to-title-case.js":116,"global/window":2,"object.assign":40}],49:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("./play-toggle.js"),j=(d(i),a("./time-controls/current-time-display.js")),k=(d(j),a("./time-controls/duration-display.js")),l=(d(k),a("./time-controls/time-divider.js")),m=(d(l),a("./time-controls/remaining-time-display.js")),n=(d(m),a("./live-display.js")),o=(d(n),a("./progress-control/progress-control.js")),p=(d(o),a("./fullscreen-toggle.js")),q=(d(p),a("./volume-control/volume-control.js")),r=(d(q),a("./volume-menu-button.js")),s=(d(r),a("./mute-toggle.js")),t=(d(s),a("./text-track-controls/chapters-button.js")),u=(d(t),a("./text-track-controls/subtitles-button.js")),v=(d(u),a("./text-track-controls/captions-button.js")),w=(d(v),a("./playback-rate-menu/playback-rate-menu-button.js")),x=(d(w),a("./spacer-controls/custom-control-spacer.js")),y=(d(x),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-control-bar"})},b}(h["default"]));y.prototype.options_={loadEvent:"play",children:["playToggle","volumeMenuButton","currentTimeDisplay","timeDivider","durationDisplay","progressControl","liveDisplay","remainingTimeDisplay","customControlSpacer","playbackRateMenuButton","muteToggle","volumeControl","chaptersButton","subtitlesButton","captionsButton","fullscreenToggle"]},h["default"].registerComponent("ControlBar",y),c["default"]=y,b.exports=c["default"]},{"../component.js":48,"./fullscreen-toggle.js":50,"./live-display.js":51,"./mute-toggle.js":52,"./play-toggle.js":53,"./playback-rate-menu/playback-rate-menu-button.js":54,"./progress-control/progress-control.js":58,"./spacer-controls/custom-control-spacer.js":60,"./text-track-controls/captions-button.js":63,
+"./text-track-controls/chapters-button.js":64,"./text-track-controls/subtitles-button.js":67,"./time-controls/current-time-display.js":70,"./time-controls/duration-display.js":71,"./time-controls/remaining-time-display.js":72,"./time-controls/time-divider.js":73,"./volume-control/volume-control.js":75,"./volume-menu-button.js":77}],50:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-fullscreen-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.isFullscreen()?(this.player_.exitFullscreen(),this.controlText("Fullscreen")):(this.player_.requestFullscreen(),this.controlText("Non-Fullscreen"))},b}(h["default"]);k.prototype.controlText_="Fullscreen",j["default"].registerComponent("FullscreenToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":47,"../component.js":48}],51:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-live-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-live-display",innerHTML:''+this.localize("Stream Type")+""+this.localize("LIVE"),"aria-live":"off"}),b.appendChild(this.contentEl_),b},b}(i["default"]);i["default"].registerComponent("LiveDisplay",l),c["default"]=l,b.exports=c["default"]},{"../component":48,"../utils/dom.js":107}],52:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../button"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.update),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){this.update(),c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-mute-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.muted(this.player_.muted()?!1:!0)},b.prototype.update=function(){var a=this.player_.volume(),b=3;0===a||this.player_.muted()?b=0:.33>a?b=1:.67>a&&(b=2);var c=this.player_.muted()?"Unmute":"Mute",d=this.localize(c);this.controlText()!==d&&this.controlText(d);for(var e=0;4>e;e++)m.removeElClass(this.el_,"vjs-vol-"+e);m.addElClass(this.el_,"vjs-vol-"+b)},b}(i["default"]);n.prototype.controlText_="Mute",k["default"].registerComponent("MuteToggle",n),c["default"]=n,b.exports=c["default"]},{"../button":47,"../component":48,"../utils/dom.js":107}],53:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"play",this.handlePlay),this.on(c,"pause",this.handlePause)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-play-control "+a.prototype.buildCSSClass.call(this)},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b.prototype.handlePlay=function(){this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.controlText("Pause")},b.prototype.handlePause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.controlText("Play")},b}(h["default"]);k.prototype.controlText_="Play",j["default"].registerComponent("PlayToggle",k),c["default"]=k,b.exports=c["default"]},{"../button.js":47,"../component.js":48}],54:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../menu/menu.js"),k=e(j),l=a("./playback-rate-menu-item.js"),m=e(l),n=a("../../component.js"),o=e(n),p=a("../../utils/dom.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.updateVisibility(),this.updateLabel(),this.on(c,"loadstart",this.updateVisibility),this.on(c,"ratechange",this.updateLabel)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this);return this.labelEl_=q.createEl("div",{className:"vjs-playback-rate-value",innerHTML:1}),b.appendChild(this.labelEl_),b},b.prototype.buildCSSClass=function(){return"vjs-playback-rate "+a.prototype.buildCSSClass.call(this)},b.prototype.createMenu=function(){var a=new k["default"](this.player()),b=this.playbackRates();if(b)for(var c=b.length-1;c>=0;c--)a.addChild(new m["default"](this.player(),{rate:b[c]+"x"}));return a},b.prototype.updateARIAAttributes=function(){this.el().setAttribute("aria-valuenow",this.player().playbackRate())},b.prototype.handleClick=function(){for(var a=this.player().playbackRate(),b=this.playbackRates(),c=b[0],d=0;da){c=b[d];break}this.player().playbackRate(c)},b.prototype.playbackRates=function(){return this.options_.playbackRates||this.options_.playerOptions&&this.options_.playerOptions.playbackRates},b.prototype.playbackRateSupported=function(){return this.player().tech&&this.player().tech.featuresPlaybackRate&&this.playbackRates()&&this.playbackRates().length>0},b.prototype.updateVisibility=function(){this.playbackRateSupported()?this.removeClass("vjs-hidden"):this.addClass("vjs-hidden")},b.prototype.updateLabel=function(){this.playbackRateSupported()&&(this.labelEl_.innerHTML=this.player().playbackRate()+"x")},b}(i["default"]);r.prototype.controlText_="Playback Rate",o["default"].registerComponent("PlaybackRateMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":48,"../../menu/menu-button.js":84,"../../menu/menu.js":86,"../../utils/dom.js":107,"./playback-rate-menu-item.js":55}],55:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../menu/menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b);var f=d.rate,g=parseFloat(f,10);d.label=f,d.selected=1===g,a.call(this,c,d),this.label=f,this.rate=g,this.on(c,"ratechange",this.update)}return f(b,a),b.prototype.handleClick=function(){a.prototype.handleClick.call(this),this.player().playbackRate(this.rate)},b.prototype.update=function(){this.selected(this.player().playbackRate()===this.rate)},b}(h["default"]);k.prototype.contentElType="button",j["default"].registerComponent("PlaybackRateMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":48,"../../menu/menu-item.js":85}],56:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"progress",this.update)}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-load-progress",innerHTML:''+this.localize("Loaded")+": 0%"})},b.prototype.update=function(){var a=this.player_.buffered(),b=this.player_.duration(),c=this.player_.bufferedEnd(),d=this.el_.children,e=function(a,b){var c=a/b||0;return 100*(c>=1?1:c)+"%"};this.el_.style.width=e(c,b);for(var f=0;fa.length;f--)this.el_.removeChild(d[f-1])},b}(i["default"]);i["default"].registerComponent("LoadProgressBar",l),c["default"]=l,b.exports=c["default"]},{"../../component.js":48,"../../utils/dom.js":107}],57:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/fn.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateDataAttr),c.ready(k.bind(this,this.updateDataAttr))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-play-progress",innerHTML:''+this.localize("Progress")+": 0%"})},b.prototype.updateDataAttr=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("data-current-time",m["default"](a,this.player_.duration()))},b}(i["default"]);i["default"].registerComponent("PlayProgressBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":48,"../../utils/fn.js":109,"../../utils/format-time.js":110}],58:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./seek-bar.js"),j=(d(i),function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:{seekBar:{}}},h["default"].registerComponent("ProgressControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":48,"./seek-bar.js":59}],59:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./load-progress-bar.js"),m=(e(l),a("./play-progress-bar.js")),n=(e(m),a("../../utils/fn.js")),o=d(n),p=a("../../utils/format-time.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateARIAAttributes),c.ready(o.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-progress-holder","aria-label":"video progress bar"})},b.prototype.updateARIAAttributes=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime();this.el_.setAttribute("aria-valuenow",(100*this.getPercent()).toFixed(2)),this.el_.setAttribute("aria-valuetext",q["default"](a,this.player_.duration()))},b.prototype.getPercent=function(){var a=this.player_.currentTime()/this.player_.duration();return a>=1?1:a},b.prototype.handleMouseDown=function(b){a.prototype.handleMouseDown.call(this,b),this.player_.scrubbing(!0),this.videoWasPlaying=!this.player_.paused(),this.player_.pause()},b.prototype.handleMouseMove=function(a){var b=this.calculateDistance(a)*this.player_.duration();b===this.player_.duration()&&(b-=.1),this.player_.currentTime(b)},b.prototype.handleMouseUp=function(b){a.prototype.handleMouseUp.call(this,b),this.player_.scrubbing(!1),this.videoWasPlaying&&this.player_.play()},b.prototype.stepForward=function(){this.player_.currentTime(this.player_.currentTime()+5)},b.prototype.stepBack=function(){this.player_.currentTime(this.player_.currentTime()-5)},b}(i["default"]);r.prototype.options_={children:{loadProgressBar:{},playProgressBar:{}},barName:"playProgressBar"},r.prototype.playerEvent="timeupdate",k["default"].registerComponent("SeekBar",r),c["default"]=r,b.exports=c["default"]},{"../../component.js":48,"../../slider/slider.js":91,"../../utils/fn.js":109,"../../utils/format-time.js":110,"./load-progress-bar.js":56,"./play-progress-bar.js":57}],60:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./spacer.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-custom-control-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,{className:this.buildCSSClass()})},b}(h["default"]);j["default"].registerComponent("CustomControlSpacer",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":48,"./spacer.js":61}],61:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-spacer "+a.prototype.buildCSSClass.call(this)},b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:this.buildCSSClass()})},b}(h["default"]);h["default"].registerComponent("Spacer",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":48}],62:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-menu-item.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d){e(this,b),d.track={kind:d.kind,player:c,label:d.kind+" settings","default":!1,mode:"disabled"},a.call(this,c,d),this.addClass("vjs-texttrack-settings")}return f(b,a),b.prototype.handleClick=function(){this.player().getChild("textTrackSettings").show()},b}(h["default"]);j["default"].registerComponent("CaptionSettingsMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":48,"./text-track-menu-item.js":69}],63:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("./caption-settings-menu-item.js"),l=d(k),m=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Captions Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-captions-button "+a.prototype.buildCSSClass.call(this)},b.prototype.update=function(){var b=2;a.prototype.update.call(this),this.player().tech&&this.player().tech.featuresNativeTextTracks&&(b=1),this.items&&this.items.length>b?this.show():this.hide()},b.prototype.createItems=function(){var b=[];return this.player().tech&&this.player().tech.featuresNativeTextTracks||b.push(new l["default"](this.player_,{kind:this.kind_})),a.prototype.createItems.call(this,b)},b}(h["default"]);m.prototype.kind_="captions",m.prototype.controlText_="Captions",j["default"].registerComponent("CaptionsButton",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":48,"./caption-settings-menu-item.js":62,"./text-track-button.js":68}],64:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./text-track-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("./text-track-menu-item.js"),m=e(l),n=a("./chapters-track-menu-item.js"),o=e(n),p=a("../../menu/menu.js"),q=e(p),r=a("../../utils/dom.js"),s=d(r),t=a("../../utils/fn.js"),u=d(t),v=a("../../utils/to-title-case.js"),w=e(v),x=a("global/window"),y=e(x),z=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),this.el_.setAttribute("aria-label","Chapters Menu")}return g(b,a),b.prototype.buildCSSClass=function(){return"vjs-chapters-button "+a.prototype.buildCSSClass.call(this)},b.prototype.createItems=function(){var a=[],b=this.player_.textTracks();if(!b)return a;for(var c=0;cd;d++){var f=a[d];if(f.kind===this.kind_){if(f.cues){b=f;break}f.mode="hidden",y["default"].setTimeout(u.bind(this,function(){this.createMenu()}),100)}}var g=this.menu;if(void 0===g&&(g=new q["default"](this.player_),g.contentEl().appendChild(s.createEl("li",{className:"vjs-menu-title",innerHTML:w["default"](this.kind_),tabIndex:-1}))),b){for(var h=b.cues,i=void 0,d=0,e=h.length;e>d;d++){i=h[d];var j=new o["default"](this.player_,{track:b,cue:i});c.push(j),g.addChild(j)}this.addChild(g)}return this.items.length>0&&this.show(),g},b}(i["default"]);z.prototype.kind_="chapters",z.prototype.controlText_="Chapters",k["default"].registerComponent("ChaptersButton",z),c["default"]=z,b.exports=c["default"]},{"../../component.js":48,"../../menu/menu.js":86,"../../utils/dom.js":107,"../../utils/fn.js":109,"../../utils/to-title-case.js":116,"./chapters-track-menu-item.js":65,"./text-track-button.js":68,"./text-track-menu-item.js":69,"global/window":2}],65:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-item.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=function(a){function b(c,d){f(this,b);var e=d.track,g=d.cue,h=c.currentTime();d.label=g.text,d.selected=g.startTime<=h&&hc;c++){var e=a[c];if(e.kind===this.track.kind&&"showing"===e.mode){b=!1;break}}this.selected(b)},b}(h["default"]);j["default"].registerComponent("OffTextTrackMenuItem",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":48,"./text-track-menu-item.js":69}],67:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("./text-track-button.js"),h=d(g),i=a("../../component.js"),j=d(i),k=function(a){function b(c,d,f){e(this,b),a.call(this,c,d,f),this.el_.setAttribute("aria-label","Subtitles Menu")}return f(b,a),b.prototype.buildCSSClass=function(){return"vjs-subtitles-button "+a.prototype.buildCSSClass.call(this)},b}(h["default"]);k.prototype.kind_="subtitles",k.prototype.controlText_="Subtitles",j["default"].registerComponent("SubtitlesButton",k),c["default"]=k,b.exports=c["default"]},{"../../component.js":48,"./text-track-button.js":68}],68:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../menu/menu-button.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./text-track-menu-item.js"),o=e(n),p=a("./off-text-track-menu-item.js"),q=e(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=this.player_.textTracks();if(this.items.length<=1&&this.hide(),e){var g=m.bind(this,this.update);e.addEventListener("removetrack",g),e.addEventListener("addtrack",g),this.player_.on("dispose",function(){e.removeEventListener("removetrack",g),e.removeEventListener("addtrack",g)})}}return g(b,a),b.prototype.createItems=function(){var a=arguments.length<=0||void 0===arguments[0]?[]:arguments[0];a.push(new q["default"](this.player_,{kind:this.kind_}));var b=this.player_.textTracks();if(!b)return a;for(var c=0;cCurrent Time 0:00',"aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.scrubbing()?this.player_.getCache().currentTime:this.player_.currentTime(),b=this.localize("Current Time"),c=m["default"](a,this.player_.duration());this.contentEl_.innerHTML=''+b+" "+c},b}(i["default"]);i["default"].registerComponent("CurrentTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],71:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent),this.on(c,"loadedmetadata",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-duration vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-duration-display",innerHTML:''+this.localize("Duration Time")+" 0:00","aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){var a=this.player_.duration();if(a){var b=this.localize("Duration Time"),c=m["default"](a);this.contentEl_.innerHTML=''+b+" "+c}},b}(i["default"]);i["default"].registerComponent("DurationDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],72:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../component.js"),i=e(h),j=a("../../utils/dom.js"),k=d(j),l=a("../../utils/format-time.js"),m=e(l),n=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=k.createEl("div",{className:"vjs-remaining-time-display",innerHTML:''+this.localize("Remaining Time")+" -0:00","aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){if(this.player_.duration()){var a=this.localize("Remaining Time"),b=m["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(i["default"]);i["default"].registerComponent("RemainingTimeDisplay",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],73:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"
/
"})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":48}],74:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../../slider/slider.js"),i=e(h),j=a("../../component.js"),k=e(j),l=a("../../utils/fn.js"),m=d(l),n=a("./volume-level.js"),o=(e(n),function(a){function b(c,d){f(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(m.bind(this,this.updateARIAAttributes))}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar","aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(){var a=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",a),this.el_.setAttribute("aria-valuetext",a+"%")},b}(i["default"]));o.prototype.options_={children:{volumeLevel:{}},barName:"volumeLevel"},o.prototype.playerEvent="volumechange",k["default"].registerComponent("VolumeBar",o),c["default"]=o,b.exports=c["default"]},{"../../component.js":48,"../../slider/slider.js":91,"../../utils/fn.js":109,"./volume-level.js":76}],75:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./volume-bar.js"),j=(d(i),function(a){function b(c,d){e(this,b),a.call(this,c,d),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:{volumeBar:{}}},h["default"].registerComponent("VolumeControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":48,"./volume-bar.js":74}],76:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":48}],77:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){var d=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];e(this,b),void 0===d.vertical&&(d.vertical=d.inline?!1:!0),d.volumeBar=d.volumeBar||{},d.volumeBar.vertical=!!d.vertical,a.call(this,c,d),this.on(c,"volumechange",this.volumeUpdate),this.on(c,"loadstart",this.volumeUpdate),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}),this.addClass("vjs-menu-button")}return f(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return b.on("focus",function(){a.lockShowing()}),b.on("blur",function(){a.unlockShowing()}),a.addChild(b),a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":47,"../component.js":48,"../menu/menu-button.js":84,"../menu/menu.js":86,"./mute-toggle.js":52,"./volume-control/volume-bar.js":74}],78:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component"),i=e(h),j=a("./utils/dom.js"),k=d(j),l=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return g(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=k.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(i["default"]);i["default"].registerComponent("ErrorDisplay",l),c["default"]=l,b.exports=c["default"]},{"./component":48,"./utils/dom.js":107}],79:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":108}],80:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},h=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=function(){a.apply(this,arguments)},d={};"object"==typeof b?("function"==typeof b.init&&(f["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":112}],81:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new m["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(o.createEl("li",{className:"vjs-menu-title",innerHTML:s["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(i["default"]);k["default"].registerComponent("MenuButton",t),c["default"]=t,b.exports=c["default"]},{"../button.js":47,"../component.js":48,"../utils/dom.js":107,"../utils/fn.js":109,"../utils/to-title-case.js":116,"./menu.js":86}],85:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=a("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}return f(b,a),b.prototype.createEl=function(b,c){return a.prototype.createEl.call(this,"li",l["default"]({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label)},c))},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))},b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":47,"../component.js":48,"object.assign":40}],86:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("../utils/fn.js"),m=d(l),n=a("../utils/events.js"),o=d(n),p=function(a){function b(){f(this,b),a.apply(this,arguments)}return g(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",m.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=k.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),o.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(i["default"]);i["default"].registerComponent("Menu",p),c["default"]=p,b.exports=c["default"]},{"../component.js":48,"../utils/dom.js":107,"../utils/events.js":108,"../utils/fn.js":109}],87:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./component.js"),i=e(h),j=a("global/document"),k=e(j),l=a("global/window"),m=e(l),n=a("./utils/events.js"),o=d(n),p=a("./utils/dom.js"),q=d(p),r=a("./utils/fn.js"),s=d(r),t=a("./utils/guid.js"),u=d(t),v=a("./utils/browser.js"),w=(d(v),a("./utils/log.js")),x=e(w),y=a("./utils/to-title-case.js"),z=e(y),A=a("./utils/time-ranges.js"),B=a("./utils/buffer.js"),C=a("./utils/stylesheet.js"),D=d(C),E=a("./fullscreen-api.js"),F=e(E),G=a("./media-error.js"),H=e(G),I=a("safe-json-parse/tuple"),J=e(I),K=a("object.assign"),L=e(K),M=a("./utils/merge-options.js"),N=e(M),O=a("./tracks/text-track-list-converter.js"),P=e(O),Q=a("./tech/loader.js"),R=(e(Q),a("./poster-image.js")),S=(e(R),a("./tracks/text-track-display.js")),T=(e(S),a("./loading-spinner.js")),U=(e(T),a("./big-play-button.js")),V=(e(U),a("./control-bar/control-bar.js")),W=(e(V),a("./error-display.js")),X=(e(W),a("./tracks/text-track-settings.js")),Y=(e(X),a("./tech/html5.js")),Z=(e(Y),function(a){function b(c,d,e){var g=this;if(f(this,b),c.id=c.id||"vjs_video_"+u.newGUID(),d=L["default"](b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,a.call(this,null,d,e),!this.options_||!this.options_.techOrder||!this.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");this.tag=c,this.tagAttributes=c&&q.getElAttributes(c),this.language(this.options_.language),d.languages?!function(){var a={};Object.getOwnPropertyNames(d.languages).forEach(function(b){a[b.toLowerCase()]=d.languages[b]}),g.languages_=a}():this.languages_=b.prototype.options_.languages,this.cache_={},this.poster_=d.poster||"",this.controls_=!!d.controls,c.controls=!1,this.scrubbing_=!1,this.el_=this.createEl();var h=N["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){"function"==typeof this[b]?this[b](a[b]):x["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),b.players[this.id_]=this,this.userActive_=!0,this.reportUserActivity(),this.listenForUserActivity(),this.on("fullscreenchange",this.handleFullscreenChange),this.on("stageclick",this.handleStageClick)}return g(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech&&this.tech.dispose(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.el_=a.prototype.createEl.call(this,"div"),c=this.tag;c.removeAttribute("width"),c.removeAttribute("height");var d=q.getElAttributes(c);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=D.createStyleElement("vjs-styles-dimensions");var e=k["default"].querySelector(".vjs-styles-defaults"),f=k["default"].querySelector("head");return f.insertBefore(this.styleEl_,e?e.nextSibling:f.firstChild),this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),q.insertElFirst(c,b),this.el_=b,b},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a,b){var c=a+"_";if(void 0===b)return this[c]||0;if(""===b)this[c]=void 0;else{var d=parseFloat(b);if(isNaN(d))return x["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this},b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid")))},b.prototype.aspectRatio=function(a){if(void 0===a)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),D.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech=function(a,b){this.tech&&this.unloadTech(),"Html5"!==a&&this.tag&&(i["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName=a,this.isReady_=!1;var c=s.bind(this,function(){this.triggerReady()}),d=L["default"]({nativeControlsForTouch:this.options_.nativeControlsForTouch,source:b,playerId:this.id(),techId:this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(d.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(d.startTime=this.cache_.currentTime),this.cache_.src=b.src);var e=i["default"].getComponent(a);this.tech=new e(d),P["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech),this.on(this.tech,"ready",this.handleTechReady),this.on(this.tech,"loadstart",this.handleTechLoadStart),this.on(this.tech,"waiting",this.handleTechWaiting),this.on(this.tech,"canplay",this.handleTechCanPlay),this.on(this.tech,"canplaythrough",this.handleTechCanPlayThrough),this.on(this.tech,"playing",this.handleTechPlaying),this.on(this.tech,"ended",this.handleTechEnded),this.on(this.tech,"seeking",this.handleTechSeeking),this.on(this.tech,"seeked",this.handleTechSeeked),this.on(this.tech,"play",this.handleTechPlay),this.on(this.tech,"firstplay",this.handleTechFirstPlay),this.on(this.tech,"pause",this.handleTechPause),this.on(this.tech,"progress",this.handleTechProgress),this.on(this.tech,"durationchange",this.handleTechDurationChange),this.on(this.tech,"fullscreenchange",this.handleTechFullscreenChange),this.on(this.tech,"error",this.handleTechError),this.on(this.tech,"suspend",this.handleTechSuspend),this.on(this.tech,"abort",this.handleTechAbort),this.on(this.tech,"emptied",this.handleTechEmptied),this.on(this.tech,"stalled",this.handleTechStalled),this.on(this.tech,"loadedmetadata",this.handleTechLoadedMetaData),this.on(this.tech,"loadeddata",this.handleTechLoadedData),this.on(this.tech,"timeupdate",this.handleTechTimeUpdate),this.on(this.tech,"ratechange",this.handleTechRateChange),this.on(this.tech,"volumechange",this.handleTechVolumeChange),this.on(this.tech,"texttrackchange",this.onTextTrackChange),this.on(this.tech,"loadedmetadata",this.updateStyleEl_),this.usingNativeControls(this.techGet("controls")),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners(),this.tech.el().parentNode===this.el()||"Html5"===a&&this.tag||q.insertElFirst(this.tech.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null),this.tech.ready(c,!0)},b.prototype.unloadTech=function(){this.textTracks_=this.textTracks(),this.textTracksJson_=P["default"].textTracksToJson(this),this.isReady_=!1,this.tech.dispose(),this.tech=!1},b.prototype.addTechControlsListeners=function(){
+this.removeTechControlsListeners(),this.on(this.tech,"mousedown",this.handleTechClick),this.on(this.tech,"touchstart",this.handleTechTouchStart),this.on(this.tech,"touchmove",this.handleTechTouchMove),this.on(this.tech,"touchend",this.handleTechTouchEnd),this.on(this.tech,"tap",this.handleTechTap)},b.prototype.removeTechControlsListeners=function(){this.off(this.tech,"tap",this.handleTechTap),this.off(this.tech,"touchstart",this.handleTechTouchStart),this.off(this.tech,"touchmove",this.handleTechTouchMove),this.off(this.tech,"touchend",this.handleTechTouchEnd),this.off(this.tech,"mousedown",this.handleTechClick)},b.prototype.handleTechReady=function(){this.triggerReady(),this.cache_.volume&&this.techCall("setVolume",this.cache_.volume),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechLoadStart=function(){this.removeClass("vjs-ended"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){return void 0!==a?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_},b.prototype.handleTechPlay=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting=function(){this.addClass("vjs-waiting"),this.trigger("waiting")},b.prototype.handleTechCanPlay=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay=function(){this.options_.starttime&&this.currentTime(this.options_.starttime),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechProgress=function(){this.trigger("progress"),1===this.bufferedPercent()&&this.trigger("loadedalldata")},b.prototype.handleTechEnded=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange=function(){this.updateDuration(),this.trigger("durationchange")},b.prototype.handleTechClick=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd=function(a){a.preventDefault()},b.prototype.updateDuration=function(){var a=this.techGet("duration");a&&(0>a&&(a=1/0),this.duration(a),a===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"))},b.prototype.handleFullscreenChange=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick=function(){this.reportUserActivity()},b.prototype.handleTechFullscreenChange=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError=function(){var a=this.tech.error();this.error(a&&a.code)},b.prototype.handleTechSuspend=function(){this.trigger("suspend")},b.prototype.handleTechAbort=function(){this.trigger("abort")},b.prototype.handleTechEmptied=function(){this.trigger("emptied")},b.prototype.handleTechStalled=function(){this.trigger("stalled")},b.prototype.handleTechLoadedMetaData=function(){this.trigger("loadedmetadata")},b.prototype.handleTechLoadedData=function(){this.trigger("loadeddata")},b.prototype.handleTechTimeUpdate=function(){this.trigger("timeupdate")},b.prototype.handleTechRateChange=function(){this.trigger("ratechange")},b.prototype.handleTechVolumeChange=function(){this.trigger("volumechange")},b.prototype.onTextTrackChange=function(){this.trigger("texttrackchange")},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall=function(a,b){if(this.tech&&!this.tech.isReady_)this.tech.ready(function(){this[a](b)},!0);else try{this.tech[a](b)}catch(c){throw x["default"](c),c}},b.prototype.techGet=function(a){if(this.tech&&this.tech.isReady_)try{return this.tech[a]()}catch(b){throw void 0===this.tech[a]?x["default"]("Video.js: "+a+" method not defined for "+this.techName+" playback technology.",b):"TypeError"===b.name?(x["default"]("Video.js: "+a+" unavailable on "+this.techName+" playback technology element.",b),this.tech.isReady_=!1):x["default"](b),b}},b.prototype.play=function(){return this.techCall("play"),this},b.prototype.pause=function(){return this.techCall("pause"),this},b.prototype.paused=function(){return this.techGet("paused")===!1?!1:!0},b.prototype.scrubbing=function(a){return void 0!==a?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return void 0!==a?(this.techCall("setCurrentTime",a),this):this.cache_.currentTime=this.techGet("currentTime")||0},b.prototype.duration=function(a){return void 0!==a?(this.cache_.duration=parseFloat(a),this):(void 0===this.cache_.duration&&this.updateDuration(),this.cache_.duration||0)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function c(){var c=this.techGet("buffered");return c&&c.length||(c=A.createTimeRange(0,0)),c},b.prototype.bufferedPercent=function(){return B.bufferedPercent(this.buffered(),this.duration())},b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return void 0!==a?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall("setVolume",b),this):(b=parseFloat(this.techGet("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){return void 0!==a?(this.techCall("setMuted",a),this):this.techGet("muted")||!1},b.prototype.supportsFullScreen=function(){return this.techGet("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return void 0!==a?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=F["default"];return this.isFullscreen(!0),a.requestFullscreen?(o.on(k["default"],a.fullscreenchange,s.bind(this,function b(){this.isFullscreen(k["default"][a.fullscreenElement]),this.isFullscreen()===!1&&o.off(k["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech.supportsFullScreen()?this.techCall("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=F["default"];return this.isFullscreen(!1),a.requestFullscreen?k["default"][a.exitFullscreen]():this.tech.supportsFullScreen()?this.techCall("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=k["default"].documentElement.style.overflow,o.on(k["default"],"keydown",s.bind(this,this.fullWindowOnEscKey)),k["default"].documentElement.style.overflow="hidden",q.addElClass(k["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,o.off(k["default"],"keydown",this.fullWindowOnEscKey),k["default"].documentElement.style.overflow=this.docOrigOverflow,q.removeElClass(k["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)}},b.prototype.playbackRate=function(a){return void 0!==a?(this.techCall("setPlaybackRate",a),this):this.tech&&this.tech.featuresPlaybackRate?this.techGet("playbackRate"):1},b.prototype.isAudio=function(a){return void 0!==a?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.networkState=function(){return this.techGet("networkState")},b.prototype.readyState=function(){return this.techGet("readyState")},b.prototype.textTracks=function(){return this.tech&&this.tech.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech&&this.tech.remoteTextTracks()},b.prototype.addTextTrack=function(a,b,c){return this.tech&&this.tech.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a){return this.tech&&this.tech.addRemoteTextTrack(a)},b.prototype.removeRemoteTextTrack=function(a){this.tech&&this.tech.removeRemoteTextTrack(a)},b.prototype.videoWidth=function(){return this.tech&&this.tech.videoWidth&&this.tech.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech&&this.tech.videoHeight&&this.tech.videoHeight()||0},b.prototype.language=function(a){return void 0===a?this.language_:(this.language_=(""+a).toLowerCase(),this)},b.prototype.languages=function(){return N["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=N["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(q.getElAttributes(k)):"track"===l&&b.tracks.push(q.getElAttributes(k))}return b},b}(i["default"]));Z.players={};var $=m["default"].navigator;Z.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{},errorDisplay:{},textTrackSettings:{}},language:k["default"].getElementsByTagName("html")[0].getAttribute("lang")||$.languages&&$.languages[0]||$.userLanguage||$.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Z.prototype.handleLoadedMetaData,Z.prototype.handleLoadedData,Z.prototype.handleLoadedAllData,Z.prototype.handleUserActive,Z.prototype.handleUserInactive,Z.prototype.handleTimeUpdate,Z.prototype.handleVolumeChange,Z.prototype.handleError,Z.prototype.flexNotSupported_=function(){var a=k["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},i["default"].registerComponent("Player",Z),c["default"]=Z,b.exports=c["default"]},{"./big-play-button.js":46,"./component.js":48,"./control-bar/control-bar.js":49,"./error-display.js":78,"./fullscreen-api.js":81,"./loading-spinner.js":82,"./media-error.js":83,"./poster-image.js":89,"./tech/html5.js":94,"./tech/loader.js":95,"./tracks/text-track-display.js":98,"./tracks/text-track-list-converter.js":100,"./tracks/text-track-settings.js":102,"./utils/browser.js":104,"./utils/buffer.js":105,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/guid.js":111,"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/stylesheet.js":114,"./utils/time-ranges.js":115,"./utils/to-title-case.js":116,"global/document":1,"global/window":2,"object.assign":40,"safe-json-parse/tuple":45}],88:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.js":87}],89:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./button.js"),i=e(h),j=a("./component.js"),k=e(j),l=a("./utils/fn.js"),m=d(l),n=a("./utils/dom.js"),o=d(n),p=a("./utils/browser.js"),q=d(p),r=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.update(),c.on("posterchange",m.bind(this,this.update))}return g(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=o.createEl("div",{className:"vjs-poster",tabIndex:-1});return q.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=o.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(){var a=this.player().poster();this.setSrc(a),a?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b}(i["default"]);k["default"].registerComponent("PosterImage",r),c["default"]=r,b.exports=c["default"]},{"./button.js":47,"./component.js":48,"./utils/browser.js":104,"./utils/dom.js":107,"./utils/fn.js":109}],90:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var f=a("./utils/events.js"),g=e(f),h=a("global/document"),i=d(h),j=a("global/window"),k=d(j),l=!1,m=void 0,n=function(){var a=i["default"].getElementsByTagName("video"),b=i["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){o(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){m(f)}}}else l||o(1)},o=function(a,b){m=b,setTimeout(n,a)};"complete"===i["default"].readyState?l=!0:g.one(k["default"],"load",function(){l=!0});var p=function(){return l};c.autoSetup=n,c.autoSetupTimeout=o,c.hasLoaded=p},{"./utils/events.js":108,"global/document":1,"global/window":2}],91:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("../component.js"),i=e(h),j=a("../utils/dom.js"),k=d(j),l=a("global/document"),m=e(l),n=a("object.assign"),o=e(n),p=function(a){function b(c,d){f(this,b),a.call(this,c,d),this.bar=this.getChild(this.options_.barName),this.vertical(!!this.options_.vertical),this.on("mousedown",this.handleMouseDown),this.on("touchstart",this.handleMouseDown),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur),this.on("click",this.handleClick),this.on(c,"controlsvisible",this.update),this.on(c,this.playerEvent,this.update)}return g(b,a),b.prototype.createEl=function(b){var c=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];return c.className=c.className+" vjs-slider",c=o["default"]({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},c),a.prototype.createEl.call(this,b,c)},b.prototype.handleMouseDown=function(a){a.preventDefault(),k.blockTextSelection(),this.addClass("vjs-sliding"),this.on(m["default"],"mousemove",this.handleMouseMove),this.on(m["default"],"mouseup",this.handleMouseUp),this.on(m["default"],"touchmove",this.handleMouseMove),this.on(m["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){k.unblockTextSelection(),this.removeClass("vjs-sliding"),this.off(m["default"],"mousemove",this.handleMouseMove),this.off(m["default"],"mouseup",this.handleMouseUp),this.off(m["default"],"touchmove",this.handleMouseMove),this.off(m["default"],"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||0>a||a===1/0)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=this.el_,c=k.findElPosition(b),d=b.offsetWidth,e=b.offsetHeight;if(this.vertical()){var f=c.top,g=void 0;return g=a.changedTouches?a.changedTouches[0].pageY:a.pageY,Math.max(0,Math.min(1,(f-g+e)/e))}var h=c.left,i=void 0;return i=a.changedTouches?a.changedTouches[0].pageX:a.pageX,Math.max(0,Math.min(1,(i-h)/d))},b.prototype.handleFocus=function(){this.on(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):(38===a.which||39===a.which)&&(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(m["default"],"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return void 0===a?this.vertical_||!1:(this.vertical_=!!a,this.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(i["default"]);i["default"].registerComponent("Slider",p),c["default"]=p,b.exports=c["default"]},{"../component.js":48,"../utils/dom.js":107,"global/document":1,"object.assign":40}],92:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(c=d=a.length)),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],93:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=a.charAt(0).toUpperCase()+a.slice(1);A["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function i(a){A[a]=function(){return this.el_.vjs_getProperty(a)}}c.__esModule=!0;for(var j=a("./tech"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/time-ranges.js"),q=a("./flash-rtmp"),r=e(q),s=a("../component"),t=e(s),u=a("global/window"),v=e(u),w=a("object.assign"),x=e(w),y=v["default"].navigator,z=function(a){function b(c,d){f(this,b),a.call(this,c,d),c.source&&this.ready(function(){this.setSource(c.source)},!0),c.startTime&&this.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),v["default"].videojs=v["default"].videojs||{},v["default"].videojs.Flash=v["default"].videojs.Flash||{},v["default"].videojs.Flash.onReady=b.onReady,v["default"].videojs.Flash.onEvent=b.onEvent,v["default"].videojs.Flash.onError=b.onError,this.on("seeked",function(){this.lastSeekTarget_=void 0})}return g(b,a),b.prototype.createEl=function(){var a=this.options_,c=a.techId,d=x["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=x["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=x["default"]({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.ended()&&this.setCurrentTime(0),this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){return void 0===a?this.currentSrc():this.setSrc(a)},b.prototype.setSrc=function(a){if(a=o.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()){var b=this;this.setTimeout(function(){b.play()},0)}},b.prototype.seeking=function(){return void 0!==this.lastSeekTarget_},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b=10},k["default"].withSourceHandlers(z),z.nativeSourceHandler={},z.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=o.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in z.formats?"maybe":""},z.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},z.nativeSourceHandler.dispose=function(){},z.registerSourceHandler(z.nativeSourceHandler),z.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},z.onReady=function(a){var b=m.getEl(a),c=b&&b.tech;c&&c.el()&&z.checkReady(c)},z.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){z.checkReady(a)},50))},z.onEvent=function(a,b){var c=m.getEl(a).tech;c.trigger(b)},z.onError=function(a,b){var c=m.getEl(a).tech;return"srcnotfound"===b?c.error(4):void c.error("FLASH: "+b)},z.version=function(){var a="0,0,0";try{a=new v["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{y.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(y.plugins["Shockwave Flash 2.0"]||y.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},z.embed=function(a,b,c,d){var e=z.getEmbedCode(a,b,c,d),f=m.createEl("div",{innerHTML:e}).childNodes[0];return f},z.getEmbedCode=function(a,b,c,d){var e=''}),d=x["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=a+'="'+d[a]+'" '}),""+e+h+">"+g+""},r["default"](z),t["default"].registerComponent("Flash",z),c["default"]=z,b.exports=c["default"]},{"../component":48,"../utils/dom.js":107,"../utils/time-ranges.js":115,"../utils/url.js":117,"./flash-rtmp":92,"./tech":96,"global/window":2,"object.assign":40}],94:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var h=a("./tech.js"),i=e(h),j=a("../component"),k=e(j),l=a("../utils/dom.js"),m=d(l),n=a("../utils/url.js"),o=d(n),p=a("../utils/fn.js"),q=d(p),r=a("../utils/log.js"),s=e(r),t=a("../utils/browser.js"),u=d(t),v=a("global/document"),w=e(v),x=a("global/window"),y=e(x),z=a("object.assign"),A=e(z),B=a("../utils/merge-options.js"),C=e(B),D=function(a){function b(c,d){f(this,b),a.call(this,c,d);var e=c.source;if(e&&(this.el_.currentSrc!==e.src||c.tag&&3===c.tag.initNetworkState_)&&this.setSource(e),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),m.setElAttributes(a,i)}return a},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},b.prototype.pause=function(){this.el_.pause()},b.prototype.paused=function(){return this.el_.paused},b.prototype.currentTime=function(){return this.el_.currentTime},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){s["default"](b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){return this.el_.duration||0},b.prototype.buffered=function(){return this.el_.buffered},b.prototype.volume=function(){return this.el_.volume},b.prototype.setVolume=function(a){this.el_.volume=a},b.prototype.muted=function(){return this.el_.muted},b.prototype.setMuted=function(a){this.el_.muted=a},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=y["default"].navigator.userAgent;if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;"webkitDisplayingFullscreen"in a&&this.one("webkitbeginfullscreen",function(){this.one("webkitendfullscreen",function(){this.trigger("fullscreenchange",{isFullscreen:!1})}),this.trigger("fullscreenchange",{isFullscreen:!0})}),a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){return void 0===a?this.el_.src:void this.setSrc(a)},b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return this.el_.currentSrc},b.prototype.poster=function(){return this.el_.poster},b.prototype.setPoster=function(a){this.el_.poster=a},b.prototype.preload=function(){return this.el_.preload},b.prototype.setPreload=function(a){this.el_.preload=a},b.prototype.autoplay=function(){return this.el_.autoplay},b.prototype.setAutoplay=function(a){this.el_.autoplay=a},b.prototype.controls=function(){return this.el_.controls},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.loop=function(){return this.el_.loop},b.prototype.setLoop=function(a){this.el_.loop=a},b.prototype.error=function(){return this.el_.error},b.prototype.seeking=function(){return this.el_.seeking},b.prototype.seekable=function(){return this.el_.seekable},b.prototype.ended=function(){return this.el_.ended},b.prototype.defaultMuted=function(){return this.el_.defaultMuted},b.prototype.playbackRate=function(){return this.el_.playbackRate},b.prototype.played=function(){return this.el_.played},b.prototype.setPlaybackRate=function(a){this.el_.playbackRate=a},b.prototype.networkState=function(){return this.el_.networkState},b.prototype.readyState=function(){return this.el_.readyState},b.prototype.videoWidth=function(){return this.el_.videoWidth},b.prototype.videoHeight=function(){return this.el_.videoHeight},b.prototype.textTracks=function(){return a.prototype.textTracks.call(this)},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.addRemoteTextTrack=function(){var b=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!this.featuresNativeTextTracks)return a.prototype.addRemoteTextTrack.call(this,b);var c=w["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),this.el().appendChild(c),this.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(i["default"]);D.TEST_VID=w["default"].createElement("video");var E=w["default"].createElement("track");E.kind="captions",E.srclang="en",E.label="English",D.TEST_VID.appendChild(E),D.isSupported=function(){try{D.TEST_VID.volume=.5}catch(a){return!1}return!!D.TEST_VID.canPlayType},i["default"].withSourceHandlers(D),D.nativeSourceHandler={},D.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return D.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=o.getFileExtension(a.src),b("video/"+c)):""},D.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},D.nativeSourceHandler.dispose=function(){},D.registerSourceHandler(D.nativeSourceHandler),D.canControlVolume=function(){var a=D.TEST_VID.volume;return D.TEST_VID.volume=a/2+.1,a!==D.TEST_VID.volume},D.canControlPlaybackRate=function(){var a=D.TEST_VID.playbackRate;return D.TEST_VID.playbackRate=a/2+.1,a!==D.TEST_VID.playbackRate},D.supportsNativeTextTracks=function(){var a;return a=!!D.TEST_VID.textTracks,a&&D.TEST_VID.textTracks.length>0&&(a="number"!=typeof D.TEST_VID.textTracks[0].mode),a&&u.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in D.TEST_VID.textTracks||(a=!1),a},D.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],D.prototype.featuresVolumeControl=D.canControlVolume(),D.prototype.featuresPlaybackRate=D.canControlPlaybackRate(),D.prototype.movingMediaElementInDOM=!u.IS_IOS,D.prototype.featuresFullscreenResize=!0,D.prototype.featuresProgressEvents=!0,D.prototype.featuresNativeTextTracks=D.supportsNativeTextTracks();var F=void 0,G=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,H=/^video\/mp4/i;D.patchCanPlayType=function(){u.ANDROID_VERSION>=4&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":F.call(this,a)}),u.IS_OLD_ANDROID&&(F||(F=D.TEST_VID.constructor.prototype.canPlayType),D.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&H.test(a)?"maybe":F.call(this,a)})},D.unpatchCanPlayType=function(){var a=D.TEST_VID.constructor.prototype.canPlayType;return D.TEST_VID.constructor.prototype.canPlayType=F,F=null,a},D.patchCanPlayType(),D.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&!function(){try{a.load()}catch(b){}}()}},k["default"].registerComponent("Html5",D),c["default"]=D,b.exports=c["default"]},{"../component":48,"../utils/browser.js":104,"../utils/dom.js":107,"../utils/fn.js":109,"../utils/log.js":112,"../utils/merge-options.js":113,"../utils/url.js":117,"./tech.js":96,"global/document":1,"global/window":2,"object.assign":40}],95:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}c.__esModule=!0;var g=a("../component"),h=d(g),i=a("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=function(a){function b(c,d,f){if(e(this,b),a.call(this,c,d,f),d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var g=0,i=d.playerOptions.techOrder;g0&&this.trigger("loadstart")},!0)},b.prototype.manualProgressOn=function(){this.on("durationchange",this.onDurationChange),this.manualProgress=!0,this.one("ready",this.trackProgress)},b.prototype.manualProgressOff=function(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange)},b.prototype.trackProgress=function(){this.stopTrackingProgress(),this.progressInterval=this.setInterval(o.bind(this,function(){var a=this.bufferedPercent();this.bufferedPercent_!==a&&this.trigger("progress"),this.bufferedPercent_=a,1===a&&this.stopTrackingProgress()}),500)},b.prototype.onDurationChange=function(){this.duration_=this.duration()},b.prototype.buffered=function(){return r.createTimeRange(0,0)},b.prototype.bufferedPercent=function(){return s.bufferedPercent(this.buffered(),this.duration_)},b.prototype.stopTrackingProgress=function(){this.clearInterval(this.progressInterval)},b.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime),this.on("pause",this.stopTrackingCurrentTime)},b.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime),this.off("pause",this.stopTrackingCurrentTime)},b.prototype.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)},b.prototype.stopTrackingCurrentTime=function(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},b.prototype.dispose=function(){var b=this.textTracks();if(b)for(var c=b.length;c--;)this.removeRemoteTextTrack(b[c]);this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),a.prototype.dispose.call(this)},b.prototype.error=function(a){return void 0!==a&&(this.error_=a instanceof u["default"]?a:new u["default"](a),this.trigger("error")),this.error_},b.prototype.played=function(){return this.hasStarted_?r.createTimeRange(0,0):r.createTimeRange()},b.prototype.setCurrentTime=function(){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},b.prototype.initTextTrackListeners=function(){var a=o.bind(this,function(){this.trigger("texttrackchange")}),b=this.textTracks();b&&(b.addEventListener("removetrack",a),b.addEventListener("addtrack",a),this.on("dispose",o.bind(this,function(){b.removeEventListener("removetrack",a),b.removeEventListener("addtrack",a)})))},b.prototype.emulateTextTracks=function(){if(!w["default"].WebVTT&&null!=this.el().parentNode){var a=y["default"].createElement("script");a.src=this.options_["vtt.js"]||"../node_modules/vtt.js/dist/vtt.js",this.el().parentNode.appendChild(a),w["default"].WebVTT=!0}var b=this.textTracks();if(b){var c=o.bind(this,function(){var a=this,c=function(){return a.trigger("texttrackchange")};c();for(var d=0;db)for(c=b;d>c;c++)e.call(this,c)},j.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=j,b.exports=c["default"]},{"../utils/browser.js":104,"global/document":1}],98:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function i(a,b,c){try{a.style[b]=c}catch(d){}}c.__esModule=!0;var j=a("../component"),k=e(j),l=a("../menu/menu.js"),m=(e(l),a("../menu/menu-item.js")),n=(e(m),a("../menu/menu-button.js")),o=(e(n),a("../utils/fn.js")),p=d(o),q=a("global/document"),r=(e(q),a("global/window")),s=e(r),t="#222",u="#ccc",v={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'},w=function(a){function b(c,d,e){f(this,b),a.call(this,c,d,e),c.on("loadstart",p.bind(this,this.toggleDisplay)),c.on("texttrackchange",p.bind(this,this.updateDisplay)),c.ready(p.bind(this,function(){if(c.tech&&c.tech.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",p.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},n.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=n,b.exports=c["default"]},{"../event-target":79,"../utils/browser.js":104,"../utils/fn.js":109,"global/document":1}],102:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function g(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function h(a){var b=void 0;return a.selectedOptions?b=a.selectedOptions[0]:a.options&&(b=a.options[a.options.selectedIndex]),b.value}function i(a,b){if(b){var c=void 0;for(c=0;c select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),n.on(this.el().querySelector(".vjs-fg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".window-color > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-text-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-window-opacity > select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-percent select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-edge-style select"),"change",p.bind(this,this.updateDisplay)),n.on(this.el().querySelector(".vjs-font-family select"),"change",p.bind(this,this.updateDisplay)),this.options_.persistTextTrackSettings&&this.restoreSettings()}return g(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-caption-settings vjs-modal-overlay",innerHTML:j()})},b.prototype.getValues=function(){var a=this.el(),b=h(a.querySelector(".vjs-edge-style select")),c=h(a.querySelector(".vjs-font-family select")),d=h(a.querySelector(".vjs-fg-color > select")),e=h(a.querySelector(".vjs-text-opacity > select")),f=h(a.querySelector(".vjs-bg-color > select")),g=h(a.querySelector(".vjs-bg-opacity > select")),i=h(a.querySelector(".window-color > select")),j=h(a.querySelector(".vjs-window-opacity > select")),k=v["default"].parseFloat(h(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:g,textOpacity:e,windowOpacity:j,edgeStyle:b,fontFamily:c,color:d,backgroundColor:f,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();i(b.querySelector(".vjs-edge-style select"),a.edgeStyle),i(b.querySelector(".vjs-font-family select"),a.fontFamily),i(b.querySelector(".vjs-fg-color > select"),a.color),i(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),i(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),i(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),i(b.querySelector(".window-color > select"),a.windowColor),i(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),i(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=t["default"](v["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&r["default"].error(b),c&&this.setValues(c)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.getOwnPropertyNames(a).length>0?v["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):v["default"].localStorage.removeItem("vjs-text-track-settings")}catch(b){}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(l["default"]);l["default"].registerComponent("TextTrackSettings",w),c["default"]=w,b.exports=c["default"]},{"../component":48,"../utils/events.js":108,"../utils/fn.js":109,"../utils/log.js":112,"global/window":2,"safe-json-parse/tuple":45}],103:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var f=a("./text-track-cue-list"),g=e(f),h=a("../utils/fn.js"),i=d(h),j=a("../utils/guid.js"),k=d(j),l=a("../utils/browser.js"),m=d(l),n=a("./text-track-enums"),o=d(n),p=a("../utils/log.js"),q=e(p),r=a("../event-target"),s=e(r),t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("../xhr.js"),y=e(x),z=function D(){var a=arguments.length<=0||void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(m.IS_IE8){b=u["default"].createElement("custom");for(var c in D.prototype)b[c]=D.prototype[c]}b.tech_=a.tech;var d=o.TextTrackMode[a.mode]||"disabled",e=o.TextTrackKind[a.kind]||"subtitles",f=a.label||"",h=a.language||a.srclang||"",j=a.id||"vjs_text_track_"+k.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var l=new g["default"](b.cues_),n=new g["default"](b.activeCues_),p=!1,q=i.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return f},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return h},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return j},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){o.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?l:null},set:Function.prototype}),Object.defineProperty(b,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return n;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;d>c;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var A=function E(a,b){if("function"!=typeof w["default"].WebVTT)return w["default"].setTimeout(function(){E(a,b)},25);var c=new w["default"].WebVTT.Parser(w["default"],w["default"].vttjs,w["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){q["default"].error(a)},c.parse(a),c.flush()},B=function(a,b){y["default"](a,i.bind(this,function(a,c,d){return a?q["default"].error(a,c):(b.loaded_=!0,void A(d,b))}))},C=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=z,b.exports=c["default"]},{"../event-target":79,"../utils/browser.js":104,"../utils/fn.js":109,"../utils/guid.js":111,"../utils/log.js":112,"../xhr.js":119,"./text-track-cue-list":97,"./text-track-enums":99,"global/document":1,"global/window":2}],104:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=h["default"].navigator.userAgent,j=/AppleWebKit\/([\d.]+)/i.exec(i),k=j?parseFloat(j.pop()):null,l=/iPhone/i.test(i);c.IS_IPHONE=l;var m=/iPad/i.test(i);c.IS_IPAD=m;var n=/iPod/i.test(i);c.IS_IPOD=n;var o=l||m||n;c.IS_IOS=o;var p=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();c.IOS_VERSION=p;var q=/Android/i.test(i);c.IS_ANDROID=q;var r=function(){var a,b,c=i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);return c?(a=c[1]&&parseFloat(c[1]),b=c[2]&&parseFloat(c[2]),a&&b?parseFloat(c[1]+"."+c[2]):a?a:null):null}();c.ANDROID_VERSION=r;var s=q&&/webkit/i.test(i)&&2.3>r;c.IS_OLD_ANDROID=s;var t=q&&5>r&&537>k;c.IS_NATIVE_ANDROID=t;var u=/Firefox/i.test(i);c.IS_FIREFOX=u;var v=/Chrome/i.test(i);c.IS_CHROME=v;var w=/MSIE\s8\.0/.test(i);c.IS_IE8=w;var x=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=x;var y="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=y},{"global/document":1,"global/window":2}],105:[function(a,b,c){"use strict";function d(a,b){var c,d,f=0;if(!b)return 0;a&&a.length||(a=e.createTimeRange(0,0));for(var g=0;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":115}],106:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("./log.js"),f=d(e),g={get:function(a,b){return a[b]},set:function(a,b,c){return a[b]=c,!0}};c["default"]=function(a){var b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1];if("function"==typeof Proxy){var c=function(){var c={};return Object.keys(b).forEach(function(a){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":112}],107:[function(a,b,c){"use strict";function d(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function e(a){return a&&a.__esModule?a:{"default":a}}function f(a){return 0===a.indexOf("#")&&(a=a.slice(1)),u["default"].getElementById(a)}function g(){var a=arguments.length<=0||void 0===arguments[0]?"div":arguments[0],b=arguments.length<=1||void 0===arguments[1]?{}:arguments[1],c=u["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var d=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?c.setAttribute(a,d):c[a]=d}),c}function h(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function i(a){var b=a[A];return b||(b=a[A]=y.newGUID()),z[b]||(z[b]={}),z[b]}function j(a){var b=a[A];return b?!!Object.getOwnPropertyNames(z[b]).length:!1}function k(a){var b=a[A];if(b){delete z[b];try{delete a[A]}catch(c){a.removeAttribute?a.removeAttribute(A):a[A]=null}}}function l(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function m(a,b){l(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function n(a,b){if(l(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1);a.className=c.join(" ")}}function o(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d);
-},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],76:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("../../utils/dom.js"),j=d(i),k=a("../../utils/format-time.js"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"timeupdate",this.updateContent)}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-remaining-time vjs-time-control vjs-control"});return this.contentEl_=j.createEl("div",{className:"vjs-remaining-time-display",innerHTML:''+this.localize("Remaining Time")+" -0:00","aria-live":"off"}),b.appendChild(this.contentEl_),b},b.prototype.updateContent=function(){if(this.player_.duration()){var a=this.localize("Remaining Time"),b=l["default"](this.player_.remainingTime());this.contentEl_.innerHTML=''+a+" -"+b}},b}(h["default"]);h["default"].registerComponent("RemainingTimeDisplay",m),c["default"]=m,b.exports=c["default"]},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],77:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-time-control vjs-time-divider",innerHTML:"
/
"})},b}(h["default"]);h["default"].registerComponent("TimeDivider",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":52}],78:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../slider/slider.js"),h=d(g),i=a("../../component.js"),j=d(i),k=a("../../utils/fn.js"),l=d(k),m=a("./volume-level.js"),n=(d(m),function(a){function b(c,d){e(this,b),a.call(this,c,d),this.on(c,"volumechange",this.updateARIAAttributes),c.ready(l.bind(this,this.updateARIAAttributes))}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-bar","aria-label":"volume level"})},b.prototype.handleMouseMove=function(a){this.player_.muted()&&this.player_.muted(!1),this.player_.volume(this.calculateDistance(a))},b.prototype.getPercent=function(){return this.player_.muted()?0:this.player_.volume()},b.prototype.stepForward=function(){this.player_.volume(this.player_.volume()+.1)},b.prototype.stepBack=function(){this.player_.volume(this.player_.volume()-.1)},b.prototype.updateARIAAttributes=function(){var a=(100*this.player_.volume()).toFixed(2);this.el_.setAttribute("aria-valuenow",a),this.el_.setAttribute("aria-valuetext",a+"%")},b}(h["default"]));n.prototype.options_={children:{volumeLevel:{}},barName:"volumeLevel"},n.prototype.playerEvent="volumechange",j["default"].registerComponent("VolumeBar",n),c["default"]=n,b.exports=c["default"]},{"../../component.js":52,"../../slider/slider.js":95,"../../utils/fn.js":113,"./volume-level.js":80}],79:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=a("./volume-bar.js"),j=(d(i),function(a){function b(c,d){e(this,b),a.call(this,c,d),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")})}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-control vjs-control"})},b}(h["default"]));j.prototype.options_={children:{volumeBar:{}}},h["default"].registerComponent("VolumeControl",j),c["default"]=j,b.exports=c["default"]},{"../../component.js":52,"./volume-bar.js":78}],80:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../../component.js"),h=d(g),i=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-volume-level",innerHTML:''})},b}(h["default"]);h["default"].registerComponent("VolumeLevel",i),c["default"]=i,b.exports=c["default"]},{"../../component.js":52}],81:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../button.js"),h=(d(g),a("../component.js")),i=d(h),j=a("../menu/menu.js"),k=d(j),l=a("../menu/menu-button.js"),m=d(l),n=a("./mute-toggle.js"),o=d(n),p=a("./volume-control/volume-bar.js"),q=d(p),r=function(a){function b(c){var d=void 0===arguments[1]?{}:arguments[1];e(this,b),void 0===d.vertical&&(d.vertical=d.inline?!1:!0),d.volumeBar=d.volumeBar||{},d.volumeBar.vertical=!!d.vertical,a.call(this,c,d),this.on(c,"volumechange",this.volumeUpdate),this.on(c,"loadstart",this.volumeUpdate),c.tech&&c.tech.featuresVolumeControl===!1&&this.addClass("vjs-hidden"),this.on(c,"loadstart",function(){c.tech.featuresVolumeControl===!1?this.addClass("vjs-hidden"):this.removeClass("vjs-hidden")}),this.addClass("vjs-menu-button")}return f(b,a),b.prototype.buildCSSClass=function(){var b="";return b=this.options_.vertical?"vjs-volume-menu-button-vertical":"vjs-volume-menu-button-horizontal","vjs-volume-menu-button "+a.prototype.buildCSSClass.call(this)+" "+b},b.prototype.createMenu=function(){var a=new k["default"](this.player_,{contentElType:"div"}),b=new q["default"](this.player_,this.options_.volumeBar);return b.on("focus",function(){a.lockShowing()}),b.on("blur",function(){a.unlockShowing()}),a.addChild(b),a},b.prototype.handleClick=function(){o["default"].prototype.handleClick.call(this),a.prototype.handleClick.call(this)},b}(m["default"]);r.prototype.volumeUpdate=o["default"].prototype.update,r.prototype.controlText_="Mute",i["default"].registerComponent("VolumeMenuButton",r),c["default"]=r,b.exports=c["default"]},{"../button.js":51,"../component.js":52,"../menu/menu-button.js":88,"../menu/menu.js":90,"./mute-toggle.js":56,"./volume-control/volume-bar.js":78}],82:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./component"),h=d(g),i=a("./utils/dom.js"),j=d(i),k=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.update(),this.on(c,"error",this.update)}return f(b,a),b.prototype.createEl=function(){var b=a.prototype.createEl.call(this,"div",{className:"vjs-error-display"});return this.contentEl_=j.createEl("div"),b.appendChild(this.contentEl_),b},b.prototype.update=function(){this.player().error()&&(this.contentEl_.innerHTML=this.localize(this.player().error().message))},b}(h["default"]);h["default"].registerComponent("ErrorDisplay",k),c["default"]=k,b.exports=c["default"]},{"./component":52,"./utils/dom.js":111}],83:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=function(){};g.prototype.allowedEvents_={},g.prototype.on=function(a,b){var c=this.addEventListener;this.addEventListener=Function.prototype,f.on(this,a,b),this.addEventListener=c},g.prototype.addEventListener=g.prototype.on,g.prototype.off=function(a,b){f.off(this,a,b)},g.prototype.removeEventListener=g.prototype.off,g.prototype.one=function(a,b){f.one(this,a,b)},g.prototype.trigger=function(a){var b=a.type||a;"string"==typeof a&&(a={type:b}),a=f.fixEvent(a),this.allowedEvents_[b]&&this["on"+b]&&this["on"+b](a),f.trigger(this,a)},g.prototype.dispatchEvent=g.prototype.trigger,c["default"]=g,b.exports=c["default"]},{"./utils/events.js":112}],84:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./utils/log"),f=d(e),g=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.super_=b)},h=function(a){var b=void 0===arguments[1]?{}:arguments[1],c=function(){a.apply(this,arguments)},d={};"object"==typeof b?("function"==typeof b.init&&(f["default"].warn("Constructor logic via init() is deprecated; please use constructor() instead."),b.constructor=b.init),b.constructor!==Object.prototype.constructor&&(c=b.constructor),d=b):"function"==typeof b&&(c=b),g(c,a);for(var e in d)d.hasOwnProperty(e)&&(c.prototype[e]=d[e]);return c};c["default"]=h,b.exports=c["default"]},{"./utils/log":116}],85:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;for(var e=a("global/document"),f=d(e),g={},h=[["requestFullscreen","exitFullscreen","fullscreenElement","fullscreenEnabled","fullscreenchange","fullscreenerror"],["webkitRequestFullscreen","webkitExitFullscreen","webkitFullscreenElement","webkitFullscreenEnabled","webkitfullscreenchange","webkitfullscreenerror"],["webkitRequestFullScreen","webkitCancelFullScreen","webkitCurrentFullScreenElement","webkitCancelFullScreen","webkitfullscreenchange","webkitfullscreenerror"],["mozRequestFullScreen","mozCancelFullScreen","mozFullScreenElement","mozFullScreenEnabled","mozfullscreenchange","mozfullscreenerror"],["msRequestFullscreen","msExitFullscreen","msFullscreenElement","msFullscreenEnabled","MSFullscreenChange","MSFullscreenError"]],i=h[0],j=void 0,k=0;k1&&this.show()},b.prototype.createMenu=function(){var a=new l["default"](this.player_);if(this.options_.title&&a.contentEl().appendChild(n.createEl("li",{className:"vjs-menu-title",innerHTML:r["default"](this.options_.title),tabIndex:-1})),this.items=this.createItems(),this.items)for(var b=0;b0&&this.items[0].el().focus()},b.prototype.unpressButton=function(){this.buttonPressed_=!1,this.menu.unlockShowing(),this.el_.setAttribute("aria-pressed",!1)},b}(h["default"]);j["default"].registerComponent("MenuButton",s),c["default"]=s,b.exports=c["default"]},{"../button.js":51,"../component.js":52,"../utils/dom.js":111,"../utils/fn.js":113,"../utils/to-title-case.js":120,"./menu.js":90}],89:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../button.js"),h=d(g),i=a("../component.js"),j=d(i),k=a("object.assign"),l=d(k),m=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.selected(d.selected)}return f(b,a),b.prototype.createEl=function(b,c){return a.prototype.createEl.call(this,"li",l["default"]({className:"vjs-menu-item",innerHTML:this.localize(this.options_.label)},c))},b.prototype.handleClick=function(){this.selected(!0)},b.prototype.selected=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){a?(this.addClass("vjs-selected"),this.el_.setAttribute("aria-selected",!0)):(this.removeClass("vjs-selected"),this.el_.setAttribute("aria-selected",!1))}),b}(h["default"]);j["default"].registerComponent("MenuItem",m),c["default"]=m,b.exports=c["default"]},{"../button.js":51,"../component.js":52,"object.assign":44}],90:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("../utils/dom.js"),j=d(i),k=a("../utils/fn.js"),l=d(k),m=a("../utils/events.js"),n=d(m),o=function(a){function b(){e(this,b),null!=a&&a.apply(this,arguments)}return f(b,a),b.prototype.addItem=function(a){this.addChild(a),a.on("click",l.bind(this,function(){this.unlockShowing()}))},b.prototype.createEl=function(){var b=this.options_.contentElType||"ul";this.contentEl_=j.createEl(b,{className:"vjs-menu-content"});var c=a.prototype.createEl.call(this,"div",{append:this.contentEl_,className:"vjs-menu"});return c.appendChild(this.contentEl_),n.on(c,"click",function(a){a.preventDefault(),a.stopImmediatePropagation()}),c},b}(h["default"]);h["default"].registerComponent("Menu",o),c["default"]=o,b.exports=c["default"]},{"../component.js":52,"../utils/dom.js":111,"../utils/events.js":112,"../utils/fn.js":113}],91:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./component.js"),h=d(g),i=a("global/document"),j=d(i),k=a("global/window"),l=d(k),m=a("./utils/events.js"),n=d(m),o=a("./utils/dom.js"),p=d(o),q=a("./utils/fn.js"),r=d(q),s=a("./utils/guid.js"),t=d(s),u=a("./utils/browser.js"),v=(d(u),a("./utils/log.js")),w=d(v),x=a("./utils/to-title-case.js"),y=d(x),z=a("./utils/time-ranges.js"),A=a("./utils/buffer.js"),B=a("./utils/stylesheet.js"),C=d(B),D=a("./fullscreen-api.js"),E=d(D),F=a("./media-error.js"),G=d(F),H=a("safe-json-parse/tuple"),I=d(H),J=a("object.assign"),K=d(J),L=a("./utils/merge-options.js"),M=d(L),N=a("./tracks/text-track-list-converter.js"),O=d(N),P=a("./tech/loader.js"),Q=(d(P),a("./poster-image.js")),R=(d(Q),a("./tracks/text-track-display.js")),S=(d(R),a("./loading-spinner.js")),T=(d(S),a("./big-play-button.js")),U=(d(T),a("./control-bar/control-bar.js")),V=(d(U),a("./error-display.js")),W=(d(V),a("./tracks/text-track-settings.js")),X=(d(W),a("./tech/html5.js")),Y=(d(X),function(a){function b(c,d,f){var g=this;if(e(this,b),c.id=c.id||"vjs_video_"+t.newGUID(),d=K["default"](b.getTagSettings(c),d),d.initChildren=!1,d.createEl=!1,d.reportTouchActivity=!1,a.call(this,null,d,f),!this.options_||!this.options_.techOrder||!this.options_.techOrder.length)throw new Error("No techOrder specified. Did you overwrite videojs.options instead of just changing the properties you want to override?");this.tag=c,this.tagAttributes=c&&p.getElAttributes(c),this.language(this.options_.language),d.languages?!function(){var a={};Object.getOwnPropertyNames(d.languages).forEach(function(b){a[b.toLowerCase()]=d.languages[b]}),g.languages_=a}():this.languages_=b.prototype.options_.languages,this.cache_={},this.poster_=d.poster||"",this.controls_=!!d.controls,c.controls=!1,this.scrubbing_=!1,this.el_=this.createEl();var h=M["default"](this.options_);d.plugins&&!function(){var a=d.plugins;Object.getOwnPropertyNames(a).forEach(function(b){a[b].playerOptions=h,"function"==typeof this[b]?this[b](a[b]):w["default"].error("Unable to find plugin:",b)},g)}(),this.options_.playerOptions=h,this.initChildren(),this.isAudio("audio"===c.nodeName.toLowerCase()),this.addClass(this.controls()?"vjs-controls-enabled":"vjs-controls-disabled"),this.isAudio()&&this.addClass("vjs-audio"),this.flexNotSupported_()&&this.addClass("vjs-no-flex"),b.players[this.id_]=this,this.userActive_=!0,this.reportUserActivity(),this.listenForUserActivity(),this.on("fullscreenchange",this.handleFullscreenChange),this.on("stageclick",this.handleStageClick)}return f(b,a),b.prototype.dispose=function(){this.trigger("dispose"),this.off("dispose"),this.styleEl_&&this.styleEl_.parentNode.removeChild(this.styleEl_),b.players[this.id_]=null,this.tag&&this.tag.player&&(this.tag.player=null),this.el_&&this.el_.player&&(this.el_.player=null),this.tech&&this.tech.dispose(),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var b=this.el_=a.prototype.createEl.call(this,"div"),c=this.tag;c.removeAttribute("width"),c.removeAttribute("height");var d=p.getElAttributes(c);Object.getOwnPropertyNames(d).forEach(function(a){"class"===a?b.className=d[a]:b.setAttribute(a,d[a])}),c.id+="_html5_api",c.className="vjs-tech",c.player=b.player=this,this.addClass("vjs-paused"),this.styleEl_=C.createStyleElement("vjs-styles-dimensions");var e=j["default"].querySelector(".vjs-styles-defaults"),f=j["default"].querySelector("head");return f.insertBefore(this.styleEl_,e?e.nextSibling:f.firstChild),this.width(this.options_.width),this.height(this.options_.height),this.fluid(this.options_.fluid),this.aspectRatio(this.options_.aspectRatio),c.initNetworkState_=c.networkState,c.parentNode&&c.parentNode.insertBefore(b,c),p.insertElFirst(c,b),this.el_=b,b},b.prototype.width=function(a){return this.dimension("width",a)},b.prototype.height=function(a){return this.dimension("height",a)},b.prototype.dimension=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a,b){var c=a+"_";if(void 0===b)return this[c]||0;if(""===b)this[c]=void 0;else{var d=parseFloat(b);if(isNaN(d))return w["default"].error('Improper value "'+b+'" supplied for for '+a),this;this[c]=d}return this.updateStyleEl_(),this}),b.prototype.fluid=function(a){return void 0===a?!!this.fluid_:(this.fluid_=!!a,void(a?this.addClass("vjs-fluid"):this.removeClass("vjs-fluid")))},b.prototype.aspectRatio=function(a){if(void 0===a)return this.aspectRatio_;if(!/^\d+\:\d+$/.test(a))throw new Error("Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.");this.aspectRatio_=a,this.fluid(!0),this.updateStyleEl_()},b.prototype.updateStyleEl_=function(){var a=void 0,b=void 0,c=void 0;c=void 0!==this.aspectRatio_&&"auto"!==this.aspectRatio_?this.aspectRatio_:this.videoWidth()?this.videoWidth()+":"+this.videoHeight():"16:9";var d=c.split(":"),e=d[1]/d[0];a=void 0!==this.width_?this.width_:void 0!==this.height_?this.height_/e:this.videoWidth()||300,b=void 0!==this.height_?this.height_:a*e;var f=this.id()+"-dimensions";this.addClass(f),C.setTextContent(this.styleEl_,"\n ."+f+" {\n width: "+a+"px;\n height: "+b+"px;\n }\n\n ."+f+".vjs-fluid {\n padding-top: "+100*e+"%;\n }\n ")},b.prototype.loadTech=function(a,b){this.tech&&this.unloadTech(),"Html5"!==a&&this.tag&&(h["default"].getComponent("Html5").disposeMediaElement(this.tag),this.tag.player=null,this.tag=null),this.techName=a,this.isReady_=!1;var c=r.bind(this,function(){this.triggerReady()}),d=K["default"]({source:b,playerId:this.id(),techId:""+this.id()+"_"+a+"_api",textTracks:this.textTracks_,autoplay:this.options_.autoplay,preload:this.options_.preload,loop:this.options_.loop,muted:this.options_.muted,poster:this.poster(),language:this.language(),"vtt.js":this.options_["vtt.js"]},this.options_[a.toLowerCase()]);this.tag&&(d.tag=this.tag),b&&(this.currentType_=b.type,b.src===this.cache_.src&&this.cache_.currentTime>0&&(d.startTime=this.cache_.currentTime),this.cache_.src=b.src);var e=h["default"].getComponent(a);this.tech=new e(d),O["default"].jsonToTextTracks(this.textTracksJson_||[],this.tech),this.on(this.tech,"ready",this.handleTechReady),this.on(this.tech,"usenativecontrols",this.handleTechUseNativeControls),this.on(this.tech,"loadstart",this.handleTechLoadStart),this.on(this.tech,"waiting",this.handleTechWaiting),this.on(this.tech,"canplay",this.handleTechCanPlay),this.on(this.tech,"canplaythrough",this.handleTechCanPlayThrough),this.on(this.tech,"playing",this.handleTechPlaying),this.on(this.tech,"ended",this.handleTechEnded),this.on(this.tech,"seeking",this.handleTechSeeking),this.on(this.tech,"seeked",this.handleTechSeeked),this.on(this.tech,"play",this.handleTechPlay),this.on(this.tech,"firstplay",this.handleTechFirstPlay),this.on(this.tech,"pause",this.handleTechPause),this.on(this.tech,"progress",this.handleTechProgress),this.on(this.tech,"durationchange",this.handleTechDurationChange),this.on(this.tech,"fullscreenchange",this.handleTechFullscreenChange),this.on(this.tech,"error",this.handleTechError),this.on(this.tech,"suspend",this.handleTechSuspend),this.on(this.tech,"abort",this.handleTechAbort),this.on(this.tech,"emptied",this.handleTechEmptied),this.on(this.tech,"stalled",this.handleTechStalled),this.on(this.tech,"loadedmetadata",this.handleTechLoadedMetaData),this.on(this.tech,"loadeddata",this.handleTechLoadedData),this.on(this.tech,"timeupdate",this.handleTechTimeUpdate),this.on(this.tech,"ratechange",this.handleTechRateChange),this.on(this.tech,"volumechange",this.handleTechVolumeChange),this.on(this.tech,"texttrackchange",this.onTextTrackChange),this.on(this.tech,"loadedmetadata",this.updateStyleEl_),this.controls()&&!this.usingNativeControls()&&this.addTechControlsListeners(),this.tech.el().parentNode===this.el()||"Html5"===a&&this.tag||p.insertElFirst(this.tech.el(),this.el()),this.tag&&(this.tag.player=null,this.tag=null),this.tech.ready(c,!0)},b.prototype.unloadTech=function(){this.textTracks_=this.textTracks(),this.textTracksJson_=O["default"].textTracksToJson(this),this.isReady_=!1,this.tech.dispose(),this.tech=!1},b.prototype.addTechControlsListeners=function(){this.on(this.tech,"mousedown",this.handleTechClick),this.on(this.tech,"touchstart",this.handleTechTouchStart),this.on(this.tech,"touchmove",this.handleTechTouchMove),this.on(this.tech,"touchend",this.handleTechTouchEnd),this.on(this.tech,"tap",this.handleTechTap)},b.prototype.removeTechControlsListeners=function(){this.off(this.tech,"tap",this.handleTechTap),this.off(this.tech,"touchstart",this.handleTechTouchStart),this.off(this.tech,"touchmove",this.handleTechTouchMove),this.off(this.tech,"touchend",this.handleTechTouchEnd),this.off(this.tech,"mousedown",this.handleTechClick)},b.prototype.handleTechReady=function(){this.triggerReady(),this.cache_.volume&&this.techCall("setVolume",this.cache_.volume),this.tag&&this.options_.autoplay&&this.paused()&&(delete this.tag.poster,this.play())},b.prototype.handleTechUseNativeControls=function(){this.usingNativeControls(!0)},b.prototype.handleTechLoadStart=function(){this.removeClass("vjs-ended"),this.error(null),this.paused()?(this.hasStarted(!1),this.trigger("loadstart")):(this.trigger("loadstart"),this.trigger("firstplay"))},b.prototype.hasStarted=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){return void 0!==a?(this.hasStarted_!==a&&(this.hasStarted_=a,a?(this.addClass("vjs-has-started"),this.trigger("firstplay")):this.removeClass("vjs-has-started")),this):!!this.hasStarted_}),b.prototype.handleTechPlay=function(){this.removeClass("vjs-ended"),this.removeClass("vjs-paused"),this.addClass("vjs-playing"),this.hasStarted(!0),this.trigger("play")},b.prototype.handleTechWaiting=function(){this.addClass("vjs-waiting"),this.trigger("waiting")},b.prototype.handleTechCanPlay=function(){this.removeClass("vjs-waiting"),this.trigger("canplay")},b.prototype.handleTechCanPlayThrough=function(){this.removeClass("vjs-waiting"),this.trigger("canplaythrough")},b.prototype.handleTechPlaying=function(){this.removeClass("vjs-waiting"),this.trigger("playing")},b.prototype.handleTechSeeking=function(){this.addClass("vjs-seeking"),this.trigger("seeking")},b.prototype.handleTechSeeked=function(){this.removeClass("vjs-seeking"),this.trigger("seeked")},b.prototype.handleTechFirstPlay=function(){this.options_.starttime&&this.currentTime(this.options_.starttime),this.addClass("vjs-has-started"),this.trigger("firstplay")},b.prototype.handleTechPause=function(){this.removeClass("vjs-playing"),this.addClass("vjs-paused"),this.trigger("pause")},b.prototype.handleTechProgress=function(){this.trigger("progress"),1===this.bufferedPercent()&&this.trigger("loadedalldata")},b.prototype.handleTechEnded=function(){this.addClass("vjs-ended"),this.options_.loop?(this.currentTime(0),this.play()):this.paused()||this.pause(),this.trigger("ended")},b.prototype.handleTechDurationChange=function(){this.updateDuration(),this.trigger("durationchange")},b.prototype.handleTechClick=function(a){0===a.button&&this.controls()&&(this.paused()?this.play():this.pause())},b.prototype.handleTechTap=function(){this.userActive(!this.userActive())},b.prototype.handleTechTouchStart=function(){this.userWasActive=this.userActive()},b.prototype.handleTechTouchMove=function(){this.userWasActive&&this.reportUserActivity()},b.prototype.handleTechTouchEnd=function(a){a.preventDefault()},b.prototype.updateDuration=function(){var a=this.techGet("duration");a&&(0>a&&(a=1/0),this.duration(a),a===1/0?this.addClass("vjs-live"):this.removeClass("vjs-live"))},b.prototype.handleFullscreenChange=function(){this.isFullscreen()?this.addClass("vjs-fullscreen"):this.removeClass("vjs-fullscreen")},b.prototype.handleStageClick=function(){
-this.reportUserActivity()},b.prototype.handleTechFullscreenChange=function(a,b){b&&this.isFullscreen(b.isFullscreen),this.trigger("fullscreenchange")},b.prototype.handleTechError=function(){this.error(this.tech.error().code)},b.prototype.handleTechSuspend=function(){this.trigger("suspend")},b.prototype.handleTechAbort=function(){this.trigger("abort")},b.prototype.handleTechEmptied=function(){this.trigger("emptied")},b.prototype.handleTechStalled=function(){this.trigger("stalled")},b.prototype.handleTechLoadedMetaData=function(){this.trigger("loadedmetadata")},b.prototype.handleTechLoadedData=function(){this.trigger("loadeddata")},b.prototype.handleTechTimeUpdate=function(){this.trigger("timeupdate")},b.prototype.handleTechRateChange=function(){this.trigger("ratechange")},b.prototype.handleTechVolumeChange=function(){this.trigger("volumechange")},b.prototype.onTextTrackChange=function(){this.trigger("texttrackchange")},b.prototype.getCache=function(){return this.cache_},b.prototype.techCall=function(a,b){if(this.tech&&!this.tech.isReady_)this.tech.ready(function(){this[a](b)},!0);else try{this.tech[a](b)}catch(c){throw w["default"](c),c}},b.prototype.techGet=function(a){if(this.tech&&this.tech.isReady_)try{return this.tech[a]()}catch(b){throw void 0===this.tech[a]?w["default"]("Video.js: "+a+" method not defined for "+this.techName+" playback technology.",b):"TypeError"===b.name?(w["default"]("Video.js: "+a+" unavailable on "+this.techName+" playback technology element.",b),this.tech.isReady_=!1):w["default"](b),b}},b.prototype.play=function(){return this.techCall("play"),this},b.prototype.pause=function(){return this.techCall("pause"),this},b.prototype.paused=function(){return this.techGet("paused")===!1?!1:!0},b.prototype.scrubbing=function(a){return void 0!==a?(this.scrubbing_=!!a,a?this.addClass("vjs-scrubbing"):this.removeClass("vjs-scrubbing"),this):this.scrubbing_},b.prototype.currentTime=function(a){return void 0!==a?(this.techCall("setCurrentTime",a),this):this.cache_.currentTime=this.techGet("currentTime")||0},b.prototype.duration=function(a){return void 0!==a?(this.cache_.duration=parseFloat(a),this):(void 0===this.cache_.duration&&this.updateDuration(),this.cache_.duration||0)},b.prototype.remainingTime=function(){return this.duration()-this.currentTime()},b.prototype.buffered=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){var a=this.techGet("buffered");return a&&a.length||(a=z.createTimeRange(0,0)),a}),b.prototype.bufferedPercent=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){return A.bufferedPercent(this.buffered(),this.duration())}),b.prototype.bufferedEnd=function(){var a=this.buffered(),b=this.duration(),c=a.end(a.length-1);return c>b&&(c=b),c},b.prototype.volume=function(a){var b=void 0;return void 0!==a?(b=Math.max(0,Math.min(1,parseFloat(a))),this.cache_.volume=b,this.techCall("setVolume",b),this):(b=parseFloat(this.techGet("volume")),isNaN(b)?1:b)},b.prototype.muted=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){return void 0!==a?(this.techCall("setMuted",a),this):this.techGet("muted")||!1}),b.prototype.supportsFullScreen=function(){return this.techGet("supportsFullScreen")||!1},b.prototype.isFullscreen=function(a){return void 0!==a?(this.isFullscreen_=!!a,this):!!this.isFullscreen_},b.prototype.requestFullscreen=function(){var a=E["default"];return this.isFullscreen(!0),a.requestFullscreen?(n.on(j["default"],a.fullscreenchange,r.bind(this,function b(){this.isFullscreen(j["default"][a.fullscreenElement]),this.isFullscreen()===!1&&n.off(j["default"],a.fullscreenchange,b),this.trigger("fullscreenchange")})),this.el_[a.requestFullscreen]()):this.tech.supportsFullScreen()?this.techCall("enterFullScreen"):(this.enterFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.exitFullscreen=function(){var a=E["default"];return this.isFullscreen(!1),a.requestFullscreen?j["default"][a.exitFullscreen]():this.tech.supportsFullScreen()?this.techCall("exitFullScreen"):(this.exitFullWindow(),this.trigger("fullscreenchange")),this},b.prototype.enterFullWindow=function(){this.isFullWindow=!0,this.docOrigOverflow=j["default"].documentElement.style.overflow,n.on(j["default"],"keydown",r.bind(this,this.fullWindowOnEscKey)),j["default"].documentElement.style.overflow="hidden",p.addElClass(j["default"].body,"vjs-full-window"),this.trigger("enterFullWindow")},b.prototype.fullWindowOnEscKey=function(a){27===a.keyCode&&(this.isFullscreen()===!0?this.exitFullscreen():this.exitFullWindow())},b.prototype.exitFullWindow=function(){this.isFullWindow=!1,n.off(j["default"],"keydown",this.fullWindowOnEscKey),j["default"].documentElement.style.overflow=this.docOrigOverflow,p.removeElClass(j["default"].body,"vjs-full-window"),this.trigger("exitFullWindow")},b.prototype.selectSource=function(a){for(var b=0,c=this.options_.techOrder;b0&&(h=this.setTimeout(function(){this.userActivity_||this.userActive(!1)},a))}},250)}},b.prototype.playbackRate=function(a){return void 0!==a?(this.techCall("setPlaybackRate",a),this):this.tech&&this.tech.featuresPlaybackRate?this.techGet("playbackRate"):1},b.prototype.isAudio=function(a){return void 0!==a?(this.isAudio_=!!a,this):!!this.isAudio_},b.prototype.networkState=function(){return this.techGet("networkState")},b.prototype.readyState=function(){return this.techGet("readyState")},b.prototype.textTracks=function(){return this.tech&&this.tech.textTracks()},b.prototype.remoteTextTracks=function(){return this.tech&&this.tech.remoteTextTracks()},b.prototype.addTextTrack=function(a,b,c){return this.tech&&this.tech.addTextTrack(a,b,c)},b.prototype.addRemoteTextTrack=function(a){return this.tech&&this.tech.addRemoteTextTrack(a)},b.prototype.removeRemoteTextTrack=function(a){this.tech&&this.tech.removeRemoteTextTrack(a)},b.prototype.videoWidth=function(){return this.tech&&this.tech.videoWidth&&this.tech.videoWidth()||0},b.prototype.videoHeight=function(){return this.tech&&this.tech.videoHeight&&this.tech.videoHeight()||0},b.prototype.language=function(a){return void 0===a?this.language_:(this.language_=(""+a).toLowerCase(),this)},b.prototype.languages=function(){return M["default"](b.prototype.options_.languages,this.languages_)},b.prototype.toJSON=function(){var a=M["default"](this.options_),b=a.tracks;a.tracks=[];for(var c=0;ci;i++){var k=h[i],l=k.nodeName.toLowerCase();"source"===l?b.sources.push(p.getElAttributes(k)):"track"===l&&b.tracks.push(p.getElAttributes(k))}return b},b}(h["default"]));Y.players={};var Z=l["default"].navigator;Y.prototype.options_={techOrder:["html5","flash"],html5:{},flash:{},defaultVolume:0,inactivityTimeout:2e3,playbackRates:[],children:{mediaLoader:{},posterImage:{},textTrackDisplay:{},loadingSpinner:{},bigPlayButton:{},controlBar:{},errorDisplay:{},textTrackSettings:{}},language:j["default"].getElementsByTagName("html")[0].getAttribute("lang")||Z.languages&&Z.languages[0]||Z.userLanguage||Z.language||"en",languages:{},notSupportedMessage:"No compatible source was found for this video."},Y.prototype.handleLoadedMetaData,Y.prototype.handleLoadedData,Y.prototype.handleLoadedAllData,Y.prototype.handleUserActive,Y.prototype.handleUserInactive,Y.prototype.handleTimeUpdate,Y.prototype.handleVolumeChange,Y.prototype.handleError,Y.prototype.flexNotSupported_=function(){var a=j["default"].createElement("i");return!("flexBasis"in a.style||"webkitFlexBasis"in a.style||"mozFlexBasis"in a.style||"msFlexBasis"in a.style||"msFlexOrder"in a.style)},h["default"].registerComponent("Player",Y),c["default"]=Y,b.exports=c["default"]},{"./big-play-button.js":50,"./component.js":52,"./control-bar/control-bar.js":53,"./error-display.js":82,"./fullscreen-api.js":85,"./loading-spinner.js":86,"./media-error.js":87,"./poster-image.js":93,"./tech/html5.js":98,"./tech/loader.js":99,"./tracks/text-track-display.js":102,"./tracks/text-track-list-converter.js":104,"./tracks/text-track-settings.js":106,"./utils/browser.js":108,"./utils/buffer.js":109,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/guid.js":115,"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/stylesheet.js":118,"./utils/time-ranges.js":119,"./utils/to-title-case.js":120,"global/document":1,"global/window":2,"object.assign":44,"safe-json-parse/tuple":49}],92:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./player.js"),f=d(e),g=function(a,b){f["default"].prototype[a]=b};c["default"]=g,b.exports=c["default"]},{"./player.js":91}],93:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./button.js"),h=d(g),i=a("./component.js"),j=d(i),k=a("./utils/fn.js"),l=d(k),m=a("./utils/dom.js"),n=d(m),o=a("./utils/browser.js"),p=d(o),q=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.update(),c.on("posterchange",l.bind(this,this.update))}return f(b,a),b.prototype.dispose=function(){this.player().off("posterchange",this.update),a.prototype.dispose.call(this)},b.prototype.createEl=function(){var a=n.createEl("div",{className:"vjs-poster",tabIndex:-1});return p.BACKGROUND_SIZE_SUPPORTED||(this.fallbackImg_=n.createEl("img"),a.appendChild(this.fallbackImg_)),a},b.prototype.update=function(){var a=this.player().poster();this.setSrc(a),a?this.show():this.hide()},b.prototype.setSrc=function(a){if(this.fallbackImg_)this.fallbackImg_.src=a;else{var b="";a&&(b='url("'+a+'")'),this.el_.style.backgroundImage=b}},b.prototype.handleClick=function(){this.player_.paused()?this.player_.play():this.player_.pause()},b}(h["default"]);j["default"].registerComponent("PosterImage",q),c["default"]=q,b.exports=c["default"]},{"./button.js":51,"./component.js":52,"./utils/browser.js":108,"./utils/dom.js":111,"./utils/fn.js":113}],94:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./utils/events.js"),f=d(e),g=a("global/document"),h=d(g),i=a("global/window"),j=d(i),k=!1,l=void 0,m=function(){var a=h["default"].getElementsByTagName("video"),b=h["default"].getElementsByTagName("audio"),c=[];if(a&&a.length>0)for(var d=0,e=a.length;e>d;d++)c.push(a[d]);if(b&&b.length>0)for(var d=0,e=b.length;e>d;d++)c.push(b[d]);if(c&&c.length>0)for(var d=0,e=c.length;e>d;d++){var f=c[d];if(!f||!f.getAttribute){n(1);break}if(void 0===f.player){var g=f.getAttribute("data-setup");if(null!==g){l(f)}}}else k||n(1)},n=function(a,b){l=b,setTimeout(m,a)};"complete"===h["default"].readyState?k=!0:f.one(j["default"],"load",function(){k=!0});var o=function(){return k};c.autoSetup=m,c.autoSetupTimeout=n,c.hasLoaded=o},{"./utils/events.js":112,"global/document":1,"global/window":2}],95:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../component.js"),h=d(g),i=a("../utils/dom.js"),j=d(i),k=a("global/document"),l=d(k),m=a("object.assign"),n=d(m),o=function(a){function b(c,d){e(this,b),a.call(this,c,d),this.bar=this.getChild(this.options_.barName),this.vertical(!!this.options_.vertical),this.on("mousedown",this.handleMouseDown),this.on("touchstart",this.handleMouseDown),this.on("focus",this.handleFocus),this.on("blur",this.handleBlur),this.on("click",this.handleClick),this.on(c,"controlsvisible",this.update),this.on(c,this.playerEvent,this.update)}return f(b,a),b.prototype.createEl=function(b){var c=void 0===arguments[1]?{}:arguments[1];return c.className=c.className+" vjs-slider",c=n["default"]({role:"slider","aria-valuenow":0,"aria-valuemin":0,"aria-valuemax":100,tabIndex:0},c),a.prototype.createEl.call(this,b,c)},b.prototype.handleMouseDown=function(a){a.preventDefault(),j.blockTextSelection(),this.addClass("vjs-sliding"),this.on(l["default"],"mousemove",this.handleMouseMove),this.on(l["default"],"mouseup",this.handleMouseUp),this.on(l["default"],"touchmove",this.handleMouseMove),this.on(l["default"],"touchend",this.handleMouseUp),this.handleMouseMove(a)},b.prototype.handleMouseMove=function(){},b.prototype.handleMouseUp=function(){j.unblockTextSelection(),this.removeClass("vjs-sliding"),this.off(l["default"],"mousemove",this.handleMouseMove),this.off(l["default"],"mouseup",this.handleMouseUp),this.off(l["default"],"touchmove",this.handleMouseMove),this.off(l["default"],"touchend",this.handleMouseUp),this.update()},b.prototype.update=function(){if(this.el_){var a=this.getPercent(),b=this.bar;if(b){("number"!=typeof a||a!==a||0>a||a===1/0)&&(a=0);var c=(100*a).toFixed(2)+"%";this.vertical()?b.el().style.height=c:b.el().style.width=c}}},b.prototype.calculateDistance=function(a){var b=this.el_,c=j.findElPosition(b),d=b.offsetWidth,e=b.offsetHeight;if(this.vertical()){var f=c.top,g=void 0;return g=a.changedTouches?a.changedTouches[0].pageY:a.pageY,Math.max(0,Math.min(1,(f-g+e)/e))}var h=c.left,i=void 0;return i=a.changedTouches?a.changedTouches[0].pageX:a.pageX,Math.max(0,Math.min(1,(i-h)/d))},b.prototype.handleFocus=function(){this.on(l["default"],"keydown",this.handleKeyPress)},b.prototype.handleKeyPress=function(a){37===a.which||40===a.which?(a.preventDefault(),this.stepBack()):(38===a.which||39===a.which)&&(a.preventDefault(),this.stepForward())},b.prototype.handleBlur=function(){this.off(l["default"],"keydown",this.handleKeyPress)},b.prototype.handleClick=function(a){a.stopImmediatePropagation(),a.preventDefault()},b.prototype.vertical=function(a){return void 0===a?this.vertical_||!1:(this.vertical_=!!a,this.addClass(this.vertical_?"vjs-slider-vertical":"vjs-slider-horizontal"),this)},b}(h["default"]);h["default"].registerComponent("Slider",o),c["default"]=o,b.exports=c["default"]},{"../component.js":52,"../utils/dom.js":111,"global/document":1,"object.assign":44}],96:[function(a,b,c){"use strict";function d(a){return a.streamingFormats={"rtmp/mp4":"MP4","rtmp/flv":"FLV"},a.streamFromParts=function(a,b){return a+"&"+b},a.streamToParts=function(a){var b={connection:"",stream:""};if(!a)return b;var c=a.indexOf("&"),d=void 0;return-1!==c?d=c+1:(c=d=a.lastIndexOf("/")+1,0===c&&(c=d=a.length)),b.connection=a.substring(0,c),b.stream=a.substring(d,a.length),b},a.isStreamingType=function(b){return b in a.streamingFormats},a.RTMP_RE=/^rtmp[set]?:\/\//i,a.isStreamingSrc=function(b){return a.RTMP_RE.test(b)},a.rtmpSourceHandler={},a.rtmpSourceHandler.canHandleSource=function(b){return a.isStreamingType(b.type)||a.isStreamingSrc(b.src)?"maybe":""},a.rtmpSourceHandler.handleSource=function(b,c){var d=a.streamToParts(b.src);c.setRtmpConnection(d.connection),c.setRtmpStream(d.stream)},a.registerSourceHandler(a.rtmpSourceHandler),a}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],97:[function(a,b,c){"use strict";function d(a){var b=a.charAt(0).toUpperCase()+a.slice(1);z["set"+b]=function(b){return this.el_.vjs_setProperty(a,b)}}function e(a){z[a]=function(){return this.el_.vjs_getProperty(a)}}var f=function(a){return a&&a.__esModule?a:{"default":a}},g=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},h=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;for(var i=a("./tech"),j=f(i),k=a("../utils/dom.js"),l=f(k),m=a("../utils/url.js"),n=f(m),o=a("../utils/time-ranges.js"),p=a("./flash-rtmp"),q=f(p),r=a("../component"),s=f(r),t=a("global/window"),u=f(t),v=a("object.assign"),w=f(v),x=u["default"].navigator,y=function(a){function b(c,d){g(this,b),a.call(this,c,d),c.source&&this.ready(function(){this.setSource(c.source)},!0),c.startTime&&this.ready(function(){this.load(),this.play(),this.currentTime(c.startTime)},!0),u["default"].videojs=u["default"].videojs||{},u["default"].videojs.Flash=u["default"].videojs.Flash||{},u["default"].videojs.Flash.onReady=b.onReady,u["default"].videojs.Flash.onEvent=b.onEvent,u["default"].videojs.Flash.onError=b.onError,this.on("seeked",function(){this.lastSeekTarget_=void 0})}return h(b,a),b.prototype.createEl=function(){var a=this.options_,c=a.techId,d=w["default"]({readyFunction:"videojs.Flash.onReady",eventProxyFunction:"videojs.Flash.onEvent",errorEventProxyFunction:"videojs.Flash.onError",autoplay:a.autoplay,preload:a.preload,loop:a.loop,muted:a.muted},a.flashVars),e=w["default"]({wmode:"opaque",bgcolor:"#000000"},a.params),f=w["default"]({id:c,name:c,"class":"vjs-tech"},a.attributes);return this.el_=b.embed(a.swf,d,e,f),this.el_.tech=this,this.el_},b.prototype.play=function(){this.el_.vjs_play()},b.prototype.pause=function(){this.el_.vjs_pause()},b.prototype.src=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){return void 0===a?this.currentSrc():this.setSrc(a)}),b.prototype.setSrc=function(a){if(a=n.getAbsoluteURL(a),this.el_.vjs_src(a),this.autoplay()){var b=this;this.setTimeout(function(){b.play()},0)}},b.prototype.seeking=function(){return void 0!==this.lastSeekTarget_},b.prototype.setCurrentTime=function(b){var c=this.seekable();c.length&&(b=b>c.start(0)?b:c.start(0),b=b=10},j["default"].withSourceHandlers(y),y.nativeSourceHandler={},y.nativeSourceHandler.canHandleSource=function(a){function b(a){var b=n.getFileExtension(a);return b?"video/"+b:""}var c;return c=a.type?a.type.replace(/;.*/,"").toLowerCase():b(a.src),c in y.formats?"maybe":""},y.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},y.nativeSourceHandler.dispose=function(){},y.registerSourceHandler(y.nativeSourceHandler),y.formats={"video/flv":"FLV","video/x-flv":"FLV","video/mp4":"MP4","video/m4v":"MP4"},y.onReady=function(a){var b=l.getEl(a),c=b&&b.tech;c&&c.el()&&y.checkReady(c)},y.checkReady=function(a){a.el()&&(a.el().vjs_getProperty?a.triggerReady():this.setTimeout(function(){y.checkReady(a)},50))},y.onEvent=function(a,b){var c=l.getEl(a).tech;c.trigger(b)},y.onError=function(a,b){var c=l.getEl(a).tech,d="FLASH: "+b;"srcnotfound"===b?c.trigger("error",{code:4,message:d}):c.trigger("error",d)},y.version=function(){var a="0,0,0";try{a=new u["default"].ActiveXObject("ShockwaveFlash.ShockwaveFlash").GetVariable("$version").replace(/\D+/g,",").match(/^,?(.+),?$/)[1]}catch(b){try{x.mimeTypes["application/x-shockwave-flash"].enabledPlugin&&(a=(x.plugins["Shockwave Flash 2.0"]||x.plugins["Shockwave Flash"]).description.replace(/\D+/g,",").match(/^,?(.+),?$/)[1])}catch(c){}}return a.split(",")},y.embed=function(a,b,c,d){var e=y.getEmbedCode(a,b,c,d),f=l.createEl("div",{innerHTML:e}).childNodes[0];return f},y.getEmbedCode=function(a,b,c,d){var e=''}),d=w["default"]({data:a,width:"100%",height:"100%"},d),Object.getOwnPropertyNames(d).forEach(function(a){h+=""+a+'="'+d[a]+'" '}),""+e+h+">"+g+""},q["default"](y),s["default"].registerComponent("Flash",y),c["default"]=y,b.exports=c["default"]},{"../component":52,"../utils/dom.js":111,"../utils/time-ranges.js":119,"../utils/url.js":121,"./flash-rtmp":96,"./tech":100,"global/window":2,"object.assign":44}],98:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("./tech.js"),h=d(g),i=a("../component"),j=d(i),k=a("../utils/dom.js"),l=d(k),m=a("../utils/url.js"),n=d(m),o=a("../utils/fn.js"),p=d(o),q=a("../utils/log.js"),r=d(q),s=a("../utils/browser.js"),t=d(s),u=a("global/document"),v=d(u),w=a("global/window"),x=d(w),y=a("object.assign"),z=d(y),A=a("../utils/merge-options.js"),B=d(A),C=function(a){function b(c,d){e(this,b),a.call(this,c,d);var f=c.source;if(f&&(this.el_.currentSrc!==f.src||c.tag&&3===c.tag.initNetworkState_)&&this.setSource(f),this.el_.hasChildNodes()){for(var g=this.el_.childNodes,h=g.length,i=[];h--;){var j=g[h],k=j.nodeName.toLowerCase();"track"===k&&(this.featuresNativeTextTracks?this.remoteTextTracks().addTrack_(j.track):i.push(j))}for(var l=0;l=0;g--){var h=f[g],i={};"undefined"!=typeof this.options_[h]&&(i[h]=this.options_[h]),l.setElAttributes(a,i)}return a},b.prototype.proxyNativeTextTracks_=function(){var a=this.el().textTracks;a&&a.addEventListener&&(a.addEventListener("change",this.handleTextTrackChange_),a.addEventListener("addtrack",this.handleTextTrackAdd_),a.addEventListener("removetrack",this.handleTextTrackRemove_))},b.prototype.handleTextTrackChange=function(){var a=this.textTracks();this.textTracks().trigger({type:"change",target:a,currentTarget:a,srcElement:a})},b.prototype.handleTextTrackAdd=function(a){this.textTracks().addTrack_(a.track)},b.prototype.handleTextTrackRemove=function(a){this.textTracks().removeTrack_(a.track)},b.prototype.play=function(){this.el_.play()},b.prototype.pause=function(){this.el_.pause()},b.prototype.paused=function(){return this.el_.paused},b.prototype.currentTime=function(){return this.el_.currentTime},b.prototype.setCurrentTime=function(a){try{this.el_.currentTime=a}catch(b){r["default"](b,"Video is not ready. (Video.js)")}},b.prototype.duration=function(){return this.el_.duration||0},b.prototype.buffered=function(){return this.el_.buffered},b.prototype.volume=function(){return this.el_.volume},b.prototype.setVolume=function(a){this.el_.volume=a},b.prototype.muted=function(){return this.el_.muted},b.prototype.setMuted=function(a){this.el_.muted=a},b.prototype.width=function(){return this.el_.offsetWidth},b.prototype.height=function(){return this.el_.offsetHeight},b.prototype.supportsFullScreen=function(){if("function"==typeof this.el_.webkitEnterFullScreen){var a=x["default"].navigator.userAgent;if(/Android/.test(a)||!/Chrome|Mac OS X 10.5/.test(a))return!0}return!1},b.prototype.enterFullScreen=function(){var a=this.el_;"webkitDisplayingFullscreen"in a&&this.one("webkitbeginfullscreen",function(){this.one("webkitendfullscreen",function(){this.trigger("fullscreenchange",{isFullscreen:!1})}),this.trigger("fullscreenchange",{isFullscreen:!0})}),a.paused&&a.networkState<=a.HAVE_METADATA?(this.el_.play(),this.setTimeout(function(){a.pause(),a.webkitEnterFullScreen()},0)):a.webkitEnterFullScreen()},b.prototype.exitFullScreen=function(){this.el_.webkitExitFullScreen()},b.prototype.src=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a){return void 0===a?this.el_.src:void this.setSrc(a)}),b.prototype.setSrc=function(a){this.el_.src=a},b.prototype.load=function(){this.el_.load()},b.prototype.currentSrc=function(){return this.el_.currentSrc},b.prototype.poster=function(){return this.el_.poster},b.prototype.setPoster=function(a){this.el_.poster=a},b.prototype.preload=function(){return this.el_.preload},b.prototype.setPreload=function(a){this.el_.preload=a},b.prototype.autoplay=function(){return this.el_.autoplay},b.prototype.setAutoplay=function(a){this.el_.autoplay=a},b.prototype.controls=function(){return this.el_.controls},b.prototype.setControls=function(a){this.el_.controls=!!a},b.prototype.loop=function(){return this.el_.loop},b.prototype.setLoop=function(a){this.el_.loop=a},b.prototype.error=function(){return this.el_.error;
-
-},b.prototype.seeking=function(){return this.el_.seeking},b.prototype.seekable=function(){return this.el_.seekable},b.prototype.ended=function(){return this.el_.ended},b.prototype.defaultMuted=function(){return this.el_.defaultMuted},b.prototype.playbackRate=function(){return this.el_.playbackRate},b.prototype.played=function(){return this.el_.played},b.prototype.setPlaybackRate=function(a){this.el_.playbackRate=a},b.prototype.networkState=function(){return this.el_.networkState},b.prototype.readyState=function(){return this.el_.readyState},b.prototype.videoWidth=function(){return this.el_.videoWidth},b.prototype.videoHeight=function(){return this.el_.videoHeight},b.prototype.textTracks=function(){return a.prototype.textTracks.call(this)},b.prototype.addTextTrack=function(b,c,d){return this.featuresNativeTextTracks?this.el_.addTextTrack(b,c,d):a.prototype.addTextTrack.call(this,b,c,d)},b.prototype.addRemoteTextTrack=function(){var b=void 0===arguments[0]?{}:arguments[0];if(!this.featuresNativeTextTracks)return a.prototype.addRemoteTextTrack.call(this,b);var c=v["default"].createElement("track");return b.kind&&(c.kind=b.kind),b.label&&(c.label=b.label),(b.language||b.srclang)&&(c.srclang=b.language||b.srclang),b["default"]&&(c["default"]=b["default"]),b.id&&(c.id=b.id),b.src&&(c.src=b.src),this.el().appendChild(c),this.remoteTextTracks().addTrack_(c.track),c},b.prototype.removeRemoteTextTrack=function(b){if(!this.featuresNativeTextTracks)return a.prototype.removeRemoteTextTrack.call(this,b);var c,d;for(this.remoteTextTracks().removeTrack_(b),c=this.el().querySelectorAll("track"),d=c.length;d--;)(b===c[d]||b===c[d].track)&&this.el().removeChild(c[d])},b}(h["default"]);C.TEST_VID=v["default"].createElement("video");var D=v["default"].createElement("track");D.kind="captions",D.srclang="en",D.label="English",C.TEST_VID.appendChild(D),C.isSupported=function(){try{C.TEST_VID.volume=.5}catch(a){return!1}return!!C.TEST_VID.canPlayType},h["default"].withSourceHandlers(C),C.nativeSourceHandler={},C.nativeSourceHandler.canHandleSource=function(a){function b(a){try{return C.TEST_VID.canPlayType(a)}catch(b){return""}}var c;return a.type?b(a.type):a.src?(c=n.getFileExtension(a.src),b("video/"+c)):""},C.nativeSourceHandler.handleSource=function(a,b){b.setSrc(a.src)},C.nativeSourceHandler.dispose=function(){},C.registerSourceHandler(C.nativeSourceHandler),C.canControlVolume=function(){var a=C.TEST_VID.volume;return C.TEST_VID.volume=a/2+.1,a!==C.TEST_VID.volume},C.canControlPlaybackRate=function(){var a=C.TEST_VID.playbackRate;return C.TEST_VID.playbackRate=a/2+.1,a!==C.TEST_VID.playbackRate},C.supportsNativeTextTracks=function(){var a;return a=!!C.TEST_VID.textTracks,a&&C.TEST_VID.textTracks.length>0&&(a="number"!=typeof C.TEST_VID.textTracks[0].mode),a&&t.IS_FIREFOX&&(a=!1),!a||"onremovetrack"in C.TEST_VID.textTracks||(a=!1),a},C.Events=["loadstart","suspend","abort","error","emptied","stalled","loadedmetadata","loadeddata","canplay","canplaythrough","playing","waiting","seeking","seeked","ended","durationchange","timeupdate","progress","play","pause","ratechange","volumechange"],C.prototype.featuresVolumeControl=C.canControlVolume(),C.prototype.featuresPlaybackRate=C.canControlPlaybackRate(),C.prototype.movingMediaElementInDOM=!t.IS_IOS,C.prototype.featuresFullscreenResize=!0,C.prototype.featuresProgressEvents=!0,C.prototype.featuresNativeTextTracks=C.supportsNativeTextTracks();var E=void 0,F=/^application\/(?:x-|vnd\.apple\.)mpegurl/i,G=/^video\/mp4/i;C.patchCanPlayType=function(){t.ANDROID_VERSION>=4&&(E||(E=C.TEST_VID.constructor.prototype.canPlayType),C.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&F.test(a)?"maybe":E.call(this,a)}),t.IS_OLD_ANDROID&&(E||(E=C.TEST_VID.constructor.prototype.canPlayType),C.TEST_VID.constructor.prototype.canPlayType=function(a){return a&&G.test(a)?"maybe":E.call(this,a)})},C.unpatchCanPlayType=function(){var a=C.TEST_VID.constructor.prototype.canPlayType;return C.TEST_VID.constructor.prototype.canPlayType=E,E=null,a},C.patchCanPlayType(),C.disposeMediaElement=function(a){if(a){for(a.parentNode&&a.parentNode.removeChild(a);a.hasChildNodes();)a.removeChild(a.firstChild);a.removeAttribute("src"),"function"==typeof a.load&&!function(){try{a.load()}catch(b){}}()}},j["default"].registerComponent("Html5",C),c["default"]=C,b.exports=c["default"]},{"../component":52,"../utils/browser.js":108,"../utils/dom.js":111,"../utils/fn.js":113,"../utils/log.js":116,"../utils/merge-options.js":117,"../utils/url.js":121,"./tech.js":100,"global/document":1,"global/window":2,"object.assign":44}],99:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}},e=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},f=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var g=a("../component"),h=d(g),i=a("global/window"),j=(d(i),a("../utils/to-title-case.js")),k=d(j),l=function(a){function b(c,d,f){if(e(this,b),a.call(this,c,d,f),d.playerOptions.sources&&0!==d.playerOptions.sources.length)c.src(d.playerOptions.sources);else for(var g=0,i=d.playerOptions.techOrder;g0&&this.trigger("loadstart")},!0)},b.prototype.manualProgressOn=function(){this.on("durationchange",this.onDurationChange),this.manualProgress=!0,this.one("ready",this.trackProgress)},b.prototype.manualProgressOff=function(){this.manualProgress=!1,this.stopTrackingProgress(),this.off("durationchange",this.onDurationChange)},b.prototype.trackProgress=function(){this.stopTrackingProgress(),this.progressInterval=this.setInterval(n.bind(this,function(){var a=this.bufferedPercent();this.bufferedPercent_!==a&&this.trigger("progress"),this.bufferedPercent_=a,1===a&&this.stopTrackingProgress()}),500)},b.prototype.onDurationChange=function(){this.duration_=this.duration()},b.prototype.buffered=function(){return q.createTimeRange(0,0)},b.prototype.bufferedPercent=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){return r.bufferedPercent(this.buffered(),this.duration_)}),b.prototype.stopTrackingProgress=function(){this.clearInterval(this.progressInterval)},b.prototype.manualTimeUpdatesOn=function(){this.manualTimeUpdates=!0,this.on("play",this.trackCurrentTime),this.on("pause",this.stopTrackingCurrentTime)},b.prototype.manualTimeUpdatesOff=function(){this.manualTimeUpdates=!1,this.stopTrackingCurrentTime(),this.off("play",this.trackCurrentTime),this.off("pause",this.stopTrackingCurrentTime)},b.prototype.trackCurrentTime=function(){this.currentTimeInterval&&this.stopTrackingCurrentTime(),this.currentTimeInterval=this.setInterval(function(){this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},250)},b.prototype.stopTrackingCurrentTime=function(){this.clearInterval(this.currentTimeInterval),this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},b.prototype.dispose=function(){for(var b=this.textTracks(),c=b.length;c--;)this.removeRemoteTextTrack(b[c]);this.manualProgress&&this.manualProgressOff(),this.manualTimeUpdates&&this.manualTimeUpdatesOff(),a.prototype.dispose.call(this)},b.prototype.played=function(){return this.hasStarted_?q.createTimeRange(0,0):q.createTimeRange()},b.prototype.setCurrentTime=function(){this.manualTimeUpdates&&this.trigger({type:"timeupdate",target:this,manuallyTriggered:!0})},b.prototype.initTextTrackListeners=function(){var a=n.bind(this,function(){this.trigger("texttrackchange")}),b=this.textTracks();b&&(b.addEventListener("removetrack",a),b.addEventListener("addtrack",a),this.on("dispose",n.bind(this,function(){b.removeEventListener("removetrack",a),b.removeEventListener("addtrack",a)})))},b.prototype.emulateTextTracks=function(){if(!t["default"].WebVTT&&null!=this.el().parentNode){var a=v["default"].createElement("script");a.src=this.options_["vtt.js"]||"../node_modules/vtt.js/dist/vtt.js",this.el().parentNode.appendChild(a),t["default"].WebVTT=!0}var b=this.textTracks();if(b){var c=n.bind(this,function(){var a=this,c=function(){return a.trigger("texttrackchange")};c();for(var d=0;db)for(c=b;d>c;c++)e.call(this,c)},i.prototype.getCueById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=i,b.exports=c["default"]},{"../utils/browser.js":108,"global/document":1}],102:[function(a,b,c){"use strict";function d(a,b){return"rgba("+parseInt(a[1]+a[1],16)+","+parseInt(a[2]+a[2],16)+","+parseInt(a[3]+a[3],16)+","+b+")"}function e(a,b,c){try{a.style[b]=c}catch(d){}}var f=function(a){return a&&a.__esModule?a:{"default":a}},g=function(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")},h=function(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(a.__proto__=b)};c.__esModule=!0;var i=a("../component"),j=f(i),k=a("../menu/menu.js"),l=(f(k),a("../menu/menu-item.js")),m=(f(l),a("../menu/menu-button.js")),n=(f(m),a("../utils/fn.js")),o=f(n),p=a("global/document"),q=(f(p),a("global/window")),r=f(q),s="#222",t="#ccc",u={monospace:"monospace",sansSerif:"sans-serif",serif:"serif",monospaceSansSerif:'"Andale Mono", "Lucida Console", monospace',monospaceSerif:'"Courier New", monospace',proportionalSansSerif:"sans-serif",proportionalSerif:"serif",casual:'"Comic Sans MS", Impact, fantasy',script:'"Monotype Corsiva", cursive',smallcaps:'"Andale Mono", "Lucida Console", monospace, sans-serif'},v=function(a){function b(c,d,e){g(this,b),a.call(this,c,d,e),c.on("loadstart",o.bind(this,this.toggleDisplay)),c.on("texttrackchange",o.bind(this,this.updateDisplay)),c.ready(o.bind(this,function(){if(c.tech&&c.tech.featuresNativeTextTracks)return void this.hide();c.on("fullscreenchange",o.bind(this,this.updateDisplay));for(var a=this.options_.playerOptions.tracks||[],b=0;bc;c++)if(b=this[c],b===a){this.tracks_.splice(c,1);break}this.trigger({type:"removetrack",track:b})},m.prototype.getTrackById=function(a){for(var b=null,c=0,d=this.length;d>c;c++){var e=this[c];if(e.id===a){b=e;break}}return b},c["default"]=m,b.exports=c["default"]},{"../event-target":83,"../utils/browser.js":108,"../utils/fn.js":113,"global/document":1}],106:[function(a,b,c){"use strict";function d(a){var b=void 0;return a.selectedOptions?b=a.selectedOptions[0]:a.options&&(b=a.options[a.options.selectedIndex]),b.value}function e(a,b){if(b){var c=void 0;for(c=0;c select").selectedIndex=0,this.el().querySelector(".vjs-bg-color > select").selectedIndex=0,this.el().querySelector(".window-color > select").selectedIndex=0,this.el().querySelector(".vjs-text-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-bg-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-window-opacity > select").selectedIndex=0,this.el().querySelector(".vjs-edge-style select").selectedIndex=0,this.el().querySelector(".vjs-font-family select").selectedIndex=0,this.el().querySelector(".vjs-font-percent select").selectedIndex=2,this.updateDisplay()})),m.on(this.el().querySelector(".vjs-fg-color > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-bg-color > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".window-color > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-text-opacity > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-bg-opacity > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-window-opacity > select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-font-percent select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-edge-style select"),"change",o.bind(this,this.updateDisplay)),m.on(this.el().querySelector(".vjs-font-family select"),"change",o.bind(this,this.updateDisplay)),this.options_.persistTextTrackSettings&&this.restoreSettings()}return i(b,a),b.prototype.createEl=function(){return a.prototype.createEl.call(this,"div",{className:"vjs-caption-settings vjs-modal-overlay",innerHTML:f()})},b.prototype.getValues=function(){var a=this.el(),b=d(a.querySelector(".vjs-edge-style select")),c=d(a.querySelector(".vjs-font-family select")),e=d(a.querySelector(".vjs-fg-color > select")),f=d(a.querySelector(".vjs-text-opacity > select")),g=d(a.querySelector(".vjs-bg-color > select")),h=d(a.querySelector(".vjs-bg-opacity > select")),i=d(a.querySelector(".window-color > select")),j=d(a.querySelector(".vjs-window-opacity > select")),k=u["default"].parseFloat(d(a.querySelector(".vjs-font-percent > select"))),l={backgroundOpacity:h,textOpacity:f,windowOpacity:j,edgeStyle:b,fontFamily:c,color:e,backgroundColor:g,windowColor:i,fontPercent:k};for(var m in l)(""===l[m]||"none"===l[m]||"fontPercent"===m&&1===l[m])&&delete l[m];return l},b.prototype.setValues=function(a){var b=this.el();e(b.querySelector(".vjs-edge-style select"),a.edgeStyle),e(b.querySelector(".vjs-font-family select"),a.fontFamily),e(b.querySelector(".vjs-fg-color > select"),a.color),e(b.querySelector(".vjs-text-opacity > select"),a.textOpacity),e(b.querySelector(".vjs-bg-color > select"),a.backgroundColor),e(b.querySelector(".vjs-bg-opacity > select"),a.backgroundOpacity),e(b.querySelector(".window-color > select"),a.windowColor),e(b.querySelector(".vjs-window-opacity > select"),a.windowOpacity);var c=a.fontPercent;c&&(c=c.toFixed(2)),e(b.querySelector(".vjs-font-percent > select"),c)},b.prototype.restoreSettings=function(){var a=s["default"](u["default"].localStorage.getItem("vjs-text-track-settings")),b=a[0],c=a[1];b&&q["default"].error(b),c&&this.setValues(c)},b.prototype.saveSettings=function(){if(this.options_.persistTextTrackSettings){var a=this.getValues();try{Object.getOwnPropertyNames(a).length>0?u["default"].localStorage.setItem("vjs-text-track-settings",JSON.stringify(a)):u["default"].localStorage.removeItem("vjs-text-track-settings")}catch(b){}}},b.prototype.updateDisplay=function(){var a=this.player_.getChild("textTrackDisplay");a&&a.updateDisplay()},b}(k["default"]);k["default"].registerComponent("TextTrackSettings",v),c["default"]=v,b.exports=c["default"]},{"../component":52,"../utils/events.js":112,"../utils/fn.js":113,"../utils/log.js":116,"global/window":2,"safe-json-parse/tuple":49}],107:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./text-track-cue-list"),f=d(e),g=a("../utils/fn.js"),h=d(g),i=a("../utils/guid.js"),j=d(i),k=a("../utils/browser.js"),l=d(k),m=a("./text-track-enums"),n=d(m),o=a("../utils/log.js"),p=d(o),q=a("../event-target"),r=d(q),s=a("global/document"),t=d(s),u=a("global/window"),v=d(u),w=a("../xhr.js"),x=d(w),y=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){var a=void 0===arguments[0]?{}:arguments[0];if(!a.tech)throw new Error("A tech was not provided.");var b=this;if(l.IS_IE8){b=t["default"].createElement("custom");for(var c in y.prototype)b[c]=y.prototype[c]}b.tech_=a.tech;var d=n.TextTrackMode[a.mode]||"disabled",e=n.TextTrackKind[a.kind]||"subtitles",g=a.label||"",i=a.language||a.srclang||"",k=a.id||"vjs_text_track_"+j.newGUID();("metadata"===e||"chapters"===e)&&(d="hidden"),b.cues_=[],b.activeCues_=[];var m=new f["default"](b.cues_),o=new f["default"](b.activeCues_),p=!1,q=h.bind(b,function(){this.activeCues,p&&(this.trigger("cuechange"),p=!1)});return"disabled"!==d&&b.tech_.on("timeupdate",q),Object.defineProperty(b,"kind",{get:function(){return e},set:Function.prototype}),Object.defineProperty(b,"label",{get:function(){return g},set:Function.prototype}),Object.defineProperty(b,"language",{get:function(){return i},set:Function.prototype}),Object.defineProperty(b,"id",{get:function(){return k},set:Function.prototype}),Object.defineProperty(b,"mode",{get:function(){return d},set:function(a){n.TextTrackMode[a]&&(d=a,"showing"===d&&this.tech_.on("timeupdate",q),this.trigger("modechange"))}}),Object.defineProperty(b,"cues",{get:function(){return this.loaded_?m:null},set:Function.prototype}),Object.defineProperty(b,"activeCues",{get:function(){if(!this.loaded_)return null;if(0===this.cues.length)return o;for(var a=this.tech_.currentTime(),b=[],c=0,d=this.cues.length;d>c;c++){var e=this.cues[c];e.startTime<=a&&e.endTime>=a?b.push(e):e.startTime===e.endTime&&e.startTime<=a&&e.startTime+.5>=a&&b.push(e)}if(p=!1,b.length!==this.activeCues_.length)p=!0;else for(var c=0;cc;c++){var e=this.cues_[c];e===a&&(this.cues_.splice(c,1),b=!0)}b&&this.cues.setCues_(this.cues_)};var z=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a,b){if("function"!=typeof v["default"].WebVTT)return v["default"].setTimeout(function(){z(a,b)},25);var c=new v["default"].WebVTT.Parser(v["default"],v["default"].vttjs,v["default"].WebVTT.StringDecoder());c.oncue=function(a){b.addCue(a)},c.onparsingerror=function(a){p["default"].error(a)},c.parse(a),c.flush()}),A=function(a,b){x["default"](a,h.bind(this,function(a,c,d){return a?p["default"].error(a):(b.loaded_=!0,void z(d,b))}))},B=function(a,b){if(null==this)throw new TypeError('"this" is null or not defined');var c=Object(this),d=c.length>>>0;if(0===d)return-1;var e=+b||0;if(Math.abs(e)===1/0&&(e=0),e>=d)return-1;for(var f=Math.max(e>=0?e:d-Math.abs(e),0);d>f;){if(f in c&&c[f]===a)return f;f++}return-1};c["default"]=y,b.exports=c["default"]},{"../event-target":83,"../utils/browser.js":108,"../utils/fn.js":113,"../utils/guid.js":115,"../utils/log.js":116,"../xhr.js":123,"./text-track-cue-list":101,"./text-track-enums":103,"global/document":1,"global/window":2}],108:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("global/document"),f=d(e),g=a("global/window"),h=d(g),i=h["default"].navigator.userAgent,j=/iPhone/i.test(i);c.IS_IPHONE=j;var k=/iPad/i.test(i);c.IS_IPAD=k;var l=/iPod/i.test(i);c.IS_IPOD=l;var m=j||k||l;c.IS_IOS=m;var n=function(){var a=i.match(/OS (\d+)_/i);return a&&a[1]?a[1]:void 0}();c.IOS_VERSION=n;var o=/Android/i.test(i);c.IS_ANDROID=o;var p=function(){var a,b,c=i.match(/Android (\d+)(?:\.(\d+))?(?:\.(\d+))*/i);return c?(a=c[1]&&parseFloat(c[1]),b=c[2]&&parseFloat(c[2]),a&&b?parseFloat(c[1]+"."+c[2]):a?a:null):null}();c.ANDROID_VERSION=p;var q=o&&/webkit/i.test(i)&&2.3>p;c.IS_OLD_ANDROID=q;var r=/Firefox/i.test(i);c.IS_FIREFOX=r;var s=/Chrome/i.test(i);c.IS_CHROME=s;var t=/MSIE\s8\.0/.test(i);c.IS_IE8=t;var u=!!("ontouchstart"in h["default"]||h["default"].DocumentTouch&&f["default"]instanceof h["default"].DocumentTouch);c.TOUCH_ENABLED=u;var v="backgroundSize"in f["default"].createElement("video").style;c.BACKGROUND_SIZE_SUPPORTED=v},{"global/document":1,"global/window":2}],109:[function(a,b,c){"use strict";function d(a,b){var c,d,f=0;if(!b)return 0;a&&a.length||(a=e.createTimeRange(0,0));for(var g=0;gb&&(d=b),f+=d-c;return f/b}c.__esModule=!0,c.bufferedPercent=d;var e=a("./time-ranges.js")},{"./time-ranges.js":119}],110:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./log.js"),f=d(e),g={get:function(a,b){return a[b]},set:function(a,b,c){return a[b]=c,!0}};c["default"]=function(a){var b=void 0===arguments[1]?{}:arguments[1];if("function"==typeof Proxy){var c=function(){var c={};return Object.keys(b).forEach(function(a){g.hasOwnProperty(a)&&(c[a]=function(){return f["default"].warn(b[a]),g[a].apply(this,arguments)})}),{v:new Proxy(a,c)}}();if("object"==typeof c)return c.v}return a},b.exports=c["default"]},{"./log.js":116}],111:[function(a,b,c){"use strict";function d(a){return 0===a.indexOf("#")&&(a=a.slice(1)),t["default"].getElementById(a)}function e(){var a=void 0===arguments[0]?"div":arguments[0],b=void 0===arguments[1]?{}:arguments[1],c=t["default"].createElement(a);return Object.getOwnPropertyNames(b).forEach(function(a){var d=b[a];-1!==a.indexOf("aria-")||"role"===a||"type"===a?c.setAttribute(a,d):c[a]=d}),c}function f(a,b){b.firstChild?b.insertBefore(a,b.firstChild):b.appendChild(a)}function g(a){var b=a[z];return b||(b=a[z]=x.newGUID()),y[b]||(y[b]={}),y[b]}function h(a){var b=a[z];return b?!!Object.getOwnPropertyNames(y[b]).length:!1}function i(a){var b=a[z];if(b){delete y[b];try{delete a[z]}catch(c){a.removeAttribute?a.removeAttribute(z):a[z]=null}}}function j(a,b){return-1!==(" "+a.className+" ").indexOf(" "+b+" ")}function k(a,b){j(a,b)||(a.className=""===a.className?b:a.className+" "+b)}function l(a,b){if(j(a,b)){for(var c=a.className.split(" "),d=c.length-1;d>=0;d--)c[d]===b&&c.splice(d,1);a.className=c.join(" ")}}function m(a,b){Object.getOwnPropertyNames(b).forEach(function(c){var d=b[c];null===d||"undefined"==typeof d||d===!1?a.removeAttribute(c):a.setAttribute(c,d===!0?"":d)})}function n(a){var b,c,d,e,f;if(b={},c=",autoplay,controls,loop,muted,default,",a&&a.attributes&&a.attributes.length>0){d=a.attributes;for(var g=d.length-1;g>=0;g--)e=d[g].name,f=d[g].value,("boolean"==typeof a[e]||-1!==c.indexOf(","+e+","))&&(f=null!==f?!0:!1),b[e]=f}return b}function o(){t["default"].body.focus(),t["default"].onselectstart=function(){return!1}}function p(){t["default"].onselectstart=function(){return!0}}function q(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=t["default"].documentElement,d=t["default"].body,e=c.clientLeft||d.clientLeft||0,f=v["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=v["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)
-}}var r=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0,c.getEl=d,c.createEl=e,c.insertElFirst=f,c.getElData=g,c.hasElData=h,c.removeElData=i,c.hasElClass=j,c.addElClass=k,c.removeElClass=l,c.setElAttributes=m,c.getElAttributes=n,c.blockTextSelection=o,c.unblockTextSelection=p,c.findElPosition=q;var s=a("global/document"),t=r(s),u=a("global/window"),v=r(u),w=a("./guid.js"),x=r(w),y={},z="vdata"+(new Date).getTime()},{"./guid.js":115,"global/document":1,"global/window":2}],112:[function(a,b,c){"use strict";function d(a,b,c){if(Array.isArray(b))return j(d,a,b,c);var e=m.getElData(a);e.handlers||(e.handlers={}),e.handlers[b]||(e.handlers[b]=[]),c.guid||(c.guid=o.newGUID()),e.handlers[b].push(c),e.dispatcher||(e.disabled=!1,e.dispatcher=function(b,c){if(!e.disabled){b=h(b);var d=e.handlers[b.type];if(d)for(var f=d.slice(0),g=0,i=f.length;i>g&&!b.isImmediatePropagationStopped();g++)f[g].call(a,b,c)}}),1===e.handlers[b].length&&(a.addEventListener?a.addEventListener(b,e.dispatcher,!1):a.attachEvent&&a.attachEvent("on"+b,e.dispatcher))}function e(a,b,c){if(m.hasElData(a)){var d=m.getElData(a);if(d.handlers){if(Array.isArray(b))return j(e,a,b,c);var f=function(b){d.handlers[b]=[],i(a,b)};if(b){var g=d.handlers[b];if(g){if(!c)return void f(b);if(c.guid)for(var h=0;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],115:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],116:[function(a,b,c){"use strict";function d(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}var e=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var f=a("global/window"),g=e(f),h=function(){d(null,arguments)};h.history=[],h.error=function(){d("error",arguments)},h.warn=function(){d("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],117:[function(a,b,c){"use strict";function d(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function e(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}var f=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0,c["default"]=e;var g=a("lodash-compat/object/merge"),h=f(g),i=function(a,b){return d(b)?d(a)?void 0:e(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":40}],118:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],119:[function(a,b,c){"use strict";function d(a,b){return void 0===a&&void 0===b?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:1,start:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){return a}),end:function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(){return b})}}c.__esModule=!0,c.createTimeRange=d},{}],120:[function(a,b,c){"use strict";function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],121:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;hx',a=b.firstChild.href}return a};c.getAbsoluteURL=h;var i=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""};c.getFileExtension=i},{"global/document":1}],122:[function(b,c,d){"use strict";var e=function(a){return a&&a.__esModule?a:{"default":a}};d.__esModule=!0;{var f=b("global/document"),g=e(f),h=b("./setup"),i=e(h),j=b("./utils/stylesheet.js"),k=e(j),l=b("./component"),m=e(l),n=b("./event-target"),o=e(n),p=b("./utils/events.js"),q=e(p),r=b("./player"),s=e(r),t=b("./plugins.js"),u=e(t),v=b("../../src/js/utils/merge-options.js"),w=e(v),x=b("./utils/fn.js"),y=e(x),z=b("object.assign"),A=(e(z),b("./utils/time-ranges.js")),B=b("./utils/format-time.js"),C=e(B),D=b("./utils/log.js"),E=e(D),F=b("./xhr.js"),G=e(F),H=b("./utils/dom.js"),I=e(H),J=b("./utils/browser.js"),K=e(J),L=b("./utils/url.js"),M=e(L),N=b("./extends.js"),O=e(N),P=b("lodash-compat/object/merge"),Q=e(P),R=b("./utils/create-deprecation-proxy.js"),S=e(R),T=b("./tech/html5.js"),U=(e(T),b("./tech/flash.js"));e(U)}"undefined"==typeof HTMLVideoElement&&(g["default"].createElement("video"),g["default"].createElement("audio"),g["default"].createElement("track"));var V=function(a){function b(){return a.apply(this,arguments)}return b.toString=function(){return a.toString()},b}(function(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),V.getPlayers()[a])return b&&E["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&V.getPlayers()[a].ready(c),V.getPlayers()[a];d=I.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new s["default"](d,b,c)}),W=k.createStyleElement("vjs-styles-defaults"),X=g["default"].querySelector("head");X.insertBefore(W,X.firstChild),k.setTextContent(W,"\n .video-js {\n width: 300px;\n height: 150px;\n"),i.autoSetupTimeout(1,V),V.VERSION="5.0.0-rc.59",V.options=s["default"].prototype.options_,V.getPlayers=function(){return s["default"].players},V.players=S["default"](s["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),V.getComponent=m["default"].getComponent,V.registerComponent=m["default"].registerComponent,V.browser=K,V.TOUCH_ENABLED=K.TOUCH_ENABLED,V["extends"]=O["default"],V.mergeOptions=w["default"],V.bind=y.bind,V.plugin=u["default"],V.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),Q["default"](V.options.languages,(c={},c[a]=b,c))[a]},V.log=E["default"],V.createTimeRange=A.createTimeRange,V.formatTime=C["default"],V.xhr=G["default"],V.parseUrl=M.parseUrl,V.EventTarget=o["default"],V.on=q.on,V.one=q.one,V.off=q.off,V.trigger=q.trigger,"function"==typeof a&&a.amd?a("videojs",[],function(){return V}):"object"==typeof d&&"object"==typeof c&&(c.exports=V),d["default"]=V,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":117,"./component":52,"./event-target":83,"./extends.js":84,"./player":91,"./plugins.js":92,"./setup":94,"./tech/flash.js":97,"./tech/html5.js":98,"./utils/browser.js":108,"./utils/create-deprecation-proxy.js":110,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/format-time.js":114,"./utils/log.js":116,"./utils/stylesheet.js":118,"./utils/time-ranges.js":119,"./utils/url.js":121,"./xhr.js":123,"global/document":1,"lodash-compat/object/merge":40,"object.assign":44}],123:[function(a,b,c){"use strict";var d=function(a){return a&&a.__esModule?a:{"default":a}};c.__esModule=!0;var e=a("./utils/url.js"),f=d(e),g=a("./utils/log.js"),h=(d(g),a("./utils/merge-options.js")),i=d(h),j=a("global/window"),k=d(j),l=function(a,b){var c=void 0;"string"==typeof a&&(a={uri:a}),a=i["default"]({method:"GET",timeout:45e3},a),b=b||function(){};var d=k["default"].XMLHttpRequest;"undefined"==typeof d&&(d=function(){try{return new k["default"].ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new k["default"].ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(b){}try{return new k["default"].ActiveXObject("Msxml2.XMLHTTP")}catch(c){}throw new Error("This browser does not support XMLHttpRequest.")});var e=new d;e.uri=a.uri;var g=f.parseUrl(a.uri),h=k["default"].location,j=function(){k["default"].clearTimeout(c),b(null,e,e.response||e.responseText)},l=function(a){k["default"].clearTimeout(c),a&&"string"!=typeof a||(a=new Error(a)),b(a,e)},m=g.protocol+g.host!==h.protocol+h.host;!m||!k["default"].XDomainRequest||"withCredentials"in e?!function(){var b="file:"===g.protocol||"file:"===h.protocol;e.onreadystatechange=function(){if(4===e.readyState){if(e.timedout)return l("timeout");200===e.status||b&&0===e.status?j():l()}},a.timeout&&(c=k["default"].setTimeout(function(){4!==e.readyState&&(e.timedout=!0,e.abort())},a.timeout))}():(e=new k["default"].XDomainRequest,e.onload=j,e.onerror=l,e.onprogress=function(){},e.ontimeout=function(){});try{e.open(a.method||"GET",a.uri,!0)}catch(n){return l(n)}a.withCredentials&&(e.withCredentials=!0),a.responseType&&(e.responseType=a.responseType);try{e.send()}catch(n){return l(n)}return e};c["default"]=l,b.exports=c["default"]},{"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/url.js":121,"global/window":2}]},{},[122])(122)}),function(a){var b=a.vttjs={},c=b.VTTCue,d=b.VTTRegion,e=a.VTTCue,f=a.VTTRegion;b.shim=function(){b.VTTCue=c,b.VTTRegion=d},b.restore=function(){b.VTTCue=e,b.VTTRegion=f}}(this),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=h[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){if("string"!=typeof a)return!1;var b=i[a.toLowerCase()];return b?a.toLowerCase():!1}function e(a){for(var b=1;ba||a>100)throw new Error("Position must be between 0 and 100.");u=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"positionAlign",e({},j,{get:function(){return v},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");v=b,this.hasBeenReset=!0}})),Object.defineProperty(h,"size",e({},j,{get:function(){return w},set:function(a){if(0>a||a>100)throw new Error("Size must be between 0 and 100.");w=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"align",e({},j,{get:function(){return x},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");x=b,this.hasBeenReset=!0}})),h.displayState=void 0,i?h:void 0}var g="auto",h={"":!0,lr:!0,rl:!0},i={start:!0,middle:!0,end:!0,left:!0,right:!0};f.prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)},a.VTTCue=a.VTTCue||f,b.VTTCue=f}(this,this.vttjs||{}),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=f[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){return"number"==typeof a&&a>=0&&100>=a}function e(){var a=100,b=3,e=0,f=100,g=0,h=100,i="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return a},set:function(b){if(!d(b))throw new Error("Width must be between 0 and 100.");a=b}},lines:{enumerable:!0,get:function(){return b},set:function(a){if("number"!=typeof a)throw new TypeError("Lines must be set to a number.");b=a}},regionAnchorY:{enumerable:!0,get:function(){return f},set:function(a){if(!d(a))throw new Error("RegionAnchorX must be between 0 and 100.");f=a}},regionAnchorX:{enumerable:!0,get:function(){return e},set:function(a){if(!d(a))throw new Error("RegionAnchorY must be between 0 and 100.");e=a}},viewportAnchorY:{enumerable:!0,get:function(){return h},set:function(a){if(!d(a))throw new Error("ViewportAnchorY must be between 0 and 100.");h=a}},viewportAnchorX:{enumerable:!0,get:function(){return g},set:function(a){if(!d(a))throw new Error("ViewportAnchorX must be between 0 and 100.");g=a}},scroll:{enumerable:!0,get:function(){return i},set:function(a){var b=c(a);if(b===!1)throw new SyntaxError("An invalid or illegal string was specified.");i=b}}})}var f={"":!0,up:!0};a.VTTRegion=a.VTTRegion||e,b.VTTRegion=e}(this,this.vttjs||{}),function(a){function b(a,b){this.name="ParsingError",this.code=a.code,this.message=b||a.message}function c(a){function b(a,b,c,d){return 3600*(0|a)+60*(0|b)+(0|c)+(0|d)/1e3}var c=a.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return c?c[3]?b(c[1],c[2],c[3].replace(":",""),c[4]):c[1]>59?b(c[1],c[2],0,c[4]):b(0,c[1],c[2],c[4]):null}function d(){this.values=o(null)}function e(a,b,c,d){var e=d?a.split(d):[a];for(var f in e)if("string"==typeof e[f]){var g=e[f].split(c);if(2===g.length){var h=g[0],i=g[1];b(h,i)}}}function f(a,f,g){function h(){var d=c(a);if(null===d)throw new b(b.Errors.BadTimeStamp,"Malformed timestamp: "+k);return a=a.replace(/^[^\sa-zA-Z-]+/,""),d}function i(a,b){var c=new d;e(a,function(a,b){switch(a){case"region":for(var d=g.length-1;d>=0;d--)if(g[d].id===b){c.set(a,g[d].region);break}break;case"vertical":c.alt(a,b,["rl","lr"]);break;case"line":var e=b.split(","),f=e[0];c.integer(a,f),c.percent(a,f)?c.set("snapToLines",!1):null,c.alt(a,f,["auto"]),2===e.length&&c.alt("lineAlign",e[1],["start","middle","end"]);break;case"position":e=b.split(","),c.percent(a,e[0]),2===e.length&&c.alt("positionAlign",e[1],["start","middle","end"]);break;case"size":c.percent(a,b);break;case"align":c.alt(a,b,["start","middle","end","left","right"])}},/:/,/\s/),b.region=c.get("region",null),b.vertical=c.get("vertical",""),b.line=c.get("line","auto"),b.lineAlign=c.get("lineAlign","start"),b.snapToLines=c.get("snapToLines",!0),b.size=c.get("size",100),b.align=c.get("align","middle"),b.position=c.get("position",{start:0,left:0,middle:50,end:100,right:100},b.align),b.positionAlign=c.get("positionAlign",{start:"start",left:"start",middle:"middle",end:"end",right:"end"},b.align)}function j(){a=a.replace(/^\s+/,"")}var k=a;if(j(),f.startTime=h(),j(),"-->"!==a.substr(0,3))throw new b(b.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '-->'): "+k);a=a.substr(3),j(),f.endTime=h(),j(),i(a,f)}function g(a,b){function d(){function a(a){return b=b.substr(a.length),a}if(!b)return null;var c=b.match(/^([^<]*)(<[^>]+>?)?/);return a(c[1]?c[1]:c[2])}function e(a){return p[a]}function f(a){for(;o=a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)a=a.replace(o[0],e);return a}function g(a,b){return!s[b.localName]||s[b.localName]===a.localName}function h(b,c){var d=q[b];if(!d)return null;var e=a.document.createElement(d);e.localName=d;var f=r[b];return f&&c&&(e[f]=c.trim()),e}for(var i,j=a.document.createElement("div"),k=j,l=[];null!==(i=d());)if("<"!==i[0])k.appendChild(a.document.createTextNode(f(i)));else{if("/"===i[1]){l.length&&l[l.length-1]===i.substr(2).replace(">","")&&(l.pop(),k=k.parentNode);continue}var m,n=c(i.substr(1,i.length-2));if(n){m=a.document.createProcessingInstruction("timestamp",n),k.appendChild(m);continue}var o=i.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!o)continue;if(m=h(o[1],o[3]),!m)continue;if(!g(k,m))continue;o[2]&&(m.className=o[2].substr(1).replace("."," ")),l.push(o[1]),k.appendChild(m),k=m}return j}function h(a){function b(a,b){for(var c=b.childNodes.length-1;c>=0;c--)a.push(b.childNodes[c])}function c(a){if(!a||!a.length)return null;var d=a.pop(),e=d.textContent||d.innerText;if(e){var f=e.match(/^.*(\n|\r)/);return f?(a.length=0,f[0]):e}return"ruby"===d.tagName?c(a):d.childNodes?(b(a,d),c(a)):void 0}var d,e=[],f="";if(!a||!a.childNodes)return"ltr";for(b(e,a);f=c(e);)for(var g=0;g=0&&a.line<=100))return a.line;if(!a.track||!a.track.textTrackList||!a.track.textTrackList.mediaElement)return-1;for(var b=a.track,c=b.textTrackList,d=0,e=0;ei&&(e=new l(a),g=i),a=new l(f)}return e||f}var f=new l(b),g=b.cue,h=i(g),j=[];if(g.snapToLines){var k;switch(g.vertical){case"":j=["+y","-y"],k="height";break;case"rl":j=["+x","-x"],k="width";break;case"lr":j=["-x","+x"],k="width"}var m=f.lineHeight,n=m*Math.round(h),o=c[k]+m,p=j[0];Math.abs(n)>o&&(n=0>n?-1:1,n*=Math.ceil(o/m)*m),0>h&&(n+=""===g.vertical?c.height:c.width,j=j.reverse()),f.move(p,n)}else{var q=f.lineHeight/c.height*100;switch(g.lineAlign){case"middle":h-=q/2;break;case"end":h-=q}switch(g.vertical){case"":b.applyStyles({top:b.formatStyle(h,"%")});break;case"rl":b.applyStyles({left:b.formatStyle(h,"%")});break;case"lr":b.applyStyles({right:b.formatStyle(h,"%")})}j=["+y","-x","+x","-y"],f=new l(b)}var r=e(f,j);b.move(r.toCSSCompatValues(c))}function n(){}var o=Object.create||function(){function a(){}return function(b){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return a.prototype=b,new a}}();b.prototype=o(Error.prototype),b.prototype.constructor=b,b.Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},d.prototype={set:function(a,b){this.get(a)||""===b||(this.values[a]=b)},get:function(a,b,c){return c?this.has(a)?this.values[a]:b[c]:this.has(a)?this.values[a]:b},has:function(a){return a in this.values},alt:function(a,b,c){for(var d=0;d=0&&100>=b)?(this.set(a,b),!0):!1}};var p={"&":"&","<":"<",">":">","":"","":""," ":" "},q={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},r={v:"title",lang:"lang"},s={rt:"ruby"},t=[1470,1472,1475,1478,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1523,1524,1544,1547,1549,1563,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1645,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1765,1766,1774,1775,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2142,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,8207,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434,64435,64436,64437,64438,64439,64440,64441,64442,64443,64444,64445,64446,64447,64448,64449,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65020,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67671,67672,67673,67674,67675,67676,67677,67678,67679,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67862,67863,67864,67865,67866,67867,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67903,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68160,68161,68162,68163,68164,68165,68166,68167,68176,68177,68178,68179,68180,68181,68182,68183,68184,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68221,68222,68223,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68440,68441,68442,68443,68444,68445,68446,68447,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68472,68473,68474,68475,68476,68477,68478,68479,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,1114109];
+})}function p(a){var b,c,d,e,f;if(b={},c=",autoplay,controls,loop,muted,default,",a&&a.attributes&&a.attributes.length>0){d=a.attributes;for(var g=d.length-1;g>=0;g--)e=d[g].name,f=d[g].value,("boolean"==typeof a[e]||-1!==c.indexOf(","+e+","))&&(f=null!==f?!0:!1),b[e]=f}return b}function q(){u["default"].body.focus(),u["default"].onselectstart=function(){return!1}}function r(){u["default"].onselectstart=function(){return!0}}function s(a){var b=void 0;if(a.getBoundingClientRect&&a.parentNode&&(b=a.getBoundingClientRect()),!b)return{left:0,top:0};var c=u["default"].documentElement,d=u["default"].body,e=c.clientLeft||d.clientLeft||0,f=w["default"].pageXOffset||d.scrollLeft,g=b.left+f-e,h=c.clientTop||d.clientTop||0,i=w["default"].pageYOffset||d.scrollTop,j=b.top+i-h;return{left:Math.round(g),top:Math.round(j)}}c.__esModule=!0,c.getEl=f,c.createEl=g,c.insertElFirst=h,c.getElData=i,c.hasElData=j,c.removeElData=k,c.hasElClass=l,c.addElClass=m,c.removeElClass=n,c.setElAttributes=o,c.getElAttributes=p,c.blockTextSelection=q,c.unblockTextSelection=r,c.findElPosition=s;var t=a("global/document"),u=e(t),v=a("global/window"),w=e(v),x=a("./guid.js"),y=d(x),z={},A="vdata"+(new Date).getTime()},{"./guid.js":111,"global/document":1,"global/window":2}],108:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a,b,c){if(Array.isArray(b))return l(f,a,b,c);var d=n.getElData(a);d.handlers||(d.handlers={}),d.handlers[b]||(d.handlers[b]=[]),c.guid||(c.guid=p.newGUID()),d.handlers[b].push(c),d.dispatcher||(d.disabled=!1,d.dispatcher=function(b,c){if(!d.disabled){b=j(b);var e=d.handlers[b.type];if(e)for(var f=e.slice(0),g=0,h=f.length;h>g&&!b.isImmediatePropagationStopped();g++)f[g].call(a,b,c)}}),1===d.handlers[b].length&&(a.addEventListener?a.addEventListener(b,d.dispatcher,!1):a.attachEvent&&a.attachEvent("on"+b,d.dispatcher))}function g(a,b,c){if(n.hasElData(a)){var d=n.getElData(a);if(d.handlers){if(Array.isArray(b))return l(g,a,b,c);var e=function(b){d.handlers[b]=[],k(a,b)};if(b){var f=d.handlers[b];if(f){if(!c)return void e(b);if(c.guid)for(var h=0;h0||g>0?e+":":"",d=((e||f>=10)&&10>d?"0"+d:d)+":",c=10>c?"0"+c:c,e+d+c}()}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],111:[function(a,b,c){"use strict";function d(){return e++}c.__esModule=!0,c.newGUID=d;var e=1},{}],112:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a,b){var c=Array.prototype.slice.call(b),d=function(){},e=g["default"].console||{log:d,warn:d,error:d};a?c.unshift(a.toUpperCase()+":"):a="log",h.history.push(c),c.unshift("VIDEOJS:"),e[a].apply?e[a].apply(e,c):e[a](c.join(" "))}c.__esModule=!0;var f=a("global/window"),g=d(f),h=function(){e(null,arguments)};h.history=[],h.error=function(){e("error",arguments)},h.warn=function(){e("warn",arguments)},c["default"]=h,b.exports=c["default"]},{"global/window":2}],113:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){return!!a&&"object"==typeof a&&"[object Object]"===a.toString()&&a.constructor===Object}function f(){var a=Array.prototype.slice.call(arguments);return a.unshift({}),a.push(i),h["default"].apply(null,a),a[0]}c.__esModule=!0,c["default"]=f;var g=a("lodash-compat/object/merge"),h=d(g),i=function(a,b){return e(b)?e(a)?void 0:f(b):b};b.exports=c["default"]},{"lodash-compat/object/merge":37}],114:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=f["default"].createElement("style");return b.className=a,b};c.createStyleElement=g;var h=function(a,b){a.styleSheet?a.styleSheet.cssText=b:a.textContent=b};c.setTextContent=h},{"global/document":1}],115:[function(a,b,c){"use strict";function d(a,b){return void 0===a&&void 0===b?{length:0,start:function(){throw new Error("This TimeRanges object is empty")},end:function(){throw new Error("This TimeRanges object is empty")}}:{length:1,start:function(){return a},end:function(){return b}}}c.__esModule=!0,c.createTimeRange=d},{}],116:[function(a,b,c){"use strict";function d(a){return a.charAt(0).toUpperCase()+a.slice(1)}c.__esModule=!0,c["default"]=d,b.exports=c["default"]},{}],117:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}c.__esModule=!0;var e=a("global/document"),f=d(e),g=function(a){var b=["protocol","hostname","port","pathname","search","hash","host"],c=f["default"].createElement("a");c.href=a;var d=""===c.host&&"file:"!==c.protocol,e=void 0;d&&(e=f["default"].createElement("div"),e.innerHTML='',c=e.firstChild,e.setAttribute("style","display:none; position:absolute;"),f["default"].body.appendChild(e));for(var g={},h=0;hx',a=b.firstChild.href}return a};c.getAbsoluteURL=h;var i=function(a){if("string"==typeof a){var b=/^(\/?)([\s\S]*?)((?:\.{1,2}|[^\/]+?)(\.([^\.\/\?]+)))(?:[\/]*|[\?].*)$/i,c=b.exec(a);if(c)return c.pop().toLowerCase()}return""};c.getFileExtension=i},{"global/document":1}],118:[function(b,c,d){"use strict";function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}function f(a){return a&&a.__esModule?a:{"default":a}}d.__esModule=!0;{var g=b("global/document"),h=f(g),i=b("./setup"),j=e(i),k=b("./utils/stylesheet.js"),l=e(k),m=b("./component"),n=f(m),o=b("./event-target"),p=f(o),q=b("./utils/events.js"),r=e(q),s=b("./player"),t=f(s),u=b("./plugins.js"),v=f(u),w=b("../../src/js/utils/merge-options.js"),x=f(w),y=b("./utils/fn.js"),z=e(y),A=b("object.assign"),B=(f(A),b("./utils/time-ranges.js")),C=b("./utils/format-time.js"),D=f(C),E=b("./utils/log.js"),F=f(E),G=b("./xhr.js"),H=f(G),I=b("./utils/dom.js"),J=e(I),K=b("./utils/browser.js"),L=e(K),M=b("./utils/url.js"),N=e(M),O=b("./extends.js"),P=f(O),Q=b("lodash-compat/object/merge"),R=f(Q),S=b("./utils/create-deprecation-proxy.js"),T=f(S),U=b("./tech/html5.js"),V=(f(U),b("./tech/flash.js"));f(V)}"undefined"==typeof HTMLVideoElement&&(h["default"].createElement("video"),h["default"].createElement("audio"),h["default"].createElement("track"));var W=function Z(a,b,c){var d;if("string"==typeof a){if(0===a.indexOf("#")&&(a=a.slice(1)),Z.getPlayers()[a])return b&&F["default"].warn('Player "'+a+'" is already initialised. Options will not be applied.'),c&&Z.getPlayers()[a].ready(c),Z.getPlayers()[a];d=J.getEl(a)}else d=a;if(!d||!d.nodeName)throw new TypeError("The element or ID supplied is not valid. (videojs)");return d.player||new t["default"](d,b,c)},X=l.createStyleElement("vjs-styles-defaults"),Y=h["default"].querySelector("head");Y.insertBefore(X,Y.firstChild),l.setTextContent(X,"\n .video-js {\n width: 300px;\n height: 150px;\n"),j.autoSetupTimeout(1,W),W.VERSION="5.0.0-rc.72",W.options=t["default"].prototype.options_,W.getPlayers=function(){return t["default"].players},W.players=T["default"](t["default"].players,{get:"Access to videojs.players is deprecated; use videojs.getPlayers instead",set:"Modification of videojs.players is deprecated"}),W.getComponent=n["default"].getComponent,W.registerComponent=n["default"].registerComponent,W.browser=L,W.TOUCH_ENABLED=L.TOUCH_ENABLED,W["extends"]=P["default"],W.mergeOptions=x["default"],W.bind=z.bind,W.plugin=v["default"],W.addLanguage=function(a,b){var c;return a=(""+a).toLowerCase(),R["default"](W.options.languages,(c={},c[a]=b,c))[a]},W.log=F["default"],W.createTimeRange=B.createTimeRange,W.formatTime=D["default"],W.xhr=H["default"],W.parseUrl=N.parseUrl,W.EventTarget=p["default"],W.on=r.on,W.one=r.one,W.off=r.off,W.trigger=r.trigger,"function"==typeof a&&a.amd?a("videojs",[],function(){return W}):"object"==typeof d&&"object"==typeof c&&(c.exports=W),d["default"]=W,c.exports=d["default"]},{"../../src/js/utils/merge-options.js":113,"./component":48,"./event-target":79,"./extends.js":80,"./player":87,"./plugins.js":88,"./setup":90,"./tech/flash.js":93,"./tech/html5.js":94,"./utils/browser.js":104,"./utils/create-deprecation-proxy.js":106,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/format-time.js":110,"./utils/log.js":112,"./utils/stylesheet.js":114,"./utils/time-ranges.js":115,"./utils/url.js":117,"./xhr.js":119,"global/document":1,"lodash-compat/object/merge":37,"object.assign":40}],119:[function(a,b,c){"use strict";function d(a){return a&&a.__esModule?a:{"default":a}}function e(a){if(a&&a.__esModule)return a;var b={};if(null!=a)for(var c in a)Object.prototype.hasOwnProperty.call(a,c)&&(b[c]=a[c]);return b["default"]=a,b}c.__esModule=!0;var f=a("./utils/url.js"),g=e(f),h=a("./utils/log.js"),i=(d(h),a("./utils/merge-options.js")),j=d(i),k=a("global/window"),l=d(k),m=function(a,b){var c=void 0;"string"==typeof a&&(a={uri:a}),a=j["default"]({method:"GET",timeout:45e3},a),b=b||function(){};var d=l["default"].XMLHttpRequest;"undefined"==typeof d&&(d=function(){try{return new l["default"].ActiveXObject("Msxml2.XMLHTTP.6.0")}catch(a){}try{return new l["default"].ActiveXObject("Msxml2.XMLHTTP.3.0")}catch(b){}try{return new l["default"].ActiveXObject("Msxml2.XMLHTTP")}catch(c){}throw new Error("This browser does not support XMLHttpRequest.")});var e=new d;e.uri=a.uri;var f=g.parseUrl(a.uri),h=l["default"].location,i=function(){l["default"].clearTimeout(c),b(null,e,e.response||e.responseText)},k=function(a){l["default"].clearTimeout(c),a&&"string"!=typeof a||(a=new Error(a||"XHR Failed with a response of: "+(e&&(e.response||e.responseText)))),b(a,e)},m=f.protocol+f.host!==h.protocol+h.host;!m||!l["default"].XDomainRequest||"withCredentials"in e?!function(){var b="file:"===f.protocol||"file:"===h.protocol;e.onreadystatechange=function(){if(4===e.readyState){if(e.timedout)return k("timeout");200===e.status||b&&0===e.status?i():k()}},a.timeout&&(c=l["default"].setTimeout(function(){4!==e.readyState&&(e.timedout=!0,e.abort())},a.timeout))}():(e=new l["default"].XDomainRequest,e.onload=i,e.onerror=k,e.onprogress=function(){},e.ontimeout=function(){});try{e.open(a.method||"GET",a.uri,!0)}catch(n){return k(n)}a.withCredentials&&(e.withCredentials=!0),a.responseType&&(e.responseType=a.responseType);try{e.send()}catch(n){return k(n)}return e};c["default"]=m,b.exports=c["default"]},{"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/url.js":117,"global/window":2}]},{},[118])(118)}),function(a){var b=a.vttjs={},c=b.VTTCue,d=b.VTTRegion,e=a.VTTCue,f=a.VTTRegion;b.shim=function(){b.VTTCue=c,b.VTTRegion=d},b.restore=function(){b.VTTCue=e,b.VTTRegion=f}}(this),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=h[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){if("string"!=typeof a)return!1;var b=i[a.toLowerCase()];return b?a.toLowerCase():!1}function e(a){for(var b=1;ba||a>100)throw new Error("Position must be between 0 and 100.");u=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"positionAlign",e({},j,{get:function(){return v},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");v=b,this.hasBeenReset=!0}})),Object.defineProperty(h,"size",e({},j,{get:function(){return w},set:function(a){if(0>a||a>100)throw new Error("Size must be between 0 and 100.");w=a,this.hasBeenReset=!0}})),Object.defineProperty(h,"align",e({},j,{get:function(){return x},set:function(a){var b=d(a);if(!b)throw new SyntaxError("An invalid or illegal string was specified.");x=b,this.hasBeenReset=!0}})),h.displayState=void 0,i?h:void 0}var g="auto",h={"":!0,lr:!0,rl:!0},i={start:!0,middle:!0,end:!0,left:!0,right:!0};f.prototype.getCueAsHTML=function(){return WebVTT.convertCueToDOMTree(window,this.text)},a.VTTCue=a.VTTCue||f,b.VTTCue=f}(this,this.vttjs||{}),function(a,b){function c(a){if("string"!=typeof a)return!1;var b=f[a.toLowerCase()];return b?a.toLowerCase():!1}function d(a){return"number"==typeof a&&a>=0&&100>=a}function e(){var a=100,b=3,e=0,f=100,g=0,h=100,i="";Object.defineProperties(this,{width:{enumerable:!0,get:function(){return a},set:function(b){if(!d(b))throw new Error("Width must be between 0 and 100.");a=b}},lines:{enumerable:!0,get:function(){return b},set:function(a){if("number"!=typeof a)throw new TypeError("Lines must be set to a number.");b=a}},regionAnchorY:{enumerable:!0,get:function(){return f},set:function(a){if(!d(a))throw new Error("RegionAnchorX must be between 0 and 100.");f=a}},regionAnchorX:{enumerable:!0,get:function(){return e},set:function(a){if(!d(a))throw new Error("RegionAnchorY must be between 0 and 100.");e=a}},viewportAnchorY:{enumerable:!0,get:function(){return h},set:function(a){if(!d(a))throw new Error("ViewportAnchorY must be between 0 and 100.");h=a}},viewportAnchorX:{enumerable:!0,get:function(){return g},set:function(a){if(!d(a))throw new Error("ViewportAnchorX must be between 0 and 100.");g=a}},scroll:{enumerable:!0,get:function(){return i},set:function(a){var b=c(a);if(b===!1)throw new SyntaxError("An invalid or illegal string was specified.");i=b}}})}var f={"":!0,up:!0};a.VTTRegion=a.VTTRegion||e,b.VTTRegion=e}(this,this.vttjs||{}),function(a){function b(a,b){this.name="ParsingError",this.code=a.code,this.message=b||a.message}function c(a){function b(a,b,c,d){return 3600*(0|a)+60*(0|b)+(0|c)+(0|d)/1e3}var c=a.match(/^(\d+):(\d{2})(:\d{2})?\.(\d{3})/);return c?c[3]?b(c[1],c[2],c[3].replace(":",""),c[4]):c[1]>59?b(c[1],c[2],0,c[4]):b(0,c[1],c[2],c[4]):null}function d(){this.values=o(null)}function e(a,b,c,d){var e=d?a.split(d):[a];for(var f in e)if("string"==typeof e[f]){var g=e[f].split(c);if(2===g.length){var h=g[0],i=g[1];b(h,i)}}}function f(a,f,g){function h(){var d=c(a);if(null===d)throw new b(b.Errors.BadTimeStamp,"Malformed timestamp: "+k);return a=a.replace(/^[^\sa-zA-Z-]+/,""),d}function i(a,b){var c=new d;e(a,function(a,b){switch(a){case"region":for(var d=g.length-1;d>=0;d--)if(g[d].id===b){c.set(a,g[d].region);break}break;case"vertical":c.alt(a,b,["rl","lr"]);break;case"line":var e=b.split(","),f=e[0];c.integer(a,f),c.percent(a,f)?c.set("snapToLines",!1):null,c.alt(a,f,["auto"]),2===e.length&&c.alt("lineAlign",e[1],["start","middle","end"]);break;case"position":e=b.split(","),c.percent(a,e[0]),2===e.length&&c.alt("positionAlign",e[1],["start","middle","end"]);break;case"size":c.percent(a,b);break;case"align":c.alt(a,b,["start","middle","end","left","right"])}},/:/,/\s/),b.region=c.get("region",null),b.vertical=c.get("vertical",""),b.line=c.get("line","auto"),b.lineAlign=c.get("lineAlign","start"),b.snapToLines=c.get("snapToLines",!0),b.size=c.get("size",100),b.align=c.get("align","middle"),b.position=c.get("position",{start:0,left:0,middle:50,end:100,right:100},b.align),b.positionAlign=c.get("positionAlign",{start:"start",left:"start",middle:"middle",end:"end",right:"end"},b.align)}function j(){a=a.replace(/^\s+/,"")}var k=a;if(j(),f.startTime=h(),j(),"-->"!==a.substr(0,3))throw new b(b.Errors.BadTimeStamp,"Malformed time stamp (time stamps must be separated by '-->'): "+k);a=a.substr(3),j(),f.endTime=h(),j(),i(a,f)}function g(a,b){function d(){function a(a){return b=b.substr(a.length),a}if(!b)return null;var c=b.match(/^([^<]*)(<[^>]+>?)?/);return a(c[1]?c[1]:c[2])}function e(a){return p[a]}function f(a){for(;o=a.match(/&(amp|lt|gt|lrm|rlm|nbsp);/);)a=a.replace(o[0],e);return a}function g(a,b){return!s[b.localName]||s[b.localName]===a.localName}function h(b,c){var d=q[b];if(!d)return null;var e=a.document.createElement(d);e.localName=d;var f=r[b];return f&&c&&(e[f]=c.trim()),e}for(var i,j=a.document.createElement("div"),k=j,l=[];null!==(i=d());)if("<"!==i[0])k.appendChild(a.document.createTextNode(f(i)));else{if("/"===i[1]){l.length&&l[l.length-1]===i.substr(2).replace(">","")&&(l.pop(),k=k.parentNode);continue}var m,n=c(i.substr(1,i.length-2));if(n){m=a.document.createProcessingInstruction("timestamp",n),k.appendChild(m);continue}var o=i.match(/^<([^.\s/0-9>]+)(\.[^\s\\>]+)?([^>\\]+)?(\\?)>?$/);if(!o)continue;if(m=h(o[1],o[3]),!m)continue;if(!g(k,m))continue;o[2]&&(m.className=o[2].substr(1).replace("."," ")),l.push(o[1]),k.appendChild(m),k=m}return j}function h(a){function b(a,b){for(var c=b.childNodes.length-1;c>=0;c--)a.push(b.childNodes[c])}function c(a){if(!a||!a.length)return null;var d=a.pop(),e=d.textContent||d.innerText;if(e){var f=e.match(/^.*(\n|\r)/);return f?(a.length=0,f[0]):e}return"ruby"===d.tagName?c(a):d.childNodes?(b(a,d),c(a)):void 0}var d,e=[],f="";if(!a||!a.childNodes)return"ltr";for(b(e,a);f=c(e);)for(var g=0;g=0&&a.line<=100))return a.line;if(!a.track||!a.track.textTrackList||!a.track.textTrackList.mediaElement)return-1;for(var b=a.track,c=b.textTrackList,d=0,e=0;ei&&(e=new l(a),g=i),a=new l(f)}return e||f}var f=new l(b),g=b.cue,h=i(g),j=[];if(g.snapToLines){var k;switch(g.vertical){case"":j=["+y","-y"],k="height";break;case"rl":j=["+x","-x"],k="width";break;case"lr":j=["-x","+x"],k="width"}var m=f.lineHeight,n=m*Math.round(h),o=c[k]+m,p=j[0];Math.abs(n)>o&&(n=0>n?-1:1,n*=Math.ceil(o/m)*m),0>h&&(n+=""===g.vertical?c.height:c.width,j=j.reverse()),f.move(p,n)}else{var q=f.lineHeight/c.height*100;switch(g.lineAlign){case"middle":h-=q/2;break;case"end":h-=q}switch(g.vertical){case"":b.applyStyles({top:b.formatStyle(h,"%")});break;case"rl":b.applyStyles({left:b.formatStyle(h,"%")});break;case"lr":b.applyStyles({right:b.formatStyle(h,"%")})}j=["+y","-x","+x","-y"],f=new l(b)}var r=e(f,j);b.move(r.toCSSCompatValues(c))}function n(){}var o=Object.create||function(){function a(){}return function(b){if(1!==arguments.length)throw new Error("Object.create shim only accepts one parameter.");return a.prototype=b,new a}}();b.prototype=o(Error.prototype),b.prototype.constructor=b,b.Errors={BadSignature:{code:0,message:"Malformed WebVTT signature."},BadTimeStamp:{code:1,message:"Malformed time stamp."}},d.prototype={set:function(a,b){this.get(a)||""===b||(this.values[a]=b)},get:function(a,b,c){return c?this.has(a)?this.values[a]:b[c]:this.has(a)?this.values[a]:b},has:function(a){return a in this.values},alt:function(a,b,c){for(var d=0;d=0&&100>=b)?(this.set(a,b),!0):!1}};var p={"&":"&","<":"<",">":">","":"","":""," ":" "},q={c:"span",i:"i",b:"b",u:"u",ruby:"ruby",rt:"rt",v:"span",lang:"span"},r={v:"title",lang:"lang"},s={rt:"ruby"},t=[1470,1472,1475,1478,1488,1489,1490,1491,1492,1493,1494,1495,1496,1497,1498,1499,1500,1501,1502,1503,1504,1505,1506,1507,1508,1509,1510,1511,1512,1513,1514,1520,1521,1522,1523,1524,1544,1547,1549,1563,1566,1567,1568,1569,1570,1571,1572,1573,1574,1575,1576,1577,1578,1579,1580,1581,1582,1583,1584,1585,1586,1587,1588,1589,1590,1591,1592,1593,1594,1595,1596,1597,1598,1599,1600,1601,1602,1603,1604,1605,1606,1607,1608,1609,1610,1645,1646,1647,1649,1650,1651,1652,1653,1654,1655,1656,1657,1658,1659,1660,1661,1662,1663,1664,1665,1666,1667,1668,1669,1670,1671,1672,1673,1674,1675,1676,1677,1678,1679,1680,1681,1682,1683,1684,1685,1686,1687,1688,1689,1690,1691,1692,1693,1694,1695,1696,1697,1698,1699,1700,1701,1702,1703,1704,1705,1706,1707,1708,1709,1710,1711,1712,1713,1714,1715,1716,1717,1718,1719,1720,1721,1722,1723,1724,1725,1726,1727,1728,1729,1730,1731,1732,1733,1734,1735,1736,1737,1738,1739,1740,1741,1742,1743,1744,1745,1746,1747,1748,1749,1765,1766,1774,1775,1786,1787,1788,1789,1790,1791,1792,1793,1794,1795,1796,1797,1798,1799,1800,1801,1802,1803,1804,1805,1807,1808,1810,1811,1812,1813,1814,1815,1816,1817,1818,1819,1820,1821,1822,1823,1824,1825,1826,1827,1828,1829,1830,1831,1832,1833,1834,1835,1836,1837,1838,1839,1869,1870,1871,1872,1873,1874,1875,1876,1877,1878,1879,1880,1881,1882,1883,1884,1885,1886,1887,1888,1889,1890,1891,1892,1893,1894,1895,1896,1897,1898,1899,1900,1901,1902,1903,1904,1905,1906,1907,1908,1909,1910,1911,1912,1913,1914,1915,1916,1917,1918,1919,1920,1921,1922,1923,1924,1925,1926,1927,1928,1929,1930,1931,1932,1933,1934,1935,1936,1937,1938,1939,1940,1941,1942,1943,1944,1945,1946,1947,1948,1949,1950,1951,1952,1953,1954,1955,1956,1957,1969,1984,1985,1986,1987,1988,1989,1990,1991,1992,1993,1994,1995,1996,1997,1998,1999,2e3,2001,2002,2003,2004,2005,2006,2007,2008,2009,2010,2011,2012,2013,2014,2015,2016,2017,2018,2019,2020,2021,2022,2023,2024,2025,2026,2036,2037,2042,2048,2049,2050,2051,2052,2053,2054,2055,2056,2057,2058,2059,2060,2061,2062,2063,2064,2065,2066,2067,2068,2069,2074,2084,2088,2096,2097,2098,2099,2100,2101,2102,2103,2104,2105,2106,2107,2108,2109,2110,2112,2113,2114,2115,2116,2117,2118,2119,2120,2121,2122,2123,2124,2125,2126,2127,2128,2129,2130,2131,2132,2133,2134,2135,2136,2142,2208,2210,2211,2212,2213,2214,2215,2216,2217,2218,2219,2220,8207,64285,64287,64288,64289,64290,64291,64292,64293,64294,64295,64296,64298,64299,64300,64301,64302,64303,64304,64305,64306,64307,64308,64309,64310,64312,64313,64314,64315,64316,64318,64320,64321,64323,64324,64326,64327,64328,64329,64330,64331,64332,64333,64334,64335,64336,64337,64338,64339,64340,64341,64342,64343,64344,64345,64346,64347,64348,64349,64350,64351,64352,64353,64354,64355,64356,64357,64358,64359,64360,64361,64362,64363,64364,64365,64366,64367,64368,64369,64370,64371,64372,64373,64374,64375,64376,64377,64378,64379,64380,64381,64382,64383,64384,64385,64386,64387,64388,64389,64390,64391,64392,64393,64394,64395,64396,64397,64398,64399,64400,64401,64402,64403,64404,64405,64406,64407,64408,64409,64410,64411,64412,64413,64414,64415,64416,64417,64418,64419,64420,64421,64422,64423,64424,64425,64426,64427,64428,64429,64430,64431,64432,64433,64434,64435,64436,64437,64438,64439,64440,64441,64442,64443,64444,64445,64446,64447,64448,64449,64467,64468,64469,64470,64471,64472,64473,64474,64475,64476,64477,64478,64479,64480,64481,64482,64483,64484,64485,64486,64487,64488,64489,64490,64491,64492,64493,64494,64495,64496,64497,64498,64499,64500,64501,64502,64503,64504,64505,64506,64507,64508,64509,64510,64511,64512,64513,64514,64515,64516,64517,64518,64519,64520,64521,64522,64523,64524,64525,64526,64527,64528,64529,64530,64531,64532,64533,64534,64535,64536,64537,64538,64539,64540,64541,64542,64543,64544,64545,64546,64547,64548,64549,64550,64551,64552,64553,64554,64555,64556,64557,64558,64559,64560,64561,64562,64563,64564,64565,64566,64567,64568,64569,64570,64571,64572,64573,64574,64575,64576,64577,64578,64579,64580,64581,64582,64583,64584,64585,64586,64587,64588,64589,64590,64591,64592,64593,64594,64595,64596,64597,64598,64599,64600,64601,64602,64603,64604,64605,64606,64607,64608,64609,64610,64611,64612,64613,64614,64615,64616,64617,64618,64619,64620,64621,64622,64623,64624,64625,64626,64627,64628,64629,64630,64631,64632,64633,64634,64635,64636,64637,64638,64639,64640,64641,64642,64643,64644,64645,64646,64647,64648,64649,64650,64651,64652,64653,64654,64655,64656,64657,64658,64659,64660,64661,64662,64663,64664,64665,64666,64667,64668,64669,64670,64671,64672,64673,64674,64675,64676,64677,64678,64679,64680,64681,64682,64683,64684,64685,64686,64687,64688,64689,64690,64691,64692,64693,64694,64695,64696,64697,64698,64699,64700,64701,64702,64703,64704,64705,64706,64707,64708,64709,64710,64711,64712,64713,64714,64715,64716,64717,64718,64719,64720,64721,64722,64723,64724,64725,64726,64727,64728,64729,64730,64731,64732,64733,64734,64735,64736,64737,64738,64739,64740,64741,64742,64743,64744,64745,64746,64747,64748,64749,64750,64751,64752,64753,64754,64755,64756,64757,64758,64759,64760,64761,64762,64763,64764,64765,64766,64767,64768,64769,64770,64771,64772,64773,64774,64775,64776,64777,64778,64779,64780,64781,64782,64783,64784,64785,64786,64787,64788,64789,64790,64791,64792,64793,64794,64795,64796,64797,64798,64799,64800,64801,64802,64803,64804,64805,64806,64807,64808,64809,64810,64811,64812,64813,64814,64815,64816,64817,64818,64819,64820,64821,64822,64823,64824,64825,64826,64827,64828,64829,64848,64849,64850,64851,64852,64853,64854,64855,64856,64857,64858,64859,64860,64861,64862,64863,64864,64865,64866,64867,64868,64869,64870,64871,64872,64873,64874,64875,64876,64877,64878,64879,64880,64881,64882,64883,64884,64885,64886,64887,64888,64889,64890,64891,64892,64893,64894,64895,64896,64897,64898,64899,64900,64901,64902,64903,64904,64905,64906,64907,64908,64909,64910,64911,64914,64915,64916,64917,64918,64919,64920,64921,64922,64923,64924,64925,64926,64927,64928,64929,64930,64931,64932,64933,64934,64935,64936,64937,64938,64939,64940,64941,64942,64943,64944,64945,64946,64947,64948,64949,64950,64951,64952,64953,64954,64955,64956,64957,64958,64959,64960,64961,64962,64963,64964,64965,64966,64967,65008,65009,65010,65011,65012,65013,65014,65015,65016,65017,65018,65019,65020,65136,65137,65138,65139,65140,65142,65143,65144,65145,65146,65147,65148,65149,65150,65151,65152,65153,65154,65155,65156,65157,65158,65159,65160,65161,65162,65163,65164,65165,65166,65167,65168,65169,65170,65171,65172,65173,65174,65175,65176,65177,65178,65179,65180,65181,65182,65183,65184,65185,65186,65187,65188,65189,65190,65191,65192,65193,65194,65195,65196,65197,65198,65199,65200,65201,65202,65203,65204,65205,65206,65207,65208,65209,65210,65211,65212,65213,65214,65215,65216,65217,65218,65219,65220,65221,65222,65223,65224,65225,65226,65227,65228,65229,65230,65231,65232,65233,65234,65235,65236,65237,65238,65239,65240,65241,65242,65243,65244,65245,65246,65247,65248,65249,65250,65251,65252,65253,65254,65255,65256,65257,65258,65259,65260,65261,65262,65263,65264,65265,65266,65267,65268,65269,65270,65271,65272,65273,65274,65275,65276,67584,67585,67586,67587,67588,67589,67592,67594,67595,67596,67597,67598,67599,67600,67601,67602,67603,67604,67605,67606,67607,67608,67609,67610,67611,67612,67613,67614,67615,67616,67617,67618,67619,67620,67621,67622,67623,67624,67625,67626,67627,67628,67629,67630,67631,67632,67633,67634,67635,67636,67637,67639,67640,67644,67647,67648,67649,67650,67651,67652,67653,67654,67655,67656,67657,67658,67659,67660,67661,67662,67663,67664,67665,67666,67667,67668,67669,67671,67672,67673,67674,67675,67676,67677,67678,67679,67840,67841,67842,67843,67844,67845,67846,67847,67848,67849,67850,67851,67852,67853,67854,67855,67856,67857,67858,67859,67860,67861,67862,67863,67864,67865,67866,67867,67872,67873,67874,67875,67876,67877,67878,67879,67880,67881,67882,67883,67884,67885,67886,67887,67888,67889,67890,67891,67892,67893,67894,67895,67896,67897,67903,67968,67969,67970,67971,67972,67973,67974,67975,67976,67977,67978,67979,67980,67981,67982,67983,67984,67985,67986,67987,67988,67989,67990,67991,67992,67993,67994,67995,67996,67997,67998,67999,68e3,68001,68002,68003,68004,68005,68006,68007,68008,68009,68010,68011,68012,68013,68014,68015,68016,68017,68018,68019,68020,68021,68022,68023,68030,68031,68096,68112,68113,68114,68115,68117,68118,68119,68121,68122,68123,68124,68125,68126,68127,68128,68129,68130,68131,68132,68133,68134,68135,68136,68137,68138,68139,68140,68141,68142,68143,68144,68145,68146,68147,68160,68161,68162,68163,68164,68165,68166,68167,68176,68177,68178,68179,68180,68181,68182,68183,68184,68192,68193,68194,68195,68196,68197,68198,68199,68200,68201,68202,68203,68204,68205,68206,68207,68208,68209,68210,68211,68212,68213,68214,68215,68216,68217,68218,68219,68220,68221,68222,68223,68352,68353,68354,68355,68356,68357,68358,68359,68360,68361,68362,68363,68364,68365,68366,68367,68368,68369,68370,68371,68372,68373,68374,68375,68376,68377,68378,68379,68380,68381,68382,68383,68384,68385,68386,68387,68388,68389,68390,68391,68392,68393,68394,68395,68396,68397,68398,68399,68400,68401,68402,68403,68404,68405,68416,68417,68418,68419,68420,68421,68422,68423,68424,68425,68426,68427,68428,68429,68430,68431,68432,68433,68434,68435,68436,68437,68440,68441,68442,68443,68444,68445,68446,68447,68448,68449,68450,68451,68452,68453,68454,68455,68456,68457,68458,68459,68460,68461,68462,68463,68464,68465,68466,68472,68473,68474,68475,68476,68477,68478,68479,68608,68609,68610,68611,68612,68613,68614,68615,68616,68617,68618,68619,68620,68621,68622,68623,68624,68625,68626,68627,68628,68629,68630,68631,68632,68633,68634,68635,68636,68637,68638,68639,68640,68641,68642,68643,68644,68645,68646,68647,68648,68649,68650,68651,68652,68653,68654,68655,68656,68657,68658,68659,68660,68661,68662,68663,68664,68665,68666,68667,68668,68669,68670,68671,68672,68673,68674,68675,68676,68677,68678,68679,68680,126464,126465,126466,126467,126469,126470,126471,126472,126473,126474,126475,126476,126477,126478,126479,126480,126481,126482,126483,126484,126485,126486,126487,126488,126489,126490,126491,126492,126493,126494,126495,126497,126498,126500,126503,126505,126506,126507,126508,126509,126510,126511,126512,126513,126514,126516,126517,126518,126519,126521,126523,126530,126535,126537,126539,126541,126542,126543,126545,126546,126548,126551,126553,126555,126557,126559,126561,126562,126564,126567,126568,126569,126570,126572,126573,126574,126575,126576,126577,126578,126580,126581,126582,126583,126585,126586,126587,126588,126590,126592,126593,126594,126595,126596,126597,126598,126599,126600,126601,126603,126604,126605,126606,126607,126608,126609,126610,126611,126612,126613,126614,126615,126616,126617,126618,126619,126625,126626,126627,126629,126630,126631,126632,126633,126635,126636,126637,126638,126639,126640,126641,126642,126643,126644,126645,126646,126647,126648,126649,126650,126651,1114109];
j.prototype.applyStyles=function(a,b){b=b||this.div;for(var c in a)a.hasOwnProperty(c)&&(b.style[c]=a[c])},j.prototype.formatStyle=function(a,b){return 0===a?0:a+b},k.prototype=o(j.prototype),k.prototype.constructor=k,l.prototype.move=function(a,b){switch(b=void 0!==b?b:this.lineHeight,a){case"+x":this.left+=b,this.right+=b;break;case"-x":this.left-=b,this.right-=b;break;case"+y":this.top+=b,this.bottom+=b;break;case"-y":this.top-=b,this.bottom-=b}},l.prototype.overlaps=function(a){return this.lefta.left&&this.topa.top},l.prototype.overlapsAny=function(a){for(var b=0;b=a.top&&this.bottom<=a.bottom&&this.left>=a.left&&this.right<=a.right},l.prototype.overlapsOppositeAxis=function(a,b){switch(b){case"+x":return this.lefta.right;case"+y":return this.topa.bottom}},l.prototype.intersectPercentage=function(a){var b=Math.max(0,Math.min(this.right,a.right)-Math.max(this.left,a.left)),c=Math.max(0,Math.min(this.bottom,a.bottom)-Math.max(this.top,a.top)),d=b*c;return d/(this.height*this.width)},l.prototype.toCSSCompatValues=function(a){return{top:this.top-a.top,bottom:a.bottom-this.bottom,left:this.left-a.left,right:a.right-this.right,height:this.height,width:this.width}},l.getSimpleBoxPosition=function(a){var b=a.div?a.div.offsetHeight:a.tagName?a.offsetHeight:0,c=a.div?a.div.offsetWidth:a.tagName?a.offsetWidth:0,d=a.div?a.div.offsetTop:a.tagName?a.offsetTop:0;a=a.div?a.div.getBoundingClientRect():a.tagName?a.getBoundingClientRect():a;var e={left:a.left,right:a.right,top:a.top||d,height:a.height||b,bottom:a.bottom||d+(a.height||b),width:a.width||c};return e},n.StringDecoder=function(){return{decode:function(a){if(!a)return"";if("string"!=typeof a)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(a))}}},n.convertCueToDOMTree=function(a,b){return a&&b?g(a,b):null};var u=.05,v="sans-serif",w="1.5%";n.processCues=function(a,b,c){function d(a){for(var b=0;b")){i.cue.id=j;continue}case"CUE":try{f(j,i.cue,i.regionList)}catch(m){i.reportOrThrowError(m),i.cue=null,i.state="BADCUE";continue}i.state="CUETEXT";continue;case"CUETEXT":var n=-1!==j.indexOf("-->");if(!j||n&&(l=!0)){i.oncue&&i.oncue(i.cue),i.cue=null,i.state="ID";continue}i.cue.text&&(i.cue.text+="\n"),i.cue.text+=j;continue;case"BADCUE":j||(i.state="ID");continue}}}catch(m){i.reportOrThrowError(m),"CUETEXT"===i.state&&i.cue&&i.oncue&&i.oncue(i.cue),i.cue=null,i.state="INITIAL"===i.state?"BADWEBVTT":"BADCUE"}return this},flush:function(){var a=this;try{if(a.buffer+=a.decoder.decode(),(a.cue||"HEADER"===a.state)&&(a.buffer+="\n\n",a.parse()),"INITIAL"===a.state)throw new b(b.Errors.BadSignature)}catch(c){a.reportOrThrowError(c)}return a.onflush&&a.onflush(),this}},a.WebVTT=n}(this,this.vttjs||{});
//# sourceMappingURL=video.min.js.map
diff --git a/node_modules/video.js/dist/video.min.js.map b/node_modules/video.js/dist/video.min.js.map
index bbb859d..4806728 100644
--- a/node_modules/video.js/dist/video.min.js.map
+++ b/node_modules/video.js/dist/video.min.js.map
@@ -1 +1 @@
-{"version":3,"file":"generated.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseIsFunction.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/baseToString.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimIsPlainObject.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/string/escapeRegExp.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/safe-json-parse/tuple.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extends.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js","src/js/xhr.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","doccy",3,4,"restParam","func","start","TypeError","FUNC_ERROR_TEXT","nativeMax","undefined","args","arguments","index","rest","Array","otherArgs","apply","Math","max",5,"arrayCopy","source","array",6,"arrayEach","iteratee",7,"baseCopy","props","object","key",8,"createBaseFor","baseFor","./createBaseFor",9,"baseForIn","keysIn","../object/keysIn","./baseFor",10,"baseIsFunction","value",11,"baseMerge","customizer","stackA","stackB","isObject","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","result","isCommon","../lang/isArray","../lang/isObject","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",12,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",13,"baseProperty","toObject","./toObject",14,"baseToString",15,"bindCallback","thisArg","argCount","identity","collection","accumulator","other","../utility/identity",16,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",17,"fromRight","keysFunc","iterable",18,"getLength","./baseProperty",19,"getNative","isNative","../lang/isNative",20,"isLength","./getLength","./isLength",21,"isHostObject","Object","toString",22,"isIndex","reIsUint","test","MAX_SAFE_INTEGER",23,"type","./isIndex",24,25,26,"shimIsPlainObject","Ctor","objToString","objectTag","hasOwnProperty","constructor","support","argsTag","ownLast","subValue","objectProto","prototype","../support","./baseForIn","./isHostObject",27,"shimKeys","propsLength","allowIndexes","isString","../lang/isString",28,"unindexedChars","charAt",29,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",30,"arrayTag","nativeIsArray","../internal/getNative","../internal/isLength",31,"funcTag","Uint8Array","isFunction","../internal/baseIsFunction",32,"reIsNative","fnToString","reIsHostCtor","escapeRegExp","Function","RegExp","replace","../internal/isHostObject","../string/escapeRegExp",33,34,"getPrototypeOf","valueOf","objProto","../internal/shimIsPlainObject","./isArguments",35,"stringTag",36,"typedArrayTags","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",37,"../internal/baseCopy",38,"nativeKeys","enumPrototypes","../internal/shimKeys",39,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","../internal/arrayEach","../internal/isIndex","../lang/isFunction",40,"merge","../internal/baseMerge","../internal/createAssigner",41,"string","reHasRegExpChars","reRegExpChars","../internal/baseToString",42,"arrayProto","document","splice","x","0","y","nodeTag","spliceObjects","dom","createDocumentFragment","nodeType",43,44,"canBeObject","obj","hasSymbols","Symbol","defineProperties","propIsEnumerable","isEnumerableOn","prop","assignShim","target","objTarget","getOwnPropertySymbols","filter","shim","assign","preventExtensions","assignHasPendingExceptions","thrower","define-properties","object-keys",45,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","supportsDescriptors","name","predicate","configurable","enumerable","writable","map","predicates",46,"hasOwn","ctx","k",47,"has","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","keysShim","theKeys","j","ctor","skipConstructor",48,"str","callee",49,"SafeParseTuple","reviver","_Component2","_interopRequireWildcard","_Component","_Button","player","options","buildCSSClass","_Component3","_assign2","_assign","Button","role","aria-live","el","controlTextEl_","innerHTML","localize","controlText_","handleFocus","Events","on","_document2","Fn","bind","handleKeyPress","event","which","preventDefault","handleClick","_window2","_window","Dom","_import","Component","player_","id_","id","Guid","newGUID","el_","createEl","childIndex_","childNameIndex_","reportTouchActivity","trigger","bubbles","children_","dispose","removeElData","tagName","attributes","languages","language","children","getChildById","addChild","child","componentName","componentClassName","componentClass","_toTitleCase2","ComponentClass","getComponent","component","removeChild","getChild","childFound","options_","parentOptions","_this","handleAdd","opts","playerOptions","_name","first","second","removeOnDispose","_this2","off","cleanRemover","guid","third","nodeName","_this3","newFunc","_newFunc","ready","sync","isReady_","readyQueue","readyQueue_","hasClass","classToCheck","hasElClass","addElClass","classToAdd","removeClass","classToRemove","removeElClass","show","dimension","num","skipListeners","widthOrHeight","val","style","emitTapEvents","touchStart","touchTimeThreshold","couldBeTap","touches","firstTouch","xdiff","pageX","touchDistance","tapMovementThreshold","noTap","touchTime","Date","getTime","enableTouchActivity","report","reportUserActivity","touchHolding","clearInterval","setInterval","touchEnd","setTimeout","timeout","timeoutId","intervalId","comp","init","create","subObj","extend","_name2","ControlBar","className","FullscreenToggle","isFullscreen","controlText","LiveDisplay","MuteToggle","_classCallCheck","update","tech","featuresVolumeControl","addClass","vol","muted","level","toMute","handlePause","PlayToggle","play","pause","handlePlay","_Menu2","_Menu","updateLabel","_inherits","PlaybackRateMenuButton","_MenuButton","appendChild","labelEl_","menu","setAttribute","playbackRate","currentRate","newRate","playbackRates","playbackRateSupported","featuresPlaybackRate","PlaybackRateMenuItem","_MenuItem","label","rate","LoadProgressBar","buffered","percentify","time","end","percent","part","width","bufferedEnd","_formatTime2","_formatTime","updateDataAttr","PlayProgressBar","_SeekBar","ProgressControl","updateARIAAttributes","SeekBar","_Slider","aria-label","scrubbing","getCache","currentTime","getPercent","toFixed","duration","newTime","videoWasPlaying","stepForward","stepBack","_Slider3","CustomControlSpacer","_Spacer","Spacer","CaptionSettingsMenuItem","_TextTrackMenuItem","track","_CaptionSettingsMenuItem2","_CaptionSettingsMenuItem","CaptionsButton","threshold","_TextTrackButton","hide","items","kind","kind_","_TextTrackMenuItem2","_ChaptersTrackMenuItem2","_ChaptersTrackMenuItem","ChaptersButton","createItems","tracks","textTracks","createMenu","cues","chaptersTrack","mode","contentEl","tabIndex","cue","mi","ChaptersTrackMenuItem","addEventListener","startTime","OffTextTrackMenuItem","selected","handleTracksChange","_OffTextTrackMenuItem2","_OffTextTrackMenuItem","TextTrackButton","updateHandler","removeEventListener","_document","TextTrackMenuItem","onchange","Event","err","updateContent","CurrentTimeDisplay","contentEl_","DurationDisplay","RemainingTimeDisplay","formattedTime","remainingTime","localizedText","TimeDivider","_Slider2","_VolumeLevel","VolumeBar","volume","calculateDistance","VolumeControl","_VolumeBar","VolumeLevel","_VolumeBar2","VolumeMenuButton","vertical","inline","volumeBar","volumeUpdate","orientationClass","contentElType","unlockShowing","vc","ErrorDisplay","./utils/dom.js",83,"EventTarget","allowedEvents_","ael","one","dispatchEvent","_log","_log2","subClass","superClass","subClassMethods","methods","FullscreenApi","apiMap","browserApi","LoadingSpinner","MediaError","_MediaError","message","status","errorTypes",2,"_Button3","_Button2","_toTitleCase","MenuButton","title","handleBlur","buttonPressed_","unpressButton","focus","MenuItem","_selected","_import3","Menu","append","__esModule","default","__proto__","_import2","_import5","_mergeOptions","_textTrackConverter","_ControlBar","Player","tagAttributes","getElAttributes","languagesToLower","toLowerCase","playerOptionsCopy","_mergeOptions2","plugins","isAudio","controls","styleEl_","parentNode","players","removeAttribute","defaultsStyleEl","querySelector","height","aspectRatio","_dimension","privDimension","parsedVal","parseFloat","updateStyleEl_","fluid","bool","ratio","aspectRatio_","videoWidth","videoHeight","ratioParts","split","width_","height_","ratioMultiplier","loadTech","techName","disposeMediaElement","techReady","triggerReady","techOptions","playerId","techId","textTracks_","preload","loop","poster","currentType_","cache_","techComponent","_textTrackConverter2","jsonToTextTracks","textTracksJson_","handleTechReady","handleTechUseNativeControls","handleTechLoadStart","handleTechWaiting","handleTechCanPlay","handleTechCanPlayThrough","handleTechPlaying","handleTechEnded","handleTechSeeking","handleTechSeeked","handleTechPlay","handleTechFirstPlay","handleTechPause","handleTechProgress","handleTechDurationChange","handleTechFullscreenChange","handleTechSuspend","handleTechAbort","handleTechEmptied","handleTechTimeUpdate","handleTechRateChange","handleTechVolumeChange","usingNativeControls","addTechControlsListeners","handleTechClick","handleTechTouchMove","handleTechTouchEnd","error","hasStarted","_hasStarted","hasStarted_","bufferedPercent","handleTechTap","handleTechTouchStart","userWasActive","userActive","updateDuration","techGet","handleStageClick","data","handleTechError","handleTechStalled","handleTechLoadedMetaData","handleTechLoadedData","onTextTrackChange","techCall","method","arg","isScrubbing","scrubbing_","seconds","_buffered","_bufferedPercent","_bufferedPercent2","percentAsDecimal","_muted","fsApi","fullscreenchange","documentFullscreenChange","requestFullscreen","supportsFullScreen","exitFullscreen","isFullWindow","docOrigOverflow","documentElement","overflow","body","exitFullWindow","b","src","currentTech","sourceList_","load","sourceTech","selectSource","controls_","usingNativeControls_","error_","_MediaError2","ended","seeking","seekable","userActivity_","userActive_","stopPropagation","listenForUserActivity","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","handleMouseDown","handleMouseUp","clearTimeout","inactivityTimeout","addTextTrack","addRemoteTextTrack","removeRemoteTextTrack","languages_","toJSON","dataSetup","tagOptions","_safeParseTuple","baseOptions","hasChildNodes","childNodes","childName","defaultVolume","posterImage","bigPlayButton","controlBar","_Player","browser","PosterImage","fallbackImg_","setSrc","url","_windowLoaded","autoSetup","vids","getElementsByTagName","mediaEls","audios","mediaEl","getAttribute","autoSetupTimeout","vjs","wait","readyState","Slider","bar","barName","handleMouseMove","progress","percentage","box","findElPosition","boxY","top","pageY","changedTouches","min","boxH","boxX","left","boxW","stopImmediatePropagation","vertical_","registerComponent","FlashRtmpDecorator","Flash","streamingFormats","streamToParts","parts","connection","stream","connEnd","indexOf","streamBegin","lastIndexOf","substring","rtmpSourceHandler","attrUpper","attr","toUpperCase","slice","_api","vjs_setProperty","vjs_getProperty","instance","Constructor","_Tech2","navigator","_Tech","setSource","objId","eventProxyFunction","errorEventProxyFunction","flashVars","params","wmode","embed","swf","_src","lastSeekTarget_","setCurrentTime","currentSource_","setPoster","_createTimeRange","createTimeRange","enterFullScreen","_Tech3","_readWrite","_readOnly","_createGetter","nativeSourceHandler","canHandleSource","guessMimeType","ext","Url","getFileExtension","video/flv","video/mp4","checkReady","eventName","msg","version","description","match","getEmbedCode","flashVarsString","paramsString","attrsString","flashvars","getOwnPropertyNames","forEach","Html5","currentSrc","initNetworkState_","nodesLength","nodes","node","featuresNativeTextTracks","remoteTextTracks","addTrack_","removeNodes","handleTextTrackChange_","handleTextTrackChange","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","emulatedTt","tt","handleTextTrackAdd_","movingMediaElementInDOM","clone","cloneNode","createElement","TOUCH_ENABLED","nativeControlsForTouch","setElAttributes","class","settingsAttrs","overwriteAttrs","paused","setVolume","setMuted","offsetWidth","offsetHeight","video","networkState","HAVE_METADATA","webkitEnterFullScreen","exitFullScreen","setPreload","autoplay","setAutoplay","setControls","setLoop","defaultMuted","played","srclang","removeTrack_","TEST_VID","isSupported","canPlayType","registerSourceHandler","canControlVolume","canControlPlaybackRate","supportsNativeTextTracks","supportsTextTracks","featuresProgressEvents","mpegurlRE","patchCanPlayType","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","firstChild","MediaLoader","_TextTrackList","Tech","manualProgressOn","featuresTimeupdateEvents","nativeCaptions","nativeTextTracks","initControlsListeners","manualProgress","stopTrackingProgress","progressInterval","numBufferedPercent","onDurationChange","duration_","manualTimeUpdates","trackCurrentTime","stopTrackingCurrentTime","currentTimeInterval","manuallyTriggered","initTextTrackListeners","textTrackListChanges","WebVTT","script","textTracksChanges","updateDisplay","_TextTrackList2","createTrackHelper","withSourceHandlers","handler","handlers","sourceHandlers","selectSourceHandler","sh","srcObj","sourceHandler_","disposeSourceHandler","handleSource","../tracks/text-track","../tracks/text-track-list","../utils/buffer.js","../utils/fn.js","../utils/log.js","../utils/time-ranges.js","global/document","global/window",101,"TextTrackCueList","_TextTrackCueList","list","IS_IE8","get","length_","setCues_","cues_","oldLength","defineProp","parseInt","color","opacity","darkGray","lightGray","TextTrackDisplay","clearDisplay","updateForTrack","overrides","textTrackSettings","getValues","_i","activeCues","processCues","cueDiv","displayState","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","bottom","../component","../menu/menu-button.js","../menu/menu-item.js","../menu/menu.js",103,"TextTrackMode","disabled","hidden","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","querySelectorAll","trackObjs","TextTrackList","tracks_","_EventTarget2","change","addtrack","removetrack","_event","rtrack","getTrackById","getSelectedOptionValue","selectedOption","selectedOptions","selectedIndex","option","TextTrackSettings","persistTextTrackSettings","saveSettings","textEdge","fontFamily","fgColor","bgColor","bgOpacity","setValues","values","setSelectedOption","restoreSettings","_safeParseTuple3","localStorage","getItem","removeItem","ttDisplay","_TextTrackCueList2","TextTrack","_TextTrack","tech_","TextTrackEnum","TextTrackKind","activeCues_","changed","timeupdateHandler","set","newMode","loaded_","ct","endTime","active","addCue","removeCue","removed","parseCues","_parseCues","srcContent","parser","oncue","onparsingerror","parse","flush","loadTrack","_XHR2","response","responseBody","O","len","fromIndex","abs","userAgent","IS_IPHONE","USER_AGENT","IS_IPAD","IS_IPOD","IOS_VERSION","IS_ANDROID","ANDROID_VERSION","major","minor","bufferedDuration","messages","Proxy","_ret","warn","defaultBehaviors","getEl","properties","propName","parent","getElData","elData","elIdAttr","element","classNames","join","attrName","knownBooleans","attrs","attrVal","onselectstart","getBoundingClientRect","docEl","clientLeft","scrollLeft","pageXOffset","elem","_handleMultipleEvents","dispatcher","hash","fixEvent","m","handlersCopy","isImmediatePropagationStopped","attachEvent","removeType","ownerDocument","isPropagationStopped","defaultPrevented","targetData","_func","returnTrue","returnFalse","old","srcElement","relatedTarget","fromElement","toElement","returnValue","cancelBubble","doc","clientX","_cleanUpEvents","detachEvent","ret","context","guide","h","floor","_logType","console","noop","log","history","argsArray","isPlain","mergeOptions","destination","lodash-compat/object/merge",118,"createStyleElement","_start","_end","parseUrl","href","addToBody","div","details","protocol","path","stylesheet","_Player2","_import4","_xhr2","_xhr","_extendsFn","_merge2","_Html5","_videojs","getPlayers","head","insertBefore","addLanguage","./component","./event-target","./extends.js","./player","./plugins.js","./setup","./tech/flash.js","./tech/html5.js","./utils/browser.js","./utils/create-deprecation-proxy.js","./utils/events.js","./utils/fn.js","./utils/format-time.js","./utils/log.js","./utils/stylesheet.js","./utils/time-ranges.js","./utils/url.js","./xhr.js","object.assign",123,"xhr","callback","abortTimeout","uri","XHR","XMLHttpRequest","ActiveXObject","request","urlInfo","winLoc","location","successHandler","errorHandler","crossOrigin","host","XDomainRequest","onreadystatechange","timedout","fileUrl","abort","onload","onerror","onprogress","open","withCredentials","responseType"],"mappings":"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H,+CAE6B,IAAvBwzB,EAAK5b,aACP4b,EAAKU,UAAA,EACJV,EAAAY,4DA7BPZ,EAAAa,OAAQT,EACNJ,EAAIc,QAAQT,IAGTU,WAAA,sCAiCP,KAECf,EAAAgB,KAAAn8B,EAAAoa,QAAA,MAAApa,EAAA+6B,KAAA,wBAMC/6B,EAAOo8B,kBACRjB,EAAAiB,iBAAA,GAGDp8B,EAAAq8B;;;AzH7JF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;ACTA;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC7DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AChCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;AC1IA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;;;;;;;;;;;;;uBCXmB,aAAa;;;;yBA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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","/**\n * The base implementation of `_.isFunction` without support for environments\n * with incorrect `typeof` results.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n */\nfunction baseIsFunction(value) {\n // Avoid a Chakra JIT bug in compatibility modes of IE 11.\n // See https://github.com/jashkenas/underscore/issues/1621 for more details.\n return typeof value == 'function' || false;\n}\n\nmodule.exports = baseIsFunction;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merging properties.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? null : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merging properties.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","/**\n * Converts `value` to a string if it's not one. An empty string is returned\n * for `null` or `undefined` values.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {string} Returns the string.\n */\nfunction baseToString(value) {\n if (typeof value == 'string') {\n return value;\n }\n return value == null ? '' : (value + '');\n}\n\nmodule.exports = baseToString;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a function that assigns properties of source object(s) to a given\n * destination object.\n *\n * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseForIn = require('./baseForIn'),\n isArguments = require('../lang/isArguments'),\n isHostObject = require('./isHostObject'),\n isObjectLike = require('./isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * A fallback implementation of `_.isPlainObject` which checks if `value`\n * is an object created by the `Object` constructor or has a `[[Prototype]]`\n * of `null`.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n */\nfunction shimIsPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value)) ||\n (!hasOwnProperty.call(value, 'constructor') &&\n (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor))) ||\n (!support.argsTag && isArguments(value))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = shimIsPlainObject;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) && objToString.call(value) == argsTag;\n}\n// Fallback for environments without a `toStringTag` for `arguments` objects.\nif (!support.argsTag) {\n isArguments = function(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n };\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var baseIsFunction = require('../internal/baseIsFunction'),\n getNative = require('../internal/getNative');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar Uint8Array = getNative(global, 'Uint8Array');\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nvar isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 equivalents which return 'object' for typed array constructors.\n return objToString.call(value) == funcTag;\n};\n\nmodule.exports = isFunction;\n","var escapeRegExp = require('../string/escapeRegExp'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n escapeRegExp(fnToString.call(hasOwnProperty))\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (objToString.call(value) == funcTag) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var getNative = require('../internal/getNative'),\n isArguments = require('./isArguments'),\n shimIsPlainObject = require('../internal/shimIsPlainObject'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar getPrototypeOf = getNative(Object, 'getPrototypeOf');\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nvar isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) {\n if (!(value && objToString.call(value) == objectTag) || (!support.argsTag && isArguments(value))) {\n return false;\n }\n var valueOf = getNative(value, 'valueOf'),\n objProto = valueOf && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);\n\n return objProto\n ? (value == objProto || getPrototypeOf(value) == objProto)\n : shimIsPlainObject(value);\n};\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? null : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it is iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it is invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","var baseToString = require('../internal/baseToString');\n\n/**\n * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).\n * In addition to special characters the forward slash is escaped to allow for\n * easier `eval` use and `Function` compilation.\n */\nvar reRegExpChars = /[.*+?^${}()|[\\]\\/\\\\]/g,\n reHasRegExpChars = RegExp(reRegExpChars.source);\n\n/**\n * Escapes the `RegExp` special characters \"\\\", \"/\", \"^\", \"$\", \".\", \"|\", \"?\",\n * \"*\", \"+\", \"(\", \")\", \"[\", \"]\", \"{\" and \"}\" in `string`.\n *\n * @static\n * @memberOf _\n * @category String\n * @param {string} [string=''] The string to escape.\n * @returns {string} Returns the escaped string.\n * @example\n *\n * _.escapeRegExp('[lodash](https://lodash.com/)');\n * // => '\\[lodash\\]\\(https:\\/\\/lodash\\.com\\/\\)'\n */\nfunction escapeRegExp(string) {\n string = baseToString(string);\n return (string && reHasRegExpChars.test(string))\n ? string.replace(reRegExpChars, '\\\\$&')\n : string;\n}\n\nmodule.exports = escapeRegExp;\n","/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Used to detect DOM support. */\nvar document = (document = global.window) ? document.document : null;\n\n/**\n * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if the `toStringTag` of `arguments` objects is resolvable\n * (all but Firefox < 4, IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.argsTag = objToString.call(arguments) == argsTag;\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if the `toStringTag` of DOM nodes is resolvable (all but IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nodeTag = objToString.call(document) != objectTag;\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n\n /**\n * Detect if the DOM is supported.\n *\n * @memberOf _.support\n * @type boolean\n */\n try {\n support.dom = document.createDocumentFragment().nodeType === 11;\n } catch(e) {\n support.dom = false;\n }\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\nvar isEnumerableOn = function (obj) {\n\treturn function isEnumerable(prop) {\n\t\treturn propIsEnumerable.call(obj, prop);\n\t};\n};\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = Object(target);\n\tvar s, source, i, props;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = Object(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tprops.push.apply(props, Object.getOwnPropertySymbols(source).filter(isEnumerableOn(source)));\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\nassignShim.shim = function shimObjectAssign() {\n\tif (Object.assign && Object.preventExtensions) {\n\t\tvar assignHasPendingExceptions = (function () {\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t}());\n\t\tif (assignHasPendingExceptions) {\n\t\t\tdelete Object.assign;\n\t\t}\n\t}\n\tif (!Object.assign) {\n\t\tdefineProperties(Object, {\n\t\t\tassign: assignShim\n\t\t});\n\t}\n\treturn Object.assign || assignShim;\n};\n\nmodule.exports = assignShim;\n\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj });\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tforeach(keys(map), function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar ctor = object.constructor;\n\t\tvar skipConstructor = ctor && ctor.prototype === object;\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]'\n\t\t\t&& value !== null\n\t\t\t&& typeof value === 'object'\n\t\t\t&& typeof value.length === 'number'\n\t\t\t&& value.length >= 0\n\t\t\t&& toStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}) {\n // Add standard Aria and Tabindex info\n props = assign({\n className: this.buildCSSClass(),\n 'role': 'button',\n 'type': 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite', // let the screen reader user know that the text of the button may change\n tabIndex: 0\n }, props);\n\n let el = super.createEl(tag, props);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick();\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
\n *
Button
\n *
\n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n * This is used for merging options for child components. We\n * want it to be easy to override individual options on a child\n * component without having to rewrite all the other default options.\n * ```js\n * Parent.prototype.options_ = {\n * children: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * children: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * children: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} attributes An object of element attributes that should be set on the element\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, attributes) {\n return Dom.createEl(tagName, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // -> \n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
myButton\n * // -> myButton === myComonent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * children: {\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_.children = {\n * myChildComponent: {\n * myChildOption: true\n * }\n * }\n * ```\n * // Or when creating the component\n * ```js\n * var myComp = new MyComponent(player, {\n * children: {\n * myChildComponent: {\n * myChildOption: true\n * }\n * }\n * });\n * ```\n * The children option can also be an Array of child names or\n * child options objects (that also include a 'name' key).\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'muteToggle',\n 'volumeControl',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n * \n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`,\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech\n && this.player().tech['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: {\n 'seekBar': {}\n }\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder',\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: {\n 'loadProgressBar': {},\n 'playProgressBar': {}\n },\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl({\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {Object} props An object of properties \n * @return {Element}\n * @method createEl\n */\n createEl(props) {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech && this.player().tech['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech && this.player().tech['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n innerHTML: 'Current Time ' + '0:00', // label the current time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n innerHTML: `${this.localize('Duration Time')} 0:00`, // label the duration time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display \n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n innerHTML: `${this.localize('Remaining Time')} -0:00`, // label the remaining time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
/
'\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar',\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: {\n 'volumeLevel': {}\n },\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: {\n 'volumeBar': {}\n }\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using a horizontal\n // slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well, since that will\n // need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n this.addClass('vjs-menu-button');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vc = new VolumeBar(this.player_, this.options_.volumeBar);\n\n vc.on('focus', function() {\n menu.lockShowing();\n });\n vc.on('blur', function() {\n menu.unlockShowing();\n });\n menu.addChild(vc);\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extends.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extends(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendsFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendsFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
`\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc \n * @return {Element}\n * @method createEl\n */\n createEl(type, props) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props));\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n plugins[name].playerOptions = playerOptionsCopy;\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive_ = true;\n this.reportUserActivity();\n this.listenForUserActivity();\n\n this.on('fullscreenchange', this.handleFullscreenChange);\n this.on('stageclick', this.handleStageClick);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech) { this.tech.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech\n */\n loadTech(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech) {\n this.unloadTech();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n var techReady = Fn.bind(this, function() {\n this.triggerReady();\n });\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech = new techComponent(techOptions);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech);\n\n this.on(this.tech, 'ready', this.handleTechReady);\n this.on(this.tech, 'usenativecontrols', this.handleTechUseNativeControls);\n\n // Listen to every HTML5 events and trigger them back on the player for the plugins\n this.on(this.tech, 'loadstart', this.handleTechLoadStart);\n this.on(this.tech, 'waiting', this.handleTechWaiting);\n this.on(this.tech, 'canplay', this.handleTechCanPlay);\n this.on(this.tech, 'canplaythrough', this.handleTechCanPlayThrough);\n this.on(this.tech, 'playing', this.handleTechPlaying);\n this.on(this.tech, 'ended', this.handleTechEnded);\n this.on(this.tech, 'seeking', this.handleTechSeeking);\n this.on(this.tech, 'seeked', this.handleTechSeeked);\n this.on(this.tech, 'play', this.handleTechPlay);\n this.on(this.tech, 'firstplay', this.handleTechFirstPlay);\n this.on(this.tech, 'pause', this.handleTechPause);\n this.on(this.tech, 'progress', this.handleTechProgress);\n this.on(this.tech, 'durationchange', this.handleTechDurationChange);\n this.on(this.tech, 'fullscreenchange', this.handleTechFullscreenChange);\n this.on(this.tech, 'error', this.handleTechError);\n this.on(this.tech, 'suspend', this.handleTechSuspend);\n this.on(this.tech, 'abort', this.handleTechAbort);\n this.on(this.tech, 'emptied', this.handleTechEmptied);\n this.on(this.tech, 'stalled', this.handleTechStalled);\n this.on(this.tech, 'loadedmetadata', this.handleTechLoadedMetaData);\n this.on(this.tech, 'loadeddata', this.handleTechLoadedData);\n this.on(this.tech, 'timeupdate', this.handleTechTimeUpdate);\n this.on(this.tech, 'ratechange', this.handleTechRateChange);\n this.on(this.tech, 'volumechange', this.handleTechVolumeChange);\n this.on(this.tech, 'texttrackchange', this.onTextTrackChange);\n this.on(this.tech, 'loadedmetadata', this.updateStyleEl_);\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech.ready(techReady, true);\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech\n */\n unloadTech() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech.dispose();\n\n this.tech = false;\n }\n\n /**\n * Add playback technology listeners\n *\n * @method addTechControlsListeners\n */\n addTechControlsListeners() {\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech, 'mousedown', this.handleTechClick);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech, 'touchstart', this.handleTechTouchStart);\n this.on(this.tech, 'touchmove', this.handleTechTouchMove);\n this.on(this.tech, 'touchend', this.handleTechTouchEnd);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech, 'tap', this.handleTechTap);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners\n */\n removeTechControlsListeners() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech, 'tap', this.handleTechTap);\n this.off(this.tech, 'touchstart', this.handleTechTouchStart);\n this.off(this.tech, 'touchmove', this.handleTechTouchMove);\n this.off(this.tech, 'touchend', this.handleTechTouchEnd);\n this.off(this.tech, 'mousedown', this.handleTechClick);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @private\n * @method handleTechReady\n */\n handleTechReady() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall('setVolume', this.cache_.volume);\n }\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the native controls are used\n *\n * @private\n * @method handleTechUseNativeControls\n */\n handleTechUseNativeControls() {\n this.usingNativeControls(true);\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @event loadstart\n */\n handleTechLoadStart() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @event play\n */\n handleTechPlay() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @event waiting\n */\n handleTechWaiting() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplay\n */\n handleTechCanPlay() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplaythrough\n */\n handleTechCanPlayThrough() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event playing\n */\n handleTechPlaying() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @event seeking\n */\n handleTechSeeking() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @event seeked\n */\n handleTechSeeked() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @event firstplay\n */\n handleTechFirstPlay() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @event pause\n */\n handleTechPause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @event progress\n */\n handleTechProgress() {\n this.trigger('progress');\n\n // Add custom event for when source is finished downloading.\n if (this.bufferedPercent() === 1) {\n this.trigger('loadedalldata');\n }\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @event ended\n */\n handleTechEnded() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @event durationchange\n */\n handleTechDurationChange() {\n this.updateDuration();\n this.trigger('durationchange');\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @method handleTechClick\n */\n handleTechClick(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @method handleTechTap\n */\n handleTechTap() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @method handleTechTouchStart\n */\n handleTechTouchStart() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @method handleTechTouchMove\n */\n handleTechTouchMove() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @method handleTechTouchEnd\n */\n handleTechTouchEnd(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Update the duration of the player using the tech\n *\n * @private\n * @method updateDuration\n */\n updateDuration() {\n // Allows for caching value instead of asking player each time.\n // We need to get the techGet response and check for a value so we don't\n // accidentally cause the stack to blow up.\n var duration = this.techGet('duration');\n if (duration) {\n if (duration < 0) {\n duration = Infinity;\n }\n this.duration(duration);\n // Determine if the stream is live and propagate styles down to UI.\n if (duration === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n }\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @event fullscreenchange\n */\n handleFullscreenChange() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick\n */\n handleStageClick() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @method handleTechFullscreenChange\n */\n handleTechFullscreenChange(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @event error\n */\n handleTechError() {\n this.error(this.tech.error().code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @event suspend\n */\n handleTechSuspend() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @event abort\n */\n handleTechAbort() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @event emptied\n */\n handleTechEmptied() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @event stalled\n */\n handleTechStalled() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @event loadedmetadata\n */\n handleTechLoadedMetaData() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @event loaddata\n */\n handleTechLoadedData() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @event timeupdate\n */\n handleTechTimeUpdate() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @event ratechange\n */\n handleTechRateChange() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @event volumechange\n */\n handleTechVolumeChange() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @event texttrackchange\n */\n onTextTrackChange() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @method techCall\n */\n techCall(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech && !this.tech.isReady_) {\n this.tech.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @method techGet\n */\n techGet(method) {\n if (this.tech && this.tech.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName} playback technology element.`, e);\n this.tech.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds !== undefined) {\n\n // cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = parseFloat(seconds);\n\n return this;\n }\n\n if (this.cache_.duration === undefined) {\n this.updateDuration();\n }\n\n return this.cache_.duration || 0;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall('setMuted', muted);\n return this;\n }\n return this.techGet('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech.supportsFullScreen()) {\n this.techCall('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech && this.tech['featuresPlaybackRate']) {\n return this.techGet('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech && this.tech['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech && this.tech['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech && this.tech['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech && this.tech['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech && this.tech['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech && this.tech.videoWidth && this.tech.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech && this.tech.videoHeight && this.tech.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall('initialTime'); },\n // startOffsetTime: function(){ return this.techCall('startOffsetTime'); },\n // played: function(){ return this.techCall('played'); },\n // seekable: function(){ return this.techCall('seekable'); },\n // videoTracks: function(){ return this.techCall('videoTracks'); },\n // audioTracks: function(){ return this.techCall('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall('defaultPlaybackRate'); },\n // mediaGroup: function(){ return this.techCall('mediaGroup'); },\n // controller: function(){ return this.techCall('controller'); },\n // defaultMuted: function(){ return this.techCall('defaultMuted'); }\n\n // TODO\n // currentSrcList: the array of sources including other formats and bitrates\n // playList: array of source lists in order of playback\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n return createTimeRange(0, this.el_.vjs_getProperty('buffered'));\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'error,networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n const msg = 'FLASH: '+err;\n\n if (err === 'srcnotfound') {\n tech.trigger('error', { code: 4, message: msg });\n\n // errors we haven't categorized into the media errors\n } else {\n tech.trigger('error', msg);\n }\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) { this.el_.src = src; }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){ this.el_.load(); }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i 0) {\n this.trigger('loadstart');\n }\n // Allow the tech ready event to handle synchronisity\n }, true);\n }\n\n /* Fallbacks for unsupported event types\n ================================================================================ */\n // Manually trigger progress events based on changes to the buffered amount\n // Many flash players and older HTML5 browsers don't send progress or progress-like events\n /**\n * Turn on progress events\n *\n * @method manualProgressOn\n */\n manualProgressOn() {\n this.on('durationchange', this.onDurationChange);\n\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress);\n }\n\n /**\n * Turn off progress events\n *\n * @method manualProgressOff\n */\n manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n\n this.off('durationchange', this.onDurationChange);\n }\n\n /**\n * Track progress\n *\n * @method trackProgress\n */\n trackProgress() {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(Fn.bind(this, function(){\n // Don't trigger unless buffered amount is greater than last time\n\n let numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n\n /**\n * Update duration\n *\n * @method onDurationChange\n */\n onDurationChange() {\n this.duration_ = this.duration();\n }\n\n /**\n * Create and get TimeRange object for buffering\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n return createTimeRange(0, 0);\n }\n\n /**\n * Get buffered percent\n *\n * @return {Number}\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n\n /**\n * Stops tracking progress by clearing progress interval\n *\n * @method stopTrackingProgress\n */\n stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n\n /*! Time Tracking -------------------------------------------------------------- */\n /**\n * Set event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOn\n */\n manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n\n this.on('play', this.trackCurrentTime);\n this.on('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Remove event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOff\n */\n manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime);\n this.off('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Tracks current time\n *\n * @method trackCurrentTime\n */\n trackCurrentTime() {\n if (this.currentTimeInterval) { this.stopTrackingCurrentTime(); }\n this.currentTimeInterval = this.setInterval(function(){\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }, 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }\n\n /**\n * Turn off play progress tracking (when paused or dragging)\n *\n * @method stopTrackingCurrentTime\n */\n stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }\n\n /**\n * Turn off any manual progress or timeupdate tracking\n *\n * @method dispose\n */\n dispose() {\n // clear out text tracks because we can't reuse them between techs\n let tt = this.textTracks();\n let i = tt.length;\n while(i--) {\n this.removeRemoteTextTrack(tt[i]);\n }\n\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) { this.manualProgressOff(); }\n\n if (this.manualTimeUpdates) { this.manualTimeUpdatesOff(); }\n\n super.dispose();\n }\n\n /**\n * Return the time ranges that have been played through for the\n * current source. This implementation is incomplete. It does not\n * track the played time ranges, only whether the source has played\n * at all or not.\n * @return {TimeRangeObject} a single time range if this video has\n * played or an empty set of ranges if not.\n * @method played\n */\n played() {\n if (this.hasStarted_) {\n return createTimeRange(0, 0);\n }\n return createTimeRange();\n }\n\n /**\n * Set current time\n *\n * @method setCurrentTime\n */\n setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) { this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true }); }\n }\n\n /**\n * Initialize texttrack listeners\n *\n * @method initTextTrackListeners\n */\n initTextTrackListeners() {\n let textTrackListChanges = Fn.bind(this, function() {\n this.trigger('texttrackchange');\n });\n\n let tracks = this.textTracks();\n\n if (!tracks) return;\n\n tracks.addEventListener('removetrack', textTrackListChanges);\n tracks.addEventListener('addtrack', textTrackListChanges);\n\n this.on('dispose', Fn.bind(this, function() {\n tracks.removeEventListener('removetrack', textTrackListChanges);\n tracks.removeEventListener('addtrack', textTrackListChanges);\n }));\n }\n\n /**\n * Emulate texttracks\n *\n * @method emulateTextTracks\n */\n emulateTextTracks() {\n if (!window['WebVTT'] && this.el().parentNode != null) {\n let script = document.createElement('script');\n script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';\n this.el().parentNode.appendChild(script);\n window['WebVTT'] = true;\n }\n\n let tracks = this.textTracks();\n if (!tracks) {\n return;\n }\n\n let textTracksChanges = Fn.bind(this, function() {\n let updateDisplay = () => this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech && player.tech['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks \n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech && this.player_.tech['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks \n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks \n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list \n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n // \n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
\n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
`;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport XHR from '../xhr.js';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n XHR(src, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err);\n }\n\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // Not remembering why we were checking for dash\n // but using setAttribute means you have to use getAttribute\n\n // The check for dash checks for the aria- * attributes, like aria-label, aria-valuemin.\n // The additional check for \"role\" is because the default method for adding attributes does not\n // add the attribute \"role\". My guess is because it's not a valid attribute in some namespaces, although\n // browsers handle the attribute just fine. The W3C allows for aria- * attributes to be used in pre-HTML5 docs.\n // http://www.w3.org/TR/wai-aria-primer/#ariahtml. Using setAttribute gets around this problem.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {Number} start Start time in seconds\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @private\n * @method createTimeRange\n */\nexport function createTimeRange(start, end){\n if (start === undefined && end === undefined) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: 1,\n start: function() { return start; },\n end: function() { return end; }\n };\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\n\nimport assign from 'object.assign';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport xhr from './xhr.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendsFn from './extends.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = stylesheet.createStyleElement('vjs-styles-defaults');\nlet head = document.querySelector('head');\nhead.insertBefore(style, head.firstChild);\nstylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n`);\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extends' doc for more info)\n * var MySpecialButton = videojs.extends(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extends` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extends(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extends\n */\nvideojs.extends = extendsFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number} start Start time in seconds\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = createTimeRange;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Simple http request for retrieving external files (e.g. text tracks)\n *\n * ##### Example\n *\n * // using url string\n * videojs.xhr('http://example.com/myfile.vtt', function(error, response, responseBody){});\n *\n * // or options block\n * videojs.xhr({\n * uri: 'http://example.com/myfile.vtt',\n * method: 'GET',\n * responseType: 'text'\n * }, function(error, response, responseBody){\n * if (error) {\n * // log the error\n * } else {\n * // successful, do something with the response\n * }\n * });\n *\n *\n * API is modeled after the Raynos/xhr.\n * https://github.com/Raynos/xhr/blob/master/index.js\n *\n * @param {Object|String} options Options block or URL string\n * @param {Function} callback The callback function\n * @returns {Object} The request\n */\nvideojs.xhr = xhr;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n","/**\n * @file xhr.js\n */\nimport * as Url from './utils/url.js';\nimport log from './utils/log.js';\nimport mergeOptions from './utils/merge-options.js';\nimport window from 'global/window';\n\n/*\n * Simple http request for retrieving external files (e.g. text tracks)\n * ##### Example\n * // using url string\n * videojs.xhr('http://example.com/myfile.vtt', function(error, response, responseBody){});\n *\n * // or options block\n * videojs.xhr({\n * uri: 'http://example.com/myfile.vtt',\n * method: 'GET',\n * responseType: 'text'\n * }, function(error, response, responseBody){\n * if (error) {\n * // log the error\n * } else {\n * // successful, do something with the response\n * }\n * });\n * /////////////\n * API is modeled after the Raynos/xhr, which we hope to use after\n * getting browserify implemented.\n * https://github.com/Raynos/xhr/blob/master/index.js\n *\n * @param {Object|String} options Options block or URL string\n * @param {Function} callback The callback function\n * @return {Object} The request\n * @method xhr\n */\nvar xhr = function(options, callback){\n let abortTimeout;\n\n // If options is a string it's the url\n if (typeof options === 'string') {\n options = {\n uri: options\n };\n }\n\n // Merge with default options\n options = mergeOptions({\n method: 'GET',\n timeout: 45 * 1000\n }, options);\n\n callback = callback || function(){};\n\n let XHR = window.XMLHttpRequest;\n\n if (typeof XHR === 'undefined') {\n // Shim XMLHttpRequest for older IEs\n XHR = function () {\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch (e) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch (f) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP'); } catch (g) {}\n throw new Error('This browser does not support XMLHttpRequest.');\n };\n }\n\n let request = new XHR();\n // Store a reference to the url on the request instance\n request.uri = options.uri;\n\n let urlInfo = Url.parseUrl(options.uri);\n let winLoc = window.location;\n\n let successHandler = function(){\n window.clearTimeout(abortTimeout);\n callback(null, request, request.response || request.responseText);\n };\n\n let errorHandler = function(err){\n window.clearTimeout(abortTimeout);\n\n if (!err || typeof err === 'string') {\n err = new Error(err);\n }\n\n callback(err, request);\n };\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n const crossOrigin = (urlInfo.protocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n // XDomainRequest -- Use for IE if XMLHTTPRequest2 isn't available\n // 'withCredentials' is only available in XMLHTTPRequest2\n // Also XDomainRequest has a lot of gotchas, so only use if cross domain\n if (crossOrigin && window.XDomainRequest && !('withCredentials' in request)) {\n request = new window.XDomainRequest();\n request.onload = successHandler;\n request.onerror = errorHandler;\n // These blank handlers need to be set to fix ie9\n // http://cypressnorth.com/programming/internet-explorer-aborting-ajax-requests-fixed/\n request.onprogress = function(){};\n request.ontimeout = function(){};\n\n // XMLHTTPRequest\n } else {\n const fileUrl = (urlInfo.protocol === 'file:' || winLoc.protocol === 'file:');\n\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n if (request.timedout) {\n return errorHandler('timeout');\n }\n\n if (request.status === 200 || fileUrl && request.status === 0) {\n successHandler();\n } else {\n errorHandler();\n }\n }\n };\n\n if (options.timeout) {\n abortTimeout = window.setTimeout(function() {\n if (request.readyState !== 4) {\n request.timedout = true;\n request.abort();\n }\n }, options.timeout);\n }\n }\n\n // open the connection\n try {\n // Third arg is async, or ignored by XDomainRequest\n request.open(options.method || 'GET', options.uri, true);\n } catch(err) {\n return errorHandler(err);\n }\n\n // withCredentials only supported by XMLHttpRequest2\n if(options.withCredentials) {\n request.withCredentials = true;\n }\n\n if (options.responseType) {\n request.responseType = options.responseType;\n }\n\n // send the request\n try {\n request.send();\n } catch(err) {\n return errorHandler(err);\n }\n\n return request;\n};\n\nexport default xhr;\n"]}
\ No newline at end of file
+{"version":3,"file":"video.min.js","sources":["node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-pack/_prelude.js","node_modules/global/document.js","node_modules/global/window.js","node_modules/grunt-browserify/node_modules/browserify/node_modules/browser-resolve/empty.js","node_modules/lodash-compat/function/restParam.js","node_modules/lodash-compat/internal/arrayCopy.js","node_modules/lodash-compat/internal/arrayEach.js","node_modules/lodash-compat/internal/baseCopy.js","node_modules/lodash-compat/internal/baseFor.js","node_modules/lodash-compat/internal/baseForIn.js","node_modules/lodash-compat/internal/baseMerge.js","node_modules/lodash-compat/internal/baseMergeDeep.js","node_modules/lodash-compat/internal/baseProperty.js","node_modules/lodash-compat/internal/bindCallback.js","node_modules/lodash-compat/internal/createAssigner.js","node_modules/lodash-compat/internal/createBaseFor.js","node_modules/lodash-compat/internal/getLength.js","node_modules/lodash-compat/internal/getNative.js","node_modules/lodash-compat/internal/isArrayLike.js","node_modules/lodash-compat/internal/isHostObject.js","node_modules/lodash-compat/internal/isIndex.js","node_modules/lodash-compat/internal/isIterateeCall.js","node_modules/lodash-compat/internal/isLength.js","node_modules/lodash-compat/internal/isObjectLike.js","node_modules/lodash-compat/internal/shimKeys.js","node_modules/lodash-compat/internal/toObject.js","node_modules/lodash-compat/lang/isArguments.js","node_modules/lodash-compat/lang/isArray.js","node_modules/lodash-compat/lang/isFunction.js","node_modules/lodash-compat/lang/isNative.js","node_modules/lodash-compat/lang/isObject.js","node_modules/lodash-compat/lang/isPlainObject.js","node_modules/lodash-compat/lang/isString.js","node_modules/lodash-compat/lang/isTypedArray.js","node_modules/lodash-compat/lang/toPlainObject.js","node_modules/lodash-compat/object/keys.js","node_modules/lodash-compat/object/keysIn.js","node_modules/lodash-compat/object/merge.js","node_modules/lodash-compat/support.js","node_modules/lodash-compat/utility/identity.js","node_modules/object.assign/index.js","node_modules/object.assign/node_modules/define-properties/index.js","node_modules/object.assign/node_modules/define-properties/node_modules/foreach/index.js","node_modules/object.assign/node_modules/object-keys/index.js","node_modules/object.assign/node_modules/object-keys/isArguments.js","node_modules/safe-json-parse/tuple.js","src/js/big-play-button.js","src/js/button.js","src/js/component.js","src/js/control-bar/control-bar.js","src/js/control-bar/fullscreen-toggle.js","src/js/control-bar/live-display.js","src/js/control-bar/mute-toggle.js","src/js/control-bar/play-toggle.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-button.js","src/js/control-bar/playback-rate-menu/playback-rate-menu-item.js","src/js/control-bar/progress-control/load-progress-bar.js","src/js/control-bar/progress-control/play-progress-bar.js","src/js/control-bar/progress-control/progress-control.js","src/js/control-bar/progress-control/seek-bar.js","src/js/control-bar/spacer-controls/custom-control-spacer.js","src/js/control-bar/spacer-controls/spacer.js","src/js/control-bar/text-track-controls/caption-settings-menu-item.js","src/js/control-bar/text-track-controls/captions-button.js","src/js/control-bar/text-track-controls/chapters-button.js","src/js/control-bar/text-track-controls/chapters-track-menu-item.js","src/js/control-bar/text-track-controls/off-text-track-menu-item.js","src/js/control-bar/text-track-controls/subtitles-button.js","src/js/control-bar/text-track-controls/text-track-button.js","src/js/control-bar/text-track-controls/text-track-menu-item.js","src/js/control-bar/time-controls/current-time-display.js","src/js/control-bar/time-controls/duration-display.js","src/js/control-bar/time-controls/remaining-time-display.js","src/js/control-bar/time-controls/time-divider.js","src/js/control-bar/volume-control/volume-bar.js","src/js/control-bar/volume-control/volume-control.js","src/js/control-bar/volume-control/volume-level.js","src/js/control-bar/volume-menu-button.js","src/js/error-display.js","src/js/event-target.js","src/js/extends.js","src/js/fullscreen-api.js","src/js/loading-spinner.js","src/js/media-error.js","src/js/menu/menu-button.js","src/js/menu/menu-item.js","src/js/menu/menu.js","src/js/player.js","src/js/plugins.js","src/js/poster-image.js","src/js/setup.js","src/js/slider/slider.js","src/js/tech/flash-rtmp.js","src/js/tech/flash.js","src/js/tech/html5.js","src/js/tech/loader.js","src/js/tech/tech.js","src/js/tracks/text-track-cue-list.js","src/js/tracks/text-track-display.js","src/js/tracks/text-track-enums.js","src/js/tracks/text-track-list-converter.js","src/js/tracks/text-track-list.js","src/js/tracks/text-track-settings.js","src/js/tracks/text-track.js","src/js/utils/browser.js","src/js/utils/buffer.js","src/js/utils/create-deprecation-proxy.js","src/js/utils/dom.js","src/js/utils/events.js","src/js/utils/fn.js","src/js/utils/format-time.js","src/js/utils/guid.js","src/js/utils/log.js","src/js/utils/merge-options.js","src/js/utils/stylesheet.js","src/js/utils/time-ranges.js","src/js/utils/to-title-case.js","src/js/utils/url.js","src/js/video.js","src/js/xhr.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length",1,"_dereq_","topLevel","minDoc","document","doccy","min-document",2,3,4,"restParam","func","start","TypeError","FUNC_ERROR_TEXT","nativeMax","undefined","args","arguments","index","rest","Array","otherArgs","apply","Math","max",5,"arrayCopy","source","array",6,"arrayEach","iteratee",7,"baseCopy","props","object","key",8,"createBaseFor","baseFor","./createBaseFor",9,"baseForIn","keysIn","../object/keysIn","./baseFor",10,"baseMerge","customizer","stackA","stackB","isObject","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","value","result","isCommon","../lang/isArray","../lang/isObject","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike",11,"mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy",12,"baseProperty","toObject","./toObject",13,"bindCallback","thisArg","argCount","identity","collection","accumulator","other","../utility/identity",14,"createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall",15,"fromRight","keysFunc","iterable",16,"getLength","./baseProperty",17,"getNative","isNative","../lang/isNative",18,"isLength","./getLength","./isLength",19,"isHostObject","Object","toString",20,"isIndex","reIsUint","test","MAX_SAFE_INTEGER",21,"type","./isIndex",22,23,24,"shimKeys","propsLength","allowIndexes","isString","hasOwnProperty","objectProto","prototype","../lang/isString",25,"support","unindexedChars","charAt","../support",26,"propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike",27,"arrayTag","objToString","nativeIsArray","../internal/getNative","../internal/isLength",28,"isFunction","funcTag","./isObject",29,"reIsNative","fnToString","reIsHostCtor","Function","RegExp","replace","../internal/isHostObject","./isFunction",30,31,"Ctor","objectTag","constructor","ownLast","subValue","../internal/baseForIn","./isArguments",32,"stringTag",33,"typedArrayTags","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag",34,"../internal/baseCopy",35,"nativeKeys","enumPrototypes","../internal/shimKeys",36,"proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","valueOf","../internal/arrayEach","../internal/isIndex","../lang/isFunction",37,"merge","../internal/baseMerge","../internal/createAssigner",38,"arrayProto","splice","x","0","y","spliceObjects",39,40,"canBeObject","obj","hasSymbols","Symbol","defineProperties","propIsEnumerable","assignShim","target","syms","objTarget","getOwnPropertySymbols","shim","assignHasPendingExceptions","assign","preventExtensions","thrower","define-properties","object-keys",41,"foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","enumerable","_","supportsDescriptors","name","predicate","configurable","writable","map","predicates","concat",42,"hasOwn","ctx","k",43,"has","slice","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$window","$console","$parent","$self","$frames","$webkitIndexedDB","$webkitStorageInfo","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","j","skipConstructor","keysWorksWithArguments","originalKeys",44,"str","callee",45,"SafeParseTuple","reviver","_componentJs2","_interopRequireDefault","_componentJs","_classCallCheck","BigPlayButton","_Button","player","options","buildCSSClass","__esModule","newObj","default","Constructor","instance","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_component2","_component","_objectAssign","Button","_Component","on","handleBlur","_objectAssign2","role","aria-live","el","controlTextEl_","innerHTML","localize","controlText_","handleFocus","Events","_globalDocument2","Fn","bind","handleKeyPress","event","which","preventDefault","handleClick","_interopRequireWildcard","_globalWindow2","_globalWindow","Dom","_utilsDomJs","Component","player_","id_","id","Guid","newGUID","el_","createEl","childIndex_","childNameIndex_","reportTouchActivity","trigger","bubbles","children_","dispose","removeElData","tagName","attributes","string","languages","language","children","getChildById","addChild","child","componentName","componentClassName","componentClass","_utilsToTitleCaseJs2","ComponentClass","getComponent","component","removeChild","getChild","childFound","options_","parentOptions","_this","handleAdd","opts","playerOptions","_name","first","second","removeOnDispose","_this2","off","cleanRemover","guid","third","nodeName","one","_this3","_arguments","newFunc","ready","sync","isReady_","readyQueue","readyQueue_","hasClass","classToCheck","hasElClass","addElClass","classToAdd","removeClass","classToRemove","removeElClass","show","dimension","num","skipListeners","widthOrHeight","val","style","emitTapEvents","touchStart","touchTimeThreshold","couldBeTap","touches","firstTouch","xdiff","pageX","touchDistance","tapMovementThreshold","noTap","touchTime","Date","getTime","enableTouchActivity","report","reportUserActivity","touchHolding","clearInterval","setInterval","touchEnd","setTimeout","timeout","timeoutId","intervalId","comp","init","subObj","extend","_name2","_spacerControlsCustomControlSpacerJs","ControlBar","className","FullscreenToggle","isFullscreen","controlText","LiveDisplay","MuteToggle","update","tech","addClass","vol","muted","level","toMute","handlePlay","handlePause","PlayToggle","play","pause","_menuMenuJs2","_menuMenuJs","PlaybackRateMenuButton","_MenuButton","updateVisibility","appendChild","labelEl_","menu","setAttribute","playbackRate","currentRate","newRate","playbackRates","playbackRateSupported","updateLabel","PlaybackRateMenuItem","_MenuItem","label","rate","buffered","percentify","time","end","percent","part","width","bufferedEnd","_utilsFormatTimeJs","updateDataAttr","_seekBarJs","ProgressControl","_Slider","updateARIAAttributes","aria-label","scrubbing","getCache","currentTime","getPercent","toFixed","_utilsFormatTimeJs2","duration","SeekBar","newTime","videoWasPlaying","stepForward","stepBack","_sliderSliderJs2","CustomControlSpacer","_Spacer","Spacer","_TextTrackMenuItem","CaptionSettingsMenuItem","_captionSettingsMenuItemJs2","_captionSettingsMenuItemJs","_TextTrackButton","CaptionsButton","threshold","hide","items","kind","kind_","_textTrackMenuItemJs2","_textTrackMenuItemJs","_chaptersTrackMenuItemJs2","_chaptersTrackMenuItemJs","ChaptersButton","createItems","tracks","textTracks","createMenu","track","cues","chaptersTrack","contentEl","tabIndex","cue","mi","_utilsFnJs","ChaptersTrackMenuItem","addEventListener","startTime","OffTextTrackMenuItem","selected","handleTracksChange","_offTextTrackMenuItemJs","TextTrackButton","updateHandler","removeEventListener","_offTextTrackMenuItemJs2","_globalDocument","TextTrackMenuItem","onchange","Event","err","dispatchEvent","updateContent","CurrentTimeDisplay","contentEl_","DurationDisplay","RemainingTimeDisplay","formattedTime","remainingTime","localizedText","TimeDivider","_sliderSliderJs","_volumeLevelJs","volume","calculateDistance","VolumeBar","VolumeControl","_volumeBarJs","VolumeLevel","_volumeControlVolumeBarJs","VolumeMenuButton","vertical","inline","volumeBar","volumeUpdate","orientationClass","contentElType","unlockShowing","vc","./utils/dom.js",79,"_utilsEventsJs","EventTarget","allowedEvents_","ael","_utilsLog","_utilsLog2","subClassMethods","methods","FullscreenApi","apiMap","browserApi","LoadingSpinner","MediaError","message","status","errorTypes","_buttonJs2","_buttonJs","_utilsToTitleCaseJs","MenuButton","title","buttonPressed_","unpressButton","focus","MenuItem","_selected","Menu","append","_utilsBrowserJs","_utilsLogJs2","_utilsLogJs","_utilsMergeOptionsJs","_tracksTextTrackListConverterJs","_controlBarControlBarJs","tagAttributes","getElAttributes","languagesToLower","toLowerCase","_utilsMergeOptionsJs2","plugins","getOwnPropertyNames","forEach","playerOptionsCopy","isAudio","controls","Player","styleEl_","parentNode","players","removeAttribute","defaultsStyleEl","querySelector","height","aspectRatio","privDimension","_dimension","parsedVal","parseFloat","updateStyleEl_","fluid","bool","ratio","aspectRatio_","videoWidth","videoHeight","ratioParts","split","width_","height_","ratioMultiplier","loadTech","techName","disposeMediaElement","techReady","triggerReady","techOptions","nativeControlsForTouch","playerId","techId","textTracks_","preload","loop","poster","currentType_","cache_","src","techComponent","_tracksTextTrackListConverterJs2","jsonToTextTracks","textTracksJson_","handleTechReady","handleTechLoadStart","handleTechWaiting","handleTechCanPlay","handleTechCanPlayThrough","handleTechPlaying","handleTechEnded","handleTechSeeking","handleTechSeeked","handleTechPlay","handleTechFirstPlay","handleTechPause","handleTechProgress","handleTechDurationChange","handleTechFullscreenChange","handleTechSuspend","handleTechEmptied","handleTechStalled","handleTechLoadedMetaData","handleTechVolumeChange","onTextTrackChange","usingNativeControls","addTechControlsListeners","removeTechControlsListeners","handleTechClick","handleTechTouchMove","handleTechTouchEnd","autoplay","paused","error","hasStarted","_hasStarted","hasStarted_","bufferedPercent","handleTechTap","handleTechTouchStart","userWasActive","userActive","updateDuration","techGet","handleStageClick","data","handleTechError","handleTechAbort","handleTechLoadedData","handleTechTimeUpdate","handleTechRateChange","techCall","method","arg","isScrubbing","scrubbing_","seconds","_utilsBufferJs","percentAsDecimal","fsApi","fullscreenchange","documentFullscreenChange","requestFullscreen","supportsFullScreen","exitFullscreen","isFullWindow","docOrigOverflow","documentElement","overflow","body","exitFullWindow","b","currentTech","sourceList_","load","sourceTech","selectSource","controls_","usingNativeControls_","error_","_mediaErrorJs2","ended","seeking","seekable","userActivity_","userActive_","stopPropagation","listenForUserActivity","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","handleMouseDown","handleMouseUp","clearTimeout","inactivityTimeout","addTextTrack","addRemoteTextTrack","removeRemoteTextTrack","languages_","toJSON","tagOptions","dataSetup","_safeParseTuple","baseOptions","hasChildNodes","childNodes","childName","defaultVolume","posterImage","bigPlayButton","controlBar","_playerJs","PosterImage","fallbackImg_","setSrc","url","_windowLoaded","autoSetup","vids","getElementsByTagName","mediaEls","audios","mediaEl","getAttribute","autoSetupTimeout","vjs","wait","readyState","Slider","bar","barName","playerEvent","handleMouseMove","progress","percentage","box","findElPosition","boxY","top","pageY","changedTouches","min","boxH","boxX","left","boxW","stopImmediatePropagation","vertical_","registerComponent","FlashRtmpDecorator","Flash","streamingFormats","streamToParts","parts","connection","stream","connEnd","indexOf","streamBegin","lastIndexOf","substring","rtmpSourceHandler","attrUpper","attr","toUpperCase","_api","vjs_setProperty","vjs_getProperty","_tech","_utilsUrlJs","_Tech","setSource","objId","eventProxyFunction","errorEventProxyFunction","flashVars","params","wmode","embed","swf","setCurrentTime","vjs_pause","lastSeekTarget_","currentSource_","setPoster","_utilsTimeRangesJs","createTimeRange","ranges","enterFullScreen","_tech2","_readWrite","_readOnly","_createGetter","nativeSourceHandler","canHandleSource","guessMimeType","ext","Url","getFileExtension","video/flv","video/mp4","checkReady","onEvent","swfID","eventName","getEl","version","navigator","description","match","getEmbedCode","flashVarsString","paramsString","attrsString","flashvars","_techJs2","_techJs","Html5","currentSrc","initNetworkState_","nodesLength","nodes","node","featuresNativeTextTracks","remoteTextTracks","addTrack_","removeNodes","handleTextTrackChange_","handleTextTrackChange","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","emulatedTt","tt","handleTextTrackAdd_","clone","cloneNode","createElement","browser","TOUCH_ENABLED","setElAttributes","class","settingsAttrs","overwriteAttrs","setVolume","setMuted","offsetWidth","offsetHeight","video","networkState","HAVE_METADATA","webkitEnterFullScreen","exitFullScreen","webkitExitFullScreen","_src","setPreload","setAutoplay","setControls","setLoop","defaultMuted","played","removeTrack_","TEST_VID","srclang","isSupported","canPlayType","registerSourceHandler","canControlVolume","canControlPlaybackRate","supportsNativeTextTracks","supportsTextTracks","mpegurlRE","patchCanPlayType","IS_OLD_ANDROID","mp4RE","unpatchCanPlayType","firstChild","MediaLoader","_tracksTextTrackList","Tech","featuresProgressEvents","manualProgressOn","featuresTimeupdateEvents","nativeCaptions","nativeTextTracks","initControlsListeners","manualProgress","stopTrackingProgress","progressInterval","numBufferedPercent","onDurationChange","duration_","manualTimeUpdates","trackCurrentTime","stopTrackingCurrentTime","currentTimeInterval","manuallyTriggered","initTextTrackListeners","textTrackListChanges","script","textTracksChanges","updateDisplay","_tracksTextTrackList2","createTrackHelper","withSourceHandlers","handler","handlers","sourceHandlers","selectSourceHandler","sh","srcObj","sourceHandler_","disposeSourceHandler","handleSource","../tracks/text-track","../tracks/text-track-list","../utils/buffer.js","../utils/fn.js","../utils/log.js","../utils/time-ranges.js","global/document","global/window",97,"list","IS_IE8","prop","TextTrackCueList","get","length_","setCues_","cues_","oldLength","defineProp","parseInt","color","opacity","darkGray","lightGray","TextTrackDisplay","clearDisplay","updateForTrack","overrides","getValues","_i","cueDiv","displayState","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","bottom","fontFamily","fontVariant","fontMap","../component","../menu/menu-button.js","../menu/menu-item.js","../menu/menu.js",99,"TextTrackMode","disabled","hidden","showing","trackToJson_","inBandMetadataTrackDispatchType","textTracksToJson","trackEls","querySelectorAll","trackObjs","TextTrackList","tracks_","_eventTarget2","change","addtrack","removetrack","_event","rtrack","getTrackById","getSelectedOptionValue","selectedOption","selectedOptions","selectedIndex","option","TextTrackSettings","persistTextTrackSettings","saveSettings","restoreSettings","textEdge","fgColor","bgColor","bgOpacity","setValues","values","setSelectedOption","_safeJsonParseTuple2","localStorage","getItem","removeItem","ttDisplay","safe-json-parse/tuple",103,"_textTrackCueList2","_textTrackCueList","TextTrack","tech_","TextTrackEnum","TextTrackKind","mode","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","loaded_","ct","active","addCue","removeCue","removed","parseCues","srcContent","parser","loadTrack","_xhrJs2","response","responseBody","O","len","fromIndex","abs","webkitVersionMap","exec","USER_AGENT","IS_IPHONE","IS_IPAD","IS_IPOD","IOS_VERSION","IS_ANDROID","ANDROID_VERSION","major","minor","IS_NATIVE_ANDROID","appleWebkitVersion","bufferedDuration","_timeRangesJs","_logJs","_logJs2","messages","Proxy","_ret","warn","defaultBehaviors","getElementById","properties","propName","parent","getElData","elData","elIdAttr","element","classNames","join","knownBooleans","attrs","attrName","attrVal","onselectstart","getBoundingClientRect","docEl","clientLeft","scrollLeft","pageXOffset","blockTextSelection","_guidJs","elem","_handleMultipleEvents","dispatcher","hash","fixEvent","m","handlersCopy","isImmediatePropagationStopped","removeType","ownerDocument","isPropagationStopped","defaultPrevented","targetData","returnTrue","returnFalse","old","srcElement","relatedTarget","fromElement","toElement","returnValue","cancelBubble","doc","clientX","_cleanUpEvents","detachEvent","ret","context","guide","h","floor",111,"_logType","console","noop","log","history","argsArray","isPlain","mergeOptions","destination","lodash-compat/object/merge",114,"createStyleElement","_start","_end","parseUrl","href","addToBody","div","details","protocol","stylesheet","_utilsStylesheetJs","_player2","_player","_srcJsUtilsMergeOptionsJs","_xhrJs","_extendsJs","_lodashCompatObjectMerge","_techHtml5Js","getPlayers","head","insertBefore","addLanguage","./component","./event-target","./extends.js","./player","./plugins.js","./setup","./tech/flash.js","./tech/html5.js","./utils/browser.js","./utils/create-deprecation-proxy.js","./utils/events.js","./utils/fn.js","./utils/format-time.js","./utils/log.js","./utils/stylesheet.js","./utils/time-ranges.js","./utils/url.js","./xhr.js","object.assign",119,"xhr","callback","abortTimeout","uri","XHR","XMLHttpRequest","ActiveXObject","request","urlInfo","winLoc","location","successHandler","errorHandler","crossOrigin","host","XDomainRequest","onreadystatechange","timedout","fileUrl","abort","onload","onerror","open","withCredentials","responseType"],"mappings":"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AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACvCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACzCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC3BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACfA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACrBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACZA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AClCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACjDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACnCA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC1EA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC/BA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC9CA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxIA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AChGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AC5DA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACxDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;ACtBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;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","sourcesContent":["(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n","/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n","/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n","/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n","var createBaseFor = require('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n","var baseFor = require('./baseFor'),\n keysIn = require('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n","var arrayEach = require('./arrayEach'),\n baseMergeDeep = require('./baseMergeDeep'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isObject = require('../lang/isObject'),\n isObjectLike = require('./isObjectLike'),\n isTypedArray = require('../lang/isTypedArray'),\n keys = require('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n","var arrayCopy = require('./arrayCopy'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isArrayLike = require('./isArrayLike'),\n isPlainObject = require('../lang/isPlainObject'),\n isTypedArray = require('../lang/isTypedArray'),\n toPlainObject = require('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n","var toObject = require('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n","var identity = require('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n","var bindCallback = require('./bindCallback'),\n isIterateeCall = require('./isIterateeCall'),\n restParam = require('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n","var toObject = require('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n","var baseProperty = require('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n","var isNative = require('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n","var getLength = require('./getLength'),\n isLength = require('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n","/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n","/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n","var isArrayLike = require('./isArrayLike'),\n isIndex = require('./isIndex'),\n isObject = require('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n","/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n","/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isIndex = require('./isIndex'),\n isLength = require('./isLength'),\n isString = require('../lang/isString'),\n keysIn = require('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n","var isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n","var isArrayLike = require('../internal/isArrayLike'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n","var getNative = require('../internal/getNative'),\n isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n","var isObject = require('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n","var isFunction = require('./isFunction'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n","/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","var baseForIn = require('../internal/baseForIn'),\n isArguments = require('./isArguments'),\n isHostObject = require('../internal/isHostObject'),\n isObjectLike = require('../internal/isObjectLike'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n","var isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n","var isLength = require('../internal/isLength'),\n isObjectLike = require('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n","var baseCopy = require('../internal/baseCopy'),\n keysIn = require('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n","var getNative = require('../internal/getNative'),\n isArrayLike = require('../internal/isArrayLike'),\n isObject = require('../lang/isObject'),\n shimKeys = require('../internal/shimKeys'),\n support = require('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n","var arrayEach = require('../internal/arrayEach'),\n isArguments = require('../lang/isArguments'),\n isArray = require('../lang/isArray'),\n isFunction = require('../lang/isFunction'),\n isIndex = require('../internal/isIndex'),\n isLength = require('../internal/isLength'),\n isObject = require('../lang/isObject'),\n isString = require('../lang/isString'),\n support = require('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n","var baseMerge = require('../internal/baseMerge'),\n createAssigner = require('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n","/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n","/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n","'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = require('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = require('define-properties');\nvar toObject = Object;\nvar push = Array.prototype.push;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable.call(source, syms[i])) {\n\t\t\t\t\tpush.call(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\ndefineProperties(assignShim, {\n\tshim: function shimObjectAssign() {\n\t\tvar assignHasPendingExceptions = function () {\n\t\t\tif (!Object.assign || !Object.preventExtensions) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t};\n\t\tdefineProperties(\n\t\t\tObject,\n\t\t\t{ assign: assignShim },\n\t\t\t{ assign: assignHasPendingExceptions }\n\t\t);\n\t\treturn Object.assign || assignShim;\n\t}\n});\n\nmodule.exports = assignShim;\n","'use strict';\n\nvar keys = require('object-keys');\nvar foreach = require('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj, enumerable: false });\n /* eslint-disable no-unused-vars */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n","\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n","'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = require('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$window: true,\n\t$console: true,\n\t$parent: true,\n\t$self: true,\n\t$frames: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\ttry {\n\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' && !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t} else {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n","'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n","module.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n","/**\n * @file big-play-button.js\n */\nimport Button from './button.js';\nimport Component from './component.js';\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\nclass BigPlayButton extends Button {\n\n constructor(player, options) {\n super(player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return 'vjs-big-play-button';\n }\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.play();\n }\n\n}\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\nComponent.registerComponent('BigPlayButton', BigPlayButton);\nexport default BigPlayButton;\n","/**\n * @file button.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\nimport * as Events from './utils/events.js';\nimport * as Fn from './utils/fn.js';\nimport document from 'global/document';\nimport assign from 'object.assign';\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\nclass Button extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n createEl(tag='button', props={}) {\n // Add standard Aria and Tabindex info\n props = assign({\n className: this.buildCSSClass(),\n 'role': 'button',\n 'type': 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite', // let the screen reader user know that the text of the button may change\n tabIndex: 0\n }, props);\n\n let el = super.createEl(tag, props);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n }\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-control vjs-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n handleClick() {}\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n handleFocus() {\n Events.on(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick();\n }\n }\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n handleBlur() {\n Events.off(document, 'keydown', Fn.bind(this, this.handleKeyPress));\n }\n\n}\n\n\nComponent.registerComponent('Button', Button);\nexport default Button;\n","/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\nimport window from 'global/window';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as Events from './utils/events.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\n\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
\n *
Button
\n *
\n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\nclass Component {\n\n constructor(player, options, ready) {\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = mergeOptions({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = mergeOptions(this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || (options.el && options.el.id);\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n let id = player && player.id && player.id() || 'no_player';\n\n this.id_ = `${id}_component_${Guid.newGUID()}`;\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n }\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n player() {\n return this.player_;\n }\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n * This is used for merging options for child components. We\n * want it to be easy to override individual options on a child\n * component without having to rewrite all the other default options.\n * ```js\n * Parent.prototype.options_ = {\n * children: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * children: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * children: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n options(obj) {\n log.warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = mergeOptions(this.options_, obj);\n return this.options_;\n }\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n el() {\n return this.el_;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} attributes An object of element attributes that should be set on the element\n * @return {Element}\n * @method createEl\n */\n createEl(tagName, attributes) {\n return Dom.createEl(tagName, attributes);\n }\n\n localize(string) {\n let code = this.player_.language && this.player_.language();\n let languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n let language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n let primaryCode = code.split('-')[0];\n let primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n }\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n contentEl() {\n return this.contentEl_ || this.el_;\n }\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n id() {\n return this.id_;\n }\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n name() {\n return this.name_;\n }\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n children() {\n return this.children_;\n }\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n getChildById(id) {\n return this.childIndex_[id];\n }\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n getChild(name) {\n return this.childNameIndex_[name];\n }\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // -> \n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
myButton\n * // -> myButton === myComonent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * children: {\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n addChild(child, options={}) {\n let component;\n let componentName;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n log.warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n let componentClassName = options.componentClass || toTitleCase(componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n let ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || (component.name && component.name());\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n }\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n let childFound = false;\n\n for (let i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n let compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n }\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_.children = {\n * myChildComponent: {\n * myChildOption: true\n * }\n * }\n * ```\n * // Or when creating the component\n * ```js\n * var myComp = new MyComponent(player, {\n * children: {\n * myChildComponent: {\n * myChildOption: true\n * }\n * }\n * });\n * ```\n * The children option can also be an Array of child names or\n * child options objects (that also include a 'name' key).\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n initChildren() {\n let children = this.options_.children;\n\n if (children) {\n // `this` is `parent`\n let parentOptions = this.options_;\n\n let handleAdd = (name, opts) => {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n this[name] = this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (let i = 0; i < children.length; i++) {\n let child = children[i];\n let name;\n let opts;\n\n if (typeof child === 'string') {\n // ['myComponent']\n name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n name = child.name;\n opts = child;\n }\n\n handleAdd(name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function(name){\n handleAdd(name, children[name]);\n });\n }\n }\n }\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n }\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n on(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n // When this component is disposed, remove the listener from the other component\n const removeOnDispose = () => this.off(target, type, fn);\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n this.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n const cleanRemover = () => this.off('dispose', removeOnDispose);\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n }\n\n return this;\n }\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n const target = first;\n const type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n const fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n }\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n one(first, second, third) {\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n const target = first;\n const type = second;\n const fn = Fn.bind(this, third);\n\n const newFunc = () => {\n this.off(target, type, newFunc);\n fn.apply(null, arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n this.on(target, type, newFunc);\n }\n\n return this;\n }\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n }\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n ready(fn, sync=false) {\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n }\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function(){\n let readyQueue = this.readyQueue_;\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function(fn){\n fn.call(this);\n }, this);\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n }\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n }\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n }\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n }\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n show() {\n this.removeClass('vjs-hidden');\n return this;\n }\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n hide() {\n this.addClass('vjs-hidden');\n return this;\n }\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n }\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n }\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n }\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n }\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n let val = this.el_.style[widthOrHeight];\n let pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + toTitleCase(widthOrHeight)], 10);\n }\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n let touchStart = 0;\n let firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n const tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n const touchTimeThreshold = 200;\n\n let couldBeTap;\n\n this.on('touchstart', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = assign({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function(event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n const xdiff = event.touches[0].pageX - firstTouch.pageX;\n const ydiff = event.touches[0].pageY - firstTouch.pageY;\n const touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n const noTap = function() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function(event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n const touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n }\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n const report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n let touchHolding;\n\n this.on('touchstart', function() {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n const touchEnd = function(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n }\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n let timeoutId = window.setTimeout(fn, timeout);\n\n const disposeFn = function() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n clearTimeout(timeoutId) {\n window.clearTimeout(timeoutId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-timeout-${timeoutId}`;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n }\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n let intervalId = window.setInterval(fn, interval);\n\n const disposeFn = function() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n clearInterval(intervalId) {\n window.clearInterval(intervalId);\n\n const disposeFn = function() {};\n\n disposeFn.guid = `vjs-interval-${intervalId}`;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n }\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n static registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n }\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n static getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (window && window.videojs && window.videojs[name]) {\n log.warn(`The ${name} component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)`);\n return window.videojs[name];\n }\n }\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n static extend(props) {\n props = props || {};\n\n log.warn('Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n let init = props.init || props.init || this.prototype.init || this.prototype.init || function() {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n let subObj = function() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (let name in props) {\n if (props.hasOwnProperty(name)) {\n subObj.prototype[name] = props[name];\n }\n }\n\n return subObj;\n }\n}\n\nComponent.registerComponent('Component', Component);\nexport default Component;\n","/**\n * @file control-bar.js\n */\nimport Component from '../component.js';\n\n// Required children\nimport PlayToggle from './play-toggle.js';\nimport CurrentTimeDisplay from './time-controls/current-time-display.js';\nimport DurationDisplay from './time-controls/duration-display.js';\nimport TimeDivider from './time-controls/time-divider.js';\nimport RemainingTimeDisplay from './time-controls/remaining-time-display.js';\nimport LiveDisplay from './live-display.js';\nimport ProgressControl from './progress-control/progress-control.js';\nimport FullscreenToggle from './fullscreen-toggle.js';\nimport VolumeControl from './volume-control/volume-control.js';\nimport VolumeMenuButton from './volume-menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport ChaptersButton from './text-track-controls/chapters-button.js';\nimport SubtitlesButton from './text-track-controls/subtitles-button.js';\nimport CaptionsButton from './text-track-controls/captions-button.js';\nimport PlaybackRateMenuButton from './playback-rate-menu/playback-rate-menu-button.js';\nimport CustomControlSpacer from './spacer-controls/custom-control-spacer.js';\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\nclass ControlBar extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-control-bar'\n });\n }\n}\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: [\n 'playToggle',\n 'volumeMenuButton',\n 'currentTimeDisplay',\n 'timeDivider',\n 'durationDisplay',\n 'progressControl',\n 'liveDisplay',\n 'remainingTimeDisplay',\n 'customControlSpacer',\n 'playbackRateMenuButton',\n 'muteToggle',\n 'volumeControl',\n 'chaptersButton',\n 'subtitlesButton',\n 'captionsButton',\n 'fullscreenToggle'\n ]\n};\n\nComponent.registerComponent('ControlBar', ControlBar);\nexport default ControlBar;\n","/**\n * @file fullscreen-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\nclass FullscreenToggle extends Button {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-fullscreen-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n }\n\n}\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\nComponent.registerComponent('FullscreenToggle', FullscreenToggle);\nexport default FullscreenToggle;\n","/**\n * @file live-display.js\n */\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n * \n * @extends Component\n * @class LiveDisplay\n */\nclass LiveDisplay extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: `${this.localize('Stream Type')}${this.localize('LIVE')}`,\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n}\n\nComponent.registerComponent('LiveDisplay', LiveDisplay);\nexport default LiveDisplay;\n","/**\n * @file mute-toggle.js\n */\nimport Button from '../button';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\nclass MuteToggle extends Button {\n\n constructor(player, options) {\n super(player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function() {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-mute-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n handleClick() {\n this.player_.muted( this.player_.muted() ? false : true );\n }\n\n /**\n * Update volume\n *\n * @method update\n */\n update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n let toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n let localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, `vjs-vol-${i}`);\n }\n Dom.addElClass(this.el_, `vjs-vol-${level}`);\n }\n\n}\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('MuteToggle', MuteToggle);\nexport default MuteToggle;\n","/**\n * @file play-toggle.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\nclass PlayToggle extends Button {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-play-control ${super.buildCSSClass()}`;\n }\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n }\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n }\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n }\n\n}\n\nPlayToggle.prototype.controlText_ = 'Play';\n\nComponent.registerComponent('PlayToggle', PlayToggle);\nexport default PlayToggle;\n","/**\n * @file playback-rate-menu-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Menu from '../../menu/menu.js';\nimport PlaybackRateMenuItem from './playback-rate-menu-item.js';\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\nclass PlaybackRateMenuButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl();\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-playback-rate ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player());\n let rates = this.playbackRates();\n\n if (rates) {\n for (let i = rates.length - 1; i >= 0; i--) {\n menu.addChild(\n new PlaybackRateMenuItem(this.player(), { 'rate': rates[i] + 'x'})\n );\n }\n }\n\n return menu;\n }\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n }\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n handleClick() {\n // select next rate option\n let currentRate = this.player().playbackRate();\n let rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n let newRate = rates[0];\n for (let i = 0; i < rates.length ; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n }\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n playbackRates() {\n return this.options_['playbackRates'] || (this.options_.playerOptions && this.options_.playerOptions['playbackRates']);\n }\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n playbackRateSupported() {\n return this.player().tech\n && this.player().tech['featuresPlaybackRate']\n && this.playbackRates()\n && this.playbackRates().length > 0\n ;\n }\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n }\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n }\n\n}\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\nComponent.registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexport default PlaybackRateMenuButton;\n","/**\n * @file playback-rate-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\nclass PlaybackRateMenuItem extends MenuItem {\n\n constructor(player, options){\n let label = options['rate'];\n let rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n super(player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player().playbackRate(this.rate);\n }\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n update() {\n this.selected(this.player().playbackRate() === this.rate);\n }\n\n}\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\nComponent.registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexport default PlaybackRateMenuItem;\n","/**\n * @file load-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\nclass LoadProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-load-progress',\n innerHTML: `${this.localize('Loaded')}: 0%`\n });\n }\n\n /**\n * Update progress bar\n *\n * @method update\n */\n update() {\n let buffered = this.player_.buffered();\n let duration = this.player_.duration();\n let bufferedEnd = this.player_.bufferedEnd();\n let children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n let percentify = function (time, end){\n let percent = (time / end) || 0; // no NaN\n return ((percent >= 1 ? 1 : percent) * 100) + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (let i = 0; i < buffered.length; i++) {\n let start = buffered.start(i);\n let end = buffered.end(i);\n let part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (let i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i-1]);\n }\n }\n\n}\n\nComponent.registerComponent('LoadProgressBar', LoadProgressBar);\nexport default LoadProgressBar;\n","/**\n * @file play-progress-bar.js\n */\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\nclass PlayProgressBar extends Component {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-play-progress',\n innerHTML: `${this.localize('Progress')}: 0%`\n });\n }\n\n updateDataAttr() {\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', formatTime(time, this.player_.duration()));\n }\n\n}\n\nComponent.registerComponent('PlayProgressBar', PlayProgressBar);\nexport default PlayProgressBar;\n","/**\n * @file progress-control.js\n */\nimport Component from '../../component.js';\nimport SeekBar from './seek-bar.js';\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\nclass ProgressControl extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-control vjs-control'\n });\n }\n}\n\nProgressControl.prototype.options_ = {\n children: {\n 'seekBar': {}\n }\n};\n\nComponent.registerComponent('ProgressControl', ProgressControl);\nexport default ProgressControl;\n","/**\n * @file seek-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport LoadProgressBar from './load-progress-bar.js';\nimport PlayProgressBar from './play-progress-bar.js';\nimport * as Fn from '../../utils/fn.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\nclass SeekBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-progress-holder',\n 'aria-label': 'video progress bar'\n });\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', formatTime(time, this.player_.duration())); // human readable value of progress bar (time complete)\n }\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n getPercent() {\n let percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n }\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n handleMouseDown(event) {\n super.handleMouseDown(event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n }\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n let newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) { newTime = newTime - 0.1; }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n }\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n handleMouseUp(event) {\n super.handleMouseUp(event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n }\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n }\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n }\n\n}\n\nSeekBar.prototype.options_ = {\n children: {\n 'loadProgressBar': {},\n 'playProgressBar': {}\n },\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\nComponent.registerComponent('SeekBar', SeekBar);\nexport default SeekBar;\n","/**\n * @file custom-control-spacer.js\n */\nimport Spacer from './spacer.js';\nimport Component from '../../component.js';\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\nclass CustomControlSpacer extends Spacer {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-custom-control-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl({\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('CustomControlSpacer', CustomControlSpacer);\nexport default CustomControlSpacer;\n","/**\n * @file spacer.js\n */\nimport Component from '../../component.js';\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\nclass Spacer extends Component {\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-spacer ${super.buildCSSClass()}`;\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {Object} props An object of properties \n * @return {Element}\n * @method createEl\n */\n createEl(props) {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n}\n\nComponent.registerComponent('Spacer', Spacer);\n\nexport default Spacer;\n","/**\n * @file caption-settings-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n class CaptionSettingsMenuItem extends TextTrackMenuItem {\n\n constructor(player, options) {\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n super(player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n this.player().getChild('textTrackSettings').show();\n }\n\n}\n\nComponent.registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexport default CaptionSettingsMenuItem;\n","/**\n * @file captions-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport CaptionSettingsMenuItem from './caption-settings-menu-item.js';\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\nclass CaptionsButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-captions-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n update() {\n let threshold = 2;\n super.update();\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech && this.player().tech['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n }\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n if (!(this.player().tech && this.player().tech['featuresNativeTextTracks'])) {\n items.push(new CaptionSettingsMenuItem(this.player_, { 'kind': this.kind_ }));\n }\n\n return super.createItems(items);\n }\n\n}\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\nComponent.registerComponent('CaptionsButton', CaptionsButton);\nexport default CaptionsButton;\n","/**\n * @file chapters-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport ChaptersTrackMenuItem from './chapters-track-menu-item.js';\nimport Menu from '../../menu/menu.js';\nimport * as Dom from '../../utils/dom.js';\nimport * as Fn from '../../utils/fn.js';\nimport toTitleCase from '../../utils/to-title-case.js';\nimport window from 'global/window';\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\nclass ChaptersButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-chapters-button ${super.buildCSSClass()}`;\n }\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n createItems() {\n let items = [];\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n createMenu() {\n let tracks = this.player_.textTracks() || [];\n let chaptersTrack;\n let items = this.items = [];\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n window.setTimeout(Fn.bind(this, function() {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n let menu = this.menu;\n if (menu === undefined) {\n menu = new Menu(this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n let cues = chaptersTrack['cues'], cue;\n\n for (let i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n let mi = new ChaptersTrackMenuItem(this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n }\n\n}\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\nComponent.registerComponent('ChaptersButton', ChaptersButton);\nexport default ChaptersButton;\n","/**\n * @file chapters-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\nclass ChaptersTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let cue = options['cue'];\n let currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = (cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n super(player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n handleClick() {\n super.handleClick();\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n }\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n update() {\n let cue = this.cue;\n let currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n }\n\n}\n\nComponent.registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexport default ChaptersTrackMenuItem;\n","/**\n * @file off-text-track-menu-item.js\n */\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport Component from '../../component.js';\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\nclass OffTextTrackMenuItem extends TextTrackMenuItem {\n\n constructor(player, options){\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n super(player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n handleTracksChange(event){\n let tracks = this.player().textTracks();\n let selected = true;\n\n for (let i = 0, l = tracks.length; i < l; i++) {\n let track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n }\n\n}\n\nComponent.registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexport default OffTextTrackMenuItem;\n","/**\n * @file subtitles-button.js\n */\nimport TextTrackButton from './text-track-button.js';\nimport Component from '../../component.js';\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\nclass SubtitlesButton extends TextTrackButton {\n\n constructor(player, options, ready){\n super(player, options, ready);\n this.el_.setAttribute('aria-label','Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n return `vjs-subtitles-button ${super.buildCSSClass()}`;\n }\n\n}\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\nComponent.registerComponent('SubtitlesButton', SubtitlesButton);\nexport default SubtitlesButton;\n","/**\n * @file text-track-button.js\n */\nimport MenuButton from '../../menu/menu-button.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport TextTrackMenuItem from './text-track-menu-item.js';\nimport OffTextTrackMenuItem from './off-text-track-menu-item.js';\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\nclass TextTrackButton extends MenuButton {\n\n constructor(player, options){\n super(player, options);\n\n let tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n let updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function() {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n createItems(items=[]) {\n // Add an OFF menu item to turn all tracks off\n items.push(new OffTextTrackMenuItem(this.player_, { 'kind': this.kind_ }));\n\n let tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new TextTrackMenuItem(this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n }\n\n}\n\nComponent.registerComponent('TextTrackButton', TextTrackButton);\nexport default TextTrackButton;\n","/**\n * @file text-track-menu-item.js\n */\nimport MenuItem from '../../menu/menu-item.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\nclass TextTrackMenuItem extends MenuItem {\n\n constructor(player, options){\n let track = options['track'];\n let tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n super(player, options);\n\n this.track = track;\n\n if (tracks) {\n let changeHandler = Fn.bind(this, this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n this.on('dispose', function() {\n tracks.removeEventListener('change', changeHandler);\n });\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n let event;\n\n this.on(['tap', 'click'], function() {\n if (typeof window.Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new window.Event('change');\n } catch(err){}\n }\n\n if (!event) {\n event = document.createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n handleClick(event) {\n let kind = this.track['kind'];\n let tracks = this.player_.textTracks();\n\n super.handleClick(event);\n\n if (!tracks) return;\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n }\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n handleTracksChange(event){\n this.selected(this.track['mode'] === 'showing');\n }\n\n}\n\nComponent.registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexport default TextTrackMenuItem;\n","/**\n * @file current-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\nclass CurrentTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n innerHTML: 'Current Time ' + '0:00', // label the current time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n let time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n let localizedText = this.localize('Current Time');\n let formattedTime = formatTime(time, this.player_.duration());\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`;\n }\n\n}\n\nComponent.registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexport default CurrentTimeDisplay;\n","/**\n * @file duration-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\nclass DurationDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n innerHTML: `${this.localize('Duration Time')} 0:00`, // label the duration time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update duration time display \n *\n * @method updateContent\n */\n updateContent() {\n let duration = this.player_.duration();\n if (duration) {\n let localizedText = this.localize('Duration Time');\n let formattedTime = formatTime(duration);\n this.contentEl_.innerHTML = `${localizedText} ${formattedTime}`; // label the duration time for screen reader users\n }\n }\n\n}\n\nComponent.registerComponent('DurationDisplay', DurationDisplay);\nexport default DurationDisplay;\n","/**\n * @file remaining-time-display.js\n */\nimport Component from '../../component.js';\nimport * as Dom from '../../utils/dom.js';\nimport formatTime from '../../utils/format-time.js';\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\nclass RemainingTimeDisplay extends Component {\n\n constructor(player, options){\n super(player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = super.createEl('div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n innerHTML: `${this.localize('Remaining Time')} -0:00`, // label the remaining time for screen reader users\n 'aria-live': 'off' // tell screen readers not to automatically read the time as it changes\n });\n\n el.appendChild(this.contentEl_);\n return el;\n }\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n updateContent() {\n if (this.player_.duration()) {\n const localizedText = this.localize('Remaining Time');\n const formattedTime = formatTime(this.player_.remainingTime());\n this.contentEl_.innerHTML = `${localizedText} -${formattedTime}`;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n }\n\n}\n\nComponent.registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexport default RemainingTimeDisplay;\n","/**\n * @file time-divider.js\n */\nimport Component from '../../component.js';\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\nclass TimeDivider extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
/
'\n });\n }\n\n}\n\nComponent.registerComponent('TimeDivider', TimeDivider);\nexport default TimeDivider;\n","/**\n * @file volume-bar.js\n */\nimport Slider from '../../slider/slider.js';\nimport Component from '../../component.js';\nimport * as Fn from '../../utils/fn.js';\n\n// Required children\nimport VolumeLevel from './volume-level.js';\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\nclass VolumeBar extends Slider {\n\n constructor(player, options){\n super(player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-bar',\n 'aria-label': 'volume level'\n });\n }\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n }\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n }\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n }\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n }\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n updateARIAAttributes() {\n // Current value of volume bar as a percentage\n let volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n }\n\n}\n\nVolumeBar.prototype.options_ = {\n children: {\n 'volumeLevel': {}\n },\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\nComponent.registerComponent('VolumeBar', VolumeBar);\nexport default VolumeBar;\n","/**\n * @file volume-control.js\n */\nimport Component from '../../component.js';\n\n// Required children\nimport VolumeBar from './volume-bar.js';\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\nclass VolumeControl extends Component {\n\n constructor(player, options){\n super(player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-control vjs-control'\n });\n }\n\n}\n\nVolumeControl.prototype.options_ = {\n children: {\n 'volumeBar': {}\n }\n};\n\nComponent.registerComponent('VolumeControl', VolumeControl);\nexport default VolumeControl;\n","/**\n * @file volume-level.js\n */\nimport Component from '../../component.js';\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\nclass VolumeLevel extends Component {\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n }\n\n}\n\nComponent.registerComponent('VolumeLevel', VolumeLevel);\nexport default VolumeLevel;\n","/**\n * @file volume-menu-button.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport Menu from '../menu/menu.js';\nimport MenuButton from '../menu/menu-button.js';\nimport MuteToggle from './mute-toggle.js';\nimport VolumeBar from './volume-control/volume-bar.js';\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\nclass VolumeMenuButton extends MenuButton {\n\n constructor(player, options={}){\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using a horizontal\n // slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well, since that will\n // need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n super(player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech && player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function(){\n if (player.tech['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n this.addClass('vjs-menu-button');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n let orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return `vjs-volume-menu-button ${super.buildCSSClass()} ${orientationClass}`;\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n createMenu() {\n let menu = new Menu(this.player_, {\n contentElType: 'div'\n });\n\n let vc = new VolumeBar(this.player_, this.options_.volumeBar);\n\n vc.on('focus', function() {\n menu.lockShowing();\n });\n vc.on('blur', function() {\n menu.unlockShowing();\n });\n menu.addChild(vc);\n return menu;\n }\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n handleClick() {\n MuteToggle.prototype.handleClick.call(this);\n super.handleClick();\n }\n\n}\n\nVolumeMenuButton.prototype.volumeUpdate = MuteToggle.prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\nComponent.registerComponent('VolumeMenuButton', VolumeMenuButton);\nexport default VolumeMenuButton;\n","/**\n * @file error-display.js\n */\nimport Component from './component';\nimport * as Dom from './utils/dom.js';\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\nclass ErrorDisplay extends Component {\n\n constructor(player, options) {\n super(player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n var el = super.createEl('div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n }\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n }\n}\n\nComponent.registerComponent('ErrorDisplay', ErrorDisplay);\nexport default ErrorDisplay;\n","/**\n * @file event-target.js\n */\nimport * as Events from './utils/events.js';\n\nvar EventTarget = function() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function(type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n let ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function(type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function(type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function(event) {\n let type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexport default EventTarget;\n","import log from './utils/log';\n\n/*\n * @file extends.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nconst _inherits = function (subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extends(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nconst extendsFn = function(superClass, subClassMethods={}) {\n let subClass = function() {\n superClass.apply(this, arguments);\n };\n let methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n log.warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexport default extendsFn;\n","/**\n * @file fullscreen-api.js\n */\nimport document from 'global/document';\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nlet FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nconst apiMap = [\n // Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n [\n 'requestFullscreen',\n 'exitFullscreen',\n 'fullscreenElement',\n 'fullscreenEnabled',\n 'fullscreenchange',\n 'fullscreenerror'\n ],\n // WebKit\n [\n 'webkitRequestFullscreen',\n 'webkitExitFullscreen',\n 'webkitFullscreenElement',\n 'webkitFullscreenEnabled',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Old WebKit (Safari 5.1)\n [\n 'webkitRequestFullScreen',\n 'webkitCancelFullScreen',\n 'webkitCurrentFullScreenElement',\n 'webkitCancelFullScreen',\n 'webkitfullscreenchange',\n 'webkitfullscreenerror'\n ],\n // Mozilla\n [\n 'mozRequestFullScreen',\n 'mozCancelFullScreen',\n 'mozFullScreenElement',\n 'mozFullScreenEnabled',\n 'mozfullscreenchange',\n 'mozfullscreenerror'\n ],\n // Microsoft\n [\n 'msRequestFullscreen',\n 'msExitFullscreen',\n 'msFullscreenElement',\n 'msFullscreenEnabled',\n 'MSFullscreenChange',\n 'MSFullscreenError'\n ]\n];\n\nlet specApi = apiMap[0];\nlet browserApi;\n\n// determine the supported set of functions\nfor (let i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in document) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (let i=0; i 1) {\n this.show();\n }\n }\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n createMenu() {\n var menu = new Menu(this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: toTitleCase(this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n }\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n createItems(){}\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: this.buildCSSClass()\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return `vjs-menu-button ${menuButtonClass} ${super.buildCSSClass()}`;\n }\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n handleFocus() {}\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n handleBlur() {}\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n handleClick() {\n this.one('mouseout', Fn.bind(this, function(){\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n }\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_){\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27){\n if (this.buttonPressed_){\n this.unpressButton();\n }\n event.preventDefault();\n }\n }\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n }\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n }\n}\n\nComponent.registerComponent('MenuButton', MenuButton);\nexport default MenuButton;\n","/**\n * @file menu-item.js\n */\nimport Button from '../button.js';\nimport Component from '../component.js';\nimport assign from 'object.assign';\n\n/**\n * The component for a menu item. `
`\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\nclass MenuItem extends Button {\n\n constructor(player, options) {\n super(player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc \n * @return {Element}\n * @method createEl\n */\n createEl(type, props) {\n return super.createEl('li', assign({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props));\n }\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n handleClick() {\n this.selected(true);\n }\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n selected(selected) {\n if (selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected',true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected',false);\n }\n }\n\n}\n\nComponent.registerComponent('MenuItem', MenuItem);\nexport default MenuItem;\n","/**\n * @file menu.js\n */\nimport Component from '../component.js';\nimport * as Dom from '../utils/dom.js';\nimport * as Fn from '../utils/fn.js';\nimport * as Events from '../utils/events.js';\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\nclass Menu extends Component {\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function(){\n this.unlockShowing();\n }));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = super.createEl('div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function(event){\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n }\n}\n\nComponent.registerComponent('Menu', Menu);\nexport default Menu;\n","/**\n * @file player.js\n */\n // Subclasses Component\nimport Component from './component.js';\n\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Events from './utils/events.js';\nimport * as Dom from './utils/dom.js';\nimport * as Fn from './utils/fn.js';\nimport * as Guid from './utils/guid.js';\nimport * as browser from './utils/browser.js';\nimport log from './utils/log.js';\nimport toTitleCase from './utils/to-title-case.js';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport { bufferedPercent } from './utils/buffer.js';\nimport * as stylesheet from './utils/stylesheet.js';\nimport FullscreenApi from './fullscreen-api.js';\nimport MediaError from './media-error.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport assign from 'object.assign';\nimport mergeOptions from './utils/merge-options.js';\nimport textTrackConverter from './tracks/text-track-list-converter.js';\n\n// Include required child components (importing also registers them)\nimport MediaLoader from './tech/loader.js';\nimport PosterImage from './poster-image.js';\nimport TextTrackDisplay from './tracks/text-track-display.js';\nimport LoadingSpinner from './loading-spinner.js';\nimport BigPlayButton from './big-play-button.js';\nimport ControlBar from './control-bar/control-bar.js';\nimport ErrorDisplay from './error-display.js';\nimport TextTrackSettings from './tracks/text-track-settings.js';\n\n// Require html5 tech, at least for disposing the original video tag\nimport Html5 from './tech/html5.js';\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\nclass Player extends Component {\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n constructor(tag, options, ready){\n // Make sure tag ID exists\n tag.id = tag.id || `vjs_video_${Guid.newGUID()}`;\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = assign(Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n super(null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ ||\n !this.options_.techOrder ||\n !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' +\n 'videojs.options instead of just changing the ' +\n 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n // Normalise player option languages to lowercase\n let languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function(name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n this.languages_ = languagesToLower;\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n let playerOptionsCopy = mergeOptions(this.options_);\n\n // Load plugins\n if (options.plugins) {\n let plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function(name){\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n log.error('Unable to find plugin:', name);\n }\n }, this);\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive_ = true;\n this.reportUserActivity();\n this.listenForUserActivity();\n\n this.on('fullscreenchange', this.handleFullscreenChange);\n this.on('stageclick', this.handleStageClick);\n }\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) { this.tag.player = null; }\n if (this.el_ && this.el_.player) { this.el_.player = null; }\n\n if (this.tech) { this.tech.dispose(); }\n\n super.dispose();\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n let el = this.el_ = super.createEl('div');\n let tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n const attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function(attr){\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n let defaultsStyleEl = document.querySelector('.vjs-styles-defaults');\n let head = document.querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n }\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n width(value) {\n return this.dimension('width', value);\n }\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n height(value) {\n return this.dimension('height', value);\n }\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n dimension(dimension, value) {\n let privDimension = dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n let parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n log.error(`Improper value \"${value}\" supplied for for ${dimension}`);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n }\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n }\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n }\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n updateStyleEl_() {\n let width;\n let height;\n let aspectRatio;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n let ratioParts = aspectRatio.split(':');\n let ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n let idClass = this.id()+'-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, `\n .${idClass} {\n width: ${width}px;\n height: ${height}px;\n }\n\n .${idClass}.vjs-fluid {\n padding-top: ${ratioMultiplier * 100}%;\n }\n `);\n }\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech\n */\n loadTech(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech) {\n this.unloadTech();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n Component.getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n var techReady = Fn.bind(this, function() {\n this.triggerReady();\n });\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = assign({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': `${this.id()}_${techName}_api`,\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n let techComponent = Component.getComponent(techName);\n this.tech = new techComponent(techOptions);\n\n textTrackConverter.jsonToTextTracks(this.textTracksJson_ || [], this.tech);\n\n this.on(this.tech, 'ready', this.handleTechReady);\n\n // Listen to every HTML5 events and trigger them back on the player for the plugins\n this.on(this.tech, 'loadstart', this.handleTechLoadStart);\n this.on(this.tech, 'waiting', this.handleTechWaiting);\n this.on(this.tech, 'canplay', this.handleTechCanPlay);\n this.on(this.tech, 'canplaythrough', this.handleTechCanPlayThrough);\n this.on(this.tech, 'playing', this.handleTechPlaying);\n this.on(this.tech, 'ended', this.handleTechEnded);\n this.on(this.tech, 'seeking', this.handleTechSeeking);\n this.on(this.tech, 'seeked', this.handleTechSeeked);\n this.on(this.tech, 'play', this.handleTechPlay);\n this.on(this.tech, 'firstplay', this.handleTechFirstPlay);\n this.on(this.tech, 'pause', this.handleTechPause);\n this.on(this.tech, 'progress', this.handleTechProgress);\n this.on(this.tech, 'durationchange', this.handleTechDurationChange);\n this.on(this.tech, 'fullscreenchange', this.handleTechFullscreenChange);\n this.on(this.tech, 'error', this.handleTechError);\n this.on(this.tech, 'suspend', this.handleTechSuspend);\n this.on(this.tech, 'abort', this.handleTechAbort);\n this.on(this.tech, 'emptied', this.handleTechEmptied);\n this.on(this.tech, 'stalled', this.handleTechStalled);\n this.on(this.tech, 'loadedmetadata', this.handleTechLoadedMetaData);\n this.on(this.tech, 'loadeddata', this.handleTechLoadedData);\n this.on(this.tech, 'timeupdate', this.handleTechTimeUpdate);\n this.on(this.tech, 'ratechange', this.handleTechRateChange);\n this.on(this.tech, 'volumechange', this.handleTechVolumeChange);\n this.on(this.tech, 'texttrackchange', this.onTextTrackChange);\n this.on(this.tech, 'loadedmetadata', this.updateStyleEl_);\n\n this.usingNativeControls(this.techGet('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech.ready(techReady, true);\n }\n\n /**\n * Unload playback technology\n *\n * @method unloadTech\n */\n unloadTech() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = textTrackConverter.textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech.dispose();\n\n this.tech = false;\n }\n\n /**\n * Add playback technology listeners\n *\n * @method addTechControlsListeners\n */\n addTechControlsListeners() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech, 'mousedown', this.handleTechClick);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech, 'touchstart', this.handleTechTouchStart);\n this.on(this.tech, 'touchmove', this.handleTechTouchMove);\n this.on(this.tech, 'touchend', this.handleTechTouchEnd);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech, 'tap', this.handleTechTap);\n }\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners\n */\n removeTechControlsListeners() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech, 'tap', this.handleTechTap);\n this.off(this.tech, 'touchstart', this.handleTechTouchStart);\n this.off(this.tech, 'touchmove', this.handleTechTouchMove);\n this.off(this.tech, 'touchend', this.handleTechTouchEnd);\n this.off(this.tech, 'mousedown', this.handleTechClick);\n }\n\n /**\n * Player waits for the tech to be ready\n *\n * @private\n * @method handleTechReady\n */\n handleTechReady() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall('setVolume', this.cache_.volume);\n }\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n }\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @event loadstart\n */\n handleTechLoadStart() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n }\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @method hasStarted\n */\n hasStarted(hasStarted) {\n if (hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== hasStarted) {\n this.hasStarted_ = hasStarted;\n if (hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n }\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @event play\n */\n handleTechPlay() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n }\n\n /**\n * Fired whenever the media begins waiting\n *\n * @event waiting\n */\n handleTechWaiting() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplay\n */\n handleTechCanPlay() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event canplaythrough\n */\n handleTechCanPlayThrough() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n }\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @event playing\n */\n handleTechPlaying() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n }\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @event seeking\n */\n handleTechSeeking() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n }\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @event seeked\n */\n handleTechSeeked() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n }\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @event firstplay\n */\n handleTechFirstPlay() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if(this.options_.starttime){\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n }\n\n /**\n * Fired whenever the media has been paused\n *\n * @event pause\n */\n handleTechPause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n }\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @event progress\n */\n handleTechProgress() {\n this.trigger('progress');\n\n // Add custom event for when source is finished downloading.\n if (this.bufferedPercent() === 1) {\n this.trigger('loadedalldata');\n }\n }\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @event ended\n */\n handleTechEnded() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n }\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @event durationchange\n */\n handleTechDurationChange() {\n this.updateDuration();\n this.trigger('durationchange');\n }\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @method handleTechClick\n */\n handleTechClick(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n }\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @method handleTechTap\n */\n handleTechTap() {\n this.userActive(!this.userActive());\n }\n\n /**\n * Handle touch to start\n *\n * @method handleTechTouchStart\n */\n handleTechTouchStart() {\n this.userWasActive = this.userActive();\n }\n\n /**\n * Handle touch to move\n *\n * @method handleTechTouchMove\n */\n handleTechTouchMove() {\n if (this.userWasActive){\n this.reportUserActivity();\n }\n }\n\n /**\n * Handle touch to end\n *\n * @method handleTechTouchEnd\n */\n handleTechTouchEnd(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n }\n\n /**\n * Update the duration of the player using the tech\n *\n * @private\n * @method updateDuration\n */\n updateDuration() {\n // Allows for caching value instead of asking player each time.\n // We need to get the techGet response and check for a value so we don't\n // accidentally cause the stack to blow up.\n var duration = this.techGet('duration');\n if (duration) {\n if (duration < 0) {\n duration = Infinity;\n }\n this.duration(duration);\n // Determine if the stream is live and propagate styles down to UI.\n if (duration === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n }\n }\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @event fullscreenchange\n */\n handleFullscreenChange() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n }\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick\n */\n handleStageClick() {\n this.reportUserActivity();\n }\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @method handleTechFullscreenChange\n */\n handleTechFullscreenChange(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n }\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @event error\n */\n handleTechError() {\n let error = this.tech.error();\n this.error(error && error.code);\n }\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @event suspend\n */\n handleTechSuspend() {\n this.trigger('suspend');\n }\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @event abort\n */\n handleTechAbort() {\n this.trigger('abort');\n }\n\n /**\n * Fires when the current playlist is empty\n *\n * @event emptied\n */\n handleTechEmptied() {\n this.trigger('emptied');\n }\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @event stalled\n */\n handleTechStalled() {\n this.trigger('stalled');\n }\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @event loadedmetadata\n */\n handleTechLoadedMetaData() {\n this.trigger('loadedmetadata');\n }\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @event loaddata\n */\n handleTechLoadedData() {\n this.trigger('loadeddata');\n }\n\n /**\n * Fires when the current playback position has changed\n *\n * @event timeupdate\n */\n handleTechTimeUpdate() {\n this.trigger('timeupdate');\n }\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @event ratechange\n */\n handleTechRateChange() {\n this.trigger('ratechange');\n }\n\n /**\n * Fires when the volume has been changed\n *\n * @event volumechange\n */\n handleTechVolumeChange() {\n this.trigger('volumechange');\n }\n\n /**\n * Fires when the text track has been changed\n *\n * @event texttrackchange\n */\n onTextTrackChange() {\n this.trigger('texttrackchange');\n }\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n getCache() {\n return this.cache_;\n }\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @method techCall\n */\n techCall(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech && !this.tech.isReady_) {\n this.tech.ready(function(){\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech[method](arg);\n } catch(e) {\n log(e);\n throw e;\n }\n }\n }\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @method techGet\n */\n techGet(method) {\n if (this.tech && this.tech.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech[method]();\n } catch(e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech[method] === undefined) {\n log(`Video.js: ${method} method not defined for ${this.techName} playback technology.`, e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n log(`Video.js: ${method} unavailable on ${this.techName} playback technology element.`, e);\n this.tech.isReady_ = false;\n } else {\n log(e);\n }\n }\n throw e;\n }\n }\n\n return;\n }\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n play() {\n this.techCall('play');\n return this;\n }\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n pause() {\n this.techCall('pause');\n return this;\n }\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return (this.techGet('paused') === false) ? false : true;\n }\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n }\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = (this.techGet('currentTime') || 0);\n }\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n duration(seconds) {\n if (seconds !== undefined) {\n\n // cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = parseFloat(seconds);\n\n return this;\n }\n\n if (this.cache_.duration === undefined) {\n this.updateDuration();\n }\n\n return this.cache_.duration || 0;\n }\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n remainingTime() {\n return this.duration() - this.currentTime();\n }\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n buffered() {\n var buffered = this.techGet('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0,0);\n }\n\n return buffered;\n }\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration());\n }\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length-1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n }\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n volume(percentAsDecimal) {\n let vol;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet('volume'));\n return (isNaN(vol)) ? 1 : vol;\n }\n\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n muted(muted) {\n if (muted !== undefined) {\n this.techCall('setMuted', muted);\n return this;\n }\n return this.techGet('muted') || false; // Default to false\n }\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return this.techGet('supportsFullScreen') || false;\n }\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n }\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n requestFullscreen() {\n var fsApi = FullscreenApi;\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(document, fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e){\n this.isFullscreen(document[fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(document, fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n\n } else if (this.tech.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n exitFullscreen() {\n var fsApi = FullscreenApi;\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n document[fsApi.exitFullscreen]();\n } else if (this.tech.supportsFullScreen()) {\n this.techCall('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n }\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = document.documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(document, 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n document.documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(document.body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n }\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n }\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n exitFullWindow() {\n this.isFullWindow = false;\n Events.off(document, 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n document.documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(document.body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n }\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i=0,j=this.options_.techOrder;i 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n }\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech && this.tech['featuresPlaybackRate']) {\n return this.techGet('playbackRate');\n } else {\n return 1.0;\n }\n }\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n }\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n networkState() {\n return this.techGet('networkState');\n }\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n readyState() {\n return this.techGet('readyState');\n }\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n textTracks() {\n // cannot use techGet directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech && this.tech['textTracks']();\n }\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n return this.tech && this.tech['remoteTextTracks']();\n }\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n return this.tech && this.tech['addTextTrack'](kind, label, language);\n }\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n return this.tech && this.tech['addRemoteTextTrack'](options);\n }\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.tech && this.tech['removeRemoteTextTrack'](track);\n }\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n videoWidth() {\n return this.tech && this.tech.videoWidth && this.tech.videoWidth() || 0;\n }\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n videoHeight() {\n return this.tech && this.tech.videoHeight && this.tech.videoHeight() || 0;\n }\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall('initialTime'); },\n // startOffsetTime: function(){ return this.techCall('startOffsetTime'); },\n // played: function(){ return this.techCall('played'); },\n // seekable: function(){ return this.techCall('seekable'); },\n // videoTracks: function(){ return this.techCall('videoTracks'); },\n // audioTracks: function(){ return this.techCall('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall('defaultPlaybackRate'); },\n // mediaGroup: function(){ return this.techCall('mediaGroup'); },\n // controller: function(){ return this.techCall('controller'); },\n // defaultMuted: function(){ return this.techCall('defaultMuted'); }\n\n // TODO\n // currentSrcList: the array of sources including other formats and bitrates\n // playList: array of source lists in order of playback\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = (''+code).toLowerCase();\n return this;\n }\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n languages() {\n return mergeOptions(Player.prototype.options_.languages, this.languages_);\n }\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n toJSON() {\n let options = mergeOptions(this.options_);\n let tracks = options.tracks;\n\n options.tracks = [];\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = mergeOptions(track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n }\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n static getTagSettings(tag) {\n let baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n const tagOptions = Dom.getElAttributes(tag);\n const dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null){\n // Parse options JSON\n // If empty string, make it a parsable json object.\n const [err, data] = safeParseTuple(dataSetup || '{}');\n if (err) {\n log.error(err);\n }\n assign(tagOptions, data);\n }\n\n assign(baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n const children = tag.childNodes;\n\n for (let i=0, j=children.length; i 0) {\n for(let i=0, e=vids.length; i 0) {\n for(let i=0, e=audios.length; i 0) {\n\n for (let i=0, e=mediaEls.length; i seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n super.setCurrentTime();\n }\n }\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n }\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load() {\n this.el_.vjs_load();\n }\n\n /**\n * Get poster\n *\n * @method poster\n */\n poster() {\n this.el_.vjs_getProperty('poster');\n }\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n setPoster() {}\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() {\n const duration = this.duration();\n if (duration === 0) {\n return createTimeRange();\n }\n return createTimeRange(0, duration);\n }\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n let ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return createTimeRange();\n }\n return createTimeRange(ranges[0][0], ranges[0][1]);\n }\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n }\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n enterFullScreen() {\n return false;\n }\n\n}\n\n\n// Create setters and getters for attributes\nconst _api = Flash.prototype;\nconst _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nconst _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr){\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set'+attrUpper] = function(val){ return this.el_.vjs_setProperty(attr, val); };\n}\nfunction _createGetter(attr) {\n _api[attr] = function(){ return this.el_.vjs_getProperty(attr); };\n}\n\n// Create getter and setters for all read/write attributes\nfor (let i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (let i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function(){\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function(source){\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return `video/${ext}`;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function(currSwf){\n let el = Dom.getEl(currSwf);\n let tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function(tech){\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function(){\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function(swfID, eventName){\n let tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function(swfID, err){\n const tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function(){\n let version = '0,0,0';\n\n // IE\n try {\n version = new window.ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch(e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin){\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch(err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function(swf, flashVars, params, attributes){\n const code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n const obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function(swf, flashVars, params, attributes){\n const objTag = '`;\n });\n\n attributes = assign({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function(key){\n attrsString += `${key}=\"${attributes[key]}\" `;\n });\n\n return `${objTag}${attrsString}>${paramsString}`;\n};\n\n// Run Flash through the RTMP decorator\nFlashRtmpDecorator(Flash);\n\nComponent.registerComponent('Flash', Flash);\nexport default Flash;\n","/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\nimport Tech from './tech.js';\nimport Component from '../component';\nimport * as Dom from '../utils/dom.js';\nimport * as Url from '../utils/url.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\nimport window from 'global/window';\nimport assign from 'object.assign';\nimport mergeOptions from '../utils/merge-options.js';\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\nclass Html5 extends Tech {\n\n constructor(options, ready){\n super(options, ready);\n\n const source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || (options.tag && options.tag.initNetworkState_ === 3))) {\n this.setSource(source);\n }\n\n if (this.el_.hasChildNodes()) {\n\n let nodes = this.el_.childNodes;\n let nodesLength = nodes.length;\n let removeNodes = [];\n\n while (nodesLength--) {\n let node = nodes[nodesLength];\n let nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (let i=0; i= 0; i--) {\n const attr = settingsAttrs[i];\n let overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n }\n\n\n proxyNativeTextTracks_() {\n let tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n }\n\n handleTextTrackChange(e) {\n let tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n }\n\n handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n }\n\n handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n }\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n play() { this.el_.play(); }\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n pause() { this.el_.pause(); }\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n paused() { return this.el_.paused; }\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n currentTime() { return this.el_.currentTime; }\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch(e) {\n log(e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n }\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n duration() { return this.el_.duration || 0; }\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() { return this.el_.buffered; }\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n volume() { return this.el_.volume; }\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n setVolume(percentAsDecimal) { this.el_.volume = percentAsDecimal; }\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n muted() { return this.el_.muted; }\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n setMuted(muted) { this.el_.muted = muted; }\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n width() { return this.el_.offsetWidth; }\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n height() { return this.el_.offsetHeight; }\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n let userAgent = window.navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function() {\n this.one('webkitendfullscreen', function() {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function(){\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n }\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n exitFullScreen() {\n this.el_.webkitExitFullScreen();\n }\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n src(src) {\n if (src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(src);\n }\n }\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n setSrc(src) { this.el_.src = src; }\n\n /**\n * Load media into player\n *\n * @method load\n */\n load(){ this.el_.load(); }\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n currentSrc() { return this.el_.currentSrc; }\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n poster() { return this.el_.poster; }\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n setPoster(val) { this.el_.poster = val; }\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n preload() { return this.el_.preload; }\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n setPreload(val) { this.el_.preload = val; }\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n autoplay() { return this.el_.autoplay; }\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n setAutoplay(val) { this.el_.autoplay = val; }\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n controls() { return this.el_.controls; }\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n setControls(val) { this.el_.controls = !!val; }\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n loop() { return this.el_.loop; }\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n setLoop(val) { this.el_.loop = val; }\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n error() { return this.el_.error; }\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n seeking() { return this.el_.seeking; }\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n seekable() { return this.el_.seekable; }\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n ended() { return this.el_.ended; }\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n defaultMuted() { return this.el_.defaultMuted; }\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n playbackRate() { return this.el_.playbackRate; }\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n played() { return this.el_.played; }\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n setPlaybackRate(val) { this.el_.playbackRate = val; }\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n networkState() { return this.el_.networkState; }\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n readyState() { return this.el_.readyState; }\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n videoWidth() { return this.el_.videoWidth; }\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n videoHeight() { return this.el_.videoHeight; }\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n return super.textTracks();\n }\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return super.addTextTrack(kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options={}) {\n if (!this['featuresNativeTextTracks']) {\n return super.addRemoteTextTrack(options);\n }\n\n var track = document.createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n }\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return super.removeRemoteTextTrack(track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n }\n\n}\n\n\n/* HTML5 Support Testing ---------------------------------------------------- */\n\n/*\n* Element for testing browser HTML5 video capabilities\n*\n* @type {Element}\n* @constant\n* @private\n*/\nHtml5.TEST_VID = document.createElement('video');\nlet track = document.createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function(){\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\nTech.withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function(source){\n var match, ext;\n\n function canPlayType(type){\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch(e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType(`video/${ext}`);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function(source, tech){\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function(){};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function(){\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = (volume / 2) + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function(){\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = (playbackRate / 2) + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function() {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = [\n 'loadstart',\n 'suspend',\n 'abort',\n 'error',\n 'emptied',\n 'stalled',\n 'loadedmetadata',\n 'loadeddata',\n 'canplay',\n 'canplaythrough',\n 'playing',\n 'waiting',\n 'seeking',\n 'seeked',\n 'ended',\n 'durationchange',\n 'timeupdate',\n 'progress',\n 'play',\n 'pause',\n 'ratechange',\n 'volumechange'\n];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nlet canPlayType;\nconst mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nconst mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function() {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function(type){\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function() {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function(el){\n if (!el) { return; }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while(el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function() {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\nComponent.registerComponent('Html5', Html5);\nexport default Html5;\n","/**\n * @file loader.js\n */\nimport Component from '../component';\nimport window from 'global/window';\nimport toTitleCase from '../utils/to-title-case.js';\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\nclass MediaLoader extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (let i=0, j=options.playerOptions['techOrder']; i 0) {\n this.trigger('loadstart');\n }\n // Allow the tech ready event to handle synchronisity\n }, true);\n }\n\n /* Fallbacks for unsupported event types\n ================================================================================ */\n // Manually trigger progress events based on changes to the buffered amount\n // Many flash players and older HTML5 browsers don't send progress or progress-like events\n /**\n * Turn on progress events\n *\n * @method manualProgressOn\n */\n manualProgressOn() {\n this.on('durationchange', this.onDurationChange);\n\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress);\n }\n\n /**\n * Turn off progress events\n *\n * @method manualProgressOff\n */\n manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n\n this.off('durationchange', this.onDurationChange);\n }\n\n /**\n * Track progress\n *\n * @method trackProgress\n */\n trackProgress() {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(Fn.bind(this, function(){\n // Don't trigger unless buffered amount is greater than last time\n\n let numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n }\n\n /**\n * Update duration\n *\n * @method onDurationChange\n */\n onDurationChange() {\n this.duration_ = this.duration();\n }\n\n /**\n * Create and get TimeRange object for buffering\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n buffered() {\n return createTimeRange(0, 0);\n }\n\n /**\n * Get buffered percent\n *\n * @return {Number}\n * @method bufferedPercent\n */\n bufferedPercent() {\n return bufferedPercent(this.buffered(), this.duration_);\n }\n\n /**\n * Stops tracking progress by clearing progress interval\n *\n * @method stopTrackingProgress\n */\n stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n }\n\n /*! Time Tracking -------------------------------------------------------------- */\n /**\n * Set event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOn\n */\n manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n\n this.on('play', this.trackCurrentTime);\n this.on('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Remove event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOff\n */\n manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime);\n this.off('pause', this.stopTrackingCurrentTime);\n }\n\n /**\n * Tracks current time\n *\n * @method trackCurrentTime\n */\n trackCurrentTime() {\n if (this.currentTimeInterval) { this.stopTrackingCurrentTime(); }\n this.currentTimeInterval = this.setInterval(function(){\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }, 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n }\n\n /**\n * Turn off play progress tracking (when paused or dragging)\n *\n * @method stopTrackingCurrentTime\n */\n stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }\n\n /**\n * Turn off any manual progress or timeupdate tracking\n *\n * @method dispose\n */\n dispose() {\n // clear out text tracks because we can't reuse them between techs\n let textTracks = this.textTracks();\n\n if (textTracks) {\n let i = textTracks.length;\n while(i--) {\n this.removeRemoteTextTrack(textTracks[i]);\n }\n }\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) { this.manualProgressOff(); }\n\n if (this.manualTimeUpdates) { this.manualTimeUpdatesOff(); }\n\n super.dispose();\n }\n\n /**\n * When invoked without an argument, returns a MediaError object\n * representing the current error state of the player or null if\n * there is no error. When invoked with an argument, set the current\n * error state of the player.\n * @param {MediaError=} err Optional an error object\n * @return {MediaError} the current error object or null\n * @method error\n */\n error(err) {\n if (err !== undefined) {\n if (err instanceof MediaError) {\n this.error_ = err;\n } else {\n this.error_ = new MediaError(err);\n }\n this.trigger('error');\n }\n return this.error_;\n }\n\n /**\n * Return the time ranges that have been played through for the\n * current source. This implementation is incomplete. It does not\n * track the played time ranges, only whether the source has played\n * at all or not.\n * @return {TimeRangeObject} a single time range if this video has\n * played or an empty set of ranges if not.\n * @method played\n */\n played() {\n if (this.hasStarted_) {\n return createTimeRange(0, 0);\n }\n return createTimeRange();\n }\n\n /**\n * Set current time\n *\n * @method setCurrentTime\n */\n setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) { this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true }); }\n }\n\n /**\n * Initialize texttrack listeners\n *\n * @method initTextTrackListeners\n */\n initTextTrackListeners() {\n let textTrackListChanges = Fn.bind(this, function() {\n this.trigger('texttrackchange');\n });\n\n let tracks = this.textTracks();\n\n if (!tracks) return;\n\n tracks.addEventListener('removetrack', textTrackListChanges);\n tracks.addEventListener('addtrack', textTrackListChanges);\n\n this.on('dispose', Fn.bind(this, function() {\n tracks.removeEventListener('removetrack', textTrackListChanges);\n tracks.removeEventListener('addtrack', textTrackListChanges);\n }));\n }\n\n /**\n * Emulate texttracks\n *\n * @method emulateTextTracks\n */\n emulateTextTracks() {\n if (!window['WebVTT'] && this.el().parentNode != null) {\n let script = document.createElement('script');\n script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';\n this.el().parentNode.appendChild(script);\n window['WebVTT'] = true;\n }\n\n let tracks = this.textTracks();\n if (!tracks) {\n return;\n }\n\n let textTracksChanges = Fn.bind(this, function() {\n let updateDisplay = () => this.trigger('texttrackchange');\n\n updateDisplay();\n\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function() {\n tracks.removeEventListener('change', textTracksChanges);\n });\n }\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n textTracks() {\n this.textTracks_ = this.textTracks_ || new TextTrackList();\n return this.textTracks_;\n }\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new TextTrackList();\n return this.remoteTextTracks_;\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n }\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n addRemoteTextTrack(options) {\n let track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n }\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n }\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n setPoster() {}\n\n}\n\n/*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function(self, kind, label, language, options={}) {\n let tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n let track = new TextTrack(options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function(_Tech){\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function(handler, index){\n let handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function(source){\n let handlers = _Tech.sourceHandlers || [];\n let can;\n\n for (let i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function(srcObj){\n let sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n let originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function() {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function(source){\n let sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n log.error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function(){\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n\n};\n\nComponent.registerComponent('Tech', Tech);\n// Old name for Tech\nComponent.registerComponent('MediaTechController', Tech);\nexport default Tech;\n","/**\n * @file text-track-cue-list.js\n */\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nlet TextTrackCueList = function(cues) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function(cues) {\n let oldLength = this.length || 0;\n let i = 0;\n let l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n let defineProp = function(i) {\n if (!(''+i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for(; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function(id) {\n let result = null;\n for (let i = 0, l = this.length; i < l; i++) {\n let cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackCueList;\n","/**\n * @file text-track-display.js\n */\nimport Component from '../component';\nimport Menu from '../menu/menu.js';\nimport MenuItem from '../menu/menu-item.js';\nimport MenuButton from '../menu/menu-button.js';\nimport * as Fn from '../utils/fn.js';\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst darkGray = '#222';\nconst lightGray = '#ccc';\nconst fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\nclass TextTrackDisplay extends Component {\n\n constructor(player, options, ready){\n super(player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function() {\n if (player.tech && player.tech['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n let tracks = this.options_.playerOptions['tracks'] || [];\n for (let i = 0; i < tracks.length; i++) {\n let track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Toggle display texttracks \n *\n * @method toggleDisplay\n */\n toggleDisplay() {\n if (this.player_.tech && this.player_.tech['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-text-track-display'\n });\n }\n\n /**\n * Clear display texttracks \n *\n * @method clearDisplay\n */\n clearDisplay() {\n if (typeof window['WebVTT'] === 'function') {\n window['WebVTT']['processCues'](window, [], this.el_);\n }\n }\n\n /**\n * Update display texttracks \n *\n * @method updateDisplay\n */\n updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (let i=0; i < tracks.length; i++) {\n let track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n }\n\n /**\n * Add texttrack to texttrack list \n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n updateForTrack(track) {\n if (typeof window['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n let overrides = this.player_['textTrackSettings'].getValues();\n\n let cues = [];\n for (let i = 0; i < track['activeCues'].length; i++) {\n cues.push(track['activeCues'][i]);\n }\n\n window['WebVTT']['processCues'](window, track['activeCues'], this.el_);\n\n let i = cues.length;\n while (i--) {\n let cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'color',\n constructColor(overrides.color || '#fff',\n overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild,\n 'backgroundColor',\n constructColor(overrides.backgroundColor || '#000',\n overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv,\n 'backgroundColor',\n constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = `2px 2px 3px ${darkGray}, 2px 2px 4px ${darkGray}, 2px 2px 5px ${darkGray}`;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${darkGray}, 2px 2px ${darkGray}, 3px 3px ${darkGray}`;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = `1px 1px ${lightGray}, 0 1px ${lightGray}, -1px -1px ${darkGray}, 0 -1px ${darkGray}`;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = `0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}, 0 0 4px ${darkGray}`;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n const fontSize = window.parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = (fontSize * overrides.fontPercent) + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n }\n\n}\n\n/**\n* Add cue HTML to display\n*\n* @param {Number} color Hex number for color, like #f0e\n* @param {Number} opacity Value for opacity,0.0 - 1.0\n* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n* @method constructColor\n*/\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' +\n parseInt(color[2] + color[2], 16) + ',' +\n parseInt(color[3] + color[3], 16) + ',' +\n opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n // \n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\nComponent.registerComponent('TextTrackDisplay', TextTrackDisplay);\nexport default TextTrackDisplay;\n","/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexport { TextTrackMode, TextTrackKind };\n","/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\nlet trackToJson_ = function(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function(cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nlet textTracksToJson = function(tech) {\n let trackEls = tech.el().querySelectorAll('track');\n\n let trackObjs = Array.prototype.map.call(trackEls, (t) => t.track);\n let tracks = Array.prototype.map.call(trackEls, function(trackEl) {\n let json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function(track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nlet jsonToTextTracks = function(json, tech) {\n json.forEach(function(track) {\n let addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach((cue) => addedTrack.addCue(cue));\n }\n });\n\n return tech.textTracks();\n};\n\nexport default {textTracksToJson, jsonToTextTracks, trackToJson_};\n","/**\n * @file text-track-list.js\n */\nimport EventTarget from '../event-target';\nimport * as Fn from '../utils/fn.js';\nimport * as browser from '../utils/browser.js';\nimport document from 'global/document';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nlet TextTrackList = function(tracks) {\n let list = this;\n\n if (browser.IS_IE8) {\n list = document.createElement('custom');\n\n for (let prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function() {\n return this.tracks_.length;\n }\n });\n\n for (let i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(EventTarget.prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (let event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function(track) {\n let index = this.tracks_.length;\n if (!(''+index in this)) {\n Object.defineProperty(this, index, {\n get: function() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function() {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function(rtrack) {\n let result = null;\n let track;\n\n for (let i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function(id) {\n let result = null;\n\n for (let i = 0, l = this.length; i < l; i++) {\n let track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexport default TextTrackList;\n","/**\n * @file text-track-settings.js\n */\nimport Component from '../component';\nimport * as Events from '../utils/events.js';\nimport * as Fn from '../utils/fn.js';\nimport log from '../utils/log.js';\nimport safeParseTuple from 'safe-json-parse/tuple';\nimport window from 'global/window';\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\nclass TextTrackSettings extends Component {\n\n constructor(player, options) {\n super(player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function() {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function() {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n createEl() {\n return super.createEl('div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n }\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n getValues() {\n const el = this.el();\n\n const textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n const fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n const fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n const textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n const bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n const bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n const windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n const windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n const fontPercent = window['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n let result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (let name in result) {\n if (result[name] === '' || result[name] === 'none' || (name === 'fontPercent' && result[name] === 1.00)) {\n delete result[name];\n }\n }\n return result;\n }\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n setValues(values) {\n const el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n let fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n }\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n restoreSettings() {\n let [err, values] = safeParseTuple(window.localStorage.getItem('vjs-text-track-settings'));\n\n if (err) {\n log.error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n }\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n let values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n window.localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n window.localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n }\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n updateDisplay() {\n let ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n }\n\n}\n\nComponent.registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n let selectedOption;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n let i;\n for (i = 0; i < target.options.length; i++) {\n const option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n let template = `
\n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n
\n
\n \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n
\n
\n \n \n
`;\n\n return template;\n}\n\nexport default TextTrackSettings;\n","/**\n * @file text-track.js\n */\nimport TextTrackCueList from './text-track-cue-list';\nimport * as Fn from '../utils/fn.js';\nimport * as Guid from '../utils/guid.js';\nimport * as browser from '../utils/browser.js';\nimport * as TextTrackEnum from './text-track-enums';\nimport log from '../utils/log.js';\nimport EventTarget from '../event-target';\nimport document from 'global/document';\nimport window from 'global/window';\nimport XHR from '../xhr.js';\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nlet TextTrack = function(options={}) {\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n let tt = this;\n if (browser.IS_IE8) {\n tt = document.createElement('custom');\n\n for (let prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n let mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n let kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n let label = options['label'] || '';\n let language = options['language'] || options['srclang'] || '';\n let id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n let cues = new TextTrackCueList(tt.cues_);\n let activeCues = new TextTrackCueList(tt.activeCues_);\n\n let changed = false;\n let timeupdateHandler = Fn.bind(tt, function() {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function() {\n return mode;\n },\n set: function(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n let ct = this.tech_.currentTime();\n let active = [];\n\n for (let i = 0, l = this['cues'].length; i < l; i++) {\n let cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (let i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(EventTarget.prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function(cue) {\n let tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (let i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function(removeCue) {\n let removed = false;\n\n for (let i = 0, l = this.cues_.length; i < l; i++) {\n let cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function(srcContent, track) {\n if (typeof window['WebVTT'] !== 'function') {\n //try again a bit later\n return window.setTimeout(function() {\n parseCues(srcContent, track);\n }, 25);\n }\n\n let parser = new window['WebVTT']['Parser'](window, window['vttjs'], window['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function(cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function(error) {\n log.error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function(src, track) {\n XHR(src, Fn.bind(this, function(err, response, responseBody){\n if (err) {\n return log.error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n let O = Object(this);\n\n let len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n let n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n let k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexport default TextTrack;\n","/**\n * @file browser.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\n\nconst USER_AGENT = window.navigator.userAgent;\nconst webkitVersionMap = (/AppleWebKit\\/([\\d.]+)/i).exec(USER_AGENT);\nconst appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nexport const IS_IPHONE = (/iPhone/i).test(USER_AGENT);\nexport const IS_IPAD = (/iPad/i).test(USER_AGENT);\nexport const IS_IPOD = (/iPod/i).test(USER_AGENT);\nexport const IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexport const IOS_VERSION = (function(){\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) { return match[1]; }\n})();\n\nexport const IS_ANDROID = (/Android/i).test(USER_AGENT);\nexport const ANDROID_VERSION = (function() {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nexport const IS_OLD_ANDROID = IS_ANDROID && (/webkit/i).test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexport const IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexport const IS_FIREFOX = (/Firefox/i).test(USER_AGENT);\nexport const IS_CHROME = (/Chrome/i).test(USER_AGENT);\nexport const IS_IE8 = (/MSIE\\s8\\.0/).test(USER_AGENT);\n\nexport const TOUCH_ENABLED = !!(('ontouchstart' in window) || window.DocumentTouch && document instanceof window.DocumentTouch);\nexport const BACKGROUND_SIZE_SUPPORTED = 'backgroundSize' in document.createElement('video').style;\n","/**\n * @file buffer.js\n */\nimport { createTimeRange } from './time-ranges.js';\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\nexport function bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start, end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = createTimeRange(0, 0);\n }\n\n for (let i = 0; i < buffered.length; i++){\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n","import log from './log.js';\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nconst defaultBehaviors = {\n get(obj, key) {\n return obj[key];\n },\n set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\nexport default (target, messages={}) => {\n if (typeof Proxy === 'function') {\n let handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(key => {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function() {\n log.warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return new Proxy(target, handler);\n }\n return target;\n};\n","/**\n * @file dom.js\n */\nimport document from 'global/document';\nimport window from 'global/window';\nimport * as Guid from './guid.js';\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\nexport function getEl(id){\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return document.getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\nexport function createEl(tagName='div', properties={}){\n let el = document.createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function(propName){\n let val = properties[propName];\n\n // Not remembering why we were checking for dash\n // but using setAttribute means you have to use getAttribute\n\n // The check for dash checks for the aria- * attributes, like aria-label, aria-valuemin.\n // The additional check for \"role\" is because the default method for adding attributes does not\n // add the attribute \"role\". My guess is because it's not a valid attribute in some namespaces, although\n // browsers handle the attribute just fine. The W3C allows for aria- * attributes to be used in pre-HTML5 docs.\n // http://www.w3.org/TR/wai-aria-primer/#ariahtml. Using setAttribute gets around this problem.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\nexport function insertElFirst(child, parent){\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nconst elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nconst elIdAttr = 'vdata' + (new Date()).getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\nexport function getElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\nexport function hasElData(el) {\n const id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\nexport function removeElData(el) {\n let id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch(e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\nexport function hasElClass(element, classToCheck) {\n return ((' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1);\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\nexport function addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\nexport function removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {return;}\n\n let classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (let i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i,1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\nexport function setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function(attrName){\n let attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, (attrValue === true ? '' : attrValue));\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\nexport function getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ','+'autoplay,controls,loop,muted,default'+',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(','+attrName+',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = (attrVal !== null) ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\nexport function blockTextSelection() {\n document.body.focus();\n document.onselectstart = function() {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\nexport function unblockTextSelection() {\n document.onselectstart = function() {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\nexport function findElPosition(el) {\n let box;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n const docEl = document.documentElement;\n const body = document.body;\n\n const clientLeft = docEl.clientLeft || body.clientLeft || 0;\n const scrollLeft = window.pageXOffset || body.scrollLeft;\n const left = box.left + scrollLeft - clientLeft;\n\n const clientTop = docEl.clientTop || body.clientTop || 0;\n const scrollTop = window.pageYOffset || body.scrollTop;\n const top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n","/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\nimport * as Dom from './dom.js';\nimport * as Guid from './guid.js';\nimport window from 'global/window';\nimport document from 'global/document';\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nexport function on(elem, type, fn){\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n let data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash){\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nexport function off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n let data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) { return; }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function(t){\n data.handlers[t] = [];\n _cleanUpEvents(elem,t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (let t in data.handlers) removeType(t);\n return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (let n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nexport function trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = (Dom.hasElData(elem)) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type:event, target:elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nexport function one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function(){\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\nexport function fixEvent(event) {\n\n function returnTrue() { return true; }\n function returnFalse() { return false; }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || window.event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || document;\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ?\n event.toElement :\n event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = document.documentElement, body = document.body;\n\n event.pageX = event.clientX +\n (doc && doc.scrollLeft || body && body.scrollLeft || 0) -\n (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY +\n (doc && doc.scrollTop || body && body.scrollTop || 0) -\n (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = (event.button & 1 ? 0 :\n (event.button & 4 ? 1 :\n (event.button & 2 ? 2 : 0)));\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function(type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n","/**\n * @file fn.js\n */\nimport { newGUID } from './guid.js';\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nexport const bind = function(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) { fn.guid = newGUID(); }\n\n // Create the new function that changes the context\n let ret = function() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = (uid) ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\n","/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\nfunction formatTime(seconds, guide=seconds) {\n let s = Math.floor(seconds % 60);\n let m = Math.floor(seconds / 60 % 60);\n let h = Math.floor(seconds / 3600);\n const gm = Math.floor(guide / 60 % 60);\n const gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = (h > 0 || gh > 0) ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = (((h || gm >= 10) && m < 10) ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = (s < 10) ? '0' + s : s;\n\n return h + m + s;\n}\n\nexport default formatTime;\n","/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\nlet _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\nexport function newGUID() {\n return _guid++;\n}\n","/**\n * @file log.js\n */\nimport window from 'global/window';\n\n/**\n * Log plain debug messages\n */\nconst log = function(){\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function(){\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function(){\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args){\n // convert args to an array to get array functions\n let argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n let noop = function(){};\n\n let console = window['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase()+':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexport default log;\n","/**\n * @file merge-options.js\n */\nimport merge from 'lodash-compat/object/merge';\n\nfunction isPlain(obj) {\n return !!obj\n && typeof obj === 'object'\n && obj.toString() === '[object Object]'\n && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nconst customizer = function(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\nexport default function mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n let args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n merge.apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n","import document from 'global/document';\n\nexport let createStyleElement = function(className) {\n let style = document.createElement('style');\n style.className = className;\n\n return style;\n};\n\nexport let setTextContent = function(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\n","/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {Number} start Start time in seconds\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @private\n * @method createTimeRange\n */\nexport function createTimeRange(start, end){\n if (start === undefined && end === undefined) {\n return {\n length: 0,\n start: function() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: 1,\n start: function() { return start; },\n end: function() { return end; }\n };\n}\n","/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\nfunction toTitleCase(string){\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexport default toTitleCase;\n","/**\n * @file url.js\n */\nimport document from 'global/document';\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nexport const parseUrl = function(url) {\n const props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n let a = document.createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n let addToBody = (a.host === '' && a.protocol !== 'file:');\n let div;\n if (addToBody) {\n div = document.createElement('div');\n div.innerHTML = ``;\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n document.body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n let details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n document.body.removeChild(div);\n }\n\n return details;\n};\n\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nexport const getAbsoluteURL = function(url){\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n let div = document.createElement('div');\n div.innerHTML = `x`;\n url = div.firstChild.href;\n }\n\n return url;\n};\n\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nexport const getFileExtension = function(path) {\n if(typeof path === 'string'){\n let splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n let pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n","/**\n * @file video.js\n */\nimport document from 'global/document';\nimport * as setup from './setup';\nimport * as stylesheet from './utils/stylesheet.js';\nimport Component from './component';\nimport EventTarget from './event-target';\nimport * as Events from './utils/events.js';\nimport Player from './player';\nimport plugin from './plugins.js';\nimport mergeOptions from '../../src/js/utils/merge-options.js';\nimport * as Fn from './utils/fn.js';\n\nimport assign from 'object.assign';\nimport { createTimeRange } from './utils/time-ranges.js';\nimport formatTime from './utils/format-time.js';\nimport log from './utils/log.js';\nimport xhr from './xhr.js';\nimport * as Dom from './utils/dom.js';\nimport * as browser from './utils/browser.js';\nimport * as Url from './utils/url.js';\nimport extendsFn from './extends.js';\nimport merge from 'lodash-compat/object/merge';\nimport createDeprecationProxy from './utils/create-deprecation-proxy.js';\n\n// Include the built-in techs\nimport Html5 from './tech/html5.js';\nimport Flash from './tech/flash.js';\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n document.createElement('video');\n document.createElement('audio');\n document.createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function(id, options, ready){\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n log.warn(`Player \"${id}\" is already initialised. Options will not be applied.`);\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) { // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new Player(tag, options, ready);\n};\n\n// Add default styles\nlet style = stylesheet.createStyleElement('vjs-styles-defaults');\nlet head = document.querySelector('head');\nhead.insertBefore(style, head.firstChild);\nstylesheet.setTextContent(style, `\n .video-js {\n width: 300px;\n height: 150px;\n`);\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '__VERSION__';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = Player.prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function() {\n return Player.players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = createDeprecationProxy(Player.players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = Component.getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extends' doc for more info)\n * var MySpecialButton = videojs.extends(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = Component.registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extends` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extends(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extends\n */\nvideojs.extends = extendsFn;\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = mergeOptions;\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = plugin;\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function(code, data){\n code = ('' + code).toLowerCase();\n return merge(videojs.options.languages, { [code]: data })[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = log;\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number} start Start time in seconds\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = createTimeRange;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = formatTime;\n\n/**\n * Simple http request for retrieving external files (e.g. text tracks)\n *\n * ##### Example\n *\n * // using url string\n * videojs.xhr('http://example.com/myfile.vtt', function(error, response, responseBody){});\n *\n * // or options block\n * videojs.xhr({\n * uri: 'http://example.com/myfile.vtt',\n * method: 'GET',\n * responseType: 'text'\n * }, function(error, response, responseBody){\n * if (error) {\n * // log the error\n * } else {\n * // successful, do something with the response\n * }\n * });\n *\n *\n * API is modeled after the Raynos/xhr.\n * https://github.com/Raynos/xhr/blob/master/index.js\n *\n * @param {Object|String} options Options block or URL string\n * @param {Function} callback The callback function\n * @returns {Object} The request\n */\nvideojs.xhr = xhr;\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = EventTarget;\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function(){ return videojs; });\n\n// checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n}\n\nexport default videojs;\n","/**\n * @file xhr.js\n */\nimport * as Url from './utils/url.js';\nimport log from './utils/log.js';\nimport mergeOptions from './utils/merge-options.js';\nimport window from 'global/window';\n\n/*\n * Simple http request for retrieving external files (e.g. text tracks)\n * ##### Example\n * // using url string\n * videojs.xhr('http://example.com/myfile.vtt', function(error, response, responseBody){});\n *\n * // or options block\n * videojs.xhr({\n * uri: 'http://example.com/myfile.vtt',\n * method: 'GET',\n * responseType: 'text'\n * }, function(error, response, responseBody){\n * if (error) {\n * // log the error\n * } else {\n * // successful, do something with the response\n * }\n * });\n * /////////////\n * API is modeled after the Raynos/xhr, which we hope to use after\n * getting browserify implemented.\n * https://github.com/Raynos/xhr/blob/master/index.js\n *\n * @param {Object|String} options Options block or URL string\n * @param {Function} callback The callback function\n * @return {Object} The request\n * @method xhr\n */\nvar xhr = function(options, callback){\n let abortTimeout;\n\n // If options is a string it's the url\n if (typeof options === 'string') {\n options = {\n uri: options\n };\n }\n\n // Merge with default options\n options = mergeOptions({\n method: 'GET',\n timeout: 45 * 1000\n }, options);\n\n callback = callback || function(){};\n\n let XHR = window.XMLHttpRequest;\n\n if (typeof XHR === 'undefined') {\n // Shim XMLHttpRequest for older IEs\n XHR = function () {\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.6.0'); } catch (e) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP.3.0'); } catch (f) {}\n try { return new window.ActiveXObject('Msxml2.XMLHTTP'); } catch (g) {}\n throw new Error('This browser does not support XMLHttpRequest.');\n };\n }\n\n let request = new XHR();\n // Store a reference to the url on the request instance\n request.uri = options.uri;\n\n let urlInfo = Url.parseUrl(options.uri);\n let winLoc = window.location;\n\n let successHandler = function(){\n window.clearTimeout(abortTimeout);\n callback(null, request, request.response || request.responseText);\n };\n\n let errorHandler = function(err){\n window.clearTimeout(abortTimeout);\n\n if (!err || typeof err === 'string') {\n err = new Error(err || 'XHR Failed with a response of: '+(request && (request.response || request.responseText)));\n }\n\n callback(err, request);\n };\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n const crossOrigin = (urlInfo.protocol + urlInfo.host) !== (winLoc.protocol + winLoc.host);\n\n // XDomainRequest -- Use for IE if XMLHTTPRequest2 isn't available\n // 'withCredentials' is only available in XMLHTTPRequest2\n // Also XDomainRequest has a lot of gotchas, so only use if cross domain\n if (crossOrigin && window.XDomainRequest && !('withCredentials' in request)) {\n request = new window.XDomainRequest();\n request.onload = successHandler;\n request.onerror = errorHandler;\n // These blank handlers need to be set to fix ie9\n // http://cypressnorth.com/programming/internet-explorer-aborting-ajax-requests-fixed/\n request.onprogress = function(){};\n request.ontimeout = function(){};\n\n // XMLHTTPRequest\n } else {\n const fileUrl = (urlInfo.protocol === 'file:' || winLoc.protocol === 'file:');\n\n request.onreadystatechange = function() {\n if (request.readyState === 4) {\n if (request.timedout) {\n return errorHandler('timeout');\n }\n\n if (request.status === 200 || fileUrl && request.status === 0) {\n successHandler();\n } else {\n errorHandler();\n }\n }\n };\n\n if (options.timeout) {\n abortTimeout = window.setTimeout(function() {\n if (request.readyState !== 4) {\n request.timedout = true;\n request.abort();\n }\n }, options.timeout);\n }\n }\n\n // open the connection\n try {\n // Third arg is async, or ignored by XDomainRequest\n request.open(options.method || 'GET', options.uri, true);\n } catch(err) {\n return errorHandler(err);\n }\n\n // withCredentials only supported by XMLHttpRequest2\n if(options.withCredentials) {\n request.withCredentials = true;\n }\n\n if (options.responseType) {\n request.responseType = options.responseType;\n }\n\n // send the request\n try {\n request.send();\n } catch(err) {\n return errorHandler(err);\n }\n\n return request;\n};\n\nexport default xhr;\n"]}
\ No newline at end of file
diff --git a/node_modules/video.js/dist/video.novtt.js b/node_modules/video.js/dist/video.novtt.js
index 85a78a9..38f5168 100644
--- a/node_modules/video.js/dist/video.novtt.js
+++ b/node_modules/video.js/dist/video.novtt.js
@@ -17,7 +17,7 @@ if (typeof document !== 'undefined') {
}
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
+//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9nbG9iYWwvZG9jdW1lbnQuanMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBIiwiZmlsZSI6ImdlbmVyYXRlZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJ2YXIgdG9wTGV2ZWwgPSB0eXBlb2YgZ2xvYmFsICE9PSAndW5kZWZpbmVkJyA/IGdsb2JhbCA6XG4gICAgdHlwZW9mIHdpbmRvdyAhPT0gJ3VuZGVmaW5lZCcgPyB3aW5kb3cgOiB7fVxudmFyIG1pbkRvYyA9IHJlcXVpcmUoJ21pbi1kb2N1bWVudCcpO1xuXG5pZiAodHlwZW9mIGRvY3VtZW50ICE9PSAndW5kZWZpbmVkJykge1xuICAgIG1vZHVsZS5leHBvcnRzID0gZG9jdW1lbnQ7XG59IGVsc2Uge1xuICAgIHZhciBkb2NjeSA9IHRvcExldmVsWydfX0dMT0JBTF9ET0NVTUVOVF9DQUNIRUA0J107XG5cbiAgICBpZiAoIWRvY2N5KSB7XG4gICAgICAgIGRvY2N5ID0gdG9wTGV2ZWxbJ19fR0xPQkFMX0RPQ1VNRU5UX0NBQ0hFQDQnXSA9IG1pbkRvYztcbiAgICB9XG5cbiAgICBtb2R1bGUuZXhwb3J0cyA9IGRvY2N5O1xufVxuIl19
},{"min-document":3}],2:[function(_dereq_,module,exports){
(function (global){
if (typeof window !== "undefined") {
@@ -31,7 +31,7 @@ if (typeof window !== "undefined") {
}
}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
+//# sourceMappingURL=data:application/json;charset:utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIm5vZGVfbW9kdWxlcy9nbG9iYWwvd2luZG93LmpzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQTtBQUNBO0FBQ0E7QUFDQSIsImZpbGUiOiJnZW5lcmF0ZWQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlc0NvbnRlbnQiOlsiaWYgKHR5cGVvZiB3aW5kb3cgIT09IFwidW5kZWZpbmVkXCIpIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHdpbmRvdztcbn0gZWxzZSBpZiAodHlwZW9mIGdsb2JhbCAhPT0gXCJ1bmRlZmluZWRcIikge1xuICAgIG1vZHVsZS5leHBvcnRzID0gZ2xvYmFsO1xufSBlbHNlIGlmICh0eXBlb2Ygc2VsZiAhPT0gXCJ1bmRlZmluZWRcIil7XG4gICAgbW9kdWxlLmV4cG9ydHMgPSBzZWxmO1xufSBlbHNlIHtcbiAgICBtb2R1bGUuZXhwb3J0cyA9IHt9O1xufVxuIl19
},{}],3:[function(_dereq_,module,exports){
},{}],4:[function(_dereq_,module,exports){
@@ -45,7 +45,7 @@ var nativeMax = Math.max;
* Creates a function that invokes `func` with the `this` binding of the
* created function and arguments from `start` and beyond provided as an array.
*
- * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters).
+ * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).
*
* @static
* @memberOf _
@@ -184,7 +184,7 @@ var baseFor = createBaseFor();
module.exports = baseFor;
-},{"./createBaseFor":17}],9:[function(_dereq_,module,exports){
+},{"./createBaseFor":15}],9:[function(_dereq_,module,exports){
var baseFor = _dereq_('./baseFor'),
keysIn = _dereq_('../object/keysIn');
@@ -203,24 +203,7 @@ function baseForIn(object, iteratee) {
module.exports = baseForIn;
-},{"../object/keysIn":39,"./baseFor":8}],10:[function(_dereq_,module,exports){
-/**
- * The base implementation of `_.isFunction` without support for environments
- * with incorrect `typeof` results.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.
- */
-function baseIsFunction(value) {
- // Avoid a Chakra JIT bug in compatibility modes of IE 11.
- // See https://github.com/jashkenas/underscore/issues/1621 for more details.
- return typeof value == 'function' || false;
-}
-
-module.exports = baseIsFunction;
-
-},{}],11:[function(_dereq_,module,exports){
+},{"../object/keysIn":36,"./baseFor":8}],10:[function(_dereq_,module,exports){
var arrayEach = _dereq_('./arrayEach'),
baseMergeDeep = _dereq_('./baseMergeDeep'),
isArray = _dereq_('../lang/isArray'),
@@ -237,7 +220,7 @@ var arrayEach = _dereq_('./arrayEach'),
* @private
* @param {Object} object The destination object.
* @param {Object} source The source object.
- * @param {Function} [customizer] The function to customize merging properties.
+ * @param {Function} [customizer] The function to customize merged values.
* @param {Array} [stackA=[]] Tracks traversed source objects.
* @param {Array} [stackB=[]] Associates values with source counterparts.
* @returns {Object} Returns `object`.
@@ -247,7 +230,7 @@ function baseMerge(object, source, customizer, stackA, stackB) {
return object;
}
var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),
- props = isSrcArr ? null : keys(source);
+ props = isSrcArr ? undefined : keys(source);
arrayEach(props || source, function(srcValue, key) {
if (props) {
@@ -278,7 +261,7 @@ function baseMerge(object, source, customizer, stackA, stackB) {
module.exports = baseMerge;
-},{"../lang/isArray":30,"../lang/isObject":33,"../lang/isTypedArray":36,"../object/keys":38,"./arrayEach":6,"./baseMergeDeep":12,"./isArrayLike":20,"./isObjectLike":25}],12:[function(_dereq_,module,exports){
+},{"../lang/isArray":27,"../lang/isObject":30,"../lang/isTypedArray":33,"../object/keys":35,"./arrayEach":6,"./baseMergeDeep":11,"./isArrayLike":18,"./isObjectLike":23}],11:[function(_dereq_,module,exports){
var arrayCopy = _dereq_('./arrayCopy'),
isArguments = _dereq_('../lang/isArguments'),
isArray = _dereq_('../lang/isArray'),
@@ -297,7 +280,7 @@ var arrayCopy = _dereq_('./arrayCopy'),
* @param {Object} source The source object.
* @param {string} key The key of the value to merge.
* @param {Function} mergeFunc The function to merge values.
- * @param {Function} [customizer] The function to customize merging properties.
+ * @param {Function} [customizer] The function to customize merged values.
* @param {Array} [stackA=[]] Tracks traversed source objects.
* @param {Array} [stackB=[]] Associates values with source counterparts.
* @returns {boolean} Returns `true` if the objects are equivalent, else `false`.
@@ -347,7 +330,7 @@ function baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stack
module.exports = baseMergeDeep;
-},{"../lang/isArguments":29,"../lang/isArray":30,"../lang/isPlainObject":34,"../lang/isTypedArray":36,"../lang/toPlainObject":37,"./arrayCopy":5,"./isArrayLike":20}],13:[function(_dereq_,module,exports){
+},{"../lang/isArguments":26,"../lang/isArray":27,"../lang/isPlainObject":31,"../lang/isTypedArray":33,"../lang/toPlainObject":34,"./arrayCopy":5,"./isArrayLike":18}],12:[function(_dereq_,module,exports){
var toObject = _dereq_('./toObject');
/**
@@ -365,25 +348,7 @@ function baseProperty(key) {
module.exports = baseProperty;
-},{"./toObject":28}],14:[function(_dereq_,module,exports){
-/**
- * Converts `value` to a string if it's not one. An empty string is returned
- * for `null` or `undefined` values.
- *
- * @private
- * @param {*} value The value to process.
- * @returns {string} Returns the string.
- */
-function baseToString(value) {
- if (typeof value == 'string') {
- return value;
- }
- return value == null ? '' : (value + '');
-}
-
-module.exports = baseToString;
-
-},{}],15:[function(_dereq_,module,exports){
+},{"./toObject":25}],13:[function(_dereq_,module,exports){
var identity = _dereq_('../utility/identity');
/**
@@ -424,16 +389,13 @@ function bindCallback(func, thisArg, argCount) {
module.exports = bindCallback;
-},{"../utility/identity":43}],16:[function(_dereq_,module,exports){
+},{"../utility/identity":39}],14:[function(_dereq_,module,exports){
var bindCallback = _dereq_('./bindCallback'),
isIterateeCall = _dereq_('./isIterateeCall'),
restParam = _dereq_('../function/restParam');
/**
- * Creates a function that assigns properties of source object(s) to a given
- * destination object.
- *
- * **Note:** This function is used to create `_.assign`, `_.defaults`, and `_.merge`.
+ * Creates a `_.assign`, `_.defaults`, or `_.merge` function.
*
* @private
* @param {Function} assigner The function to assign values.
@@ -470,7 +432,7 @@ function createAssigner(assigner) {
module.exports = createAssigner;
-},{"../function/restParam":4,"./bindCallback":15,"./isIterateeCall":23}],17:[function(_dereq_,module,exports){
+},{"../function/restParam":4,"./bindCallback":13,"./isIterateeCall":21}],15:[function(_dereq_,module,exports){
var toObject = _dereq_('./toObject');
/**
@@ -499,7 +461,7 @@ function createBaseFor(fromRight) {
module.exports = createBaseFor;
-},{"./toObject":28}],18:[function(_dereq_,module,exports){
+},{"./toObject":25}],16:[function(_dereq_,module,exports){
var baseProperty = _dereq_('./baseProperty');
/**
@@ -516,7 +478,7 @@ var getLength = baseProperty('length');
module.exports = getLength;
-},{"./baseProperty":13}],19:[function(_dereq_,module,exports){
+},{"./baseProperty":12}],17:[function(_dereq_,module,exports){
var isNative = _dereq_('../lang/isNative');
/**
@@ -534,7 +496,7 @@ function getNative(object, key) {
module.exports = getNative;
-},{"../lang/isNative":32}],20:[function(_dereq_,module,exports){
+},{"../lang/isNative":29}],18:[function(_dereq_,module,exports){
var getLength = _dereq_('./getLength'),
isLength = _dereq_('./isLength');
@@ -551,7 +513,7 @@ function isArrayLike(value) {
module.exports = isArrayLike;
-},{"./getLength":18,"./isLength":24}],21:[function(_dereq_,module,exports){
+},{"./getLength":16,"./isLength":22}],19:[function(_dereq_,module,exports){
/**
* Checks if `value` is a host object in IE < 9.
*
@@ -574,12 +536,12 @@ var isHostObject = (function() {
module.exports = isHostObject;
-},{}],22:[function(_dereq_,module,exports){
+},{}],20:[function(_dereq_,module,exports){
/** Used to detect unsigned integer values. */
var reIsUint = /^\d+$/;
/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
* of an array-like value.
*/
var MAX_SAFE_INTEGER = 9007199254740991;
@@ -600,7 +562,7 @@ function isIndex(value, length) {
module.exports = isIndex;
-},{}],23:[function(_dereq_,module,exports){
+},{}],21:[function(_dereq_,module,exports){
var isArrayLike = _dereq_('./isArrayLike'),
isIndex = _dereq_('./isIndex'),
isObject = _dereq_('../lang/isObject');
@@ -630,9 +592,9 @@ function isIterateeCall(value, index, object) {
module.exports = isIterateeCall;
-},{"../lang/isObject":33,"./isArrayLike":20,"./isIndex":22}],24:[function(_dereq_,module,exports){
+},{"../lang/isObject":30,"./isArrayLike":18,"./isIndex":20}],22:[function(_dereq_,module,exports){
/**
- * Used as the [maximum length](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-number.max_safe_integer)
+ * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)
* of an array-like value.
*/
var MAX_SAFE_INTEGER = 9007199254740991;
@@ -640,7 +602,7 @@ var MAX_SAFE_INTEGER = 9007199254740991;
/**
* Checks if `value` is a valid array-like length.
*
- * **Note:** This function is based on [`ToLength`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-tolength).
+ * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).
*
* @private
* @param {*} value The value to check.
@@ -652,7 +614,7 @@ function isLength(value) {
module.exports = isLength;
-},{}],25:[function(_dereq_,module,exports){
+},{}],23:[function(_dereq_,module,exports){
/**
* Checks if `value` is object-like.
*
@@ -666,70 +628,7 @@ function isObjectLike(value) {
module.exports = isObjectLike;
-},{}],26:[function(_dereq_,module,exports){
-var baseForIn = _dereq_('./baseForIn'),
- isArguments = _dereq_('../lang/isArguments'),
- isHostObject = _dereq_('./isHostObject'),
- isObjectLike = _dereq_('./isObjectLike'),
- support = _dereq_('../support');
-
-/** `Object#toString` result references. */
-var objectTag = '[object Object]';
-
-/** Used for native method references. */
-var objectProto = Object.prototype;
-
-/** Used to check objects for own properties. */
-var hasOwnProperty = objectProto.hasOwnProperty;
-
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
-/**
- * A fallback implementation of `_.isPlainObject` which checks if `value`
- * is an object created by the `Object` constructor or has a `[[Prototype]]`
- * of `null`.
- *
- * @private
- * @param {*} value The value to check.
- * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.
- */
-function shimIsPlainObject(value) {
- var Ctor;
-
- // Exit early for non `Object` objects.
- if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value)) ||
- (!hasOwnProperty.call(value, 'constructor') &&
- (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor))) ||
- (!support.argsTag && isArguments(value))) {
- return false;
- }
- // IE < 9 iterates inherited properties before own properties. If the first
- // iterated property is an object's own property then there are no inherited
- // enumerable properties.
- var result;
- if (support.ownLast) {
- baseForIn(value, function(subValue, key, object) {
- result = hasOwnProperty.call(object, key);
- return false;
- });
- return result !== false;
- }
- // In most environments an object's own properties are iterated before
- // its inherited properties. If the last iterated property is an object's
- // own property then there are no inherited enumerable properties.
- baseForIn(value, function(subValue, key) {
- result = key;
- });
- return result === undefined || hasOwnProperty.call(value, result);
-}
-
-module.exports = shimIsPlainObject;
-
-},{"../lang/isArguments":29,"../support":42,"./baseForIn":9,"./isHostObject":21,"./isObjectLike":25}],27:[function(_dereq_,module,exports){
+},{}],24:[function(_dereq_,module,exports){
var isArguments = _dereq_('../lang/isArguments'),
isArray = _dereq_('../lang/isArray'),
isIndex = _dereq_('./isIndex'),
@@ -773,7 +672,7 @@ function shimKeys(object) {
module.exports = shimKeys;
-},{"../lang/isArguments":29,"../lang/isArray":30,"../lang/isString":35,"../object/keysIn":39,"./isIndex":22,"./isLength":24}],28:[function(_dereq_,module,exports){
+},{"../lang/isArguments":26,"../lang/isArray":27,"../lang/isString":32,"../object/keysIn":36,"./isIndex":20,"./isLength":22}],25:[function(_dereq_,module,exports){
var isObject = _dereq_('../lang/isObject'),
isString = _dereq_('../lang/isString'),
support = _dereq_('../support');
@@ -801,13 +700,9 @@ function toObject(value) {
module.exports = toObject;
-},{"../lang/isObject":33,"../lang/isString":35,"../support":42}],29:[function(_dereq_,module,exports){
+},{"../lang/isObject":30,"../lang/isString":32,"../support":38}],26:[function(_dereq_,module,exports){
var isArrayLike = _dereq_('../internal/isArrayLike'),
- isObjectLike = _dereq_('../internal/isObjectLike'),
- support = _dereq_('../support');
-
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]';
+ isObjectLike = _dereq_('../internal/isObjectLike');
/** Used for native method references. */
var objectProto = Object.prototype;
@@ -815,12 +710,6 @@ var objectProto = Object.prototype;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
/** Native method references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable;
@@ -841,19 +730,13 @@ var propertyIsEnumerable = objectProto.propertyIsEnumerable;
* // => false
*/
function isArguments(value) {
- return isObjectLike(value) && isArrayLike(value) && objToString.call(value) == argsTag;
-}
-// Fallback for environments without a `toStringTag` for `arguments` objects.
-if (!support.argsTag) {
- isArguments = function(value) {
- return isObjectLike(value) && isArrayLike(value) &&
- hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
- };
+ return isObjectLike(value) && isArrayLike(value) &&
+ hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');
}
module.exports = isArguments;
-},{"../internal/isArrayLike":20,"../internal/isObjectLike":25,"../support":42}],30:[function(_dereq_,module,exports){
+},{"../internal/isArrayLike":18,"../internal/isObjectLike":23}],27:[function(_dereq_,module,exports){
var getNative = _dereq_('../internal/getNative'),
isLength = _dereq_('../internal/isLength'),
isObjectLike = _dereq_('../internal/isObjectLike');
@@ -865,7 +748,7 @@ var arrayTag = '[object Array]';
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -895,10 +778,8 @@ var isArray = nativeIsArray || function(value) {
module.exports = isArray;
-},{"../internal/getNative":19,"../internal/isLength":24,"../internal/isObjectLike":25}],31:[function(_dereq_,module,exports){
-(function (global){
-var baseIsFunction = _dereq_('../internal/baseIsFunction'),
- getNative = _dereq_('../internal/getNative');
+},{"../internal/getNative":17,"../internal/isLength":22,"../internal/isObjectLike":23}],28:[function(_dereq_,module,exports){
+var isObject = _dereq_('./isObject');
/** `Object#toString` result references. */
var funcTag = '[object Function]';
@@ -907,14 +788,11 @@ var funcTag = '[object Function]';
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
-/** Native method references. */
-var Uint8Array = getNative(global, 'Uint8Array');
-
/**
* Checks if `value` is classified as a `Function` object.
*
@@ -931,25 +809,20 @@ var Uint8Array = getNative(global, 'Uint8Array');
* _.isFunction(/abc/);
* // => false
*/
-var isFunction = !(baseIsFunction(/x/) || (Uint8Array && !baseIsFunction(Uint8Array))) ? baseIsFunction : function(value) {
+function isFunction(value) {
// The use of `Object#toString` avoids issues with the `typeof` operator
// in older versions of Chrome and Safari which return 'function' for regexes
- // and Safari 8 equivalents which return 'object' for typed array constructors.
- return objToString.call(value) == funcTag;
-};
+ // and Safari 8 which returns 'object' for typed array constructors.
+ return isObject(value) && objToString.call(value) == funcTag;
+}
module.exports = isFunction;
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
-},{"../internal/baseIsFunction":10,"../internal/getNative":19}],32:[function(_dereq_,module,exports){
-var escapeRegExp = _dereq_('../string/escapeRegExp'),
+},{"./isObject":30}],29:[function(_dereq_,module,exports){
+var isFunction = _dereq_('./isFunction'),
isHostObject = _dereq_('../internal/isHostObject'),
isObjectLike = _dereq_('../internal/isObjectLike');
-/** `Object#toString` result references. */
-var funcTag = '[object Function]';
-
/** Used to detect host constructors (Safari > 5). */
var reIsHostCtor = /^\[object .+?Constructor\]$/;
@@ -962,15 +835,9 @@ var fnToString = Function.prototype.toString;
/** Used to check objects for own properties. */
var hasOwnProperty = objectProto.hasOwnProperty;
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
/** Used to detect if a method is native. */
var reIsNative = RegExp('^' +
- escapeRegExp(fnToString.call(hasOwnProperty))
+ fnToString.call(hasOwnProperty).replace(/[\\^$.*+?()[\]{}|]/g, '\\$&')
.replace(/hasOwnProperty|(function).*?(?=\\\()| for .+?(?=\\\])/g, '$1.*?') + '$'
);
@@ -994,7 +861,7 @@ function isNative(value) {
if (value == null) {
return false;
}
- if (objToString.call(value) == funcTag) {
+ if (isFunction(value)) {
return reIsNative.test(fnToString.call(value));
}
return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);
@@ -1002,7 +869,7 @@ function isNative(value) {
module.exports = isNative;
-},{"../internal/isHostObject":21,"../internal/isObjectLike":25,"../string/escapeRegExp":41}],33:[function(_dereq_,module,exports){
+},{"../internal/isHostObject":19,"../internal/isObjectLike":23,"./isFunction":28}],30:[function(_dereq_,module,exports){
/**
* Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.
* (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)
@@ -1032,10 +899,11 @@ function isObject(value) {
module.exports = isObject;
-},{}],34:[function(_dereq_,module,exports){
-var getNative = _dereq_('../internal/getNative'),
+},{}],31:[function(_dereq_,module,exports){
+var baseForIn = _dereq_('../internal/baseForIn'),
isArguments = _dereq_('./isArguments'),
- shimIsPlainObject = _dereq_('../internal/shimIsPlainObject'),
+ isHostObject = _dereq_('../internal/isHostObject'),
+ isObjectLike = _dereq_('../internal/isObjectLike'),
support = _dereq_('../support');
/** `Object#toString` result references. */
@@ -1044,15 +912,15 @@ var objectTag = '[object Object]';
/** Used for native method references. */
var objectProto = Object.prototype;
+/** Used to check objects for own properties. */
+var hasOwnProperty = objectProto.hasOwnProperty;
+
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
-/** Native method references. */
-var getPrototypeOf = getNative(Object, 'getPrototypeOf');
-
/**
* Checks if `value` is a plain object, that is, an object created by the
* `Object` constructor or one with a `[[Prototype]]` of `null`.
@@ -1083,21 +951,37 @@ var getPrototypeOf = getNative(Object, 'getPrototypeOf');
* _.isPlainObject(Object.create(null));
* // => true
*/
-var isPlainObject = !getPrototypeOf ? shimIsPlainObject : function(value) {
- if (!(value && objToString.call(value) == objectTag) || (!support.argsTag && isArguments(value))) {
+function isPlainObject(value) {
+ var Ctor;
+
+ // Exit early for non `Object` objects.
+ if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||
+ (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {
return false;
}
- var valueOf = getNative(value, 'valueOf'),
- objProto = valueOf && (objProto = getPrototypeOf(valueOf)) && getPrototypeOf(objProto);
-
- return objProto
- ? (value == objProto || getPrototypeOf(value) == objProto)
- : shimIsPlainObject(value);
-};
+ // IE < 9 iterates inherited properties before own properties. If the first
+ // iterated property is an object's own property then there are no inherited
+ // enumerable properties.
+ var result;
+ if (support.ownLast) {
+ baseForIn(value, function(subValue, key, object) {
+ result = hasOwnProperty.call(object, key);
+ return false;
+ });
+ return result !== false;
+ }
+ // In most environments an object's own properties are iterated before
+ // its inherited properties. If the last iterated property is an object's
+ // own property then there are no inherited enumerable properties.
+ baseForIn(value, function(subValue, key) {
+ result = key;
+ });
+ return result === undefined || hasOwnProperty.call(value, result);
+}
module.exports = isPlainObject;
-},{"../internal/getNative":19,"../internal/shimIsPlainObject":26,"../support":42,"./isArguments":29}],35:[function(_dereq_,module,exports){
+},{"../internal/baseForIn":9,"../internal/isHostObject":19,"../internal/isObjectLike":23,"../support":38,"./isArguments":26}],32:[function(_dereq_,module,exports){
var isObjectLike = _dereq_('../internal/isObjectLike');
/** `Object#toString` result references. */
@@ -1107,7 +991,7 @@ var stringTag = '[object String]';
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -1134,7 +1018,7 @@ function isString(value) {
module.exports = isString;
-},{"../internal/isObjectLike":25}],36:[function(_dereq_,module,exports){
+},{"../internal/isObjectLike":23}],33:[function(_dereq_,module,exports){
var isLength = _dereq_('../internal/isLength'),
isObjectLike = _dereq_('../internal/isObjectLike');
@@ -1183,7 +1067,7 @@ typedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;
var objectProto = Object.prototype;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -1210,7 +1094,7 @@ function isTypedArray(value) {
module.exports = isTypedArray;
-},{"../internal/isLength":24,"../internal/isObjectLike":25}],37:[function(_dereq_,module,exports){
+},{"../internal/isLength":22,"../internal/isObjectLike":23}],34:[function(_dereq_,module,exports){
var baseCopy = _dereq_('../internal/baseCopy'),
keysIn = _dereq_('../object/keysIn');
@@ -1243,7 +1127,7 @@ function toPlainObject(value) {
module.exports = toPlainObject;
-},{"../internal/baseCopy":7,"../object/keysIn":39}],38:[function(_dereq_,module,exports){
+},{"../internal/baseCopy":7,"../object/keysIn":36}],35:[function(_dereq_,module,exports){
var getNative = _dereq_('../internal/getNative'),
isArrayLike = _dereq_('../internal/isArrayLike'),
isObject = _dereq_('../lang/isObject'),
@@ -1257,7 +1141,7 @@ var nativeKeys = getNative(Object, 'keys');
* Creates an array of the own enumerable property names of `object`.
*
* **Note:** Non-object values are coerced to objects. See the
- * [ES spec](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.keys)
+ * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)
* for more details.
*
* @static
@@ -1281,7 +1165,7 @@ var nativeKeys = getNative(Object, 'keys');
* // => ['0', '1']
*/
var keys = !nativeKeys ? shimKeys : function(object) {
- var Ctor = object == null ? null : object.constructor;
+ var Ctor = object == null ? undefined : object.constructor;
if ((typeof Ctor == 'function' && Ctor.prototype === object) ||
(typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {
return shimKeys(object);
@@ -1291,7 +1175,7 @@ var keys = !nativeKeys ? shimKeys : function(object) {
module.exports = keys;
-},{"../internal/getNative":19,"../internal/isArrayLike":20,"../internal/shimKeys":27,"../lang/isObject":33,"../support":42}],39:[function(_dereq_,module,exports){
+},{"../internal/getNative":17,"../internal/isArrayLike":18,"../internal/shimKeys":24,"../lang/isObject":30,"../support":38}],36:[function(_dereq_,module,exports){
var arrayEach = _dereq_('../internal/arrayEach'),
isArguments = _dereq_('../lang/isArguments'),
isArray = _dereq_('../lang/isArray'),
@@ -1328,7 +1212,7 @@ var errorProto = Error.prototype,
var hasOwnProperty = objectProto.hasOwnProperty;
/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
+ * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)
* of values.
*/
var objToString = objectProto.toString;
@@ -1395,7 +1279,7 @@ function keysIn(object) {
while (++index < length) {
result[index] = (index + '');
}
- // lodash skips the `constructor` property when it infers it is iterating
+ // lodash skips the `constructor` property when it infers it's iterating
// over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`
// attribute of an existing property and the `constructor` property of a
// prototype defaults to non-enumerable.
@@ -1429,7 +1313,7 @@ function keysIn(object) {
module.exports = keysIn;
-},{"../internal/arrayEach":6,"../internal/isIndex":22,"../internal/isLength":24,"../lang/isArguments":29,"../lang/isArray":30,"../lang/isFunction":31,"../lang/isObject":33,"../lang/isString":35,"../support":42}],40:[function(_dereq_,module,exports){
+},{"../internal/arrayEach":6,"../internal/isIndex":20,"../internal/isLength":22,"../lang/isArguments":26,"../lang/isArray":27,"../lang/isFunction":28,"../lang/isObject":30,"../lang/isString":32,"../support":38}],37:[function(_dereq_,module,exports){
var baseMerge = _dereq_('../internal/baseMerge'),
createAssigner = _dereq_('../internal/createAssigner');
@@ -1437,7 +1321,7 @@ var baseMerge = _dereq_('../internal/baseMerge'),
* Recursively merges own enumerable properties of the source object(s), that
* don't resolve to `undefined` into the destination object. Subsequent sources
* overwrite property assignments of previous sources. If `customizer` is
- * provided it is invoked to produce the merged values of the destination and
+ * provided it's invoked to produce the merged values of the destination and
* source properties. If `customizer` returns `undefined` merging is handled
* by the method instead. The `customizer` is bound to `thisArg` and invoked
* with five arguments: (objectValue, sourceValue, key, object, source).
@@ -1485,60 +1369,12 @@ var merge = createAssigner(baseMerge);
module.exports = merge;
-},{"../internal/baseMerge":11,"../internal/createAssigner":16}],41:[function(_dereq_,module,exports){
-var baseToString = _dereq_('../internal/baseToString');
-
-/**
- * Used to match `RegExp` [special characters](http://www.regular-expressions.info/characters.html#special).
- * In addition to special characters the forward slash is escaped to allow for
- * easier `eval` use and `Function` compilation.
- */
-var reRegExpChars = /[.*+?^${}()|[\]\/\\]/g,
- reHasRegExpChars = RegExp(reRegExpChars.source);
-
-/**
- * Escapes the `RegExp` special characters "\", "/", "^", "$", ".", "|", "?",
- * "*", "+", "(", ")", "[", "]", "{" and "}" in `string`.
- *
- * @static
- * @memberOf _
- * @category String
- * @param {string} [string=''] The string to escape.
- * @returns {string} Returns the escaped string.
- * @example
- *
- * _.escapeRegExp('[lodash](https://lodash.com/)');
- * // => '\[lodash\]\(https:\/\/lodash\.com\/\)'
- */
-function escapeRegExp(string) {
- string = baseToString(string);
- return (string && reHasRegExpChars.test(string))
- ? string.replace(reRegExpChars, '\\$&')
- : string;
-}
-
-module.exports = escapeRegExp;
-
-},{"../internal/baseToString":14}],42:[function(_dereq_,module,exports){
-(function (global){
-/** `Object#toString` result references. */
-var argsTag = '[object Arguments]',
- objectTag = '[object Object]';
-
+},{"../internal/baseMerge":10,"../internal/createAssigner":14}],38:[function(_dereq_,module,exports){
/** Used for native method references. */
var arrayProto = Array.prototype,
errorProto = Error.prototype,
objectProto = Object.prototype;
-/** Used to detect DOM support. */
-var document = (document = global.window) ? document.document : null;
-
-/**
- * Used to resolve the [`toStringTag`](https://people.mozilla.org/~jorendorff/es6-draft.html#sec-object.prototype.tostring)
- * of values.
- */
-var objToString = objectProto.toString;
-
/** Native method references. */
var propertyIsEnumerable = objectProto.propertyIsEnumerable,
splice = arrayProto.splice;
@@ -1560,15 +1396,6 @@ var support = {};
Ctor.prototype = { 'valueOf': x, 'y': x };
for (var key in new Ctor) { props.push(key); }
- /**
- * Detect if the `toStringTag` of `arguments` objects is resolvable
- * (all but Firefox < 4, IE < 9).
- *
- * @memberOf _.support
- * @type boolean
- */
- support.argsTag = objToString.call(arguments) == argsTag;
-
/**
* Detect if `name` or `message` properties of `Error.prototype` are
* enumerable by default (IE < 9, Safari < 5.1).
@@ -1592,14 +1419,6 @@ var support = {};
*/
support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');
- /**
- * Detect if the `toStringTag` of DOM nodes is resolvable (all but IE < 9).
- *
- * @memberOf _.support
- * @type boolean
- */
- support.nodeTag = objToString.call(document) != objectTag;
-
/**
* Detect if properties shadowing those on `Object.prototype` are non-enumerable.
*
@@ -1644,25 +1463,11 @@ var support = {};
* @type boolean
*/
support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';
-
- /**
- * Detect if the DOM is supported.
- *
- * @memberOf _.support
- * @type boolean
- */
- try {
- support.dom = document.createDocumentFragment().nodeType === 11;
- } catch(e) {
- support.dom = false;
- }
}(1, 0));
module.exports = support;
-}).call(this,typeof global !== "undefined" ? global : typeof self !== "undefined" ? self : typeof window !== "undefined" ? window : {})
-
-},{}],43:[function(_dereq_,module,exports){
+},{}],39:[function(_dereq_,module,exports){
/**
* This method returns the first argument provided to it.
*
@@ -1684,7 +1489,7 @@ function identity(value) {
module.exports = identity;
-},{}],44:[function(_dereq_,module,exports){
+},{}],40:[function(_dereq_,module,exports){
'use strict';
// modified from https://github.com/es-shims/es6-shim
@@ -1694,22 +1499,24 @@ var canBeObject = function (obj) {
};
var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';
var defineProperties = _dereq_('define-properties');
+var toObject = Object;
+var push = Array.prototype.push;
var propIsEnumerable = Object.prototype.propertyIsEnumerable;
-var isEnumerableOn = function (obj) {
- return function isEnumerable(prop) {
- return propIsEnumerable.call(obj, prop);
- };
-};
var assignShim = function assign(target, source1) {
if (!canBeObject(target)) { throw new TypeError('target must be an object'); }
- var objTarget = Object(target);
- var s, source, i, props;
+ var objTarget = toObject(target);
+ var s, source, i, props, syms;
for (s = 1; s < arguments.length; ++s) {
- source = Object(arguments[s]);
+ source = toObject(arguments[s]);
props = keys(source);
if (hasSymbols && Object.getOwnPropertySymbols) {
- props.push.apply(props, Object.getOwnPropertySymbols(source).filter(isEnumerableOn(source)));
+ syms = Object.getOwnPropertySymbols(source);
+ for (i = 0; i < syms.length; ++i) {
+ if (propIsEnumerable.call(source, syms[i])) {
+ push.call(props, syms[i]);
+ }
+ }
}
for (i = 0; i < props.length; ++i) {
objTarget[props[i]] = source[props[i]];
@@ -1718,9 +1525,12 @@ var assignShim = function assign(target, source1) {
return objTarget;
};
-assignShim.shim = function shimObjectAssign() {
- if (Object.assign && Object.preventExtensions) {
- var assignHasPendingExceptions = (function () {
+defineProperties(assignShim, {
+ shim: function shimObjectAssign() {
+ var assignHasPendingExceptions = function () {
+ if (!Object.assign || !Object.preventExtensions) {
+ return false;
+ }
// Firefox 37 still has "pending exception" logic in its Object.assign implementation,
// which is 72% slower than our shim, and Firefox 40's native implementation.
var thrower = Object.preventExtensions({ 1: 2 });
@@ -1729,27 +1539,24 @@ assignShim.shim = function shimObjectAssign() {
} catch (e) {
return thrower[1] === 'y';
}
- }());
- if (assignHasPendingExceptions) {
- delete Object.assign;
- }
+ };
+ defineProperties(
+ Object,
+ { assign: assignShim },
+ { assign: assignHasPendingExceptions }
+ );
+ return Object.assign || assignShim;
}
- if (!Object.assign) {
- defineProperties(Object, {
- assign: assignShim
- });
- }
- return Object.assign || assignShim;
-};
+});
module.exports = assignShim;
-
-},{"define-properties":45,"object-keys":47}],45:[function(_dereq_,module,exports){
+},{"define-properties":41,"object-keys":43}],41:[function(_dereq_,module,exports){
'use strict';
var keys = _dereq_('object-keys');
var foreach = _dereq_('foreach');
+var hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';
var toStr = Object.prototype.toString;
@@ -1760,7 +1567,10 @@ var isFunction = function (fn) {
var arePropertyDescriptorsSupported = function () {
var obj = {};
try {
- Object.defineProperty(obj, 'x', { value: obj });
+ Object.defineProperty(obj, 'x', { value: obj, enumerable: false });
+ /* eslint-disable no-unused-vars */
+ for (var _ in obj) { return false; }
+ /* eslint-enable no-unused-vars */
return obj.x === obj;
} catch (e) { /* this is IE 8. */
return false;
@@ -1786,7 +1596,11 @@ var defineProperty = function (object, name, value, predicate) {
var defineProperties = function (object, map) {
var predicates = arguments.length > 2 ? arguments[2] : {};
- foreach(keys(map), function (name) {
+ var props = keys(map);
+ if (hasSymbols) {
+ props = props.concat(Object.getOwnPropertySymbols(map));
+ }
+ foreach(props, function (name) {
defineProperty(object, name, map[name], predicates[name]);
});
};
@@ -1795,7 +1609,7 @@ defineProperties.supportsDescriptors = !!supportsDescriptors;
module.exports = defineProperties;
-},{"foreach":46,"object-keys":47}],46:[function(_dereq_,module,exports){
+},{"foreach":42,"object-keys":43}],42:[function(_dereq_,module,exports){
var hasOwn = Object.prototype.hasOwnProperty;
var toString = Object.prototype.toString;
@@ -1819,12 +1633,13 @@ module.exports = function forEach (obj, fn, ctx) {
};
-},{}],47:[function(_dereq_,module,exports){
+},{}],43:[function(_dereq_,module,exports){
'use strict';
// modified from https://github.com/es-shims/es5-shim
var has = Object.prototype.hasOwnProperty;
var toStr = Object.prototype.toString;
+var slice = Array.prototype.slice;
var isArgs = _dereq_('./isArguments');
var hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');
var hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');
@@ -1837,6 +1652,44 @@ var dontEnums = [
'propertyIsEnumerable',
'constructor'
];
+var equalsConstructorPrototype = function (o) {
+ var ctor = o.constructor;
+ return ctor && ctor.prototype === o;
+};
+var blacklistedKeys = {
+ $window: true,
+ $console: true,
+ $parent: true,
+ $self: true,
+ $frames: true,
+ $webkitIndexedDB: true,
+ $webkitStorageInfo: true
+};
+var hasAutomationEqualityBug = (function () {
+ /* global window */
+ if (typeof window === 'undefined') { return false; }
+ for (var k in window) {
+ if (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {
+ try {
+ equalsConstructorPrototype(window[k]);
+ } catch (e) {
+ return true;
+ }
+ }
+ }
+ return false;
+}());
+var equalsConstructorPrototypeIfNotBuggy = function (o) {
+ /* global window */
+ if (typeof window === 'undefined' && !hasAutomationEqualityBug) {
+ return equalsConstructorPrototype(o);
+ }
+ try {
+ return equalsConstructorPrototype(o);
+ } catch (e) {
+ return false;
+ }
+};
var keysShim = function keys(object) {
var isObject = object !== null && typeof object === 'object';
@@ -1869,8 +1722,7 @@ var keysShim = function keys(object) {
}
if (hasDontEnumBug) {
- var ctor = object.constructor;
- var skipConstructor = ctor && ctor.prototype === object;
+ var skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);
for (var k = 0; k < dontEnums.length; ++k) {
if (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {
@@ -1884,13 +1736,28 @@ var keysShim = function keys(object) {
keysShim.shim = function shimObjectKeys() {
if (!Object.keys) {
Object.keys = keysShim;
+ } else {
+ var keysWorksWithArguments = (function () {
+ // Safari 5.0 bug
+ return (Object.keys(arguments) || '').length === 2;
+ }(1, 2));
+ if (!keysWorksWithArguments) {
+ var originalKeys = Object.keys;
+ Object.keys = function keys(object) {
+ if (isArgs(object)) {
+ return originalKeys(slice.call(object));
+ } else {
+ return originalKeys(object);
+ }
+ };
+ }
}
return Object.keys || keysShim;
};
module.exports = keysShim;
-},{"./isArguments":48}],48:[function(_dereq_,module,exports){
+},{"./isArguments":44}],44:[function(_dereq_,module,exports){
'use strict';
var toStr = Object.prototype.toString;
@@ -1899,17 +1766,17 @@ module.exports = function isArguments(value) {
var str = toStr.call(value);
var isArgs = str === '[object Arguments]';
if (!isArgs) {
- isArgs = str !== '[object Array]'
- && value !== null
- && typeof value === 'object'
- && typeof value.length === 'number'
- && value.length >= 0
- && toStr.call(value.callee) === '[object Function]';
+ isArgs = str !== '[object Array]' &&
+ value !== null &&
+ typeof value === 'object' &&
+ typeof value.length === 'number' &&
+ value.length >= 0 &&
+ toStr.call(value.callee) === '[object Function]';
}
return isArgs;
};
-},{}],49:[function(_dereq_,module,exports){
+},{}],45:[function(_dereq_,module,exports){
module.exports = SafeParseTuple
function SafeParseTuple(obj, reviver) {
@@ -1925,27 +1792,27 @@ function SafeParseTuple(obj, reviver) {
return [error, json]
}
-},{}],50:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{}],46:[function(_dereq_,module,exports){
/**
* @file big-play-button.js
*/
+'use strict';
-var _Button2 = _dereq_('./button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('./component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _buttonJs = _dereq_('./button.js');
+
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('./component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Initial play button. Shows before the video has played. The hiding of the
@@ -1958,14 +1825,14 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var BigPlayButton = (function (_Button) {
+ _inherits(BigPlayButton, _Button);
+
function BigPlayButton(player, options) {
_classCallCheck(this, BigPlayButton);
_Button.call(this, player, options);
}
- _inherits(BigPlayButton, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -1988,51 +1855,53 @@ var BigPlayButton = (function (_Button) {
};
return BigPlayButton;
-})(_Button3['default']);
+})(_buttonJs2['default']);
BigPlayButton.prototype.controlText_ = 'Play Video';
-_Component2['default'].registerComponent('BigPlayButton', BigPlayButton);
+_componentJs2['default'].registerComponent('BigPlayButton', BigPlayButton);
exports['default'] = BigPlayButton;
module.exports = exports['default'];
-},{"./button.js":51,"./component.js":52}],51:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./button.js":47,"./component.js":48}],47:[function(_dereq_,module,exports){
/**
* @file button.js
*/
+'use strict';
-var _Component2 = _dereq_('./component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('./utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import2 = _dereq_('./utils/events.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Events = _interopRequireWildcard(_import2);
+var _component = _dereq_('./component');
-var _import3 = _dereq_('./utils/fn.js');
+var _component2 = _interopRequireDefault(_component);
-var Fn = _interopRequireWildcard(_import3);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _document = _dereq_('global/document');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _document2 = _interopRequireWildcard(_document);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _assign = _dereq_('object.assign');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsFnJs = _dereq_('./utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/**
* Base class for all buttons
@@ -2044,6 +1913,8 @@ var _assign2 = _interopRequireWildcard(_assign);
*/
var Button = (function (_Component) {
+ _inherits(Button, _Component);
+
function Button(player, options) {
_classCallCheck(this, Button);
@@ -2057,8 +1928,6 @@ var Button = (function (_Component) {
this.on('blur', this.handleBlur);
}
- _inherits(Button, _Component);
-
/**
* Create the component's DOM element
*
@@ -2069,14 +1938,14 @@ var Button = (function (_Component) {
*/
Button.prototype.createEl = function createEl() {
- var tag = arguments[0] === undefined ? 'button' : arguments[0];
- var props = arguments[1] === undefined ? {} : arguments[1];
+ var tag = arguments.length <= 0 || arguments[0] === undefined ? 'button' : arguments[0];
+ var props = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
// Add standard Aria and Tabindex info
- props = _assign2['default']({
+ props = _objectAssign2['default']({
className: this.buildCSSClass(),
- role: 'button',
- type: 'button', // Necessary since the default button type is "submit"
+ 'role': 'button',
+ 'type': 'button', // Necessary since the default button type is "submit"
'aria-live': 'polite', // let the screen reader user know that the text of the button may change
tabIndex: 0
}, props);
@@ -2103,9 +1972,9 @@ var Button = (function (_Component) {
*/
Button.prototype.controlText = function controlText(text) {
- if (!text) {
- return this.controlText_ || 'Need Text';
- }this.controlText_ = text;
+ if (!text) return this.controlText_ || 'Need Text';
+
+ this.controlText_ = text;
this.controlTextEl_.innerHTML = this.localize(this.controlText_);
return this;
@@ -2137,7 +2006,7 @@ var Button = (function (_Component) {
*/
Button.prototype.handleFocus = function handleFocus() {
- Events.on(_document2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
+ Events.on(_globalDocument2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
};
/**
@@ -2161,65 +2030,68 @@ var Button = (function (_Component) {
*/
Button.prototype.handleBlur = function handleBlur() {
- Events.off(_document2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
+ Events.off(_globalDocument2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));
};
return Button;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('Button', Button);
+_component2['default'].registerComponent('Button', Button);
exports['default'] = Button;
module.exports = exports['default'];
-},{"./component":52,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"global/document":1,"object.assign":44}],52:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-exports.__esModule = true;
+},{"./component":48,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"global/document":1,"object.assign":40}],48:[function(_dereq_,module,exports){
/**
* @file component.js
*
* Player Component - Base class for all UI objects
*/
-var _window = _dereq_('global/window');
+'use strict';
-var _window2 = _interopRequireWildcard(_window);
+exports.__esModule = true;
-var _import = _dereq_('./utils/dom.js');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var Dom = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _import2 = _dereq_('./utils/fn.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var Fn = _interopRequireWildcard(_import2);
+var _globalWindow = _dereq_('global/window');
-var _import3 = _dereq_('./utils/guid.js');
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
-var Guid = _interopRequireWildcard(_import3);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _import4 = _dereq_('./utils/events.js');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var Events = _interopRequireWildcard(_import4);
+var _utilsFnJs = _dereq_('./utils/fn.js');
-var _log = _dereq_('./utils/log.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _log2 = _interopRequireWildcard(_log);
+var _utilsGuidJs = _dereq_('./utils/guid.js');
-var _toTitleCase = _dereq_('./utils/to-title-case.js');
+var Guid = _interopRequireWildcard(_utilsGuidJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _assign = _dereq_('object.assign');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _mergeOptions = _dereq_('./utils/merge-options.js');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _utilsToTitleCaseJs = _dereq_('./utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
/**
* Base UI Component class
@@ -2258,14 +2130,14 @@ var Component = (function () {
if (!player && this.play) {
this.player_ = player = this; // eslint-disable-line
} else {
- this.player_ = player;
- }
+ this.player_ = player;
+ }
// Make a copy of prototype.options_ to protect against overriding defaults
- this.options_ = _mergeOptions2['default']({}, this.options_);
+ this.options_ = _utilsMergeOptionsJs2['default']({}, this.options_);
// Updated options with supplied options
- options = this.options_ = _mergeOptions2['default'](this.options_, options);
+ options = this.options_ = _utilsMergeOptionsJs2['default'](this.options_, options);
// Get ID from options or options element if one is supplied
this.id_ = options.id || options.el && options.el.id;
@@ -2275,7 +2147,7 @@ var Component = (function () {
// Don't require the player ID function in the case of mock players
var id = player && player.id && player.id() || 'no_player';
- this.id_ = '' + id + '_component_' + Guid.newGUID();
+ this.id_ = id + '_component_' + Guid.newGUID();
}
this.name_ = options.name || null;
@@ -2394,13 +2266,13 @@ var Component = (function () {
*/
Component.prototype.options = function options(obj) {
- _log2['default'].warn('this.options() has been deprecated and will be moved to the constructor in 6.0');
+ _utilsLogJs2['default'].warn('this.options() has been deprecated and will be moved to the constructor in 6.0');
if (!obj) {
return this.options_;
}
- this.options_ = _mergeOptions2['default'](this.options_, obj);
+ this.options_ = _utilsMergeOptionsJs2['default'](this.options_, obj);
return this.options_;
};
@@ -2562,7 +2434,7 @@ var Component = (function () {
*/
Component.prototype.addChild = function addChild(child) {
- var options = arguments[1] === undefined ? {} : arguments[1];
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var component = undefined;
var componentName = undefined;
@@ -2578,13 +2450,13 @@ var Component = (function () {
// Same as above, but true is deprecated so show a warning.
if (options === true) {
- _log2['default'].warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');
+ _utilsLogJs2['default'].warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');
options = {};
}
// If no componentClass in options, assume componentClass is the name lowercased
// (e.g. playButton)
- var componentClassName = options.componentClass || _toTitleCase2['default'](componentName);
+ var componentClassName = options.componentClass || _utilsToTitleCaseJs2['default'](componentName);
// Set name through options
options.name = componentName;
@@ -2597,8 +2469,8 @@ var Component = (function () {
// child is a component instance
} else {
- component = child;
- }
+ component = child;
+ }
this.children_.push(component);
@@ -2825,46 +2697,46 @@ var Component = (function () {
// Targeting another component or element
} else {
- (function () {
- var target = first;
- var type = second;
- var fn = Fn.bind(_this2, third);
+ (function () {
+ var target = first;
+ var type = second;
+ var fn = Fn.bind(_this2, third);
- // When this component is disposed, remove the listener from the other component
- var removeOnDispose = function removeOnDispose() {
- return _this2.off(target, type, fn);
- };
+ // When this component is disposed, remove the listener from the other component
+ var removeOnDispose = function removeOnDispose() {
+ return _this2.off(target, type, fn);
+ };
- // Use the same function ID so we can remove it later it using the ID
- // of the original listener
- removeOnDispose.guid = fn.guid;
- _this2.on('dispose', removeOnDispose);
+ // Use the same function ID so we can remove it later it using the ID
+ // of the original listener
+ removeOnDispose.guid = fn.guid;
+ _this2.on('dispose', removeOnDispose);
- // If the other component is disposed first we need to clean the reference
- // to the other component in this component's removeOnDispose listener
- // Otherwise we create a memory leak.
- var cleanRemover = function cleanRemover() {
- return _this2.off('dispose', removeOnDispose);
- };
+ // If the other component is disposed first we need to clean the reference
+ // to the other component in this component's removeOnDispose listener
+ // Otherwise we create a memory leak.
+ var cleanRemover = function cleanRemover() {
+ return _this2.off('dispose', removeOnDispose);
+ };
- // Add the same function ID so we can easily remove it later
- cleanRemover.guid = fn.guid;
+ // Add the same function ID so we can easily remove it later
+ cleanRemover.guid = fn.guid;
- // Check if this is a DOM node
- if (first.nodeName) {
- // Add the listener to the other element
- Events.on(target, type, fn);
- Events.on(target, 'dispose', cleanRemover);
+ // Check if this is a DOM node
+ if (first.nodeName) {
+ // Add the listener to the other element
+ Events.on(target, type, fn);
+ Events.on(target, 'dispose', cleanRemover);
- // Should be a component
- // Not using `instanceof Component` because it makes mock players difficult
- } else if (typeof first.on === 'function') {
- // Add the listener to the other component
- target.on(type, fn);
- target.on('dispose', cleanRemover);
- }
- })();
- }
+ // Should be a component
+ // Not using `instanceof Component` because it makes mock players difficult
+ } else if (typeof first.on === 'function') {
+ // Add the listener to the other component
+ target.on(type, fn);
+ target.on('dispose', cleanRemover);
+ }
+ })();
+ }
return this;
};
@@ -2938,9 +2810,8 @@ var Component = (function () {
*/
Component.prototype.one = function one(first, second, third) {
- var _this3 = this;
-
- var _arguments = arguments;
+ var _this3 = this,
+ _arguments = arguments;
if (typeof first === 'string' || Array.isArray(first)) {
Events.one(this.el_, first, Fn.bind(this, second));
@@ -2950,20 +2821,10 @@ var Component = (function () {
var type = second;
var fn = Fn.bind(_this3, third);
- var newFunc = (function (_newFunc) {
- function newFunc() {
- return _newFunc.apply(this, arguments);
- }
-
- newFunc.toString = function () {
- return _newFunc.toString();
- };
-
- return newFunc;
- })(function () {
+ var newFunc = function newFunc() {
_this3.off(target, type, newFunc);
fn.apply(null, _arguments);
- });
+ };
// Keep the same function ID so we can remove it later
newFunc.guid = fn.guid;
@@ -3007,7 +2868,7 @@ var Component = (function () {
*/
Component.prototype.ready = function ready(fn) {
- var sync = arguments[1] === undefined ? false : arguments[1];
+ var sync = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];
if (fn) {
if (this.isReady_) {
@@ -3254,7 +3115,7 @@ var Component = (function () {
// No px so using % or no style was set, so falling back to offsetWidth/height
// If component has display:none, offset will return 0
// TODO: handle display:none and no dimension style using px
- return parseInt(this.el_['offset' + _toTitleCase2['default'](widthOrHeight)], 10);
+ return parseInt(this.el_['offset' + _utilsToTitleCaseJs2['default'](widthOrHeight)], 10);
};
/**
@@ -3286,7 +3147,7 @@ var Component = (function () {
// If more than one finger, don't consider treating this as a click
if (event.touches.length === 1) {
// Copy the touches object to prevent modifying the original
- firstTouch = _assign2['default']({}, event.touches[0]);
+ firstTouch = _objectAssign2['default']({}, event.touches[0]);
// Record start time so we can detect a tap vs. "touch and hold"
touchStart = new Date().getTime();
// Reset couldBeTap tracking
@@ -3408,7 +3269,7 @@ var Component = (function () {
fn = Fn.bind(this, fn);
// window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.
- var timeoutId = _window2['default'].setTimeout(fn, timeout);
+ var timeoutId = _globalWindow2['default'].setTimeout(fn, timeout);
var disposeFn = function disposeFn() {
this.clearTimeout(timeoutId);
@@ -3430,7 +3291,7 @@ var Component = (function () {
*/
Component.prototype.clearTimeout = function clearTimeout(timeoutId) {
- _window2['default'].clearTimeout(timeoutId);
+ _globalWindow2['default'].clearTimeout(timeoutId);
var disposeFn = function disposeFn() {};
@@ -3453,7 +3314,7 @@ var Component = (function () {
Component.prototype.setInterval = function setInterval(fn, interval) {
fn = Fn.bind(this, fn);
- var intervalId = _window2['default'].setInterval(fn, interval);
+ var intervalId = _globalWindow2['default'].setInterval(fn, interval);
var disposeFn = function disposeFn() {
this.clearInterval(intervalId);
@@ -3475,7 +3336,7 @@ var Component = (function () {
*/
Component.prototype.clearInterval = function clearInterval(intervalId) {
- _window2['default'].clearInterval(intervalId);
+ _globalWindow2['default'].clearInterval(intervalId);
var disposeFn = function disposeFn() {};
@@ -3518,9 +3379,9 @@ var Component = (function () {
return Component.components_[name];
}
- if (_window2['default'] && _window2['default'].videojs && _window2['default'].videojs[name]) {
- _log2['default'].warn('The ' + name + ' component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)');
- return _window2['default'].videojs[name];
+ if (_globalWindow2['default'] && _globalWindow2['default'].videojs && _globalWindow2['default'].videojs[name]) {
+ _utilsLogJs2['default'].warn('The ' + name + ' component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)');
+ return _globalWindow2['default'].videojs[name];
}
};
@@ -3537,7 +3398,7 @@ var Component = (function () {
Component.extend = function extend(props) {
props = props || {};
- _log2['default'].warn('Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead');
+ _utilsLogJs2['default'].warn('Component.extend({}) has been deprecated, use videojs.extends(Component, {}) instead');
// Set up the constructor using the supplied init method
// or using the init of the parent object
@@ -3582,89 +3443,89 @@ Component.registerComponent('Component', Component);
exports['default'] = Component;
module.exports = exports['default'];
-},{"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/guid.js":115,"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/to-title-case.js":120,"global/window":2,"object.assign":44}],53:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/guid.js":111,"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/to-title-case.js":116,"global/window":2,"object.assign":40}],49:[function(_dereq_,module,exports){
/**
* @file control-bar.js
*/
+'use strict';
-var _Component2 = _dereq_('../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
// Required children
-var _PlayToggle = _dereq_('./play-toggle.js');
+var _playToggleJs = _dereq_('./play-toggle.js');
-var _PlayToggle2 = _interopRequireWildcard(_PlayToggle);
+var _playToggleJs2 = _interopRequireDefault(_playToggleJs);
-var _CurrentTimeDisplay = _dereq_('./time-controls/current-time-display.js');
+var _timeControlsCurrentTimeDisplayJs = _dereq_('./time-controls/current-time-display.js');
-var _CurrentTimeDisplay2 = _interopRequireWildcard(_CurrentTimeDisplay);
+var _timeControlsCurrentTimeDisplayJs2 = _interopRequireDefault(_timeControlsCurrentTimeDisplayJs);
-var _DurationDisplay = _dereq_('./time-controls/duration-display.js');
+var _timeControlsDurationDisplayJs = _dereq_('./time-controls/duration-display.js');
-var _DurationDisplay2 = _interopRequireWildcard(_DurationDisplay);
+var _timeControlsDurationDisplayJs2 = _interopRequireDefault(_timeControlsDurationDisplayJs);
-var _TimeDivider = _dereq_('./time-controls/time-divider.js');
+var _timeControlsTimeDividerJs = _dereq_('./time-controls/time-divider.js');
-var _TimeDivider2 = _interopRequireWildcard(_TimeDivider);
+var _timeControlsTimeDividerJs2 = _interopRequireDefault(_timeControlsTimeDividerJs);
-var _RemainingTimeDisplay = _dereq_('./time-controls/remaining-time-display.js');
+var _timeControlsRemainingTimeDisplayJs = _dereq_('./time-controls/remaining-time-display.js');
-var _RemainingTimeDisplay2 = _interopRequireWildcard(_RemainingTimeDisplay);
+var _timeControlsRemainingTimeDisplayJs2 = _interopRequireDefault(_timeControlsRemainingTimeDisplayJs);
-var _LiveDisplay = _dereq_('./live-display.js');
+var _liveDisplayJs = _dereq_('./live-display.js');
-var _LiveDisplay2 = _interopRequireWildcard(_LiveDisplay);
+var _liveDisplayJs2 = _interopRequireDefault(_liveDisplayJs);
-var _ProgressControl = _dereq_('./progress-control/progress-control.js');
+var _progressControlProgressControlJs = _dereq_('./progress-control/progress-control.js');
-var _ProgressControl2 = _interopRequireWildcard(_ProgressControl);
+var _progressControlProgressControlJs2 = _interopRequireDefault(_progressControlProgressControlJs);
-var _FullscreenToggle = _dereq_('./fullscreen-toggle.js');
+var _fullscreenToggleJs = _dereq_('./fullscreen-toggle.js');
-var _FullscreenToggle2 = _interopRequireWildcard(_FullscreenToggle);
+var _fullscreenToggleJs2 = _interopRequireDefault(_fullscreenToggleJs);
-var _VolumeControl = _dereq_('./volume-control/volume-control.js');
+var _volumeControlVolumeControlJs = _dereq_('./volume-control/volume-control.js');
-var _VolumeControl2 = _interopRequireWildcard(_VolumeControl);
+var _volumeControlVolumeControlJs2 = _interopRequireDefault(_volumeControlVolumeControlJs);
-var _VolumeMenuButton = _dereq_('./volume-menu-button.js');
+var _volumeMenuButtonJs = _dereq_('./volume-menu-button.js');
-var _VolumeMenuButton2 = _interopRequireWildcard(_VolumeMenuButton);
+var _volumeMenuButtonJs2 = _interopRequireDefault(_volumeMenuButtonJs);
-var _MuteToggle = _dereq_('./mute-toggle.js');
+var _muteToggleJs = _dereq_('./mute-toggle.js');
-var _MuteToggle2 = _interopRequireWildcard(_MuteToggle);
+var _muteToggleJs2 = _interopRequireDefault(_muteToggleJs);
-var _ChaptersButton = _dereq_('./text-track-controls/chapters-button.js');
+var _textTrackControlsChaptersButtonJs = _dereq_('./text-track-controls/chapters-button.js');
-var _ChaptersButton2 = _interopRequireWildcard(_ChaptersButton);
+var _textTrackControlsChaptersButtonJs2 = _interopRequireDefault(_textTrackControlsChaptersButtonJs);
-var _SubtitlesButton = _dereq_('./text-track-controls/subtitles-button.js');
+var _textTrackControlsSubtitlesButtonJs = _dereq_('./text-track-controls/subtitles-button.js');
-var _SubtitlesButton2 = _interopRequireWildcard(_SubtitlesButton);
+var _textTrackControlsSubtitlesButtonJs2 = _interopRequireDefault(_textTrackControlsSubtitlesButtonJs);
-var _CaptionsButton = _dereq_('./text-track-controls/captions-button.js');
+var _textTrackControlsCaptionsButtonJs = _dereq_('./text-track-controls/captions-button.js');
-var _CaptionsButton2 = _interopRequireWildcard(_CaptionsButton);
+var _textTrackControlsCaptionsButtonJs2 = _interopRequireDefault(_textTrackControlsCaptionsButtonJs);
-var _PlaybackRateMenuButton = _dereq_('./playback-rate-menu/playback-rate-menu-button.js');
+var _playbackRateMenuPlaybackRateMenuButtonJs = _dereq_('./playback-rate-menu/playback-rate-menu-button.js');
-var _PlaybackRateMenuButton2 = _interopRequireWildcard(_PlaybackRateMenuButton);
+var _playbackRateMenuPlaybackRateMenuButtonJs2 = _interopRequireDefault(_playbackRateMenuPlaybackRateMenuButtonJs);
-var _CustomControlSpacer = _dereq_('./spacer-controls/custom-control-spacer.js');
+var _spacerControlsCustomControlSpacerJs = _dereq_('./spacer-controls/custom-control-spacer.js');
-var _CustomControlSpacer2 = _interopRequireWildcard(_CustomControlSpacer);
+var _spacerControlsCustomControlSpacerJs2 = _interopRequireDefault(_spacerControlsCustomControlSpacerJs);
/**
* Container of main controls
@@ -3674,16 +3535,14 @@ var _CustomControlSpacer2 = _interopRequireWildcard(_CustomControlSpacer);
*/
var ControlBar = (function (_Component) {
+ _inherits(ControlBar, _Component);
+
function ControlBar() {
_classCallCheck(this, ControlBar);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(ControlBar, _Component);
-
/**
* Create the component's DOM element
*
@@ -3698,38 +3557,38 @@ var ControlBar = (function (_Component) {
};
return ControlBar;
-})(_Component3['default']);
+})(_componentJs2['default']);
ControlBar.prototype.options_ = {
loadEvent: 'play',
children: ['playToggle', 'volumeMenuButton', 'currentTimeDisplay', 'timeDivider', 'durationDisplay', 'progressControl', 'liveDisplay', 'remainingTimeDisplay', 'customControlSpacer', 'playbackRateMenuButton', 'muteToggle', 'volumeControl', 'chaptersButton', 'subtitlesButton', 'captionsButton', 'fullscreenToggle']
};
-_Component3['default'].registerComponent('ControlBar', ControlBar);
+_componentJs2['default'].registerComponent('ControlBar', ControlBar);
exports['default'] = ControlBar;
module.exports = exports['default'];
-},{"../component.js":52,"./fullscreen-toggle.js":54,"./live-display.js":55,"./mute-toggle.js":56,"./play-toggle.js":57,"./playback-rate-menu/playback-rate-menu-button.js":58,"./progress-control/progress-control.js":62,"./spacer-controls/custom-control-spacer.js":64,"./text-track-controls/captions-button.js":67,"./text-track-controls/chapters-button.js":68,"./text-track-controls/subtitles-button.js":71,"./time-controls/current-time-display.js":74,"./time-controls/duration-display.js":75,"./time-controls/remaining-time-display.js":76,"./time-controls/time-divider.js":77,"./volume-control/volume-control.js":79,"./volume-menu-button.js":81}],54:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component.js":48,"./fullscreen-toggle.js":50,"./live-display.js":51,"./mute-toggle.js":52,"./play-toggle.js":53,"./playback-rate-menu/playback-rate-menu-button.js":54,"./progress-control/progress-control.js":58,"./spacer-controls/custom-control-spacer.js":60,"./text-track-controls/captions-button.js":63,"./text-track-controls/chapters-button.js":64,"./text-track-controls/subtitles-button.js":67,"./time-controls/current-time-display.js":70,"./time-controls/duration-display.js":71,"./time-controls/remaining-time-display.js":72,"./time-controls/time-divider.js":73,"./volume-control/volume-control.js":75,"./volume-menu-button.js":77}],50:[function(_dereq_,module,exports){
/**
* @file fullscreen-toggle.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _buttonJs = _dereq_('../button.js');
+
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Toggle fullscreen video
@@ -3739,16 +3598,14 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var FullscreenToggle = (function (_Button) {
+ _inherits(FullscreenToggle, _Button);
+
function FullscreenToggle() {
_classCallCheck(this, FullscreenToggle);
- if (_Button != null) {
- _Button.apply(this, arguments);
- }
+ _Button.apply(this, arguments);
}
- _inherits(FullscreenToggle, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -3777,35 +3634,37 @@ var FullscreenToggle = (function (_Button) {
};
return FullscreenToggle;
-})(_Button3['default']);
+})(_buttonJs2['default']);
FullscreenToggle.prototype.controlText_ = 'Fullscreen';
-_Component2['default'].registerComponent('FullscreenToggle', FullscreenToggle);
+_componentJs2['default'].registerComponent('FullscreenToggle', FullscreenToggle);
exports['default'] = FullscreenToggle;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52}],55:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48}],51:[function(_dereq_,module,exports){
/**
* @file live-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _component = _dereq_('../component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* Displays the live indicator
@@ -3816,16 +3675,14 @@ var Dom = _interopRequireWildcard(_import);
*/
var LiveDisplay = (function (_Component) {
+ _inherits(LiveDisplay, _Component);
+
function LiveDisplay() {
_classCallCheck(this, LiveDisplay);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(LiveDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -3850,37 +3707,39 @@ var LiveDisplay = (function (_Component) {
};
return LiveDisplay;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('LiveDisplay', LiveDisplay);
+_component2['default'].registerComponent('LiveDisplay', LiveDisplay);
exports['default'] = LiveDisplay;
module.exports = exports['default'];
-},{"../component":52,"../utils/dom.js":111}],56:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/dom.js":107}],52:[function(_dereq_,module,exports){
/**
* @file mute-toggle.js
*/
+'use strict';
-var _Button2 = _dereq_('../button');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../component');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../utils/dom.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Dom = _interopRequireWildcard(_import);
+var _button = _dereq_('../button');
+
+var _button2 = _interopRequireDefault(_button);
+
+var _component = _dereq_('../component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* A button component for muting the audio
@@ -3892,6 +3751,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var MuteToggle = (function (_Button) {
+ _inherits(MuteToggle, _Button);
+
function MuteToggle(player, options) {
_classCallCheck(this, MuteToggle);
@@ -3900,14 +3761,14 @@ var MuteToggle = (function (_Button) {
this.on(player, 'volumechange', this.update);
// hide mute toggle if the current tech doesn't support volume control
- if (player.tech && player.tech.featuresVolumeControl === false) {
+ if (player.tech && player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
}
this.on(player, 'loadstart', function () {
this.update(); // We need to update the button to account for a default muted state.
- if (player.tech.featuresVolumeControl === false) {
+ if (player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
} else {
this.removeClass('vjs-hidden');
@@ -3915,8 +3776,6 @@ var MuteToggle = (function (_Button) {
});
}
- _inherits(MuteToggle, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -3973,35 +3832,35 @@ var MuteToggle = (function (_Button) {
};
return MuteToggle;
-})(_Button3['default']);
+})(_button2['default']);
MuteToggle.prototype.controlText_ = 'Mute';
-_Component2['default'].registerComponent('MuteToggle', MuteToggle);
+_component2['default'].registerComponent('MuteToggle', MuteToggle);
exports['default'] = MuteToggle;
module.exports = exports['default'];
-},{"../button":51,"../component":52,"../utils/dom.js":111}],57:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button":47,"../component":48,"../utils/dom.js":107}],53:[function(_dereq_,module,exports){
/**
* @file play-toggle.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _buttonJs = _dereq_('../button.js');
+
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Button to toggle between play and pause
@@ -4013,6 +3872,8 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var PlayToggle = (function (_Button) {
+ _inherits(PlayToggle, _Button);
+
function PlayToggle(player, options) {
_classCallCheck(this, PlayToggle);
@@ -4022,8 +3883,6 @@ var PlayToggle = (function (_Button) {
this.on(player, 'pause', this.handlePause);
}
- _inherits(PlayToggle, _Button);
-
/**
* Allow sub components to stack CSS class names
*
@@ -4074,47 +3933,49 @@ var PlayToggle = (function (_Button) {
};
return PlayToggle;
-})(_Button3['default']);
+})(_buttonJs2['default']);
PlayToggle.prototype.controlText_ = 'Play';
-_Component2['default'].registerComponent('PlayToggle', PlayToggle);
+_componentJs2['default'].registerComponent('PlayToggle', PlayToggle);
exports['default'] = PlayToggle;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52}],58:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48}],54:[function(_dereq_,module,exports){
/**
* @file playback-rate-menu-button.js
*/
+'use strict';
-var _MenuButton2 = _dereq_('../../menu/menu-button.js');
+exports.__esModule = true;
-var _MenuButton3 = _interopRequireWildcard(_MenuButton2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Menu = _dereq_('../../menu/menu.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Menu2 = _interopRequireWildcard(_Menu);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _PlaybackRateMenuItem = _dereq_('./playback-rate-menu-item.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _PlaybackRateMenuItem2 = _interopRequireWildcard(_PlaybackRateMenuItem);
+var _menuMenuButtonJs = _dereq_('../../menu/menu-button.js');
-var _Component = _dereq_('../../component.js');
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
-var _Component2 = _interopRequireWildcard(_Component);
+var _menuMenuJs = _dereq_('../../menu/menu.js');
-var _import = _dereq_('../../utils/dom.js');
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var Dom = _interopRequireWildcard(_import);
+var _playbackRateMenuItemJs = _dereq_('./playback-rate-menu-item.js');
+
+var _playbackRateMenuItemJs2 = _interopRequireDefault(_playbackRateMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* The component for controlling the playback rate
@@ -4126,6 +3987,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var PlaybackRateMenuButton = (function (_MenuButton) {
+ _inherits(PlaybackRateMenuButton, _MenuButton);
+
function PlaybackRateMenuButton(player, options) {
_classCallCheck(this, PlaybackRateMenuButton);
@@ -4138,8 +4001,6 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
this.on(player, 'ratechange', this.updateLabel);
}
- _inherits(PlaybackRateMenuButton, _MenuButton);
-
/**
* Create the component's DOM element
*
@@ -4152,7 +4013,7 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
this.labelEl_ = Dom.createEl('div', {
className: 'vjs-playback-rate-value',
- innerHTML: 1
+ innerHTML: 1.0
});
el.appendChild(this.labelEl_);
@@ -4179,12 +4040,12 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
*/
PlaybackRateMenuButton.prototype.createMenu = function createMenu() {
- var menu = new _Menu2['default'](this.player());
+ var menu = new _menuMenuJs2['default'](this.player());
var rates = this.playbackRates();
if (rates) {
for (var i = rates.length - 1; i >= 0; i--) {
- menu.addChild(new _PlaybackRateMenuItem2['default'](this.player(), { rate: rates[i] + 'x' }));
+ menu.addChild(new _playbackRateMenuItemJs2['default'](this.player(), { 'rate': rates[i] + 'x' }));
}
}
@@ -4232,7 +4093,7 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
*/
PlaybackRateMenuButton.prototype.playbackRates = function playbackRates() {
- return this.options_.playbackRates || this.options_.playerOptions && this.options_.playerOptions.playbackRates;
+ return this.options_['playbackRates'] || this.options_.playerOptions && this.options_.playerOptions['playbackRates'];
};
/**
@@ -4243,7 +4104,7 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
*/
PlaybackRateMenuButton.prototype.playbackRateSupported = function playbackRateSupported() {
- return this.player().tech && this.player().tech.featuresPlaybackRate && this.playbackRates() && this.playbackRates().length > 0;
+ return this.player().tech && this.player().tech['featuresPlaybackRate'] && this.playbackRates() && this.playbackRates().length > 0;
};
/**
@@ -4273,35 +4134,35 @@ var PlaybackRateMenuButton = (function (_MenuButton) {
};
return PlaybackRateMenuButton;
-})(_MenuButton3['default']);
+})(_menuMenuButtonJs2['default']);
PlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';
-_Component2['default'].registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);
+_componentJs2['default'].registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);
exports['default'] = PlaybackRateMenuButton;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-button.js":88,"../../menu/menu.js":90,"../../utils/dom.js":111,"./playback-rate-menu-item.js":59}],59:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-button.js":84,"../../menu/menu.js":86,"../../utils/dom.js":107,"./playback-rate-menu-item.js":55}],55:[function(_dereq_,module,exports){
/**
* @file playback-rate-menu-item.js
*/
+'use strict';
-var _MenuItem2 = _dereq_('../../menu/menu-item.js');
+exports.__esModule = true;
-var _MenuItem3 = _interopRequireWildcard(_MenuItem2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _menuMenuItemJs = _dereq_('../../menu/menu-item.js');
+
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The specific menu item type for selecting a playback rate
@@ -4313,15 +4174,17 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var PlaybackRateMenuItem = (function (_MenuItem) {
+ _inherits(PlaybackRateMenuItem, _MenuItem);
+
function PlaybackRateMenuItem(player, options) {
_classCallCheck(this, PlaybackRateMenuItem);
- var label = options.rate;
+ var label = options['rate'];
var rate = parseFloat(label, 10);
// Modify options for parent MenuItem class's init.
- options.label = label;
- options.selected = rate === 1;
+ options['label'] = label;
+ options['selected'] = rate === 1;
_MenuItem.call(this, player, options);
this.label = label;
@@ -4330,8 +4193,6 @@ var PlaybackRateMenuItem = (function (_MenuItem) {
this.on(player, 'ratechange', this.update);
}
- _inherits(PlaybackRateMenuItem, _MenuItem);
-
/**
* Handle click on menu item
*
@@ -4354,35 +4215,37 @@ var PlaybackRateMenuItem = (function (_MenuItem) {
};
return PlaybackRateMenuItem;
-})(_MenuItem3['default']);
+})(_menuMenuItemJs2['default']);
PlaybackRateMenuItem.prototype.contentElType = 'button';
-_Component2['default'].registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);
+_componentJs2['default'].registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);
exports['default'] = PlaybackRateMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-item.js":89}],60:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-item.js":85}],56:[function(_dereq_,module,exports){
/**
* @file load-progress-bar.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* Shows load progress
@@ -4394,6 +4257,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var LoadProgressBar = (function (_Component) {
+ _inherits(LoadProgressBar, _Component);
+
function LoadProgressBar(player, options) {
_classCallCheck(this, LoadProgressBar);
@@ -4401,8 +4266,6 @@ var LoadProgressBar = (function (_Component) {
this.on(player, 'progress', this.update);
}
- _inherits(LoadProgressBar, _Component);
-
/**
* Create the component's DOM element
*
@@ -4460,37 +4323,39 @@ var LoadProgressBar = (function (_Component) {
};
return LoadProgressBar;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('LoadProgressBar', LoadProgressBar);
+_componentJs2['default'].registerComponent('LoadProgressBar', LoadProgressBar);
exports['default'] = LoadProgressBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111}],61:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107}],57:[function(_dereq_,module,exports){
/**
* @file play-progress-bar.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/fn.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Fn = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Shows play progress
@@ -4502,6 +4367,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var PlayProgressBar = (function (_Component) {
+ _inherits(PlayProgressBar, _Component);
+
function PlayProgressBar(player, options) {
_classCallCheck(this, PlayProgressBar);
@@ -4510,8 +4377,6 @@ var PlayProgressBar = (function (_Component) {
player.ready(Fn.bind(this, this.updateDataAttr));
}
- _inherits(PlayProgressBar, _Component);
-
/**
* Create the component's DOM element
*
@@ -4528,37 +4393,37 @@ var PlayProgressBar = (function (_Component) {
PlayProgressBar.prototype.updateDataAttr = function updateDataAttr() {
var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
- this.el_.setAttribute('data-current-time', _formatTime2['default'](time, this.player_.duration()));
+ this.el_.setAttribute('data-current-time', _utilsFormatTimeJs2['default'](time, this.player_.duration()));
};
return PlayProgressBar;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('PlayProgressBar', PlayProgressBar);
+_componentJs2['default'].registerComponent('PlayProgressBar', PlayProgressBar);
exports['default'] = PlayProgressBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/fn.js":113,"../../utils/format-time.js":114}],62:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/fn.js":109,"../../utils/format-time.js":110}],58:[function(_dereq_,module,exports){
/**
* @file progress-control.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _SeekBar = _dereq_('./seek-bar.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _SeekBar2 = _interopRequireWildcard(_SeekBar);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _seekBarJs = _dereq_('./seek-bar.js');
+
+var _seekBarJs2 = _interopRequireDefault(_seekBarJs);
/**
* The Progress Control component contains the seek bar, load progress,
@@ -4571,16 +4436,14 @@ var _SeekBar2 = _interopRequireWildcard(_SeekBar);
*/
var ProgressControl = (function (_Component) {
+ _inherits(ProgressControl, _Component);
+
function ProgressControl() {
_classCallCheck(this, ProgressControl);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(ProgressControl, _Component);
-
/**
* Create the component's DOM element
*
@@ -4595,55 +4458,57 @@ var ProgressControl = (function (_Component) {
};
return ProgressControl;
-})(_Component3['default']);
+})(_componentJs2['default']);
ProgressControl.prototype.options_ = {
children: {
- seekBar: {}
+ 'seekBar': {}
}
};
-_Component3['default'].registerComponent('ProgressControl', ProgressControl);
+_componentJs2['default'].registerComponent('ProgressControl', ProgressControl);
exports['default'] = ProgressControl;
module.exports = exports['default'];
-},{"../../component.js":52,"./seek-bar.js":63}],63:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./seek-bar.js":59}],59:[function(_dereq_,module,exports){
/**
* @file seek-bar.js
*/
+'use strict';
-var _Slider2 = _dereq_('../../slider/slider.js');
+exports.__esModule = true;
-var _Slider3 = _interopRequireWildcard(_Slider2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _LoadProgressBar = _dereq_('./load-progress-bar.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _LoadProgressBar2 = _interopRequireWildcard(_LoadProgressBar);
+var _sliderSliderJs = _dereq_('../../slider/slider.js');
-var _PlayProgressBar = _dereq_('./play-progress-bar.js');
+var _sliderSliderJs2 = _interopRequireDefault(_sliderSliderJs);
-var _PlayProgressBar2 = _interopRequireWildcard(_PlayProgressBar);
+var _componentJs = _dereq_('../../component.js');
-var _import = _dereq_('../../utils/fn.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Fn = _interopRequireWildcard(_import);
+var _loadProgressBarJs = _dereq_('./load-progress-bar.js');
-var _formatTime = _dereq_('../../utils/format-time.js');
+var _loadProgressBarJs2 = _interopRequireDefault(_loadProgressBarJs);
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _playProgressBarJs = _dereq_('./play-progress-bar.js');
+
+var _playProgressBarJs2 = _interopRequireDefault(_playProgressBarJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Seek Bar and holder for the progress bars
@@ -4655,6 +4520,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var SeekBar = (function (_Slider) {
+ _inherits(SeekBar, _Slider);
+
function SeekBar(player, options) {
_classCallCheck(this, SeekBar);
@@ -4663,8 +4530,6 @@ var SeekBar = (function (_Slider) {
player.ready(Fn.bind(this, this.updateARIAAttributes));
}
- _inherits(SeekBar, _Slider);
-
/**
* Create the component's DOM element
*
@@ -4689,7 +4554,7 @@ var SeekBar = (function (_Slider) {
// Allows for smooth scrubbing, when player can't keep up.
var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)
- this.el_.setAttribute('aria-valuetext', _formatTime2['default'](time, this.player_.duration())); // human readable value of progress bar (time complete)
+ this.el_.setAttribute('aria-valuetext', _utilsFormatTimeJs2['default'](time, this.player_.duration())); // human readable value of progress bar (time complete)
};
/**
@@ -4773,43 +4638,43 @@ var SeekBar = (function (_Slider) {
};
return SeekBar;
-})(_Slider3['default']);
+})(_sliderSliderJs2['default']);
SeekBar.prototype.options_ = {
children: {
- loadProgressBar: {},
- playProgressBar: {}
+ 'loadProgressBar': {},
+ 'playProgressBar': {}
},
- barName: 'playProgressBar'
+ 'barName': 'playProgressBar'
};
SeekBar.prototype.playerEvent = 'timeupdate';
-_Component2['default'].registerComponent('SeekBar', SeekBar);
+_componentJs2['default'].registerComponent('SeekBar', SeekBar);
exports['default'] = SeekBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../slider/slider.js":95,"../../utils/fn.js":113,"../../utils/format-time.js":114,"./load-progress-bar.js":60,"./play-progress-bar.js":61}],64:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../slider/slider.js":91,"../../utils/fn.js":109,"../../utils/format-time.js":110,"./load-progress-bar.js":56,"./play-progress-bar.js":57}],60:[function(_dereq_,module,exports){
/**
* @file custom-control-spacer.js
*/
+'use strict';
-var _Spacer2 = _dereq_('./spacer.js');
+exports.__esModule = true;
-var _Spacer3 = _interopRequireWildcard(_Spacer2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _spacerJs = _dereq_('./spacer.js');
+
+var _spacerJs2 = _interopRequireDefault(_spacerJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Spacer specifically meant to be used as an insertion point for new plugins, etc.
@@ -4819,16 +4684,14 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var CustomControlSpacer = (function (_Spacer) {
+ _inherits(CustomControlSpacer, _Spacer);
+
function CustomControlSpacer() {
_classCallCheck(this, CustomControlSpacer);
- if (_Spacer != null) {
- _Spacer.apply(this, arguments);
- }
+ _Spacer.apply(this, arguments);
}
- _inherits(CustomControlSpacer, _Spacer);
-
/**
* Allow sub components to stack CSS class names
*
@@ -4854,29 +4717,29 @@ var CustomControlSpacer = (function (_Spacer) {
};
return CustomControlSpacer;
-})(_Spacer3['default']);
+})(_spacerJs2['default']);
-_Component2['default'].registerComponent('CustomControlSpacer', CustomControlSpacer);
+_componentJs2['default'].registerComponent('CustomControlSpacer', CustomControlSpacer);
exports['default'] = CustomControlSpacer;
module.exports = exports['default'];
-},{"../../component.js":52,"./spacer.js":65}],65:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./spacer.js":61}],61:[function(_dereq_,module,exports){
/**
* @file spacer.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Just an empty spacer element that can be used as an append point for plugins, etc.
@@ -4887,16 +4750,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var Spacer = (function (_Component) {
+ _inherits(Spacer, _Component);
+
function Spacer() {
_classCallCheck(this, Spacer);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(Spacer, _Component);
-
/**
* Allow sub components to stack CSS class names
*
@@ -4923,34 +4784,34 @@ var Spacer = (function (_Component) {
};
return Spacer;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('Spacer', Spacer);
+_componentJs2['default'].registerComponent('Spacer', Spacer);
exports['default'] = Spacer;
module.exports = exports['default'];
-},{"../../component.js":52}],66:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48}],62:[function(_dereq_,module,exports){
/**
* @file caption-settings-menu-item.js
*/
+'use strict';
-var _TextTrackMenuItem2 = _dereq_('./text-track-menu-item.js');
+exports.__esModule = true;
-var _TextTrackMenuItem3 = _interopRequireWildcard(_TextTrackMenuItem2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
+
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The menu item for caption track settings menu
@@ -4962,13 +4823,15 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var CaptionSettingsMenuItem = (function (_TextTrackMenuItem) {
+ _inherits(CaptionSettingsMenuItem, _TextTrackMenuItem);
+
function CaptionSettingsMenuItem(player, options) {
_classCallCheck(this, CaptionSettingsMenuItem);
- options.track = {
- kind: options.kind,
- player: player,
- label: options.kind + ' settings',
+ options['track'] = {
+ 'kind': options['kind'],
+ 'player': player,
+ 'label': options['kind'] + ' settings',
'default': false,
mode: 'disabled'
};
@@ -4977,8 +4840,6 @@ var CaptionSettingsMenuItem = (function (_TextTrackMenuItem) {
this.addClass('vjs-texttrack-settings');
}
- _inherits(CaptionSettingsMenuItem, _TextTrackMenuItem);
-
/**
* Handle click on menu item
*
@@ -4990,37 +4851,37 @@ var CaptionSettingsMenuItem = (function (_TextTrackMenuItem) {
};
return CaptionSettingsMenuItem;
-})(_TextTrackMenuItem3['default']);
+})(_textTrackMenuItemJs2['default']);
-_Component2['default'].registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);
+_componentJs2['default'].registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);
exports['default'] = CaptionSettingsMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"./text-track-menu-item.js":73}],67:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./text-track-menu-item.js":69}],63:[function(_dereq_,module,exports){
/**
* @file captions-button.js
*/
+'use strict';
-var _TextTrackButton2 = _dereq_('./text-track-button.js');
+exports.__esModule = true;
-var _TextTrackButton3 = _interopRequireWildcard(_TextTrackButton2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _CaptionSettingsMenuItem = _dereq_('./caption-settings-menu-item.js');
+var _textTrackButtonJs = _dereq_('./text-track-button.js');
-var _CaptionSettingsMenuItem2 = _interopRequireWildcard(_CaptionSettingsMenuItem);
+var _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _captionSettingsMenuItemJs = _dereq_('./caption-settings-menu-item.js');
+
+var _captionSettingsMenuItemJs2 = _interopRequireDefault(_captionSettingsMenuItemJs);
/**
* The button component for toggling and selecting captions
@@ -5033,6 +4894,8 @@ var _CaptionSettingsMenuItem2 = _interopRequireWildcard(_CaptionSettingsMenuItem
*/
var CaptionsButton = (function (_TextTrackButton) {
+ _inherits(CaptionsButton, _TextTrackButton);
+
function CaptionsButton(player, options, ready) {
_classCallCheck(this, CaptionsButton);
@@ -5040,8 +4903,6 @@ var CaptionsButton = (function (_TextTrackButton) {
this.el_.setAttribute('aria-label', 'Captions Menu');
}
- _inherits(CaptionsButton, _TextTrackButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -5064,7 +4925,7 @@ var CaptionsButton = (function (_TextTrackButton) {
_TextTrackButton.prototype.update.call(this);
// if native, then threshold is 1 because no settings button
- if (this.player().tech && this.player().tech.featuresNativeTextTracks) {
+ if (this.player().tech && this.player().tech['featuresNativeTextTracks']) {
threshold = 1;
}
@@ -5085,72 +4946,74 @@ var CaptionsButton = (function (_TextTrackButton) {
CaptionsButton.prototype.createItems = function createItems() {
var items = [];
- if (!(this.player().tech && this.player().tech.featuresNativeTextTracks)) {
- items.push(new _CaptionSettingsMenuItem2['default'](this.player_, { kind: this.kind_ }));
+ if (!(this.player().tech && this.player().tech['featuresNativeTextTracks'])) {
+ items.push(new _captionSettingsMenuItemJs2['default'](this.player_, { 'kind': this.kind_ }));
}
return _TextTrackButton.prototype.createItems.call(this, items);
};
return CaptionsButton;
-})(_TextTrackButton3['default']);
+})(_textTrackButtonJs2['default']);
CaptionsButton.prototype.kind_ = 'captions';
CaptionsButton.prototype.controlText_ = 'Captions';
-_Component2['default'].registerComponent('CaptionsButton', CaptionsButton);
+_componentJs2['default'].registerComponent('CaptionsButton', CaptionsButton);
exports['default'] = CaptionsButton;
module.exports = exports['default'];
-},{"../../component.js":52,"./caption-settings-menu-item.js":66,"./text-track-button.js":72}],68:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./caption-settings-menu-item.js":62,"./text-track-button.js":68}],64:[function(_dereq_,module,exports){
/**
* @file chapters-button.js
*/
+'use strict';
-var _TextTrackButton2 = _dereq_('./text-track-button.js');
+exports.__esModule = true;
-var _TextTrackButton3 = _interopRequireWildcard(_TextTrackButton2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _TextTrackMenuItem = _dereq_('./text-track-menu-item.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _TextTrackMenuItem2 = _interopRequireWildcard(_TextTrackMenuItem);
+var _textTrackButtonJs = _dereq_('./text-track-button.js');
-var _ChaptersTrackMenuItem = _dereq_('./chapters-track-menu-item.js');
+var _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);
-var _ChaptersTrackMenuItem2 = _interopRequireWildcard(_ChaptersTrackMenuItem);
+var _componentJs = _dereq_('../../component.js');
-var _Menu = _dereq_('../../menu/menu.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _Menu2 = _interopRequireWildcard(_Menu);
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
-var _import = _dereq_('../../utils/dom.js');
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
-var Dom = _interopRequireWildcard(_import);
+var _chaptersTrackMenuItemJs = _dereq_('./chapters-track-menu-item.js');
-var _import2 = _dereq_('../../utils/fn.js');
+var _chaptersTrackMenuItemJs2 = _interopRequireDefault(_chaptersTrackMenuItemJs);
-var Fn = _interopRequireWildcard(_import2);
+var _menuMenuJs = _dereq_('../../menu/menu.js');
-var _toTitleCase = _dereq_('../../utils/to-title-case.js');
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsDomJs = _dereq_('../../utils/dom.js');
-var _window = _dereq_('global/window');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsToTitleCaseJs = _dereq_('../../utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/**
* The button component for toggling and selecting chapters
@@ -5165,6 +5028,8 @@ var _window2 = _interopRequireWildcard(_window);
*/
var ChaptersButton = (function (_TextTrackButton) {
+ _inherits(ChaptersButton, _TextTrackButton);
+
function ChaptersButton(player, options, ready) {
_classCallCheck(this, ChaptersButton);
@@ -5172,8 +5037,6 @@ var ChaptersButton = (function (_TextTrackButton) {
this.el_.setAttribute('aria-label', 'Chapters Menu');
}
- _inherits(ChaptersButton, _TextTrackButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -5203,9 +5066,9 @@ var ChaptersButton = (function (_TextTrackButton) {
for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
- if (track.kind === this.kind_) {
- items.push(new _TextTrackMenuItem2['default'](this.player_, {
- track: track
+ if (track['kind'] === this.kind_) {
+ items.push(new _textTrackMenuItemJs2['default'](this.player_, {
+ 'track': track
}));
}
}
@@ -5227,42 +5090,42 @@ var ChaptersButton = (function (_TextTrackButton) {
for (var i = 0, l = tracks.length; i < l; i++) {
var track = tracks[i];
- if (track.kind === this.kind_) {
+ if (track['kind'] === this.kind_) {
if (!track.cues) {
- track.mode = 'hidden';
+ track['mode'] = 'hidden';
/* jshint loopfunc:true */
// TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864
- _window2['default'].setTimeout(Fn.bind(this, function () {
+ _globalWindow2['default'].setTimeout(Fn.bind(this, function () {
this.createMenu();
}), 100);
/* jshint loopfunc:false */
} else {
- chaptersTrack = track;
- break;
- }
+ chaptersTrack = track;
+ break;
+ }
}
}
var menu = this.menu;
if (menu === undefined) {
- menu = new _Menu2['default'](this.player_);
+ menu = new _menuMenuJs2['default'](this.player_);
menu.contentEl().appendChild(Dom.createEl('li', {
className: 'vjs-menu-title',
- innerHTML: _toTitleCase2['default'](this.kind_),
+ innerHTML: _utilsToTitleCaseJs2['default'](this.kind_),
tabIndex: -1
}));
}
if (chaptersTrack) {
- var cues = chaptersTrack.cues,
+ var cues = chaptersTrack['cues'],
cue = undefined;
for (var i = 0, l = cues.length; i < l; i++) {
cue = cues[i];
- var mi = new _ChaptersTrackMenuItem2['default'](this.player_, {
- track: chaptersTrack,
- cue: cue
+ var mi = new _chaptersTrackMenuItemJs2['default'](this.player_, {
+ 'track': chaptersTrack,
+ 'cue': cue
});
items.push(mi);
@@ -5280,40 +5143,42 @@ var ChaptersButton = (function (_TextTrackButton) {
};
return ChaptersButton;
-})(_TextTrackButton3['default']);
+})(_textTrackButtonJs2['default']);
ChaptersButton.prototype.kind_ = 'chapters';
ChaptersButton.prototype.controlText_ = 'Chapters';
-_Component2['default'].registerComponent('ChaptersButton', ChaptersButton);
+_componentJs2['default'].registerComponent('ChaptersButton', ChaptersButton);
exports['default'] = ChaptersButton;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu.js":90,"../../utils/dom.js":111,"../../utils/fn.js":113,"../../utils/to-title-case.js":120,"./chapters-track-menu-item.js":69,"./text-track-button.js":72,"./text-track-menu-item.js":73,"global/window":2}],69:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu.js":86,"../../utils/dom.js":107,"../../utils/fn.js":109,"../../utils/to-title-case.js":116,"./chapters-track-menu-item.js":65,"./text-track-button.js":68,"./text-track-menu-item.js":69,"global/window":2}],65:[function(_dereq_,module,exports){
/**
* @file chapters-track-menu-item.js
*/
+'use strict';
-var _MenuItem2 = _dereq_('../../menu/menu-item.js');
+exports.__esModule = true;
-var _MenuItem3 = _interopRequireWildcard(_MenuItem2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuItemJs = _dereq_('../../menu/menu-item.js');
+
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
/**
* The chapter track menu item
@@ -5325,16 +5190,18 @@ var Fn = _interopRequireWildcard(_import);
*/
var ChaptersTrackMenuItem = (function (_MenuItem) {
+ _inherits(ChaptersTrackMenuItem, _MenuItem);
+
function ChaptersTrackMenuItem(player, options) {
_classCallCheck(this, ChaptersTrackMenuItem);
- var track = options.track;
- var cue = options.cue;
+ var track = options['track'];
+ var cue = options['cue'];
var currentTime = player.currentTime();
// Modify options for parent MenuItem class's init.
- options.label = cue.text;
- options.selected = cue.startTime <= currentTime && currentTime < cue.endTime;
+ options['label'] = cue.text;
+ options['selected'] = cue['startTime'] <= currentTime && currentTime < cue['endTime'];
_MenuItem.call(this, player, options);
this.track = track;
@@ -5342,8 +5209,6 @@ var ChaptersTrackMenuItem = (function (_MenuItem) {
track.addEventListener('cuechange', Fn.bind(this, this.update));
}
- _inherits(ChaptersTrackMenuItem, _MenuItem);
-
/**
* Handle click on menu item
*
@@ -5367,37 +5232,37 @@ var ChaptersTrackMenuItem = (function (_MenuItem) {
var currentTime = this.player_.currentTime();
// vjs.log(currentTime, cue.startTime);
- this.selected(cue.startTime <= currentTime && currentTime < cue.endTime);
+ this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);
};
return ChaptersTrackMenuItem;
-})(_MenuItem3['default']);
+})(_menuMenuItemJs2['default']);
-_Component2['default'].registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);
+_componentJs2['default'].registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);
exports['default'] = ChaptersTrackMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-item.js":89,"../../utils/fn.js":113}],70:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-item.js":85,"../../utils/fn.js":109}],66:[function(_dereq_,module,exports){
/**
* @file off-text-track-menu-item.js
*/
+'use strict';
-var _TextTrackMenuItem2 = _dereq_('./text-track-menu-item.js');
+exports.__esModule = true;
-var _TextTrackMenuItem3 = _interopRequireWildcard(_TextTrackMenuItem2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
+
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* A special menu item for turning of a specific type of text track
@@ -5409,25 +5274,25 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var OffTextTrackMenuItem = (function (_TextTrackMenuItem) {
+ _inherits(OffTextTrackMenuItem, _TextTrackMenuItem);
+
function OffTextTrackMenuItem(player, options) {
_classCallCheck(this, OffTextTrackMenuItem);
// Create pseudo track info
// Requires options['kind']
- options.track = {
- kind: options.kind,
- player: player,
- label: options.kind + ' off',
+ options['track'] = {
+ 'kind': options['kind'],
+ 'player': player,
+ 'label': options['kind'] + ' off',
'default': false,
- mode: 'disabled'
+ 'mode': 'disabled'
};
_TextTrackMenuItem.call(this, player, options);
this.selected(true);
}
- _inherits(OffTextTrackMenuItem, _TextTrackMenuItem);
-
/**
* Handle text track change
*
@@ -5441,7 +5306,7 @@ var OffTextTrackMenuItem = (function (_TextTrackMenuItem) {
for (var i = 0, l = tracks.length; i < l; i++) {
var track = tracks[i];
- if (track.kind === this.track.kind && track.mode === 'showing') {
+ if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {
selected = false;
break;
}
@@ -5451,33 +5316,33 @@ var OffTextTrackMenuItem = (function (_TextTrackMenuItem) {
};
return OffTextTrackMenuItem;
-})(_TextTrackMenuItem3['default']);
+})(_textTrackMenuItemJs2['default']);
-_Component2['default'].registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);
+_componentJs2['default'].registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);
exports['default'] = OffTextTrackMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"./text-track-menu-item.js":73}],71:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./text-track-menu-item.js":69}],67:[function(_dereq_,module,exports){
/**
* @file subtitles-button.js
*/
+'use strict';
-var _TextTrackButton2 = _dereq_('./text-track-button.js');
+exports.__esModule = true;
-var _TextTrackButton3 = _interopRequireWildcard(_TextTrackButton2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _textTrackButtonJs = _dereq_('./text-track-button.js');
+
+var _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The button component for toggling and selecting subtitles
@@ -5490,6 +5355,8 @@ var _Component2 = _interopRequireWildcard(_Component);
*/
var SubtitlesButton = (function (_TextTrackButton) {
+ _inherits(SubtitlesButton, _TextTrackButton);
+
function SubtitlesButton(player, options, ready) {
_classCallCheck(this, SubtitlesButton);
@@ -5497,8 +5364,6 @@ var SubtitlesButton = (function (_TextTrackButton) {
this.el_.setAttribute('aria-label', 'Subtitles Menu');
}
- _inherits(SubtitlesButton, _TextTrackButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -5511,48 +5376,50 @@ var SubtitlesButton = (function (_TextTrackButton) {
};
return SubtitlesButton;
-})(_TextTrackButton3['default']);
+})(_textTrackButtonJs2['default']);
SubtitlesButton.prototype.kind_ = 'subtitles';
SubtitlesButton.prototype.controlText_ = 'Subtitles';
-_Component2['default'].registerComponent('SubtitlesButton', SubtitlesButton);
+_componentJs2['default'].registerComponent('SubtitlesButton', SubtitlesButton);
exports['default'] = SubtitlesButton;
module.exports = exports['default'];
-},{"../../component.js":52,"./text-track-button.js":72}],72:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./text-track-button.js":68}],68:[function(_dereq_,module,exports){
/**
* @file text-track-button.js
*/
+'use strict';
-var _MenuButton2 = _dereq_('../../menu/menu-button.js');
+exports.__esModule = true;
-var _MenuButton3 = _interopRequireWildcard(_MenuButton2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuButtonJs = _dereq_('../../menu/menu-button.js');
-var _TextTrackMenuItem = _dereq_('./text-track-menu-item.js');
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
-var _TextTrackMenuItem2 = _interopRequireWildcard(_TextTrackMenuItem);
+var _componentJs = _dereq_('../../component.js');
-var _OffTextTrackMenuItem = _dereq_('./off-text-track-menu-item.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _OffTextTrackMenuItem2 = _interopRequireWildcard(_OffTextTrackMenuItem);
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');
+
+var _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);
+
+var _offTextTrackMenuItemJs = _dereq_('./off-text-track-menu-item.js');
+
+var _offTextTrackMenuItemJs2 = _interopRequireDefault(_offTextTrackMenuItemJs);
/**
* The base class for buttons that toggle specific text track types (e.g. subtitles)
@@ -5564,6 +5431,8 @@ var _OffTextTrackMenuItem2 = _interopRequireWildcard(_OffTextTrackMenuItem);
*/
var TextTrackButton = (function (_MenuButton) {
+ _inherits(TextTrackButton, _MenuButton);
+
function TextTrackButton(player, options) {
_classCallCheck(this, TextTrackButton);
@@ -5589,15 +5458,13 @@ var TextTrackButton = (function (_MenuButton) {
});
}
- _inherits(TextTrackButton, _MenuButton);
-
// Create a menu item for each text track
TextTrackButton.prototype.createItems = function createItems() {
- var items = arguments[0] === undefined ? [] : arguments[0];
+ var items = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];
// Add an OFF menu item to turn all tracks off
- items.push(new _OffTextTrackMenuItem2['default'](this.player_, { kind: this.kind_ }));
+ items.push(new _offTextTrackMenuItemJs2['default'](this.player_, { 'kind': this.kind_ }));
var tracks = this.player_.textTracks();
@@ -5609,9 +5476,9 @@ var TextTrackButton = (function (_MenuButton) {
var track = tracks[i];
// only add tracks that are of the appropriate kind and have a label
- if (track.kind === this.kind_) {
- items.push(new _TextTrackMenuItem2['default'](this.player_, {
- track: track
+ if (track['kind'] === this.kind_) {
+ items.push(new _textTrackMenuItemJs2['default'](this.player_, {
+ 'track': track
}));
}
}
@@ -5620,45 +5487,47 @@ var TextTrackButton = (function (_MenuButton) {
};
return TextTrackButton;
-})(_MenuButton3['default']);
+})(_menuMenuButtonJs2['default']);
-_Component2['default'].registerComponent('TextTrackButton', TextTrackButton);
+_componentJs2['default'].registerComponent('TextTrackButton', TextTrackButton);
exports['default'] = TextTrackButton;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-button.js":88,"../../utils/fn.js":113,"./off-text-track-menu-item.js":70,"./text-track-menu-item.js":73}],73:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-button.js":84,"../../utils/fn.js":109,"./off-text-track-menu-item.js":66,"./text-track-menu-item.js":69}],69:[function(_dereq_,module,exports){
/**
* @file text-track-menu-item.js
*/
+'use strict';
-var _MenuItem2 = _dereq_('../../menu/menu-item.js');
+exports.__esModule = true;
-var _MenuItem3 = _interopRequireWildcard(_MenuItem2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuItemJs = _dereq_('../../menu/menu-item.js');
-var _window = _dereq_('global/window');
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
-var _window2 = _interopRequireWildcard(_window);
+var _componentJs = _dereq_('../../component.js');
-var _document = _dereq_('global/document');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _document2 = _interopRequireWildcard(_document);
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* The specific menu item type for selecting a language within a text track kind
@@ -5670,17 +5539,19 @@ var _document2 = _interopRequireWildcard(_document);
*/
var TextTrackMenuItem = (function (_MenuItem) {
+ _inherits(TextTrackMenuItem, _MenuItem);
+
function TextTrackMenuItem(player, options) {
var _this = this;
_classCallCheck(this, TextTrackMenuItem);
- var track = options.track;
+ var track = options['track'];
var tracks = player.textTracks();
// Modify options for parent MenuItem class's init.
- options.label = track.label || track.language || 'Unknown';
- options.selected = track['default'] || track.mode === 'showing';
+ options['label'] = track['label'] || track['language'] || 'Unknown';
+ options['selected'] = track['default'] || track['mode'] === 'showing';
_MenuItem.call(this, player, options);
this.track = track;
@@ -5707,15 +5578,15 @@ var TextTrackMenuItem = (function (_MenuItem) {
var event = undefined;
_this.on(['tap', 'click'], function () {
- if (typeof _window2['default'].Event !== 'object') {
+ if (typeof _globalWindow2['default'].Event !== 'object') {
// Android 2.3 throws an Illegal Constructor error for window.Event
try {
- event = new _window2['default'].Event('change');
+ event = new _globalWindow2['default'].Event('change');
} catch (err) {}
}
if (!event) {
- event = _document2['default'].createEvent('Event');
+ event = _globalDocument2['default'].createEvent('Event');
event.initEvent('change', true, true);
}
@@ -5725,8 +5596,6 @@ var TextTrackMenuItem = (function (_MenuItem) {
}
}
- _inherits(TextTrackMenuItem, _MenuItem);
-
/**
* Handle click on text track
*
@@ -5734,24 +5603,24 @@ var TextTrackMenuItem = (function (_MenuItem) {
*/
TextTrackMenuItem.prototype.handleClick = function handleClick(event) {
- var kind = this.track.kind;
+ var kind = this.track['kind'];
var tracks = this.player_.textTracks();
_MenuItem.prototype.handleClick.call(this, event);
- if (!tracks) {
- return;
- }for (var i = 0; i < tracks.length; i++) {
+ if (!tracks) return;
+
+ for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
- if (track.kind !== kind) {
+ if (track['kind'] !== kind) {
continue;
}
if (track === this.track) {
- track.mode = 'showing';
+ track['mode'] = 'showing';
} else {
- track.mode = 'disabled';
+ track['mode'] = 'disabled';
}
}
};
@@ -5763,41 +5632,43 @@ var TextTrackMenuItem = (function (_MenuItem) {
*/
TextTrackMenuItem.prototype.handleTracksChange = function handleTracksChange(event) {
- this.selected(this.track.mode === 'showing');
+ this.selected(this.track['mode'] === 'showing');
};
return TextTrackMenuItem;
-})(_MenuItem3['default']);
+})(_menuMenuItemJs2['default']);
-_Component2['default'].registerComponent('TextTrackMenuItem', TextTrackMenuItem);
+_componentJs2['default'].registerComponent('TextTrackMenuItem', TextTrackMenuItem);
exports['default'] = TextTrackMenuItem;
module.exports = exports['default'];
-},{"../../component.js":52,"../../menu/menu-item.js":89,"../../utils/fn.js":113,"global/document":1,"global/window":2}],74:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../menu/menu-item.js":85,"../../utils/fn.js":109,"global/document":1,"global/window":2}],70:[function(_dereq_,module,exports){
/**
* @file current-time-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Displays the current time
@@ -5809,6 +5680,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var CurrentTimeDisplay = (function (_Component) {
+ _inherits(CurrentTimeDisplay, _Component);
+
function CurrentTimeDisplay(player, options) {
_classCallCheck(this, CurrentTimeDisplay);
@@ -5817,8 +5690,6 @@ var CurrentTimeDisplay = (function (_Component) {
this.on(player, 'timeupdate', this.updateContent);
}
- _inherits(CurrentTimeDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -5851,42 +5722,44 @@ var CurrentTimeDisplay = (function (_Component) {
// Allows for smooth scrubbing, when player can't keep up.
var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();
var localizedText = this.localize('Current Time');
- var formattedTime = _formatTime2['default'](time, this.player_.duration());
+ var formattedTime = _utilsFormatTimeJs2['default'](time, this.player_.duration());
this.contentEl_.innerHTML = '' + localizedText + ' ' + formattedTime;
};
return CurrentTimeDisplay;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);
+_componentJs2['default'].registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);
exports['default'] = CurrentTimeDisplay;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],75:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],71:[function(_dereq_,module,exports){
/**
* @file duration-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Displays the duration
@@ -5898,6 +5771,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var DurationDisplay = (function (_Component) {
+ _inherits(DurationDisplay, _Component);
+
function DurationDisplay(player, options) {
_classCallCheck(this, DurationDisplay);
@@ -5912,8 +5787,6 @@ var DurationDisplay = (function (_Component) {
this.on(player, 'loadedmetadata', this.updateContent);
}
- _inherits(DurationDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -5946,43 +5819,45 @@ var DurationDisplay = (function (_Component) {
var duration = this.player_.duration();
if (duration) {
var localizedText = this.localize('Duration Time');
- var formattedTime = _formatTime2['default'](duration);
+ var formattedTime = _utilsFormatTimeJs2['default'](duration);
this.contentEl_.innerHTML = '' + localizedText + ' ' + formattedTime; // label the duration time for screen reader users
}
};
return DurationDisplay;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('DurationDisplay', DurationDisplay);
+_componentJs2['default'].registerComponent('DurationDisplay', DurationDisplay);
exports['default'] = DurationDisplay;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],76:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],72:[function(_dereq_,module,exports){
/**
* @file remaining-time-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _formatTime = _dereq_('../../utils/format-time.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsDomJs = _dereq_('../../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');
+
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
/**
* Displays the time left in the video
@@ -5994,6 +5869,8 @@ var _formatTime2 = _interopRequireWildcard(_formatTime);
*/
var RemainingTimeDisplay = (function (_Component) {
+ _inherits(RemainingTimeDisplay, _Component);
+
function RemainingTimeDisplay(player, options) {
_classCallCheck(this, RemainingTimeDisplay);
@@ -6002,8 +5879,6 @@ var RemainingTimeDisplay = (function (_Component) {
this.on(player, 'timeupdate', this.updateContent);
}
- _inherits(RemainingTimeDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -6035,7 +5910,7 @@ var RemainingTimeDisplay = (function (_Component) {
RemainingTimeDisplay.prototype.updateContent = function updateContent() {
if (this.player_.duration()) {
var localizedText = this.localize('Remaining Time');
- var formattedTime = _formatTime2['default'](this.player_.remainingTime());
+ var formattedTime = _utilsFormatTimeJs2['default'](this.player_.remainingTime());
this.contentEl_.innerHTML = '' + localizedText + ' -' + formattedTime;
}
@@ -6045,29 +5920,29 @@ var RemainingTimeDisplay = (function (_Component) {
};
return RemainingTimeDisplay;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);
+_componentJs2['default'].registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);
exports['default'] = RemainingTimeDisplay;
module.exports = exports['default'];
-},{"../../component.js":52,"../../utils/dom.js":111,"../../utils/format-time.js":114}],77:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../utils/dom.js":107,"../../utils/format-time.js":110}],73:[function(_dereq_,module,exports){
/**
* @file time-divider.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* The separator between the current time and duration.
@@ -6080,16 +5955,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var TimeDivider = (function (_Component) {
+ _inherits(TimeDivider, _Component);
+
function TimeDivider() {
_classCallCheck(this, TimeDivider);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(TimeDivider, _Component);
-
/**
* Create the component's DOM element
*
@@ -6105,43 +5978,45 @@ var TimeDivider = (function (_Component) {
};
return TimeDivider;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('TimeDivider', TimeDivider);
+_componentJs2['default'].registerComponent('TimeDivider', TimeDivider);
exports['default'] = TimeDivider;
module.exports = exports['default'];
-},{"../../component.js":52}],78:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48}],74:[function(_dereq_,module,exports){
/**
* @file volume-bar.js
*/
+'use strict';
-var _Slider2 = _dereq_('../../slider/slider.js');
+exports.__esModule = true;
-var _Slider3 = _interopRequireWildcard(_Slider2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('../../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _sliderSliderJs = _dereq_('../../slider/slider.js');
+
+var _sliderSliderJs2 = _interopRequireDefault(_sliderSliderJs);
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _utilsFnJs = _dereq_('../../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
// Required children
-var _VolumeLevel = _dereq_('./volume-level.js');
+var _volumeLevelJs = _dereq_('./volume-level.js');
-var _VolumeLevel2 = _interopRequireWildcard(_VolumeLevel);
+var _volumeLevelJs2 = _interopRequireDefault(_volumeLevelJs);
/**
* The bar that contains the volume level and can be clicked on to adjust the level
@@ -6153,6 +6028,8 @@ var _VolumeLevel2 = _interopRequireWildcard(_VolumeLevel);
*/
var VolumeBar = (function (_Slider) {
+ _inherits(VolumeBar, _Slider);
+
function VolumeBar(player, options) {
_classCallCheck(this, VolumeBar);
@@ -6161,8 +6038,6 @@ var VolumeBar = (function (_Slider) {
player.ready(Fn.bind(this, this.updateARIAAttributes));
}
- _inherits(VolumeBar, _Slider);
-
/**
* Create the component's DOM element
*
@@ -6240,44 +6115,44 @@ var VolumeBar = (function (_Slider) {
};
return VolumeBar;
-})(_Slider3['default']);
+})(_sliderSliderJs2['default']);
VolumeBar.prototype.options_ = {
children: {
- volumeLevel: {}
+ 'volumeLevel': {}
},
- barName: 'volumeLevel'
+ 'barName': 'volumeLevel'
};
VolumeBar.prototype.playerEvent = 'volumechange';
-_Component2['default'].registerComponent('VolumeBar', VolumeBar);
+_componentJs2['default'].registerComponent('VolumeBar', VolumeBar);
exports['default'] = VolumeBar;
module.exports = exports['default'];
-},{"../../component.js":52,"../../slider/slider.js":95,"../../utils/fn.js":113,"./volume-level.js":80}],79:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"../../slider/slider.js":91,"../../utils/fn.js":109,"./volume-level.js":76}],75:[function(_dereq_,module,exports){
/**
* @file volume-control.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
// Required children
-var _VolumeBar = _dereq_('./volume-bar.js');
+var _volumeBarJs = _dereq_('./volume-bar.js');
-var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
+var _volumeBarJs2 = _interopRequireDefault(_volumeBarJs);
/**
* The component for controlling the volume level
@@ -6289,17 +6164,19 @@ var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
*/
var VolumeControl = (function (_Component) {
+ _inherits(VolumeControl, _Component);
+
function VolumeControl(player, options) {
_classCallCheck(this, VolumeControl);
_Component.call(this, player, options);
// hide volume controls when they're not supported by the current tech
- if (player.tech && player.tech.featuresVolumeControl === false) {
+ if (player.tech && player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
}
this.on(player, 'loadstart', function () {
- if (player.tech.featuresVolumeControl === false) {
+ if (player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
} else {
this.removeClass('vjs-hidden');
@@ -6307,8 +6184,6 @@ var VolumeControl = (function (_Component) {
});
}
- _inherits(VolumeControl, _Component);
-
/**
* Create the component's DOM element
*
@@ -6323,35 +6198,35 @@ var VolumeControl = (function (_Component) {
};
return VolumeControl;
-})(_Component3['default']);
+})(_componentJs2['default']);
VolumeControl.prototype.options_ = {
children: {
- volumeBar: {}
+ 'volumeBar': {}
}
};
-_Component3['default'].registerComponent('VolumeControl', VolumeControl);
+_componentJs2['default'].registerComponent('VolumeControl', VolumeControl);
exports['default'] = VolumeControl;
module.exports = exports['default'];
-},{"../../component.js":52,"./volume-bar.js":78}],80:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48,"./volume-bar.js":74}],76:[function(_dereq_,module,exports){
/**
* @file volume-level.js
*/
+'use strict';
-var _Component2 = _dereq_('../../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _componentJs = _dereq_('../../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
/**
* Shows volume level
@@ -6363,16 +6238,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var VolumeLevel = (function (_Component) {
+ _inherits(VolumeLevel, _Component);
+
function VolumeLevel() {
_classCallCheck(this, VolumeLevel);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(VolumeLevel, _Component);
-
/**
* Create the component's DOM element
*
@@ -6388,49 +6261,49 @@ var VolumeLevel = (function (_Component) {
};
return VolumeLevel;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('VolumeLevel', VolumeLevel);
+_componentJs2['default'].registerComponent('VolumeLevel', VolumeLevel);
exports['default'] = VolumeLevel;
module.exports = exports['default'];
-},{"../../component.js":52}],81:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../../component.js":48}],77:[function(_dereq_,module,exports){
/**
* @file volume-menu-button.js
*/
+'use strict';
-var _Button = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button2 = _interopRequireWildcard(_Button);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _Menu = _dereq_('../menu/menu.js');
+var _buttonJs = _dereq_('../button.js');
-var _Menu2 = _interopRequireWildcard(_Menu);
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
-var _MenuButton2 = _dereq_('../menu/menu-button.js');
+var _componentJs = _dereq_('../component.js');
-var _MenuButton3 = _interopRequireWildcard(_MenuButton2);
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _MuteToggle = _dereq_('./mute-toggle.js');
+var _menuMenuJs = _dereq_('../menu/menu.js');
-var _MuteToggle2 = _interopRequireWildcard(_MuteToggle);
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var _VolumeBar = _dereq_('./volume-control/volume-bar.js');
+var _menuMenuButtonJs = _dereq_('../menu/menu-button.js');
-var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
+
+var _muteToggleJs = _dereq_('./mute-toggle.js');
+
+var _muteToggleJs2 = _interopRequireDefault(_muteToggleJs);
+
+var _volumeControlVolumeBarJs = _dereq_('./volume-control/volume-bar.js');
+
+var _volumeControlVolumeBarJs2 = _interopRequireDefault(_volumeControlVolumeBarJs);
/**
* Button for volume menu
@@ -6442,8 +6315,10 @@ var _VolumeBar2 = _interopRequireWildcard(_VolumeBar);
*/
var VolumeMenuButton = (function (_MenuButton) {
+ _inherits(VolumeMenuButton, _MenuButton);
+
function VolumeMenuButton(player) {
- var options = arguments[1] === undefined ? {} : arguments[1];
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
_classCallCheck(this, VolumeMenuButton);
@@ -6470,11 +6345,11 @@ var VolumeMenuButton = (function (_MenuButton) {
this.on(player, 'loadstart', this.volumeUpdate);
// hide mute toggle if the current tech doesn't support volume control
- if (player.tech && player.tech.featuresVolumeControl === false) {
+ if (player.tech && player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
}
this.on(player, 'loadstart', function () {
- if (player.tech.featuresVolumeControl === false) {
+ if (player.tech['featuresVolumeControl'] === false) {
this.addClass('vjs-hidden');
} else {
this.removeClass('vjs-hidden');
@@ -6483,8 +6358,6 @@ var VolumeMenuButton = (function (_MenuButton) {
this.addClass('vjs-menu-button');
}
- _inherits(VolumeMenuButton, _MenuButton);
-
/**
* Allow sub components to stack CSS class names
*
@@ -6511,11 +6384,11 @@ var VolumeMenuButton = (function (_MenuButton) {
*/
VolumeMenuButton.prototype.createMenu = function createMenu() {
- var menu = new _Menu2['default'](this.player_, {
+ var menu = new _menuMenuJs2['default'](this.player_, {
contentElType: 'div'
});
- var vc = new _VolumeBar2['default'](this.player_, this.options_.volumeBar);
+ var vc = new _volumeControlVolumeBarJs2['default'](this.player_, this.options_.volumeBar);
vc.on('focus', function () {
menu.lockShowing();
@@ -6534,41 +6407,43 @@ var VolumeMenuButton = (function (_MenuButton) {
*/
VolumeMenuButton.prototype.handleClick = function handleClick() {
- _MuteToggle2['default'].prototype.handleClick.call(this);
+ _muteToggleJs2['default'].prototype.handleClick.call(this);
_MenuButton.prototype.handleClick.call(this);
};
return VolumeMenuButton;
-})(_MenuButton3['default']);
+})(_menuMenuButtonJs2['default']);
-VolumeMenuButton.prototype.volumeUpdate = _MuteToggle2['default'].prototype.update;
+VolumeMenuButton.prototype.volumeUpdate = _muteToggleJs2['default'].prototype.update;
VolumeMenuButton.prototype.controlText_ = 'Mute';
-_Component2['default'].registerComponent('VolumeMenuButton', VolumeMenuButton);
+_componentJs2['default'].registerComponent('VolumeMenuButton', VolumeMenuButton);
exports['default'] = VolumeMenuButton;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52,"../menu/menu-button.js":88,"../menu/menu.js":90,"./mute-toggle.js":56,"./volume-control/volume-bar.js":78}],82:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48,"../menu/menu-button.js":84,"../menu/menu.js":86,"./mute-toggle.js":52,"./volume-control/volume-bar.js":74}],78:[function(_dereq_,module,exports){
/**
* @file error-display.js
*/
+'use strict';
-var _Component2 = _dereq_('./component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('./utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _component = _dereq_('./component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _utilsDomJs = _dereq_('./utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
/**
* Display that an error has occurred making the video unplayable
@@ -6580,6 +6455,8 @@ var Dom = _interopRequireWildcard(_import);
*/
var ErrorDisplay = (function (_Component) {
+ _inherits(ErrorDisplay, _Component);
+
function ErrorDisplay(player, options) {
_classCallCheck(this, ErrorDisplay);
@@ -6589,8 +6466,6 @@ var ErrorDisplay = (function (_Component) {
this.on(player, 'error', this.update);
}
- _inherits(ErrorDisplay, _Component);
-
/**
* Create the component's DOM element
*
@@ -6622,25 +6497,25 @@ var ErrorDisplay = (function (_Component) {
};
return ErrorDisplay;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('ErrorDisplay', ErrorDisplay);
+_component2['default'].registerComponent('ErrorDisplay', ErrorDisplay);
exports['default'] = ErrorDisplay;
module.exports = exports['default'];
-},{"./component":52,"./utils/dom.js":111}],83:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./component":48,"./utils/dom.js":107}],79:[function(_dereq_,module,exports){
/**
* @file event-target.js
*/
+'use strict';
-var _import = _dereq_('./utils/events.js');
+exports.__esModule = true;
-var Events = _interopRequireWildcard(_import);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
+
+var _utilsEventsJs = _dereq_('./utils/events.js');
+
+var Events = _interopRequireWildcard(_utilsEventsJs);
var EventTarget = function EventTarget() {};
@@ -6687,16 +6562,16 @@ EventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;
exports['default'] = EventTarget;
module.exports = exports['default'];
-},{"./utils/events.js":112}],84:[function(_dereq_,module,exports){
+},{"./utils/events.js":108}],80:[function(_dereq_,module,exports){
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
-var _log = _dereq_('./utils/log');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _log2 = _interopRequireWildcard(_log);
+var _utilsLog = _dereq_('./utils/log');
+
+var _utilsLog2 = _interopRequireDefault(_utilsLog);
/*
* @file extends.js
@@ -6743,7 +6618,7 @@ var _inherits = function _inherits(subClass, superClass) {
* ```
*/
var extendsFn = function extendsFn(superClass) {
- var subClassMethods = arguments[1] === undefined ? {} : arguments[1];
+ var subClassMethods = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
var subClass = function subClass() {
superClass.apply(this, arguments);
@@ -6752,7 +6627,7 @@ var extendsFn = function extendsFn(superClass) {
if (typeof subClassMethods === 'object') {
if (typeof subClassMethods.init === 'function') {
- _log2['default'].warn('Constructor logic via init() is deprecated; please use constructor() instead.');
+ _utilsLog2['default'].warn('Constructor logic via init() is deprecated; please use constructor() instead.');
subClassMethods.constructor = subClassMethods.init;
}
if (subClassMethods.constructor !== Object.prototype.constructor) {
@@ -6778,19 +6653,19 @@ var extendsFn = function extendsFn(superClass) {
exports['default'] = extendsFn;
module.exports = exports['default'];
-},{"./utils/log":116}],85:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./utils/log":112}],81:[function(_dereq_,module,exports){
/**
* @file fullscreen-api.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/*
* Store the browser-specific methods for the fullscreen API
@@ -6819,7 +6694,7 @@ var browserApi = undefined;
// determine the supported set of functions
for (var i = 0; i < apiMap.length; i++) {
// check for exitFullscreen function
- if (apiMap[i][1] in _document2['default']) {
+ if (apiMap[i][1] in _globalDocument2['default']) {
browserApi = apiMap[i];
break;
}
@@ -6835,23 +6710,23 @@ if (browserApi) {
exports['default'] = FullscreenApi;
module.exports = exports['default'];
-},{"global/document":1}],86:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"global/document":1}],82:[function(_dereq_,module,exports){
/**
* @file loading-spinner.js
*/
+'use strict';
-var _Component2 = _dereq_('./component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
+
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
+
+var _component = _dereq_('./component');
+
+var _component2 = _interopRequireDefault(_component);
/* Loading Spinner
================================================================================ */
@@ -6863,16 +6738,14 @@ var _Component3 = _interopRequireWildcard(_Component2);
*/
var LoadingSpinner = (function (_Component) {
+ _inherits(LoadingSpinner, _Component);
+
function LoadingSpinner() {
_classCallCheck(this, LoadingSpinner);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(LoadingSpinner, _Component);
-
/**
* Create the component's DOM element
*
@@ -6886,42 +6759,32 @@ var LoadingSpinner = (function (_Component) {
};
return LoadingSpinner;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('LoadingSpinner', LoadingSpinner);
+_component2['default'].registerComponent('LoadingSpinner', LoadingSpinner);
exports['default'] = LoadingSpinner;
module.exports = exports['default'];
-},{"./component":52}],87:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./component":48}],83:[function(_dereq_,module,exports){
/**
* @file media-error.js
*/
+'use strict';
-var _assign = _dereq_('object.assign');
+exports.__esModule = true;
-var _assign2 = _interopRequireWildcard(_assign);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/*
* Custom MediaError to mimic the HTML5 MediaError
*
* @param {Number} code The media error code
*/
-var MediaError = (function (_MediaError) {
- function MediaError(_x) {
- return _MediaError.apply(this, arguments);
- }
-
- MediaError.toString = function () {
- return _MediaError.toString();
- };
-
- return MediaError;
-})(function (code) {
+var MediaError = function MediaError(code) {
if (typeof code === 'number') {
this.code = code;
} else if (typeof code === 'string') {
@@ -6929,13 +6792,13 @@ var MediaError = (function (_MediaError) {
this.message = code;
} else if (typeof code === 'object') {
// object
- _assign2['default'](this, code);
+ _objectAssign2['default'](this, code);
}
if (!this.message) {
this.message = MediaError.defaultMessages[this.code] || '';
}
-});
+};
/*
* The error code that refers two one of the defined
@@ -6993,43 +6856,45 @@ for (var errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {
exports['default'] = MediaError;
module.exports = exports['default'];
-},{"object.assign":44}],88:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"object.assign":40}],84:[function(_dereq_,module,exports){
/**
* @file menu-button.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('../component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Menu = _dereq_('./menu.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _Menu2 = _interopRequireWildcard(_Menu);
+var _buttonJs = _dereq_('../button.js');
-var _import = _dereq_('../utils/dom.js');
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
-var Dom = _interopRequireWildcard(_import);
+var _componentJs = _dereq_('../component.js');
-var _import2 = _dereq_('../utils/fn.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Fn = _interopRequireWildcard(_import2);
+var _menuJs = _dereq_('./menu.js');
-var _toTitleCase = _dereq_('../utils/to-title-case.js');
+var _menuJs2 = _interopRequireDefault(_menuJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFnJs = _dereq_('../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsToTitleCaseJs = _dereq_('../utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
/**
* A button class with a popup menu
@@ -7041,8 +6906,10 @@ var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
*/
var MenuButton = (function (_Button) {
+ _inherits(MenuButton, _Button);
+
function MenuButton(player) {
- var options = arguments[1] === undefined ? {} : arguments[1];
+ var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
_classCallCheck(this, MenuButton);
@@ -7055,8 +6922,6 @@ var MenuButton = (function (_Button) {
this.el_.setAttribute('role', 'button');
}
- _inherits(MenuButton, _Button);
-
/**
* Update menu
*
@@ -7096,18 +6961,18 @@ var MenuButton = (function (_Button) {
*/
MenuButton.prototype.createMenu = function createMenu() {
- var menu = new _Menu2['default'](this.player_);
+ var menu = new _menuJs2['default'](this.player_);
// Add a title list item to the top
if (this.options_.title) {
menu.contentEl().appendChild(Dom.createEl('li', {
className: 'vjs-menu-title',
- innerHTML: _toTitleCase2['default'](this.options_.title),
+ innerHTML: _utilsToTitleCaseJs2['default'](this.options_.title),
tabIndex: -1
}));
}
- this.items = this.createItems();
+ this.items = this['createItems']();
if (this.items) {
// Add menu items to the menu
@@ -7224,11 +7089,11 @@ var MenuButton = (function (_Button) {
event.preventDefault();
// Check for escape (27) key
} else if (event.which === 27) {
- if (this.buttonPressed_) {
- this.unpressButton();
+ if (this.buttonPressed_) {
+ this.unpressButton();
+ }
+ event.preventDefault();
}
- event.preventDefault();
- }
};
/**
@@ -7259,37 +7124,37 @@ var MenuButton = (function (_Button) {
};
return MenuButton;
-})(_Button3['default']);
+})(_buttonJs2['default']);
-_Component2['default'].registerComponent('MenuButton', MenuButton);
+_componentJs2['default'].registerComponent('MenuButton', MenuButton);
exports['default'] = MenuButton;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52,"../utils/dom.js":111,"../utils/fn.js":113,"../utils/to-title-case.js":120,"./menu.js":90}],89:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48,"../utils/dom.js":107,"../utils/fn.js":109,"../utils/to-title-case.js":116,"./menu.js":86}],85:[function(_dereq_,module,exports){
/**
* @file menu-item.js
*/
+'use strict';
-var _Button2 = _dereq_('../button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component = _dereq_('../component.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _assign = _dereq_('object.assign');
+var _buttonJs = _dereq_('../button.js');
-var _assign2 = _interopRequireWildcard(_assign);
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
+
+var _componentJs = _dereq_('../component.js');
+
+var _componentJs2 = _interopRequireDefault(_componentJs);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/**
* The component for a menu item. `
`
@@ -7301,15 +7166,15 @@ var _assign2 = _interopRequireWildcard(_assign);
*/
var MenuItem = (function (_Button) {
+ _inherits(MenuItem, _Button);
+
function MenuItem(player, options) {
_classCallCheck(this, MenuItem);
_Button.call(this, player, options);
- this.selected(options.selected);
+ this.selected(options['selected']);
}
- _inherits(MenuItem, _Button);
-
/**
* Create the component's DOM element
*
@@ -7320,9 +7185,9 @@ var MenuItem = (function (_Button) {
*/
MenuItem.prototype.createEl = function createEl(type, props) {
- return _Button.prototype.createEl.call(this, 'li', _assign2['default']({
+ return _Button.prototype.createEl.call(this, 'li', _objectAssign2['default']({
className: 'vjs-menu-item',
- innerHTML: this.localize(this.options_.label)
+ innerHTML: this.localize(this.options_['label'])
}, props));
};
@@ -7343,62 +7208,54 @@ var MenuItem = (function (_Button) {
* @method selected
*/
- MenuItem.prototype.selected = (function (_selected) {
- function selected(_x) {
- return _selected.apply(this, arguments);
- }
-
- selected.toString = function () {
- return _selected.toString();
- };
-
- return selected;
- })(function (selected) {
- if (selected) {
+ MenuItem.prototype.selected = function selected(_selected) {
+ if (_selected) {
this.addClass('vjs-selected');
this.el_.setAttribute('aria-selected', true);
} else {
this.removeClass('vjs-selected');
this.el_.setAttribute('aria-selected', false);
}
- });
+ };
return MenuItem;
-})(_Button3['default']);
+})(_buttonJs2['default']);
-_Component2['default'].registerComponent('MenuItem', MenuItem);
+_componentJs2['default'].registerComponent('MenuItem', MenuItem);
exports['default'] = MenuItem;
module.exports = exports['default'];
-},{"../button.js":51,"../component.js":52,"object.assign":44}],90:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../button.js":47,"../component.js":48,"object.assign":40}],86:[function(_dereq_,module,exports){
/**
* @file menu.js
*/
+'use strict';
-var _Component2 = _dereq_('../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import2 = _dereq_('../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import2);
+var _componentJs = _dereq_('../component.js');
-var _import3 = _dereq_('../utils/events.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Events = _interopRequireWildcard(_import3);
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsFnJs = _dereq_('../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsEventsJs = _dereq_('../utils/events.js');
+
+var Events = _interopRequireWildcard(_utilsEventsJs);
/**
* The Menu component is used to build pop up menus, including subtitle and
@@ -7409,16 +7266,14 @@ var Events = _interopRequireWildcard(_import3);
*/
var Menu = (function (_Component) {
+ _inherits(Menu, _Component);
+
function Menu() {
_classCallCheck(this, Menu);
- if (_Component != null) {
- _Component.apply(this, arguments);
- }
+ _Component.apply(this, arguments);
}
- _inherits(Menu, _Component);
-
/**
* Add a menu item to the menu
*
@@ -7462,138 +7317,140 @@ var Menu = (function (_Component) {
};
return Menu;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('Menu', Menu);
+_componentJs2['default'].registerComponent('Menu', Menu);
exports['default'] = Menu;
module.exports = exports['default'];
-},{"../component.js":52,"../utils/dom.js":111,"../utils/events.js":112,"../utils/fn.js":113}],91:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component.js":48,"../utils/dom.js":107,"../utils/events.js":108,"../utils/fn.js":109}],87:[function(_dereq_,module,exports){
/**
* @file player.js
*/
// Subclasses Component
+'use strict';
-var _Component2 = _dereq_('./component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _document = _dereq_('global/document');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document2 = _interopRequireWildcard(_document);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _window = _dereq_('global/window');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _window2 = _interopRequireWildcard(_window);
+var _componentJs = _dereq_('./component.js');
-var _import = _dereq_('./utils/events.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var Events = _interopRequireWildcard(_import);
+var _globalDocument = _dereq_('global/document');
-var _import2 = _dereq_('./utils/dom.js');
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var Dom = _interopRequireWildcard(_import2);
+var _globalWindow = _dereq_('global/window');
-var _import3 = _dereq_('./utils/fn.js');
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
-var Fn = _interopRequireWildcard(_import3);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _import4 = _dereq_('./utils/guid.js');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var Guid = _interopRequireWildcard(_import4);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _import5 = _dereq_('./utils/browser.js');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var browser = _interopRequireWildcard(_import5);
+var _utilsFnJs = _dereq_('./utils/fn.js');
-var _log = _dereq_('./utils/log.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _log2 = _interopRequireWildcard(_log);
+var _utilsGuidJs = _dereq_('./utils/guid.js');
-var _toTitleCase = _dereq_('./utils/to-title-case.js');
+var Guid = _interopRequireWildcard(_utilsGuidJs);
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _utilsBrowserJs = _dereq_('./utils/browser.js');
-var _createTimeRange = _dereq_('./utils/time-ranges.js');
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _bufferedPercent2 = _dereq_('./utils/buffer.js');
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _import6 = _dereq_('./utils/stylesheet.js');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var stylesheet = _interopRequireWildcard(_import6);
+var _utilsToTitleCaseJs = _dereq_('./utils/to-title-case.js');
-var _FullscreenApi = _dereq_('./fullscreen-api.js');
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
-var _FullscreenApi2 = _interopRequireWildcard(_FullscreenApi);
+var _utilsTimeRangesJs = _dereq_('./utils/time-ranges.js');
-var _MediaError = _dereq_('./media-error.js');
+var _utilsBufferJs = _dereq_('./utils/buffer.js');
-var _MediaError2 = _interopRequireWildcard(_MediaError);
+var _utilsStylesheetJs = _dereq_('./utils/stylesheet.js');
-var _safeParseTuple2 = _dereq_('safe-json-parse/tuple');
+var stylesheet = _interopRequireWildcard(_utilsStylesheetJs);
-var _safeParseTuple3 = _interopRequireWildcard(_safeParseTuple2);
+var _fullscreenApiJs = _dereq_('./fullscreen-api.js');
-var _assign = _dereq_('object.assign');
+var _fullscreenApiJs2 = _interopRequireDefault(_fullscreenApiJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _mediaErrorJs = _dereq_('./media-error.js');
-var _mergeOptions = _dereq_('./utils/merge-options.js');
+var _mediaErrorJs2 = _interopRequireDefault(_mediaErrorJs);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _safeJsonParseTuple = _dereq_('safe-json-parse/tuple');
-var _textTrackConverter = _dereq_('./tracks/text-track-list-converter.js');
+var _safeJsonParseTuple2 = _interopRequireDefault(_safeJsonParseTuple);
-var _textTrackConverter2 = _interopRequireWildcard(_textTrackConverter);
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
+
+var _tracksTextTrackListConverterJs = _dereq_('./tracks/text-track-list-converter.js');
+
+var _tracksTextTrackListConverterJs2 = _interopRequireDefault(_tracksTextTrackListConverterJs);
// Include required child components (importing also registers them)
-var _MediaLoader = _dereq_('./tech/loader.js');
+var _techLoaderJs = _dereq_('./tech/loader.js');
-var _MediaLoader2 = _interopRequireWildcard(_MediaLoader);
+var _techLoaderJs2 = _interopRequireDefault(_techLoaderJs);
-var _PosterImage = _dereq_('./poster-image.js');
+var _posterImageJs = _dereq_('./poster-image.js');
-var _PosterImage2 = _interopRequireWildcard(_PosterImage);
+var _posterImageJs2 = _interopRequireDefault(_posterImageJs);
-var _TextTrackDisplay = _dereq_('./tracks/text-track-display.js');
+var _tracksTextTrackDisplayJs = _dereq_('./tracks/text-track-display.js');
-var _TextTrackDisplay2 = _interopRequireWildcard(_TextTrackDisplay);
+var _tracksTextTrackDisplayJs2 = _interopRequireDefault(_tracksTextTrackDisplayJs);
-var _LoadingSpinner = _dereq_('./loading-spinner.js');
+var _loadingSpinnerJs = _dereq_('./loading-spinner.js');
-var _LoadingSpinner2 = _interopRequireWildcard(_LoadingSpinner);
+var _loadingSpinnerJs2 = _interopRequireDefault(_loadingSpinnerJs);
-var _BigPlayButton = _dereq_('./big-play-button.js');
+var _bigPlayButtonJs = _dereq_('./big-play-button.js');
-var _BigPlayButton2 = _interopRequireWildcard(_BigPlayButton);
+var _bigPlayButtonJs2 = _interopRequireDefault(_bigPlayButtonJs);
-var _ControlBar = _dereq_('./control-bar/control-bar.js');
+var _controlBarControlBarJs = _dereq_('./control-bar/control-bar.js');
-var _ControlBar2 = _interopRequireWildcard(_ControlBar);
+var _controlBarControlBarJs2 = _interopRequireDefault(_controlBarControlBarJs);
-var _ErrorDisplay = _dereq_('./error-display.js');
+var _errorDisplayJs = _dereq_('./error-display.js');
-var _ErrorDisplay2 = _interopRequireWildcard(_ErrorDisplay);
+var _errorDisplayJs2 = _interopRequireDefault(_errorDisplayJs);
-var _TextTrackSettings = _dereq_('./tracks/text-track-settings.js');
+var _tracksTextTrackSettingsJs = _dereq_('./tracks/text-track-settings.js');
-var _TextTrackSettings2 = _interopRequireWildcard(_TextTrackSettings);
+var _tracksTextTrackSettingsJs2 = _interopRequireDefault(_tracksTextTrackSettingsJs);
// Require html5 tech, at least for disposing the original video tag
-var _Html5 = _dereq_('./tech/html5.js');
+var _techHtml5Js = _dereq_('./tech/html5.js');
-var _Html52 = _interopRequireWildcard(_Html5);
+var _techHtml5Js2 = _interopRequireDefault(_techHtml5Js);
/**
* An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.
@@ -7616,6 +7473,7 @@ var _Html52 = _interopRequireWildcard(_Html5);
*/
var Player = (function (_Component) {
+ _inherits(Player, _Component);
/**
* player's constructor function
@@ -7640,7 +7498,7 @@ var Player = (function (_Component) {
// which overrides globally set options.
// This latter part coincides with the load order
// (tag must exist before Player)
- options = _assign2['default'](Player.getTagSettings(tag), options);
+ options = _objectAssign2['default'](Player.getTagSettings(tag), options);
// Delay the initialization of children because we need to set up
// player properties first, and can't use `this` before `super()`
@@ -7713,7 +7571,7 @@ var Player = (function (_Component) {
// as well so they don't need to reach back into the player for options later.
// We also need to do another copy of this.options_ so we don't end up with
// an infinite loop.
- var playerOptionsCopy = _mergeOptions2['default'](this.options_);
+ var playerOptionsCopy = _utilsMergeOptionsJs2['default'](this.options_);
// Load plugins
if (options.plugins) {
@@ -7721,11 +7579,10 @@ var Player = (function (_Component) {
var plugins = options.plugins;
Object.getOwnPropertyNames(plugins).forEach(function (name) {
- plugins[name].playerOptions = playerOptionsCopy;
if (typeof this[name] === 'function') {
this[name](plugins[name]);
} else {
- _log2['default'].error('Unable to find plugin:', name);
+ _utilsLogJs2['default'].error('Unable to find plugin:', name);
}
}, _this);
})();
@@ -7773,7 +7630,11 @@ var Player = (function (_Component) {
this.on('stageclick', this.handleStageClick);
}
- _inherits(Player, _Component);
+ /*
+ * Global player list
+ *
+ * @type {Object}
+ */
/**
* Destroys the video player and does any necessary cleanup
@@ -7855,8 +7716,8 @@ var Player = (function (_Component) {
// of the player in a way that's still overrideable by CSS, just like the
// video element
this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');
- var defaultsStyleEl = _document2['default'].querySelector('.vjs-styles-defaults');
- var head = _document2['default'].querySelector('head');
+ var defaultsStyleEl = _globalDocument2['default'].querySelector('.vjs-styles-defaults');
+ var head = _globalDocument2['default'].querySelector('head');
head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);
// Pass in the width/height/aspectRatio options which will update the style el
@@ -7913,18 +7774,8 @@ var Player = (function (_Component) {
* @method dimension
*/
- Player.prototype.dimension = (function (_dimension) {
- function dimension(_x, _x2) {
- return _dimension.apply(this, arguments);
- }
-
- dimension.toString = function () {
- return _dimension.toString();
- };
-
- return dimension;
- })(function (dimension, value) {
- var privDimension = dimension + '_';
+ Player.prototype.dimension = function dimension(_dimension, value) {
+ var privDimension = _dimension + '_';
if (value === undefined) {
return this[privDimension] || 0;
@@ -7937,7 +7788,7 @@ var Player = (function (_Component) {
var parsedVal = parseFloat(value);
if (isNaN(parsedVal)) {
- _log2['default'].error('Improper value "' + value + '" supplied for for ' + dimension);
+ _utilsLogJs2['default'].error('Improper value "' + value + '" supplied for for ' + _dimension);
return this;
}
@@ -7946,7 +7797,7 @@ var Player = (function (_Component) {
this.updateStyleEl_();
return this;
- });
+ };
/**
* Add/remove the vjs-fluid class
@@ -8068,7 +7919,7 @@ var Player = (function (_Component) {
// get rid of the HTML5 video tag as soon as we are using another tech
if (techName !== 'Html5' && this.tag) {
- _Component3['default'].getComponent('Html5').disposeMediaElement(this.tag);
+ _componentJs2['default'].getComponent('Html5').disposeMediaElement(this.tag);
this.tag.player = null;
this.tag = null;
}
@@ -8083,17 +7934,18 @@ var Player = (function (_Component) {
});
// Grab tech-specific options from player options and add source and parent element to use.
- var techOptions = _assign2['default']({
- source: source,
- playerId: this.id(),
- techId: '' + this.id() + '_' + techName + '_api',
- textTracks: this.textTracks_,
- autoplay: this.options_.autoplay,
- preload: this.options_.preload,
- loop: this.options_.loop,
- muted: this.options_.muted,
- poster: this.poster(),
- language: this.language(),
+ var techOptions = _objectAssign2['default']({
+ 'nativeControlsForTouch': this.options_.nativeControlsForTouch,
+ 'source': source,
+ 'playerId': this.id(),
+ 'techId': this.id() + '_' + techName + '_api',
+ 'textTracks': this.textTracks_,
+ 'autoplay': this.options_.autoplay,
+ 'preload': this.options_.preload,
+ 'loop': this.options_.loop,
+ 'muted': this.options_.muted,
+ 'poster': this.poster(),
+ 'language': this.language(),
'vtt.js': this.options_['vtt.js']
}, this.options_[techName.toLowerCase()]);
@@ -8111,13 +7963,12 @@ var Player = (function (_Component) {
}
// Initialize tech instance
- var techComponent = _Component3['default'].getComponent(techName);
+ var techComponent = _componentJs2['default'].getComponent(techName);
this.tech = new techComponent(techOptions);
- _textTrackConverter2['default'].jsonToTextTracks(this.textTracksJson_ || [], this.tech);
+ _tracksTextTrackListConverterJs2['default'].jsonToTextTracks(this.textTracksJson_ || [], this.tech);
this.on(this.tech, 'ready', this.handleTechReady);
- this.on(this.tech, 'usenativecontrols', this.handleTechUseNativeControls);
// Listen to every HTML5 events and trigger them back on the player for the plugins
this.on(this.tech, 'loadstart', this.handleTechLoadStart);
@@ -8147,6 +7998,8 @@ var Player = (function (_Component) {
this.on(this.tech, 'texttrackchange', this.onTextTrackChange);
this.on(this.tech, 'loadedmetadata', this.updateStyleEl_);
+ this.usingNativeControls(this.techGet('controls'));
+
if (this.controls() && !this.usingNativeControls()) {
this.addTechControlsListeners();
}
@@ -8176,7 +8029,7 @@ var Player = (function (_Component) {
Player.prototype.unloadTech = function unloadTech() {
// Save the current text tracks so that we can reuse the same text tracks with the next tech
this.textTracks_ = this.textTracks();
- this.textTracksJson_ = _textTrackConverter2['default'].textTracksToJson(this);
+ this.textTracksJson_ = _tracksTextTrackListConverterJs2['default'].textTracksToJson(this);
this.isReady_ = false;
@@ -8192,6 +8045,9 @@ var Player = (function (_Component) {
*/
Player.prototype.addTechControlsListeners = function addTechControlsListeners() {
+ // Make sure to remove all the previous listeners in case we are called multiple times.
+ this.removeTechControlsListeners();
+
// Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do
// trigger mousedown/up.
// http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object
@@ -8252,17 +8108,6 @@ var Player = (function (_Component) {
}
};
- /**
- * Fired when the native controls are used
- *
- * @private
- * @method handleTechUseNativeControls
- */
-
- Player.prototype.handleTechUseNativeControls = function handleTechUseNativeControls() {
- this.usingNativeControls(true);
- };
-
/**
* Fired when the user agent begins looking for media data
*
@@ -8298,22 +8143,12 @@ var Player = (function (_Component) {
* @method hasStarted
*/
- Player.prototype.hasStarted = (function (_hasStarted) {
- function hasStarted(_x3) {
- return _hasStarted.apply(this, arguments);
- }
-
- hasStarted.toString = function () {
- return _hasStarted.toString();
- };
-
- return hasStarted;
- })(function (hasStarted) {
- if (hasStarted !== undefined) {
+ Player.prototype.hasStarted = function hasStarted(_hasStarted) {
+ if (_hasStarted !== undefined) {
// only update if this is a new value
- if (this.hasStarted_ !== hasStarted) {
- this.hasStarted_ = hasStarted;
- if (hasStarted) {
+ if (this.hasStarted_ !== _hasStarted) {
+ this.hasStarted_ = _hasStarted;
+ if (_hasStarted) {
this.addClass('vjs-has-started');
// trigger the firstplay event if this newly has played
this.trigger('firstplay');
@@ -8324,7 +8159,7 @@ var Player = (function (_Component) {
return this;
}
return !!this.hasStarted_;
- });
+ };
/**
* Fired whenever the media begins or resumes playback
@@ -8499,9 +8334,9 @@ var Player = (function (_Component) {
Player.prototype.handleTechClick = function handleTechClick(event) {
// We're using mousedown to detect clicks thanks to Flash, but mousedown
// will also be triggered with right-clicks, so we need to prevent that
- if (event.button !== 0) {
- return;
- } // When controls are disabled a click should not toggle playback because
+ if (event.button !== 0) return;
+
+ // When controls are disabled a click should not toggle playback because
// the click is considered a control
if (this.controls()) {
if (this.paused()) {
@@ -8628,7 +8463,8 @@ var Player = (function (_Component) {
*/
Player.prototype.handleTechError = function handleTechError() {
- this.error(this.tech.error().code);
+ var error = this.tech.error();
+ this.error(error && error.code);
};
/**
@@ -8759,13 +8595,13 @@ var Player = (function (_Component) {
// Otherwise call method now
} else {
- try {
- this.tech[method](arg);
- } catch (e) {
- _log2['default'](e);
- throw e;
+ try {
+ this.tech[method](arg);
+ } catch (e) {
+ _utilsLogJs2['default'](e);
+ throw e;
+ }
}
- }
};
/**
@@ -8787,14 +8623,14 @@ var Player = (function (_Component) {
} catch (e) {
// When building additional tech libs, an expected method may not be defined yet
if (this.tech[method] === undefined) {
- _log2['default']('Video.js: ' + method + ' method not defined for ' + this.techName + ' playback technology.', e);
+ _utilsLogJs2['default']('Video.js: ' + method + ' method not defined for ' + this.techName + ' playback technology.', e);
} else {
// When a method isn't available on the object it throws a TypeError
if (e.name === 'TypeError') {
- _log2['default']('Video.js: ' + method + ' unavailable on ' + this.techName + ' playback technology element.', e);
+ _utilsLogJs2['default']('Video.js: ' + method + ' unavailable on ' + this.techName + ' playback technology element.', e);
this.tech.isReady_ = false;
} else {
- _log2['default'](e);
+ _utilsLogJs2['default'](e);
}
}
throw e;
@@ -8976,25 +8812,15 @@ var Player = (function (_Component) {
* @method buffered
*/
- Player.prototype.buffered = (function (_buffered) {
- function buffered() {
- return _buffered.apply(this, arguments);
- }
-
- buffered.toString = function () {
- return _buffered.toString();
- };
-
- return buffered;
- })(function () {
+ Player.prototype.buffered = function buffered() {
var buffered = this.techGet('buffered');
if (!buffered || !buffered.length) {
- buffered = _createTimeRange.createTimeRange(0, 0);
+ buffered = _utilsTimeRangesJs.createTimeRange(0, 0);
}
return buffered;
- });
+ };
/**
* Get the percent (as a decimal) of the video that's been downloaded
@@ -9008,19 +8834,9 @@ var Player = (function (_Component) {
* @method bufferedPercent
*/
- Player.prototype.bufferedPercent = (function (_bufferedPercent) {
- function bufferedPercent() {
- return _bufferedPercent.apply(this, arguments);
- }
-
- bufferedPercent.toString = function () {
- return _bufferedPercent.toString();
- };
-
- return bufferedPercent;
- })(function () {
- return _bufferedPercent2.bufferedPercent(this.buffered(), this.duration());
- });
+ Player.prototype.bufferedPercent = function bufferedPercent() {
+ return _utilsBufferJs.bufferedPercent(this.buffered(), this.duration());
+ };
/**
* Get the ending time of the last buffered time range
@@ -9089,23 +8905,13 @@ var Player = (function (_Component) {
* @method muted
*/
- Player.prototype.muted = (function (_muted) {
- function muted(_x4) {
- return _muted.apply(this, arguments);
- }
-
- muted.toString = function () {
- return _muted.toString();
- };
-
- return muted;
- })(function (muted) {
- if (muted !== undefined) {
- this.techCall('setMuted', muted);
+ Player.prototype.muted = function muted(_muted) {
+ if (_muted !== undefined) {
+ this.techCall('setMuted', _muted);
return this;
}
return this.techGet('muted') || false; // Default to false
- });
+ };
// Check if current tech can support native fullscreen
// (e.g. with built in controls like iOS, so not our flash swf)
@@ -9163,7 +8969,7 @@ var Player = (function (_Component) {
*/
Player.prototype.requestFullscreen = function requestFullscreen() {
- var fsApi = _FullscreenApi2['default'];
+ var fsApi = _fullscreenApiJs2['default'];
this.isFullscreen(true);
@@ -9176,12 +8982,12 @@ var Player = (function (_Component) {
// when canceling fullscreen. Otherwise if there's multiple
// players on a page, they would all be reacting to the same fullscreen
// events
- Events.on(_document2['default'], fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e) {
- this.isFullscreen(_document2['default'][fsApi.fullscreenElement]);
+ Events.on(_globalDocument2['default'], fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e) {
+ this.isFullscreen(_globalDocument2['default'][fsApi.fullscreenElement]);
// If cancelling fullscreen, remove event listener.
if (this.isFullscreen() === false) {
- Events.off(_document2['default'], fsApi.fullscreenchange, documentFullscreenChange);
+ Events.off(_globalDocument2['default'], fsApi.fullscreenchange, documentFullscreenChange);
}
this.trigger('fullscreenchange');
@@ -9213,12 +9019,12 @@ var Player = (function (_Component) {
*/
Player.prototype.exitFullscreen = function exitFullscreen() {
- var fsApi = _FullscreenApi2['default'];
+ var fsApi = _fullscreenApiJs2['default'];
this.isFullscreen(false);
// Check for browser element fullscreen support
if (fsApi.requestFullscreen) {
- _document2['default'][fsApi.exitFullscreen]();
+ _globalDocument2['default'][fsApi.exitFullscreen]();
} else if (this.tech.supportsFullScreen()) {
this.techCall('exitFullScreen');
} else {
@@ -9239,16 +9045,16 @@ var Player = (function (_Component) {
this.isFullWindow = true;
// Storing original doc overflow value to return to when fullscreen is off
- this.docOrigOverflow = _document2['default'].documentElement.style.overflow;
+ this.docOrigOverflow = _globalDocument2['default'].documentElement.style.overflow;
// Add listener for esc key to exit fullscreen
- Events.on(_document2['default'], 'keydown', Fn.bind(this, this.fullWindowOnEscKey));
+ Events.on(_globalDocument2['default'], 'keydown', Fn.bind(this, this.fullWindowOnEscKey));
// Hide any scroll bars
- _document2['default'].documentElement.style.overflow = 'hidden';
+ _globalDocument2['default'].documentElement.style.overflow = 'hidden';
// Apply fullscreen styles
- Dom.addElClass(_document2['default'].body, 'vjs-full-window');
+ Dom.addElClass(_globalDocument2['default'].body, 'vjs-full-window');
this.trigger('enterFullWindow');
};
@@ -9278,13 +9084,13 @@ var Player = (function (_Component) {
Player.prototype.exitFullWindow = function exitFullWindow() {
this.isFullWindow = false;
- Events.off(_document2['default'], 'keydown', this.fullWindowOnEscKey);
+ Events.off(_globalDocument2['default'], 'keydown', this.fullWindowOnEscKey);
// Unhide scroll bars.
- _document2['default'].documentElement.style.overflow = this.docOrigOverflow;
+ _globalDocument2['default'].documentElement.style.overflow = this.docOrigOverflow;
// Remove fullscreen styles
- Dom.removeElClass(_document2['default'].body, 'vjs-full-window');
+ Dom.removeElClass(_globalDocument2['default'].body, 'vjs-full-window');
// Resize the box, controller, and poster to original sizes
// this.positionAll();
@@ -9302,12 +9108,12 @@ var Player = (function (_Component) {
Player.prototype.selectSource = function selectSource(sources) {
// Loop through each playback technology in the options order
for (var i = 0, j = this.options_.techOrder; i < j.length; i++) {
- var techName = _toTitleCase2['default'](j[i]);
- var tech = _Component3['default'].getComponent(techName);
+ var techName = _utilsToTitleCaseJs2['default'](j[i]);
+ var tech = _componentJs2['default'].getComponent(techName);
// Check if the current tech is defined before continuing
if (!tech) {
- _log2['default'].error('The "' + techName + '" tech is undefined. Skipped browser support check for that tech.');
+ _utilsLogJs2['default'].error('The "' + techName + '" tech is undefined. Skipped browser support check for that tech.');
continue;
}
@@ -9366,7 +9172,7 @@ var Player = (function (_Component) {
return this.techGet('src');
}
- var currentTech = _Component3['default'].getComponent(this.techName);
+ var currentTech = _componentJs2['default'].getComponent(this.techName);
// case: Array of source objects to choose from and pick the best to play
if (Array.isArray(source)) {
@@ -9374,46 +9180,46 @@ var Player = (function (_Component) {
// case: URL String (http://myvideo...)
} else if (typeof source === 'string') {
- // create a source object from the string
- this.src({ src: source });
+ // create a source object from the string
+ this.src({ src: source });
- // case: Source object { src: '', type: '' ... }
- } else if (source instanceof Object) {
- // check if the source has a type and the loaded tech cannot play the source
- // if there's no type we'll just try the current tech
- if (source.type && !currentTech.canPlaySource(source)) {
- // create a source list with the current source and send through
- // the tech loop to check for a compatible technology
- this.sourceList_([source]);
- } else {
- this.cache_.src = source.src;
- this.currentType_ = source.type || '';
-
- // wait until the tech is ready to set the source
- this.ready(function () {
-
- // The setSource tech method was added with source handlers
- // so older techs won't support it
- // We need to check the direct prototype for the case where subclasses
- // of the tech do not support source handlers
- if (currentTech.prototype.hasOwnProperty('setSource')) {
- this.techCall('setSource', source);
+ // case: Source object { src: '', type: '' ... }
+ } else if (source instanceof Object) {
+ // check if the source has a type and the loaded tech cannot play the source
+ // if there's no type we'll just try the current tech
+ if (source.type && !currentTech.canPlaySource(source)) {
+ // create a source list with the current source and send through
+ // the tech loop to check for a compatible technology
+ this.sourceList_([source]);
} else {
- this.techCall('src', source.src);
- }
+ this.cache_.src = source.src;
+ this.currentType_ = source.type || '';
- if (this.options_.preload === 'auto') {
- this.load();
- }
+ // wait until the tech is ready to set the source
+ this.ready(function () {
- if (this.options_.autoplay) {
- this.play();
- }
+ // The setSource tech method was added with source handlers
+ // so older techs won't support it
+ // We need to check the direct prototype for the case where subclasses
+ // of the tech do not support source handlers
+ if (currentTech.prototype.hasOwnProperty('setSource')) {
+ this.techCall('setSource', source);
+ } else {
+ this.techCall('src', source.src);
+ }
- // Set the source synchronously if possible (#2326)
- }, true);
- }
- }
+ if (this.options_.preload === 'auto') {
+ this.load();
+ }
+
+ if (this.options_.autoplay) {
+ this.play();
+ }
+
+ // Set the source synchronously if possible (#2326)
+ }, true);
+ }
+ }
return this;
};
@@ -9534,7 +9340,7 @@ var Player = (function (_Component) {
Player.prototype.loop = function loop(value) {
if (value !== undefined) {
this.techCall('setLoop', value);
- this.options_.loop = value;
+ this.options_['loop'] = value;
return this;
}
return this.techGet('loop');
@@ -9693,10 +9499,10 @@ var Player = (function (_Component) {
}
// error instance
- if (err instanceof _MediaError2['default']) {
+ if (err instanceof _mediaErrorJs2['default']) {
this.error_ = err;
} else {
- this.error_ = new _MediaError2['default'](err);
+ this.error_ = new _mediaErrorJs2['default'](err);
}
// fire an error event on the player
@@ -9707,7 +9513,7 @@ var Player = (function (_Component) {
// log the name of the error type and any message
// ie8 just logs "[object object]" if you just log the error object
- _log2['default'].error('(CODE:' + this.error_.code + ' ' + _MediaError2['default'].errorTypes[this.error_.code] + ')', this.error_.message, this.error_);
+ _utilsLogJs2['default'].error('(CODE:' + this.error_.code + ' ' + _mediaErrorJs2['default'].errorTypes[this.error_.code] + ')', this.error_.message, this.error_);
return this;
};
@@ -9876,7 +9682,7 @@ var Player = (function (_Component) {
// Clear any existing inactivity timeout to start the timer over
this.clearTimeout(inactivityTimeout);
- var timeout = this.options_.inactivityTimeout;
+ var timeout = this.options_['inactivityTimeout'];
if (timeout > 0) {
// In milliseconds, if no more activity has occurred the
// user will be considered inactive
@@ -9911,10 +9717,10 @@ var Player = (function (_Component) {
return this;
}
- if (this.tech && this.tech.featuresPlaybackRate) {
+ if (this.tech && this.tech['featuresPlaybackRate']) {
return this.techGet('playbackRate');
} else {
- return 1;
+ return 1.0;
}
};
@@ -10009,7 +9815,7 @@ var Player = (function (_Component) {
Player.prototype.textTracks = function textTracks() {
// cannot use techGet directly because it checks to see whether the tech is ready.
// Flash is unlikely to be ready in time but textTracks should still work.
- return this.tech && this.tech.textTracks();
+ return this.tech && this.tech['textTracks']();
};
/**
@@ -10020,7 +9826,7 @@ var Player = (function (_Component) {
*/
Player.prototype.remoteTextTracks = function remoteTextTracks() {
- return this.tech && this.tech.remoteTextTracks();
+ return this.tech && this.tech['remoteTextTracks']();
};
/**
@@ -10035,7 +9841,7 @@ var Player = (function (_Component) {
*/
Player.prototype.addTextTrack = function addTextTrack(kind, label, language) {
- return this.tech && this.tech.addTextTrack(kind, label, language);
+ return this.tech && this.tech['addTextTrack'](kind, label, language);
};
/**
@@ -10046,7 +9852,7 @@ var Player = (function (_Component) {
*/
Player.prototype.addRemoteTextTrack = function addRemoteTextTrack(options) {
- return this.tech && this.tech.addRemoteTextTrack(options);
+ return this.tech && this.tech['addRemoteTextTrack'](options);
};
/**
@@ -10057,7 +9863,7 @@ var Player = (function (_Component) {
*/
Player.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {
- this.tech && this.tech.removeRemoteTextTrack(track);
+ this.tech && this.tech['removeRemoteTextTrack'](track);
};
/**
@@ -10129,7 +9935,7 @@ var Player = (function (_Component) {
*/
Player.prototype.languages = function languages() {
- return _mergeOptions2['default'](Player.prototype.options_.languages, this.languages_);
+ return _utilsMergeOptionsJs2['default'](Player.prototype.options_.languages, this.languages_);
};
/**
@@ -10140,7 +9946,7 @@ var Player = (function (_Component) {
*/
Player.prototype.toJSON = function toJSON() {
- var options = _mergeOptions2['default'](this.options_);
+ var options = _utilsMergeOptionsJs2['default'](this.options_);
var tracks = options.tracks;
options.tracks = [];
@@ -10149,7 +9955,7 @@ var Player = (function (_Component) {
var track = tracks[i];
// deep merge tracks and null out player so no circular references
- track = _mergeOptions2['default'](track);
+ track = _utilsMergeOptionsJs2['default'](track);
track.player = undefined;
options.tracks[i] = track;
}
@@ -10168,8 +9974,8 @@ var Player = (function (_Component) {
Player.getTagSettings = function getTagSettings(tag) {
var baseOptions = {
- sources: [],
- tracks: []
+ 'sources': [],
+ 'tracks': []
};
var tagOptions = Dom.getElAttributes(tag);
@@ -10178,20 +9984,19 @@ var Player = (function (_Component) {
// Check if data-setup attr exists.
if (dataSetup !== null) {
// Parse options JSON
- // If empty string, make it a parsable json object.
- var _safeParseTuple = _safeParseTuple3['default'](dataSetup || '{}');
+ var _safeParseTuple = _safeJsonParseTuple2['default'](dataSetup || '{}');
var err = _safeParseTuple[0];
var data = _safeParseTuple[1];
if (err) {
- _log2['default'].error(err);
+ _utilsLogJs2['default'].error(err);
}
- _assign2['default'](tagOptions, data);
+ _objectAssign2['default'](tagOptions, data);
}
- _assign2['default'](baseOptions, tagOptions);
+ _objectAssign2['default'](baseOptions, tagOptions);
// Get tag children settings
if (tag.hasChildNodes()) {
@@ -10213,16 +10018,11 @@ var Player = (function (_Component) {
};
return Player;
-})(_Component3['default']);
+})(_componentJs2['default']);
-/*
- * Global player list
- *
- * @type {Object}
- */
Player.players = {};
-var navigator = _window2['default'].navigator;
+var navigator = _globalWindow2['default'].navigator;
/*
* Player instance options, surfaced using options
* options = Player.prototype.options_
@@ -10240,7 +10040,7 @@ Player.prototype.options_ = {
flash: {},
// defaultVolume: 0.85,
- defaultVolume: 0, // The freakin seaguls are driving me crazy!
+ defaultVolume: 0.00, // The freakin seaguls are driving me crazy!
// default inactivity timeout
inactivityTimeout: 2000,
@@ -10262,7 +10062,7 @@ Player.prototype.options_ = {
textTrackSettings: {}
},
- language: _document2['default'].getElementsByTagName('html')[0].getAttribute('lang') || navigator.languages && navigator.languages[0] || navigator.userLanguage || navigator.language || 'en',
+ language: _globalDocument2['default'].getElementsByTagName('html')[0].getAttribute('lang') || navigator.languages && navigator.languages[0] || navigator.userLanguage || navigator.language || 'en',
// locales and their language translations
languages: {},
@@ -10330,30 +10130,31 @@ Player.prototype.handleVolumeChange;
Player.prototype.handleError;
Player.prototype.flexNotSupported_ = function () {
- var elem = _document2['default'].createElement('i');
+ var elem = _globalDocument2['default'].createElement('i');
// Note: We don't actually use flexBasis (or flexOrder), but it's one of the more
// common flex features that we can rely on when checking for flex support.
- return !('flexBasis' in elem.style || 'webkitFlexBasis' in elem.style || 'mozFlexBasis' in elem.style || 'msFlexBasis' in elem.style || 'msFlexOrder' in elem.style /* IE10-specific (2012 flex spec) */);
+ return !('flexBasis' in elem.style || 'webkitFlexBasis' in elem.style || 'mozFlexBasis' in elem.style || 'msFlexBasis' in elem.style || 'msFlexOrder' in elem.style) /* IE10-specific (2012 flex spec) */;
};
-_Component3['default'].registerComponent('Player', Player);
+_componentJs2['default'].registerComponent('Player', Player);
exports['default'] = Player;
module.exports = exports['default'];
+// If empty string, make it a parsable json object.
-},{"./big-play-button.js":50,"./component.js":52,"./control-bar/control-bar.js":53,"./error-display.js":82,"./fullscreen-api.js":85,"./loading-spinner.js":86,"./media-error.js":87,"./poster-image.js":93,"./tech/html5.js":98,"./tech/loader.js":99,"./tracks/text-track-display.js":102,"./tracks/text-track-list-converter.js":104,"./tracks/text-track-settings.js":106,"./utils/browser.js":108,"./utils/buffer.js":109,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/guid.js":115,"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/stylesheet.js":118,"./utils/time-ranges.js":119,"./utils/to-title-case.js":120,"global/document":1,"global/window":2,"object.assign":44,"safe-json-parse/tuple":49}],92:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./big-play-button.js":46,"./component.js":48,"./control-bar/control-bar.js":49,"./error-display.js":78,"./fullscreen-api.js":81,"./loading-spinner.js":82,"./media-error.js":83,"./poster-image.js":89,"./tech/html5.js":94,"./tech/loader.js":95,"./tracks/text-track-display.js":98,"./tracks/text-track-list-converter.js":100,"./tracks/text-track-settings.js":102,"./utils/browser.js":104,"./utils/buffer.js":105,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/guid.js":111,"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/stylesheet.js":114,"./utils/time-ranges.js":115,"./utils/to-title-case.js":116,"global/document":1,"global/window":2,"object.assign":40,"safe-json-parse/tuple":45}],88:[function(_dereq_,module,exports){
/**
* @file plugins.js
*/
+'use strict';
-var _Player = _dereq_('./player.js');
+exports.__esModule = true;
-var _Player2 = _interopRequireWildcard(_Player);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _playerJs = _dereq_('./player.js');
+
+var _playerJs2 = _interopRequireDefault(_playerJs);
/**
* The method for registering a video.js plugin
@@ -10363,45 +10164,47 @@ var _Player2 = _interopRequireWildcard(_Player);
* @method plugin
*/
var plugin = function plugin(name, init) {
- _Player2['default'].prototype[name] = init;
+ _playerJs2['default'].prototype[name] = init;
};
exports['default'] = plugin;
module.exports = exports['default'];
-},{"./player.js":91}],93:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./player.js":87}],89:[function(_dereq_,module,exports){
/**
* @file poster-image.js
*/
+'use strict';
-var _Button2 = _dereq_('./button.js');
+exports.__esModule = true;
-var _Button3 = _interopRequireWildcard(_Button2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component = _dereq_('./component.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Component2 = _interopRequireWildcard(_Component);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import = _dereq_('./utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import);
+var _buttonJs = _dereq_('./button.js');
-var _import2 = _dereq_('./utils/dom.js');
+var _buttonJs2 = _interopRequireDefault(_buttonJs);
-var Dom = _interopRequireWildcard(_import2);
+var _componentJs = _dereq_('./component.js');
-var _import3 = _dereq_('./utils/browser.js');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var browser = _interopRequireWildcard(_import3);
+var _utilsFnJs = _dereq_('./utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _utilsDomJs = _dereq_('./utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _utilsBrowserJs = _dereq_('./utils/browser.js');
+
+var browser = _interopRequireWildcard(_utilsBrowserJs);
/**
* The component that handles showing the poster image.
@@ -10413,6 +10216,8 @@ var browser = _interopRequireWildcard(_import3);
*/
var PosterImage = (function (_Button) {
+ _inherits(PosterImage, _Button);
+
function PosterImage(player, options) {
_classCallCheck(this, PosterImage);
@@ -10422,8 +10227,6 @@ var PosterImage = (function (_Button) {
player.on('posterchange', Fn.bind(this, this.update));
}
- _inherits(PosterImage, _Button);
-
/**
* Clean up the poster image
*
@@ -10521,36 +10324,38 @@ var PosterImage = (function (_Button) {
};
return PosterImage;
-})(_Button3['default']);
+})(_buttonJs2['default']);
-_Component2['default'].registerComponent('PosterImage', PosterImage);
+_componentJs2['default'].registerComponent('PosterImage', PosterImage);
exports['default'] = PosterImage;
module.exports = exports['default'];
-},{"./button.js":51,"./component.js":52,"./utils/browser.js":108,"./utils/dom.js":111,"./utils/fn.js":113}],94:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"./button.js":47,"./component.js":48,"./utils/browser.js":104,"./utils/dom.js":107,"./utils/fn.js":109}],90:[function(_dereq_,module,exports){
/**
* @file setup.js
*
* Functions for automatically setting up a player
* based on the data-setup attribute of the video tag
*/
+'use strict';
-var _import = _dereq_('./utils/events.js');
+exports.__esModule = true;
-var Events = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document = _dereq_('global/document');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _document2 = _interopRequireWildcard(_document);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _window = _dereq_('global/window');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _window2 = _interopRequireWildcard(_window);
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
var _windowLoaded = false;
var videojs = undefined;
@@ -10564,8 +10369,8 @@ var autoSetup = function autoSetup() {
// Because IE8 doesn't support calling slice on a node list, we need to loop through each list of elements
// to build up a new, combined list of elements.
- var vids = _document2['default'].getElementsByTagName('video');
- var audios = _document2['default'].getElementsByTagName('audio');
+ var vids = _globalDocument2['default'].getElementsByTagName('video');
+ var audios = _globalDocument2['default'].getElementsByTagName('audio');
var mediaEls = [];
if (vids && vids.length > 0) {
for (var i = 0, e = vids.length; i < e; i++) {
@@ -10589,7 +10394,7 @@ var autoSetup = function autoSetup() {
if (mediaEl && mediaEl.getAttribute) {
// Make sure this player hasn't already been set up.
- if (mediaEl.player === undefined) {
+ if (mediaEl['player'] === undefined) {
var options = mediaEl.getAttribute('data-setup');
// Check if data-setup attr exists.
@@ -10602,15 +10407,15 @@ var autoSetup = function autoSetup() {
// If getAttribute isn't defined, we need to wait for the DOM.
} else {
- autoSetupTimeout(1);
- break;
- }
+ autoSetupTimeout(1);
+ break;
+ }
}
// No videos were found, so keep looping unless page is finished loading.
} else if (!_windowLoaded) {
- autoSetupTimeout(1);
- }
+ autoSetupTimeout(1);
+ }
};
// Pause to let the DOM keep processing
@@ -10619,10 +10424,10 @@ var autoSetupTimeout = function autoSetupTimeout(wait, vjs) {
setTimeout(autoSetup, wait);
};
-if (_document2['default'].readyState === 'complete') {
+if (_globalDocument2['default'].readyState === 'complete') {
_windowLoaded = true;
} else {
- Events.one(_window2['default'], 'load', function () {
+ Events.one(_globalWindow2['default'], 'load', function () {
_windowLoaded = true;
});
}
@@ -10635,35 +10440,37 @@ exports.autoSetup = autoSetup;
exports.autoSetupTimeout = autoSetupTimeout;
exports.hasLoaded = hasLoaded;
-},{"./utils/events.js":112,"global/document":1,"global/window":2}],95:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"./utils/events.js":108,"global/document":1,"global/window":2}],91:[function(_dereq_,module,exports){
/**
* @file slider.js
*/
+'use strict';
-var _Component2 = _dereq_('../component.js');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Dom = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _document = _dereq_('global/document');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _document2 = _interopRequireWildcard(_document);
+var _componentJs = _dereq_('../component.js');
-var _assign = _dereq_('object.assign');
+var _componentJs2 = _interopRequireDefault(_componentJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsDomJs = _dereq_('../utils/dom.js');
+
+var Dom = _interopRequireWildcard(_utilsDomJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
/**
* The base functionality for sliders like the volume bar and seek bar
@@ -10675,6 +10482,8 @@ var _assign2 = _interopRequireWildcard(_assign);
*/
var Slider = (function (_Component) {
+ _inherits(Slider, _Component);
+
function Slider(player, options) {
_classCallCheck(this, Slider);
@@ -10696,8 +10505,6 @@ var Slider = (function (_Component) {
this.on(player, this.playerEvent, this.update);
}
- _inherits(Slider, _Component);
-
/**
* Create the component's DOM element
*
@@ -10708,12 +10515,12 @@ var Slider = (function (_Component) {
*/
Slider.prototype.createEl = function createEl(type) {
- var props = arguments[1] === undefined ? {} : arguments[1];
+ var props = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
// Add the slider element class to all sub classes
props.className = props.className + ' vjs-slider';
- props = _assign2['default']({
- role: 'slider',
+ props = _objectAssign2['default']({
+ 'role': 'slider',
'aria-valuenow': 0,
'aria-valuemin': 0,
'aria-valuemax': 100,
@@ -10735,10 +10542,10 @@ var Slider = (function (_Component) {
Dom.blockTextSelection();
this.addClass('vjs-sliding');
- this.on(_document2['default'], 'mousemove', this.handleMouseMove);
- this.on(_document2['default'], 'mouseup', this.handleMouseUp);
- this.on(_document2['default'], 'touchmove', this.handleMouseMove);
- this.on(_document2['default'], 'touchend', this.handleMouseUp);
+ this.on(_globalDocument2['default'], 'mousemove', this.handleMouseMove);
+ this.on(_globalDocument2['default'], 'mouseup', this.handleMouseUp);
+ this.on(_globalDocument2['default'], 'touchmove', this.handleMouseMove);
+ this.on(_globalDocument2['default'], 'touchend', this.handleMouseUp);
this.handleMouseMove(event);
};
@@ -10761,10 +10568,10 @@ var Slider = (function (_Component) {
Dom.unblockTextSelection();
this.removeClass('vjs-sliding');
- this.off(_document2['default'], 'mousemove', this.handleMouseMove);
- this.off(_document2['default'], 'mouseup', this.handleMouseUp);
- this.off(_document2['default'], 'touchmove', this.handleMouseMove);
- this.off(_document2['default'], 'touchend', this.handleMouseUp);
+ this.off(_globalDocument2['default'], 'mousemove', this.handleMouseMove);
+ this.off(_globalDocument2['default'], 'mouseup', this.handleMouseUp);
+ this.off(_globalDocument2['default'], 'touchmove', this.handleMouseMove);
+ this.off(_globalDocument2['default'], 'touchend', this.handleMouseUp);
this.update();
};
@@ -10778,18 +10585,18 @@ var Slider = (function (_Component) {
Slider.prototype.update = function update() {
// In VolumeBar init we have a setTimeout for update that pops and update to the end of the
// execution stack. The player is destroyed before then update will cause an error
- if (!this.el_) {
- return;
- } // If scrubbing, we could use a cached value to make the handle keep up with the user's mouse.
+ if (!this.el_) return;
+
+ // If scrubbing, we could use a cached value to make the handle keep up with the user's mouse.
// On HTML5 browsers scrubbing is really smooth, but some flash players are slow, so we might want to utilize this later.
// var progress = (this.player_.scrubbing()) ? this.player_.getCache().currentTime / this.player_.duration() : this.player_.currentTime() / this.player_.duration();
var progress = this.getPercent();
var bar = this.bar;
// If there's no bar...
- if (!bar) {
- return;
- } // Protect against no duration and other division issues
+ if (!bar) return;
+
+ // Protect against no duration and other division issues
if (typeof progress !== 'number' || progress !== progress || progress < 0 || progress === Infinity) {
progress = 0;
}
@@ -10852,7 +10659,7 @@ var Slider = (function (_Component) {
*/
Slider.prototype.handleFocus = function handleFocus() {
- this.on(_document2['default'], 'keydown', this.handleKeyPress);
+ this.on(_globalDocument2['default'], 'keydown', this.handleKeyPress);
};
/**
@@ -10881,7 +10688,7 @@ var Slider = (function (_Component) {
*/
Slider.prototype.handleBlur = function handleBlur() {
- this.off(_document2['default'], 'keydown', this.handleKeyPress);
+ this.off(_globalDocument2['default'], 'keydown', this.handleKeyPress);
};
/**
@@ -10922,19 +10729,19 @@ var Slider = (function (_Component) {
};
return Slider;
-})(_Component3['default']);
+})(_componentJs2['default']);
-_Component3['default'].registerComponent('Slider', Slider);
+_componentJs2['default'].registerComponent('Slider', Slider);
exports['default'] = Slider;
module.exports = exports['default'];
-},{"../component.js":52,"../utils/dom.js":111,"global/document":1,"object.assign":44}],96:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"../component.js":48,"../utils/dom.js":107,"global/document":1,"object.assign":40}],92:[function(_dereq_,module,exports){
/**
* @file flash-rtmp.js
*/
+'use strict';
+
+exports.__esModule = true;
function FlashRtmpDecorator(Flash) {
Flash.streamingFormats = {
'rtmp/mp4': 'MP4',
@@ -11015,8 +10822,8 @@ function FlashRtmpDecorator(Flash) {
Flash.rtmpSourceHandler.handleSource = function (source, tech) {
var srcParts = Flash.streamToParts(source.src);
- tech.setRtmpConnection(srcParts.connection);
- tech.setRtmpStream(srcParts.stream);
+ tech['setRtmpConnection'](srcParts.connection);
+ tech['setRtmpStream'](srcParts.stream);
};
// Register the native source handler
@@ -11028,16 +10835,7 @@ function FlashRtmpDecorator(Flash) {
exports['default'] = FlashRtmpDecorator;
module.exports = exports['default'];
-},{}],97:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{}],93:[function(_dereq_,module,exports){
/**
* @file flash.js
* VideoJS-SWF - Custom Flash Player with HTML5-ish API
@@ -11045,37 +10843,49 @@ exports.__esModule = true;
* Not using setupTriggers. Using global onEvent func to distribute events
*/
-var _Tech2 = _dereq_('./tech');
+'use strict';
-var _Tech3 = _interopRequireWildcard(_Tech2);
+exports.__esModule = true;
-var _import = _dereq_('../utils/dom.js');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var Dom = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _import2 = _dereq_('../utils/url.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var Url = _interopRequireWildcard(_import2);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _createTimeRange = _dereq_('../utils/time-ranges.js');
+var _tech = _dereq_('./tech');
-var _FlashRtmpDecorator = _dereq_('./flash-rtmp');
+var _tech2 = _interopRequireDefault(_tech);
-var _FlashRtmpDecorator2 = _interopRequireWildcard(_FlashRtmpDecorator);
+var _utilsDomJs = _dereq_('../utils/dom.js');
-var _Component = _dereq_('../component');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _Component2 = _interopRequireWildcard(_Component);
+var _utilsUrlJs = _dereq_('../utils/url.js');
-var _window = _dereq_('global/window');
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsTimeRangesJs = _dereq_('../utils/time-ranges.js');
-var _assign = _dereq_('object.assign');
+var _flashRtmp = _dereq_('./flash-rtmp');
-var _assign2 = _interopRequireWildcard(_assign);
+var _flashRtmp2 = _interopRequireDefault(_flashRtmp);
-var navigator = _window2['default'].navigator;
+var _component = _dereq_('../component');
+
+var _component2 = _interopRequireDefault(_component);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var navigator = _globalWindow2['default'].navigator;
/**
* Flash Media Controller - Wrapper for fallback SWF API
*
@@ -11086,6 +10896,8 @@ var navigator = _window2['default'].navigator;
*/
var Flash = (function (_Tech) {
+ _inherits(Flash, _Tech);
+
function Flash(options, ready) {
_classCallCheck(this, Flash);
@@ -11112,18 +10924,18 @@ var Flash = (function (_Tech) {
// A 4.x workflow we weren't able to solve for in 5.0
// because of the need to hard code these functions
// into the swf for security reasons
- _window2['default'].videojs = _window2['default'].videojs || {};
- _window2['default'].videojs.Flash = _window2['default'].videojs.Flash || {};
- _window2['default'].videojs.Flash.onReady = Flash.onReady;
- _window2['default'].videojs.Flash.onEvent = Flash.onEvent;
- _window2['default'].videojs.Flash.onError = Flash.onError;
+ _globalWindow2['default'].videojs = _globalWindow2['default'].videojs || {};
+ _globalWindow2['default'].videojs.Flash = _globalWindow2['default'].videojs.Flash || {};
+ _globalWindow2['default'].videojs.Flash.onReady = Flash.onReady;
+ _globalWindow2['default'].videojs.Flash.onEvent = Flash.onEvent;
+ _globalWindow2['default'].videojs.Flash.onError = Flash.onError;
this.on('seeked', function () {
this.lastSeekTarget_ = undefined;
});
}
- _inherits(Flash, _Tech);
+ // Create setters and getters for attributes
/**
* Create the component's DOM element
@@ -11139,31 +10951,31 @@ var Flash = (function (_Tech) {
var objId = options.techId;
// Merge default flashvars with ones passed in to init
- var flashVars = _assign2['default']({
+ var flashVars = _objectAssign2['default']({
// SWF Callback Functions
- readyFunction: 'videojs.Flash.onReady',
- eventProxyFunction: 'videojs.Flash.onEvent',
- errorEventProxyFunction: 'videojs.Flash.onError',
+ 'readyFunction': 'videojs.Flash.onReady',
+ 'eventProxyFunction': 'videojs.Flash.onEvent',
+ 'errorEventProxyFunction': 'videojs.Flash.onError',
// Player Settings
- autoplay: options.autoplay,
- preload: options.preload,
- loop: options.loop,
- muted: options.muted
+ 'autoplay': options.autoplay,
+ 'preload': options.preload,
+ 'loop': options.loop,
+ 'muted': options.muted
}, options.flashVars);
// Merge default parames with ones passed in
- var params = _assign2['default']({
- wmode: 'opaque', // Opaque is needed to overlay controls, but can affect playback performance
- bgcolor: '#000000' // Using bgcolor prevents a white flash when the object is loading
+ var params = _objectAssign2['default']({
+ 'wmode': 'opaque', // Opaque is needed to overlay controls, but can affect playback performance
+ 'bgcolor': '#000000' // Using bgcolor prevents a white flash when the object is loading
}, options.params);
// Merge default attributes with ones passed in
- var attributes = _assign2['default']({
- id: objId,
- name: objId, // Both ID and Name needed or swf to identify itself
+ var attributes = _objectAssign2['default']({
+ 'id': objId,
+ 'name': objId, // Both ID and Name needed or swf to identify itself
'class': 'vjs-tech'
}, options.attributes);
@@ -11180,6 +10992,9 @@ var Flash = (function (_Tech) {
*/
Flash.prototype.play = function play() {
+ if (this.ended()) {
+ this.setCurrentTime(0);
+ }
this.el_.vjs_play();
};
@@ -11201,24 +11016,14 @@ var Flash = (function (_Tech) {
* @method src
*/
- Flash.prototype.src = (function (_src) {
- function src(_x) {
- return _src.apply(this, arguments);
- }
-
- src.toString = function () {
- return _src.toString();
- };
-
- return src;
- })(function (src) {
- if (src === undefined) {
+ Flash.prototype.src = function src(_src) {
+ if (_src === undefined) {
return this.currentSrc();
}
// Setting src through `src` not `setSrc` will be deprecated
- return this.setSrc(src);
- });
+ return this.setSrc(_src);
+ };
/**
* Set video
@@ -11342,9 +11147,9 @@ var Flash = (function (_Tech) {
Flash.prototype.seekable = function seekable() {
var duration = this.duration();
if (duration === 0) {
- return _createTimeRange.createTimeRange();
+ return _utilsTimeRangesJs.createTimeRange();
}
- return _createTimeRange.createTimeRange(0, duration);
+ return _utilsTimeRangesJs.createTimeRange(0, duration);
};
/**
@@ -11355,7 +11160,11 @@ var Flash = (function (_Tech) {
*/
Flash.prototype.buffered = function buffered() {
- return _createTimeRange.createTimeRange(0, this.el_.vjs_getProperty('buffered'));
+ var ranges = this.el_.vjs_getProperty('buffered');
+ if (ranges.length === 0) {
+ return _utilsTimeRangesJs.createTimeRange();
+ }
+ return _utilsTimeRangesJs.createTimeRange(ranges[0][0], ranges[0][1]);
};
/**
@@ -11385,12 +11194,11 @@ var Flash = (function (_Tech) {
};
return Flash;
-})(_Tech3['default']);
+})(_tech2['default']);
-// Create setters and getters for attributes
var _api = Flash.prototype;
var _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');
-var _readOnly = 'error,networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');
+var _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');
function _createSetter(attr) {
var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);
@@ -11423,7 +11231,7 @@ Flash.isSupported = function () {
};
// Add Source Handler pattern functions to this tech
-_Tech3['default'].withSourceHandlers(Flash);
+_tech2['default'].withSourceHandlers(Flash);
/*
* The default native source handler.
@@ -11520,7 +11328,7 @@ Flash.checkReady = function (tech) {
} else {
// wait longer
this.setTimeout(function () {
- Flash.checkReady(tech);
+ Flash['checkReady'](tech);
}, 50);
}
};
@@ -11534,15 +11342,14 @@ Flash.onEvent = function (swfID, eventName) {
// Log errors from the swf
Flash.onError = function (swfID, err) {
var tech = Dom.getEl(swfID).tech;
- var msg = 'FLASH: ' + err;
+ // trigger MEDIA_ERR_SRC_NOT_SUPPORTED
if (err === 'srcnotfound') {
- tech.trigger('error', { code: 4, message: msg });
-
- // errors we haven't categorized into the media errors
- } else {
- tech.trigger('error', msg);
+ return tech.error(4);
}
+
+ // trigger a custom error
+ tech.error('FLASH: ' + err);
};
// Flash Version Check
@@ -11551,7 +11358,7 @@ Flash.version = function () {
// IE
try {
- version = new _window2['default'].ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
+ version = new _globalWindow2['default'].ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\D+/g, ',').match(/^,?(.+),?$/)[1];
// other browsers
} catch (e) {
@@ -11583,16 +11390,16 @@ Flash.getEmbedCode = function (swf, flashVars, params, attributes) {
// Convert flash vars to string
if (flashVars) {
Object.getOwnPropertyNames(flashVars).forEach(function (key) {
- flashVarsString += '' + key + '=' + flashVars[key] + '&';
+ flashVarsString += key + '=' + flashVars[key] + '&';
});
}
// Add swf, flashVars, and other default params
- params = _assign2['default']({
- movie: swf,
- flashvars: flashVarsString,
- allowScriptAccess: 'always', // Required to talk to swf
- allowNetworking: 'all' // All should be default, but having security issues.
+ params = _objectAssign2['default']({
+ 'movie': swf,
+ 'flashvars': flashVarsString,
+ 'allowScriptAccess': 'always', // Required to talk to swf
+ 'allowNetworking': 'all' // All should be default, but having security issues.
}, params);
// Create param tags string
@@ -11600,89 +11407,92 @@ Flash.getEmbedCode = function (swf, flashVars, params, attributes) {
paramsString += '';
});
- attributes = _assign2['default']({
+ attributes = _objectAssign2['default']({
// Add swf to attributes (need both for IE and Others to work)
- data: swf,
+ 'data': swf,
// Default to 100% width/height
- width: '100%',
- height: '100%'
+ 'width': '100%',
+ 'height': '100%'
}, attributes);
// Create Attributes string
Object.getOwnPropertyNames(attributes).forEach(function (key) {
- attrsString += '' + key + '="' + attributes[key] + '" ';
+ attrsString += key + '="' + attributes[key] + '" ';
});
- return '' + objTag + '' + attrsString + '>' + paramsString + '';
+ return '' + objTag + attrsString + '>' + paramsString + '';
};
// Run Flash through the RTMP decorator
-_FlashRtmpDecorator2['default'](Flash);
+_flashRtmp2['default'](Flash);
-_Component2['default'].registerComponent('Flash', Flash);
+_component2['default'].registerComponent('Flash', Flash);
exports['default'] = Flash;
module.exports = exports['default'];
-},{"../component":52,"../utils/dom.js":111,"../utils/time-ranges.js":119,"../utils/url.js":121,"./flash-rtmp":96,"./tech":100,"global/window":2,"object.assign":44}],98:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/dom.js":107,"../utils/time-ranges.js":115,"../utils/url.js":117,"./flash-rtmp":92,"./tech":96,"global/window":2,"object.assign":40}],94:[function(_dereq_,module,exports){
/**
* @file html5.js
* HTML5 Media Controller - Wrapper for HTML5 Media API
*/
-var _Tech2 = _dereq_('./tech.js');
+'use strict';
-var _Tech3 = _interopRequireWildcard(_Tech2);
+exports.__esModule = true;
-var _Component = _dereq_('../component');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Component2 = _interopRequireWildcard(_Component);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _import = _dereq_('../utils/dom.js');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var Dom = _interopRequireWildcard(_import);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _import2 = _dereq_('../utils/url.js');
+var _techJs = _dereq_('./tech.js');
-var Url = _interopRequireWildcard(_import2);
+var _techJs2 = _interopRequireDefault(_techJs);
-var _import3 = _dereq_('../utils/fn.js');
+var _component = _dereq_('../component');
-var Fn = _interopRequireWildcard(_import3);
+var _component2 = _interopRequireDefault(_component);
-var _log = _dereq_('../utils/log.js');
+var _utilsDomJs = _dereq_('../utils/dom.js');
-var _log2 = _interopRequireWildcard(_log);
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var _import4 = _dereq_('../utils/browser.js');
+var _utilsUrlJs = _dereq_('../utils/url.js');
-var browser = _interopRequireWildcard(_import4);
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _document = _dereq_('global/document');
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _document2 = _interopRequireWildcard(_document);
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _window = _dereq_('global/window');
+var _utilsLogJs = _dereq_('../utils/log.js');
-var _window2 = _interopRequireWildcard(_window);
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _assign = _dereq_('object.assign');
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
-var _assign2 = _interopRequireWildcard(_assign);
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _mergeOptions = _dereq_('../utils/merge-options.js');
+var _globalDocument = _dereq_('global/document');
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _objectAssign = _dereq_('object.assign');
+
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
+
+var _utilsMergeOptionsJs = _dereq_('../utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
/**
* HTML5 Media Controller - Wrapper for HTML5 Media API
@@ -11694,6 +11504,8 @@ var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
*/
var Html5 = (function (_Tech) {
+ _inherits(Html5, _Tech);
+
function Html5(options, ready) {
_classCallCheck(this, Html5);
@@ -11747,14 +11559,22 @@ var Html5 = (function (_Tech) {
// Our goal should be to get the custom controls on mobile solid everywhere
// so we can remove this all together. Right now this will block custom
// controls on touch enabled laptops like the Chrome Pixel
- if (browser.TOUCH_ENABLED && options.nativeControlsForTouch === true) {
- this.trigger('usenativecontrols');
+ if (browser.TOUCH_ENABLED && options.nativeControlsForTouch === true || browser.IS_IPHONE || browser.IS_NATIVE_ANDROID) {
+ this.setControls(true);
}
this.triggerReady();
}
- _inherits(Html5, _Tech);
+ /* HTML5 Support Testing ---------------------------------------------------- */
+
+ /*
+ * Element for testing browser HTML5 video capabilities
+ *
+ * @type {Element}
+ * @constant
+ * @private
+ */
/**
* Dispose of html5 media element
@@ -11797,7 +11617,7 @@ var Html5 = (function (_Tech) {
// Check if this browser supports moving the element into the box.
// On the iPhone video will break if you move the element,
// So we have to create a brand new element.
- if (!el || this.movingMediaElementInDOM === false) {
+ if (!el || this['movingMediaElementInDOM'] === false) {
// If the original tag is still there, clone and remove it.
if (el) {
@@ -11806,16 +11626,16 @@ var Html5 = (function (_Tech) {
Html5.disposeMediaElement(el);
el = clone;
} else {
- el = _document2['default'].createElement('video');
+ el = _globalDocument2['default'].createElement('video');
// determine if native controls should be used
var tagAttributes = this.options_.tag && Dom.getElAttributes(this.options_.tag);
- var attributes = _mergeOptions2['default']({}, tagAttributes);
+ var attributes = _utilsMergeOptionsJs2['default']({}, tagAttributes);
if (!browser.TOUCH_ENABLED || this.options_.nativeControlsForTouch !== true) {
delete attributes.controls;
}
- Dom.setElAttributes(el, _assign2['default'](attributes, {
+ Dom.setElAttributes(el, _objectAssign2['default'](attributes, {
id: this.options_.techId,
'class': 'vjs-tech'
}));
@@ -11918,7 +11738,7 @@ var Html5 = (function (_Tech) {
try {
this.el_.currentTime = seconds;
} catch (e) {
- _log2['default'](e, 'Video is not ready. (Video.js)');
+ _utilsLogJs2['default'](e, 'Video is not ready. (Video.js)');
// this.warning(VideoJS.warnings.videoNotReady);
}
};
@@ -12022,7 +11842,7 @@ var Html5 = (function (_Tech) {
Html5.prototype.supportsFullScreen = function supportsFullScreen() {
if (typeof this.el_.webkitEnterFullScreen === 'function') {
- var userAgent = _window2['default'].navigator.userAgent;
+ var userAgent = _globalWindow2['default'].navigator.userAgent;
// Seems to be broken in Chromium/Chrome && Safari in Leopard
if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {
return true;
@@ -12084,24 +11904,14 @@ var Html5 = (function (_Tech) {
* @method src
*/
- Html5.prototype.src = (function (_src) {
- function src(_x) {
- return _src.apply(this, arguments);
- }
-
- src.toString = function () {
- return _src.toString();
- };
-
- return src;
- })(function (src) {
- if (src === undefined) {
+ Html5.prototype.src = function src(_src) {
+ if (_src === undefined) {
return this.el_.src;
} else {
// Setting src through `src` instead of `setSrc` will be deprecated
- this.setSrc(src);
+ this.setSrc(_src);
}
- });
+ };
/**
* Set video
@@ -12418,7 +12228,7 @@ var Html5 = (function (_Tech) {
*/
Html5.prototype.addTextTrack = function addTextTrack(kind, label, language) {
- if (!this.featuresNativeTextTracks) {
+ if (!this['featuresNativeTextTracks']) {
return _Tech.prototype.addTextTrack.call(this, kind, label, language);
}
@@ -12435,31 +12245,31 @@ var Html5 = (function (_Tech) {
*/
Html5.prototype.addRemoteTextTrack = function addRemoteTextTrack() {
- var options = arguments[0] === undefined ? {} : arguments[0];
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
- if (!this.featuresNativeTextTracks) {
+ if (!this['featuresNativeTextTracks']) {
return _Tech.prototype.addRemoteTextTrack.call(this, options);
}
- var track = _document2['default'].createElement('track');
+ var track = _globalDocument2['default'].createElement('track');
- if (options.kind) {
- track.kind = options.kind;
+ if (options['kind']) {
+ track['kind'] = options['kind'];
}
- if (options.label) {
- track.label = options.label;
+ if (options['label']) {
+ track['label'] = options['label'];
}
- if (options.language || options.srclang) {
- track.srclang = options.language || options.srclang;
+ if (options['language'] || options['srclang']) {
+ track['srclang'] = options['language'] || options['srclang'];
}
if (options['default']) {
track['default'] = options['default'];
}
- if (options.id) {
- track.id = options.id;
+ if (options['id']) {
+ track['id'] = options['id'];
}
- if (options.src) {
- track.src = options.src;
+ if (options['src']) {
+ track['src'] = options['src'];
}
this.el().appendChild(track);
@@ -12477,7 +12287,7 @@ var Html5 = (function (_Tech) {
*/
Html5.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {
- if (!this.featuresNativeTextTracks) {
+ if (!this['featuresNativeTextTracks']) {
return _Tech.prototype.removeRemoteTextTrack.call(this, track);
}
@@ -12496,19 +12306,10 @@ var Html5 = (function (_Tech) {
};
return Html5;
-})(_Tech3['default']);
+})(_techJs2['default']);
-/* HTML5 Support Testing ---------------------------------------------------- */
-
-/*
-* Element for testing browser HTML5 video capabilities
-*
-* @type {Element}
-* @constant
-* @private
-*/
-Html5.TEST_VID = _document2['default'].createElement('video');
-var track = _document2['default'].createElement('track');
+Html5.TEST_VID = _globalDocument2['default'].createElement('video');
+var track = _globalDocument2['default'].createElement('track');
track.kind = 'captions';
track.srclang = 'en';
track.label = 'English';
@@ -12522,7 +12323,7 @@ Html5.TEST_VID.appendChild(track);
Html5.isSupported = function () {
// IE9 with no Media Player is a LIAR! (#984)
try {
- Html5.TEST_VID.volume = 0.5;
+ Html5.TEST_VID['volume'] = 0.5;
} catch (e) {
return false;
}
@@ -12531,7 +12332,7 @@ Html5.isSupported = function () {
};
// Add Source Handler pattern functions to this tech
-_Tech3['default'].withSourceHandlers(Html5);
+_techJs2['default'].withSourceHandlers(Html5);
/*
* The default native source handler.
@@ -12634,7 +12435,7 @@ Html5.supportsNativeTextTracks = function () {
// TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862
supportsTextTracks = !!Html5.TEST_VID.textTracks;
if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {
- supportsTextTracks = typeof Html5.TEST_VID.textTracks[0].mode !== 'number';
+ supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';
}
if (supportsTextTracks && browser.IS_FIREFOX) {
supportsTextTracks = false;
@@ -12659,14 +12460,14 @@ Html5.Events = ['loadstart', 'suspend', 'abort', 'error', 'emptied', 'stalled',
*
* @type {Boolean}
*/
-Html5.prototype.featuresVolumeControl = Html5.canControlVolume();
+Html5.prototype['featuresVolumeControl'] = Html5.canControlVolume();
/*
* Set the tech's playbackRate support status
*
* @type {Boolean}
*/
-Html5.prototype.featuresPlaybackRate = Html5.canControlPlaybackRate();
+Html5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();
/*
* Set the tech's status on moving the video element.
@@ -12674,27 +12475,27 @@ Html5.prototype.featuresPlaybackRate = Html5.canControlPlaybackRate();
*
* @type {Boolean}
*/
-Html5.prototype.movingMediaElementInDOM = !browser.IS_IOS;
+Html5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;
/*
* Set the the tech's fullscreen resize support status.
* HTML video is able to automatically resize when going to fullscreen.
* (No longer appears to be used. Can probably be removed.)
*/
-Html5.prototype.featuresFullscreenResize = true;
+Html5.prototype['featuresFullscreenResize'] = true;
/*
* Set the tech's progress event support status
* (this disables the manual progress events of the Tech)
*/
-Html5.prototype.featuresProgressEvents = true;
+Html5.prototype['featuresProgressEvents'] = true;
/*
* Sets the tech's status on native text track support
*
* @type {Boolean}
*/
-Html5.prototype.featuresNativeTextTracks = Html5.supportsNativeTextTracks();
+Html5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();
// HTML5 Feature detection and Device Fixes --------------------------------- //
var canPlayType = undefined;
@@ -12703,7 +12504,7 @@ var mp4RE = /^video\/mp4/i;
Html5.patchCanPlayType = function () {
// Android 4.0 and above can play HLS to some extent but it reports being unable to do so
- if (browser.ANDROID_VERSION >= 4) {
+ if (browser.ANDROID_VERSION >= 4.0) {
if (!canPlayType) {
canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;
}
@@ -12766,42 +12567,42 @@ Html5.disposeMediaElement = function (el) {
(function () {
try {
el.load();
- } catch (e) {}
+ } catch (e) {
+ // not supported
+ }
})();
}
};
-_Component2['default'].registerComponent('Html5', Html5);
+_component2['default'].registerComponent('Html5', Html5);
exports['default'] = Html5;
module.exports = exports['default'];
-// not supported
-
-},{"../component":52,"../utils/browser.js":108,"../utils/dom.js":111,"../utils/fn.js":113,"../utils/log.js":116,"../utils/merge-options.js":117,"../utils/url.js":121,"./tech.js":100,"global/document":1,"global/window":2,"object.assign":44}],99:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/browser.js":104,"../utils/dom.js":107,"../utils/fn.js":109,"../utils/log.js":112,"../utils/merge-options.js":113,"../utils/url.js":117,"./tech.js":96,"global/document":1,"global/window":2,"object.assign":40}],95:[function(_dereq_,module,exports){
/**
* @file loader.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _window = _dereq_('global/window');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _window2 = _interopRequireWildcard(_window);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _toTitleCase = _dereq_('../utils/to-title-case.js');
+var _component = _dereq_('../component');
-var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
+var _component2 = _interopRequireDefault(_component);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _utilsToTitleCaseJs = _dereq_('../utils/to-title-case.js');
+
+var _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);
/**
* The Media Loader is the component that decides which playback technology to load
@@ -12815,6 +12616,8 @@ var _toTitleCase2 = _interopRequireWildcard(_toTitleCase);
*/
var MediaLoader = (function (_Component) {
+ _inherits(MediaLoader, _Component);
+
function MediaLoader(player, options, ready) {
_classCallCheck(this, MediaLoader);
@@ -12823,10 +12626,10 @@ var MediaLoader = (function (_Component) {
// If there are no sources when the player is initialized,
// load the first supported playback technology.
- if (!options.playerOptions.sources || options.playerOptions.sources.length === 0) {
- for (var i = 0, j = options.playerOptions.techOrder; i < j.length; i++) {
- var techName = _toTitleCase2['default'](j[i]);
- var tech = _Component3['default'].getComponent(techName);
+ if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {
+ for (var i = 0, j = options.playerOptions['techOrder']; i < j.length; i++) {
+ var techName = _utilsToTitleCaseJs2['default'](j[i]);
+ var tech = _component2['default'].getComponent(techName);
// Check if the browser supports this technology
if (tech && tech.isSupported()) {
@@ -12839,66 +12642,71 @@ var MediaLoader = (function (_Component) {
// // Then load the best source.
// // A few assumptions here:
// // All playback technologies respect preload false.
- player.src(options.playerOptions.sources);
+ player.src(options.playerOptions['sources']);
}
}
- _inherits(MediaLoader, _Component);
-
return MediaLoader;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('MediaLoader', MediaLoader);
+_component2['default'].registerComponent('MediaLoader', MediaLoader);
exports['default'] = MediaLoader;
module.exports = exports['default'];
-},{"../component":52,"../utils/to-title-case.js":120,"global/window":2}],100:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/to-title-case.js":116,"global/window":2}],96:[function(_dereq_,module,exports){
/**
* @file tech.js
* Media Technology Controller - Base class for media playback
* technology controllers like Flash and HTML5
*/
-var _Component2 = _dereq_('../component');
+'use strict';
-var _Component3 = _interopRequireWildcard(_Component2);
+exports.__esModule = true;
-var _TextTrack = _dereq_('../tracks/text-track');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _TextTrack2 = _interopRequireWildcard(_TextTrack);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _TextTrackList = _dereq_('../tracks/text-track-list');
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _TextTrackList2 = _interopRequireWildcard(_TextTrackList);
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _import = _dereq_('../utils/fn.js');
+var _component = _dereq_('../component');
-var Fn = _interopRequireWildcard(_import);
+var _component2 = _interopRequireDefault(_component);
-var _log = _dereq_('../utils/log.js');
+var _tracksTextTrack = _dereq_('../tracks/text-track');
-var _log2 = _interopRequireWildcard(_log);
+var _tracksTextTrack2 = _interopRequireDefault(_tracksTextTrack);
-var _createTimeRange = _dereq_('../utils/time-ranges.js');
+var _tracksTextTrackList = _dereq_('../tracks/text-track-list');
-var _bufferedPercent2 = _dereq_('../utils/buffer.js');
+var _tracksTextTrackList2 = _interopRequireDefault(_tracksTextTrackList);
-var _window = _dereq_('global/window');
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _window2 = _interopRequireWildcard(_window);
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _document = _dereq_('global/document');
+var _utilsLogJs = _dereq_('../utils/log.js');
-var _document2 = _interopRequireWildcard(_document);
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
+
+var _utilsTimeRangesJs = _dereq_('../utils/time-ranges.js');
+
+var _utilsBufferJs = _dereq_('../utils/buffer.js');
+
+var _mediaErrorJs = _dereq_('../media-error.js');
+
+var _mediaErrorJs2 = _interopRequireDefault(_mediaErrorJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* Base class for media (HTML5 Video, Flash) controllers
@@ -12910,9 +12718,11 @@ var _document2 = _interopRequireWildcard(_document);
*/
var Tech = (function (_Component) {
+ _inherits(Tech, _Component);
+
function Tech() {
- var options = arguments[0] === undefined ? {} : arguments[0];
- var ready = arguments[1] === undefined ? function () {} : arguments[1];
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
+ var ready = arguments.length <= 1 || arguments[1] === undefined ? function () {} : arguments[1];
_classCallCheck(this, Tech);
@@ -12959,7 +12769,12 @@ var Tech = (function (_Component) {
this.emitTapEvents();
}
- _inherits(Tech, _Component);
+ /*
+ * List of associated text tracks
+ *
+ * @type {Array}
+ * @private
+ */
/**
* Set up click and touch listeners for the playback element
@@ -13070,7 +12885,7 @@ var Tech = (function (_Component) {
*/
Tech.prototype.buffered = function buffered() {
- return _createTimeRange.createTimeRange(0, 0);
+ return _utilsTimeRangesJs.createTimeRange(0, 0);
};
/**
@@ -13080,19 +12895,9 @@ var Tech = (function (_Component) {
* @method bufferedPercent
*/
- Tech.prototype.bufferedPercent = (function (_bufferedPercent) {
- function bufferedPercent() {
- return _bufferedPercent.apply(this, arguments);
- }
-
- bufferedPercent.toString = function () {
- return _bufferedPercent.toString();
- };
-
- return bufferedPercent;
- })(function () {
- return _bufferedPercent2.bufferedPercent(this.buffered(), this.duration_);
- });
+ Tech.prototype.bufferedPercent = function bufferedPercent() {
+ return _utilsBufferJs.bufferedPercent(this.buffered(), this.duration_);
+ };
/**
* Stops tracking progress by clearing progress interval
@@ -13168,10 +12973,13 @@ var Tech = (function (_Component) {
Tech.prototype.dispose = function dispose() {
// clear out text tracks because we can't reuse them between techs
- var tt = this.textTracks();
- var i = tt.length;
- while (i--) {
- this.removeRemoteTextTrack(tt[i]);
+ var textTracks = this.textTracks();
+
+ if (textTracks) {
+ var i = textTracks.length;
+ while (i--) {
+ this.removeRemoteTextTrack(textTracks[i]);
+ }
}
// Turn off any manual progress or timeupdate tracking
@@ -13186,6 +12994,28 @@ var Tech = (function (_Component) {
_Component.prototype.dispose.call(this);
};
+ /**
+ * When invoked without an argument, returns a MediaError object
+ * representing the current error state of the player or null if
+ * there is no error. When invoked with an argument, set the current
+ * error state of the player.
+ * @param {MediaError=} err Optional an error object
+ * @return {MediaError} the current error object or null
+ * @method error
+ */
+
+ Tech.prototype.error = function error(err) {
+ if (err !== undefined) {
+ if (err instanceof _mediaErrorJs2['default']) {
+ this.error_ = err;
+ } else {
+ this.error_ = new _mediaErrorJs2['default'](err);
+ }
+ this.trigger('error');
+ }
+ return this.error_;
+ };
+
/**
* Return the time ranges that have been played through for the
* current source. This implementation is incomplete. It does not
@@ -13198,9 +13028,9 @@ var Tech = (function (_Component) {
Tech.prototype.played = function played() {
if (this.hasStarted_) {
- return _createTimeRange.createTimeRange(0, 0);
+ return _utilsTimeRangesJs.createTimeRange(0, 0);
}
- return _createTimeRange.createTimeRange();
+ return _utilsTimeRangesJs.createTimeRange();
};
/**
@@ -13229,9 +13059,9 @@ var Tech = (function (_Component) {
var tracks = this.textTracks();
- if (!tracks) {
- return;
- }tracks.addEventListener('removetrack', textTrackListChanges);
+ if (!tracks) return;
+
+ tracks.addEventListener('removetrack', textTrackListChanges);
tracks.addEventListener('addtrack', textTrackListChanges);
this.on('dispose', Fn.bind(this, function () {
@@ -13247,11 +13077,11 @@ var Tech = (function (_Component) {
*/
Tech.prototype.emulateTextTracks = function emulateTextTracks() {
- if (!_window2['default'].WebVTT && this.el().parentNode != null) {
- var script = _document2['default'].createElement('script');
+ if (!_globalWindow2['default']['WebVTT'] && this.el().parentNode != null) {
+ var script = _globalDocument2['default'].createElement('script');
script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';
this.el().parentNode.appendChild(script);
- _window2['default'].WebVTT = true;
+ _globalWindow2['default']['WebVTT'] = true;
}
var tracks = this.textTracks();
@@ -13298,7 +13128,7 @@ var Tech = (function (_Component) {
*/
Tech.prototype.textTracks = function textTracks() {
- this.textTracks_ = this.textTracks_ || new _TextTrackList2['default']();
+ this.textTracks_ = this.textTracks_ || new _tracksTextTrackList2['default']();
return this.textTracks_;
};
@@ -13310,7 +13140,7 @@ var Tech = (function (_Component) {
*/
Tech.prototype.remoteTextTracks = function remoteTextTracks() {
- this.remoteTextTracks_ = this.remoteTextTracks_ || new _TextTrackList2['default']();
+ this.remoteTextTracks_ = this.remoteTextTracks_ || new _tracksTextTrackList2['default']();
return this.remoteTextTracks_;
};
@@ -13373,18 +13203,12 @@ var Tech = (function (_Component) {
Tech.prototype.setPoster = function setPoster() {};
return Tech;
-})(_Component3['default']);
+})(_component2['default']);
-/*
- * List of associated text tracks
- *
- * @type {Array}
- * @private
- */
Tech.prototype.textTracks_;
var createTrackHelper = function createTrackHelper(self, kind, label, language) {
- var options = arguments[4] === undefined ? {} : arguments[4];
+ var options = arguments.length <= 4 || arguments[4] === undefined ? {} : arguments[4];
var tracks = self.textTracks();
@@ -13398,7 +13222,7 @@ var createTrackHelper = function createTrackHelper(self, kind, label, language)
}
options.tech = self;
- var track = new _TextTrack2['default'](options);
+ var track = new _tracksTextTrack2['default'](options);
tracks.addTrack_(track);
return track;
@@ -13513,7 +13337,7 @@ Tech.withSourceHandlers = function (_Tech) {
if (_Tech.nativeSourceHandler) {
sh = _Tech.nativeSourceHandler;
} else {
- _log2['default'].error('No source hander found for the current source.');
+ _utilsLogJs2['default'].error('No source hander found for the current source.');
}
}
@@ -13538,29 +13362,31 @@ Tech.withSourceHandlers = function (_Tech) {
};
};
-_Component3['default'].registerComponent('Tech', Tech);
+_component2['default'].registerComponent('Tech', Tech);
// Old name for Tech
-_Component3['default'].registerComponent('MediaTechController', Tech);
+_component2['default'].registerComponent('MediaTechController', Tech);
exports['default'] = Tech;
module.exports = exports['default'];
-},{"../component":52,"../tracks/text-track":107,"../tracks/text-track-list":105,"../utils/buffer.js":109,"../utils/fn.js":113,"../utils/log.js":116,"../utils/time-ranges.js":119,"global/document":1,"global/window":2}],101:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../component":48,"../media-error.js":83,"../tracks/text-track":103,"../tracks/text-track-list":101,"../utils/buffer.js":105,"../utils/fn.js":109,"../utils/log.js":112,"../utils/time-ranges.js":115,"global/document":1,"global/window":2}],97:[function(_dereq_,module,exports){
/**
* @file text-track-cue-list.js
*/
+'use strict';
-var _import = _dereq_('../utils/browser.js');
+exports.__esModule = true;
-var browser = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document = _dereq_('global/document');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _document2 = _interopRequireWildcard(_document);
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
+
+var browser = _interopRequireWildcard(_utilsBrowserJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/*
* https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist
@@ -13572,21 +13398,11 @@ var _document2 = _interopRequireWildcard(_document);
* };
*/
-var TextTrackCueList = (function (_TextTrackCueList) {
- function TextTrackCueList(_x) {
- return _TextTrackCueList.apply(this, arguments);
- }
-
- TextTrackCueList.toString = function () {
- return _TextTrackCueList.toString();
- };
-
- return TextTrackCueList;
-})(function (cues) {
+var TextTrackCueList = function TextTrackCueList(cues) {
var list = this;
if (browser.IS_IE8) {
- list = _document2['default'].createElement('custom');
+ list = _globalDocument2['default'].createElement('custom');
for (var prop in TextTrackCueList.prototype) {
list[prop] = TextTrackCueList.prototype[prop];
@@ -13604,7 +13420,7 @@ var TextTrackCueList = (function (_TextTrackCueList) {
if (browser.IS_IE8) {
return list;
}
-});
+};
TextTrackCueList.prototype.setCues_ = function (cues) {
var oldLength = this.length || 0;
@@ -13649,47 +13465,49 @@ TextTrackCueList.prototype.getCueById = function (id) {
exports['default'] = TextTrackCueList;
module.exports = exports['default'];
-},{"../utils/browser.js":108,"global/document":1}],102:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../utils/browser.js":104,"global/document":1}],98:[function(_dereq_,module,exports){
/**
* @file text-track-display.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _Menu = _dereq_('../menu/menu.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _Menu2 = _interopRequireWildcard(_Menu);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _MenuItem = _dereq_('../menu/menu-item.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var _MenuItem2 = _interopRequireWildcard(_MenuItem);
+var _component = _dereq_('../component');
-var _MenuButton = _dereq_('../menu/menu-button.js');
+var _component2 = _interopRequireDefault(_component);
-var _MenuButton2 = _interopRequireWildcard(_MenuButton);
+var _menuMenuJs = _dereq_('../menu/menu.js');
-var _import = _dereq_('../utils/fn.js');
+var _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);
-var Fn = _interopRequireWildcard(_import);
+var _menuMenuItemJs = _dereq_('../menu/menu-item.js');
-var _document = _dereq_('global/document');
+var _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);
-var _document2 = _interopRequireWildcard(_document);
+var _menuMenuButtonJs = _dereq_('../menu/menu-button.js');
-var _window = _dereq_('global/window');
+var _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsFnJs = _dereq_('../utils/fn.js');
+
+var Fn = _interopRequireWildcard(_utilsFnJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
var darkGray = '#222';
var lightGray = '#ccc';
@@ -13717,6 +13535,8 @@ var fontMap = {
*/
var TextTrackDisplay = (function (_Component) {
+ _inherits(TextTrackDisplay, _Component);
+
function TextTrackDisplay(player, options, ready) {
_classCallCheck(this, TextTrackDisplay);
@@ -13730,14 +13550,14 @@ var TextTrackDisplay = (function (_Component) {
// Should probably be moved to an external track loader when we support
// tracks that don't need a display.
player.ready(Fn.bind(this, function () {
- if (player.tech && player.tech.featuresNativeTextTracks) {
+ if (player.tech && player.tech['featuresNativeTextTracks']) {
this.hide();
return;
}
player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));
- var tracks = this.options_.playerOptions.tracks || [];
+ var tracks = this.options_.playerOptions['tracks'] || [];
for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
this.player_.addRemoteTextTrack(track);
@@ -13745,7 +13565,14 @@ var TextTrackDisplay = (function (_Component) {
}));
}
- _inherits(TextTrackDisplay, _Component);
+ /**
+ * Add cue HTML to display
+ *
+ * @param {Number} color Hex number for color, like #f0e
+ * @param {Number} opacity Value for opacity,0.0 - 1.0
+ * @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'
+ * @method constructColor
+ */
/**
* Toggle display texttracks
@@ -13754,7 +13581,7 @@ var TextTrackDisplay = (function (_Component) {
*/
TextTrackDisplay.prototype.toggleDisplay = function toggleDisplay() {
- if (this.player_.tech && this.player_.tech.featuresNativeTextTracks) {
+ if (this.player_.tech && this.player_.tech['featuresNativeTextTracks']) {
this.hide();
} else {
this.show();
@@ -13781,8 +13608,8 @@ var TextTrackDisplay = (function (_Component) {
*/
TextTrackDisplay.prototype.clearDisplay = function clearDisplay() {
- if (typeof _window2['default'].WebVTT === 'function') {
- _window2['default'].WebVTT.processCues(_window2['default'], [], this.el_);
+ if (typeof _globalWindow2['default']['WebVTT'] === 'function') {
+ _globalWindow2['default']['WebVTT']['processCues'](_globalWindow2['default'], [], this.el_);
}
};
@@ -13803,7 +13630,7 @@ var TextTrackDisplay = (function (_Component) {
for (var i = 0; i < tracks.length; i++) {
var track = tracks[i];
- if (track.mode === 'showing') {
+ if (track['mode'] === 'showing') {
this.updateForTrack(track);
}
}
@@ -13817,18 +13644,18 @@ var TextTrackDisplay = (function (_Component) {
*/
TextTrackDisplay.prototype.updateForTrack = function updateForTrack(track) {
- if (typeof _window2['default'].WebVTT !== 'function' || !track.activeCues) {
+ if (typeof _globalWindow2['default']['WebVTT'] !== 'function' || !track['activeCues']) {
return;
}
- var overrides = this.player_.textTrackSettings.getValues();
+ var overrides = this.player_['textTrackSettings'].getValues();
var cues = [];
- for (var _i = 0; _i < track.activeCues.length; _i++) {
- cues.push(track.activeCues[_i]);
+ for (var _i = 0; _i < track['activeCues'].length; _i++) {
+ cues.push(track['activeCues'][_i]);
}
- _window2['default'].WebVTT.processCues(_window2['default'], track.activeCues, this.el_);
+ _globalWindow2['default']['WebVTT']['processCues'](_globalWindow2['default'], track['activeCues'], this.el_);
var i = cues.length;
while (i--) {
@@ -13864,7 +13691,7 @@ var TextTrackDisplay = (function (_Component) {
}
}
if (overrides.fontPercent && overrides.fontPercent !== 1) {
- var fontSize = _window2['default'].parseFloat(cueDiv.style.fontSize);
+ var fontSize = _globalWindow2['default'].parseFloat(cueDiv.style.fontSize);
cueDiv.style.fontSize = fontSize * overrides.fontPercent + 'px';
cueDiv.style.height = 'auto';
cueDiv.style.top = 'auto';
@@ -13881,16 +13708,8 @@ var TextTrackDisplay = (function (_Component) {
};
return TextTrackDisplay;
-})(_Component3['default']);
+})(_component2['default']);
-/**
-* Add cue HTML to display
-*
-* @param {Number} color Hex number for color, like #f0e
-* @param {Number} opacity Value for opacity,0.0 - 1.0
-* @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'
-* @method constructColor
-*/
function constructColor(color, opacity) {
return 'rgba(' +
// color looks like "#f0e"
@@ -13913,14 +13732,11 @@ function tryUpdateStyle(el, style, rule) {
} catch (e) {}
}
-_Component3['default'].registerComponent('TextTrackDisplay', TextTrackDisplay);
+_component2['default'].registerComponent('TextTrackDisplay', TextTrackDisplay);
exports['default'] = TextTrackDisplay;
module.exports = exports['default'];
-},{"../component":52,"../menu/menu-button.js":88,"../menu/menu-item.js":89,"../menu/menu.js":90,"../utils/fn.js":113,"global/document":1,"global/window":2}],103:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"../component":48,"../menu/menu-button.js":84,"../menu/menu-item.js":85,"../menu/menu.js":86,"../utils/fn.js":109,"global/document":1,"global/window":2}],99:[function(_dereq_,module,exports){
/**
* @file text-track-enums.js
*
@@ -13928,10 +13744,13 @@ exports.__esModule = true;
*
* enum TextTrackMode { "disabled", "hidden", "showing" };
*/
+'use strict';
+
+exports.__esModule = true;
var TextTrackMode = {
- disabled: 'disabled',
- hidden: 'hidden',
- showing: 'showing'
+ 'disabled': 'disabled',
+ 'hidden': 'hidden',
+ 'showing': 'showing'
};
/*
@@ -13940,20 +13759,17 @@ var TextTrackMode = {
* enum TextTrackKind { "subtitles", "captions", "descriptions", "chapters", "metadata" };
*/
var TextTrackKind = {
- subtitles: 'subtitles',
- captions: 'captions',
- descriptions: 'descriptions',
- chapters: 'chapters',
- metadata: 'metadata'
+ 'subtitles': 'subtitles',
+ 'captions': 'captions',
+ 'descriptions': 'descriptions',
+ 'chapters': 'chapters',
+ 'metadata': 'metadata'
};
exports.TextTrackMode = TextTrackMode;
exports.TextTrackKind = TextTrackKind;
-},{}],104:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{}],100:[function(_dereq_,module,exports){
/**
* Utilities for capturing text track state and re-creating tracks
* based on a capture.
@@ -13968,6 +13784,9 @@ exports.__esModule = true;
* @return {Object} a serializable javascript representation of the
* @private
*/
+'use strict';
+
+exports.__esModule = true;
var trackToJson_ = function trackToJson_(track) {
return {
kind: track.kind,
@@ -14037,31 +13856,33 @@ var jsonToTextTracks = function jsonToTextTracks(json, tech) {
exports['default'] = { textTracksToJson: textTracksToJson, jsonToTextTracks: jsonToTextTracks, trackToJson_: trackToJson_ };
module.exports = exports['default'];
-},{}],105:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{}],101:[function(_dereq_,module,exports){
/**
* @file text-track-list.js
*/
+'use strict';
-var _EventTarget = _dereq_('../event-target');
+exports.__esModule = true;
-var _EventTarget2 = _interopRequireWildcard(_EventTarget);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/fn.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Fn = _interopRequireWildcard(_import);
+var _eventTarget = _dereq_('../event-target');
-var _import2 = _dereq_('../utils/browser.js');
+var _eventTarget2 = _interopRequireDefault(_eventTarget);
-var browser = _interopRequireWildcard(_import2);
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _document = _dereq_('global/document');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _document2 = _interopRequireWildcard(_document);
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
+
+var browser = _interopRequireWildcard(_utilsBrowserJs);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/*
* https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist
@@ -14076,21 +13897,11 @@ var _document2 = _interopRequireWildcard(_document);
* attribute EventHandler onremovetrack;
* };
*/
-var TextTrackList = (function (_TextTrackList) {
- function TextTrackList(_x) {
- return _TextTrackList.apply(this, arguments);
- }
-
- TextTrackList.toString = function () {
- return _TextTrackList.toString();
- };
-
- return TextTrackList;
-})(function (tracks) {
+var TextTrackList = function TextTrackList(tracks) {
var list = this;
if (browser.IS_IE8) {
- list = _document2['default'].createElement('custom');
+ list = _globalDocument2['default'].createElement('custom');
for (var prop in TextTrackList.prototype) {
list[prop] = TextTrackList.prototype[prop];
@@ -14113,9 +13924,9 @@ var TextTrackList = (function (_TextTrackList) {
if (browser.IS_IE8) {
return list;
}
-});
+};
-TextTrackList.prototype = Object.create(_EventTarget2['default'].prototype);
+TextTrackList.prototype = Object.create(_eventTarget2['default'].prototype);
TextTrackList.prototype.constructor = TextTrackList;
/*
@@ -14124,9 +13935,9 @@ TextTrackList.prototype.constructor = TextTrackList;
* removetrack - A track has been removed from the track list.
*/
TextTrackList.prototype.allowedEvents_ = {
- change: 'change',
- addtrack: 'addtrack',
- removetrack: 'removetrack'
+ 'change': 'change',
+ 'addtrack': 'addtrack',
+ 'removetrack': 'removetrack'
};
// emulate attribute EventHandler support to allow for feature detection
@@ -14190,43 +14001,45 @@ TextTrackList.prototype.getTrackById = function (id) {
exports['default'] = TextTrackList;
module.exports = exports['default'];
-},{"../event-target":83,"../utils/browser.js":108,"../utils/fn.js":113,"global/document":1}],106:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-var _classCallCheck = function (instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } };
-
-var _inherits = function (subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) subClass.__proto__ = superClass; };
-
-exports.__esModule = true;
+},{"../event-target":79,"../utils/browser.js":104,"../utils/fn.js":109,"global/document":1}],102:[function(_dereq_,module,exports){
/**
* @file text-track-settings.js
*/
+'use strict';
-var _Component2 = _dereq_('../component');
+exports.__esModule = true;
-var _Component3 = _interopRequireWildcard(_Component2);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/events.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Events = _interopRequireWildcard(_import);
+function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }
-var _import2 = _dereq_('../utils/fn.js');
+function _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }
-var Fn = _interopRequireWildcard(_import2);
+var _component = _dereq_('../component');
-var _log = _dereq_('../utils/log.js');
+var _component2 = _interopRequireDefault(_component);
-var _log2 = _interopRequireWildcard(_log);
+var _utilsEventsJs = _dereq_('../utils/events.js');
-var _safeParseTuple2 = _dereq_('safe-json-parse/tuple');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _safeParseTuple3 = _interopRequireWildcard(_safeParseTuple2);
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _window = _dereq_('global/window');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsLogJs = _dereq_('../utils/log.js');
+
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
+
+var _safeJsonParseTuple = _dereq_('safe-json-parse/tuple');
+
+var _safeJsonParseTuple2 = _interopRequireDefault(_safeJsonParseTuple);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/**
* Manipulate settings of texttracks
@@ -14238,6 +14051,8 @@ var _window2 = _interopRequireWildcard(_window);
*/
var TextTrackSettings = (function (_Component) {
+ _inherits(TextTrackSettings, _Component);
+
function TextTrackSettings(player, options) {
_classCallCheck(this, TextTrackSettings);
@@ -14282,8 +14097,6 @@ var TextTrackSettings = (function (_Component) {
}
}
- _inherits(TextTrackSettings, _Component);
-
/**
* Create the component's DOM element
*
@@ -14325,21 +14138,21 @@ var TextTrackSettings = (function (_Component) {
var bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));
var windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));
var windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));
- var fontPercent = _window2['default'].parseFloat(getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));
+ var fontPercent = _globalWindow2['default']['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));
var result = {
- backgroundOpacity: bgOpacity,
- textOpacity: textOpacity,
- windowOpacity: windowOpacity,
- edgeStyle: textEdge,
- fontFamily: fontFamily,
- color: fgColor,
- backgroundColor: bgColor,
- windowColor: windowColor,
- fontPercent: fontPercent
+ 'backgroundOpacity': bgOpacity,
+ 'textOpacity': textOpacity,
+ 'windowOpacity': windowOpacity,
+ 'edgeStyle': textEdge,
+ 'fontFamily': fontFamily,
+ 'color': fgColor,
+ 'backgroundColor': bgColor,
+ 'windowColor': windowColor,
+ 'fontPercent': fontPercent
};
for (var _name in result) {
- if (result[_name] === '' || result[_name] === 'none' || _name === 'fontPercent' && result[_name] === 1) {
+ if (result[_name] === '' || result[_name] === 'none' || _name === 'fontPercent' && result[_name] === 1.00) {
delete result[_name];
}
}
@@ -14390,13 +14203,13 @@ var TextTrackSettings = (function (_Component) {
*/
TextTrackSettings.prototype.restoreSettings = function restoreSettings() {
- var _safeParseTuple = _safeParseTuple3['default'](_window2['default'].localStorage.getItem('vjs-text-track-settings'));
+ var _safeParseTuple = _safeJsonParseTuple2['default'](_globalWindow2['default'].localStorage.getItem('vjs-text-track-settings'));
var err = _safeParseTuple[0];
var values = _safeParseTuple[1];
if (err) {
- _log2['default'].error(err);
+ _utilsLogJs2['default'].error(err);
}
if (values) {
@@ -14418,9 +14231,9 @@ var TextTrackSettings = (function (_Component) {
var values = this.getValues();
try {
if (Object.getOwnPropertyNames(values).length > 0) {
- _window2['default'].localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));
+ _globalWindow2['default'].localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));
} else {
- _window2['default'].localStorage.removeItem('vjs-text-track-settings');
+ _globalWindow2['default'].localStorage.removeItem('vjs-text-track-settings');
}
} catch (e) {}
};
@@ -14439,9 +14252,9 @@ var TextTrackSettings = (function (_Component) {
};
return TextTrackSettings;
-})(_Component3['default']);
+})(_component2['default']);
-_Component3['default'].registerComponent('TextTrackSettings', TextTrackSettings);
+_component2['default'].registerComponent('TextTrackSettings', TextTrackSettings);
function getSelectedOptionValue(target) {
var selectedOption = undefined;
@@ -14480,55 +14293,57 @@ function captionOptionsMenuTemplate() {
exports['default'] = TextTrackSettings;
module.exports = exports['default'];
-},{"../component":52,"../utils/events.js":112,"../utils/fn.js":113,"../utils/log.js":116,"global/window":2,"safe-json-parse/tuple":49}],107:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../component":48,"../utils/events.js":108,"../utils/fn.js":109,"../utils/log.js":112,"global/window":2,"safe-json-parse/tuple":45}],103:[function(_dereq_,module,exports){
/**
* @file text-track.js
*/
+'use strict';
-var _TextTrackCueList = _dereq_('./text-track-cue-list');
+exports.__esModule = true;
-var _TextTrackCueList2 = _interopRequireWildcard(_TextTrackCueList);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('../utils/fn.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var Fn = _interopRequireWildcard(_import);
+var _textTrackCueList = _dereq_('./text-track-cue-list');
-var _import2 = _dereq_('../utils/guid.js');
+var _textTrackCueList2 = _interopRequireDefault(_textTrackCueList);
-var Guid = _interopRequireWildcard(_import2);
+var _utilsFnJs = _dereq_('../utils/fn.js');
-var _import3 = _dereq_('../utils/browser.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var browser = _interopRequireWildcard(_import3);
+var _utilsGuidJs = _dereq_('../utils/guid.js');
-var _import4 = _dereq_('./text-track-enums');
+var Guid = _interopRequireWildcard(_utilsGuidJs);
-var TextTrackEnum = _interopRequireWildcard(_import4);
+var _utilsBrowserJs = _dereq_('../utils/browser.js');
-var _log = _dereq_('../utils/log.js');
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _log2 = _interopRequireWildcard(_log);
+var _textTrackEnums = _dereq_('./text-track-enums');
-var _EventTarget = _dereq_('../event-target');
+var TextTrackEnum = _interopRequireWildcard(_textTrackEnums);
-var _EventTarget2 = _interopRequireWildcard(_EventTarget);
+var _utilsLogJs = _dereq_('../utils/log.js');
-var _document = _dereq_('global/document');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _document2 = _interopRequireWildcard(_document);
+var _eventTarget = _dereq_('../event-target');
-var _window = _dereq_('global/window');
+var _eventTarget2 = _interopRequireDefault(_eventTarget);
-var _window2 = _interopRequireWildcard(_window);
+var _globalDocument = _dereq_('global/document');
-var _XHR = _dereq_('../xhr.js');
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var _XHR2 = _interopRequireWildcard(_XHR);
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _xhrJs = _dereq_('../xhr.js');
+
+var _xhrJs2 = _interopRequireDefault(_xhrJs);
/*
* https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack
@@ -14552,18 +14367,8 @@ var _XHR2 = _interopRequireWildcard(_XHR);
* attribute EventHandler oncuechange;
* };
*/
-var TextTrack = (function (_TextTrack) {
- function TextTrack() {
- return _TextTrack.apply(this, arguments);
- }
-
- TextTrack.toString = function () {
- return _TextTrack.toString();
- };
-
- return TextTrack;
-})(function () {
- var options = arguments[0] === undefined ? {} : arguments[0];
+var TextTrack = function TextTrack() {
+ var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];
if (!options.tech) {
throw new Error('A tech was not provided.');
@@ -14571,7 +14376,7 @@ var TextTrack = (function (_TextTrack) {
var tt = this;
if (browser.IS_IE8) {
- tt = _document2['default'].createElement('custom');
+ tt = _globalDocument2['default'].createElement('custom');
for (var prop in TextTrack.prototype) {
tt[prop] = TextTrack.prototype[prop];
@@ -14580,11 +14385,11 @@ var TextTrack = (function (_TextTrack) {
tt.tech_ = options.tech;
- var mode = TextTrackEnum.TextTrackMode[options.mode] || 'disabled';
- var kind = TextTrackEnum.TextTrackKind[options.kind] || 'subtitles';
- var label = options.label || '';
- var language = options.language || options.srclang || '';
- var id = options.id || 'vjs_text_track_' + Guid.newGUID();
+ var mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';
+ var kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';
+ var label = options['label'] || '';
+ var language = options['language'] || options['srclang'] || '';
+ var id = options['id'] || 'vjs_text_track_' + Guid.newGUID();
if (kind === 'metadata' || kind === 'chapters') {
mode = 'hidden';
@@ -14593,14 +14398,14 @@ var TextTrack = (function (_TextTrack) {
tt.cues_ = [];
tt.activeCues_ = [];
- var cues = new _TextTrackCueList2['default'](tt.cues_);
- var activeCues = new _TextTrackCueList2['default'](tt.activeCues_);
+ var cues = new _textTrackCueList2['default'](tt.cues_);
+ var activeCues = new _textTrackCueList2['default'](tt.activeCues_);
var changed = false;
var timeupdateHandler = Fn.bind(tt, function () {
- this.activeCues;
+ this['activeCues'];
if (changed) {
- this.trigger('cuechange');
+ this['trigger']('cuechange');
changed = false;
}
});
@@ -14669,18 +14474,18 @@ var TextTrack = (function (_TextTrack) {
return null;
}
- if (this.cues.length === 0) {
+ if (this['cues'].length === 0) {
return activeCues; // nothing to do
}
var ct = this.tech_.currentTime();
var active = [];
- for (var i = 0, l = this.cues.length; i < l; i++) {
- var cue = this.cues[i];
- if (cue.startTime <= ct && cue.endTime >= ct) {
+ for (var i = 0, l = this['cues'].length; i < l; i++) {
+ var cue = this['cues'][i];
+ if (cue['startTime'] <= ct && cue['endTime'] >= ct) {
active.push(cue);
- } else if (cue.startTime === cue.endTime && cue.startTime <= ct && cue.startTime + 0.5 >= ct) {
+ } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {
active.push(cue);
}
}
@@ -14715,16 +14520,16 @@ var TextTrack = (function (_TextTrack) {
if (browser.IS_IE8) {
return tt;
}
-});
+};
-TextTrack.prototype = Object.create(_EventTarget2['default'].prototype);
+TextTrack.prototype = Object.create(_eventTarget2['default'].prototype);
TextTrack.prototype.constructor = TextTrack;
/*
* cuechange - One or more cues in the track have become active or stopped being active.
*/
TextTrack.prototype.allowedEvents_ = {
- cuechange: 'cuechange'
+ 'cuechange': 'cuechange'
};
TextTrack.prototype.addCue = function (cue) {
@@ -14739,7 +14544,7 @@ TextTrack.prototype.addCue = function (cue) {
}
this.cues_.push(cue);
- this.cues.setCues_(this.cues_);
+ this['cues'].setCues_(this.cues_);
};
TextTrack.prototype.removeCue = function (removeCue) {
@@ -14761,41 +14566,31 @@ TextTrack.prototype.removeCue = function (removeCue) {
/*
* Downloading stuff happens below this point
*/
-var parseCues = (function (_parseCues) {
- function parseCues(_x, _x2) {
- return _parseCues.apply(this, arguments);
- }
-
- parseCues.toString = function () {
- return _parseCues.toString();
- };
-
- return parseCues;
-})(function (srcContent, track) {
- if (typeof _window2['default'].WebVTT !== 'function') {
+var parseCues = function parseCues(srcContent, track) {
+ if (typeof _globalWindow2['default']['WebVTT'] !== 'function') {
//try again a bit later
- return _window2['default'].setTimeout(function () {
+ return _globalWindow2['default'].setTimeout(function () {
parseCues(srcContent, track);
}, 25);
}
- var parser = new _window2['default'].WebVTT.Parser(_window2['default'], _window2['default'].vttjs, _window2['default'].WebVTT.StringDecoder());
+ var parser = new _globalWindow2['default']['WebVTT']['Parser'](_globalWindow2['default'], _globalWindow2['default']['vttjs'], _globalWindow2['default']['WebVTT']['StringDecoder']());
- parser.oncue = function (cue) {
+ parser['oncue'] = function (cue) {
track.addCue(cue);
};
- parser.onparsingerror = function (error) {
- _log2['default'].error(error);
+ parser['onparsingerror'] = function (error) {
+ _utilsLogJs2['default'].error(error);
};
- parser.parse(srcContent);
- parser.flush();
-});
+ parser['parse'](srcContent);
+ parser['flush']();
+};
var loadTrack = function loadTrack(src, track) {
- _XHR2['default'](src, Fn.bind(this, function (err, response, responseBody) {
+ _xhrJs2['default'](src, Fn.bind(this, function (err, response, responseBody) {
if (err) {
- return _log2['default'].error(err);
+ return _utilsLogJs2['default'].error(err, response);
}
track.loaded_ = true;
@@ -14840,25 +14635,27 @@ var indexOf = function indexOf(searchElement, fromIndex) {
exports['default'] = TextTrack;
module.exports = exports['default'];
-},{"../event-target":83,"../utils/browser.js":108,"../utils/fn.js":113,"../utils/guid.js":115,"../utils/log.js":116,"../xhr.js":123,"./text-track-cue-list":101,"./text-track-enums":103,"global/document":1,"global/window":2}],108:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../event-target":79,"../utils/browser.js":104,"../utils/fn.js":109,"../utils/guid.js":111,"../utils/log.js":112,"../xhr.js":119,"./text-track-cue-list":97,"./text-track-enums":99,"global/document":1,"global/window":2}],104:[function(_dereq_,module,exports){
/**
* @file browser.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _window = _dereq_('global/window');
+var _globalDocument = _dereq_('global/document');
-var _window2 = _interopRequireWildcard(_window);
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var USER_AGENT = _window2['default'].navigator.userAgent;
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var USER_AGENT = _globalWindow2['default'].navigator.userAgent;
+var webkitVersionMap = /AppleWebKit\/([\d.]+)/i.exec(USER_AGENT);
+var appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;
/*
* Device is an iPhone
@@ -14911,8 +14708,10 @@ var ANDROID_VERSION = (function () {
exports.ANDROID_VERSION = ANDROID_VERSION;
// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser
var IS_OLD_ANDROID = IS_ANDROID && /webkit/i.test(USER_AGENT) && ANDROID_VERSION < 2.3;
-
exports.IS_OLD_ANDROID = IS_OLD_ANDROID;
+var IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;
+
+exports.IS_NATIVE_ANDROID = IS_NATIVE_ANDROID;
var IS_FIREFOX = /Firefox/i.test(USER_AGENT);
exports.IS_FIREFOX = IS_FIREFOX;
var IS_CHROME = /Chrome/i.test(USER_AGENT);
@@ -14920,15 +14719,21 @@ exports.IS_CHROME = IS_CHROME;
var IS_IE8 = /MSIE\s8\.0/.test(USER_AGENT);
exports.IS_IE8 = IS_IE8;
-var TOUCH_ENABLED = !!('ontouchstart' in _window2['default'] || _window2['default'].DocumentTouch && _document2['default'] instanceof _window2['default'].DocumentTouch);
+var TOUCH_ENABLED = !!('ontouchstart' in _globalWindow2['default'] || _globalWindow2['default'].DocumentTouch && _globalDocument2['default'] instanceof _globalWindow2['default'].DocumentTouch);
exports.TOUCH_ENABLED = TOUCH_ENABLED;
-var BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _document2['default'].createElement('video').style);
+var BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _globalDocument2['default'].createElement('video').style);
exports.BACKGROUND_SIZE_SUPPORTED = BACKGROUND_SIZE_SUPPORTED;
-},{"global/document":1,"global/window":2}],109:[function(_dereq_,module,exports){
+},{"global/document":1,"global/window":2}],105:[function(_dereq_,module,exports){
+/**
+ * @file buffer.js
+ */
'use strict';
exports.__esModule = true;
+exports.bufferedPercent = bufferedPercent;
+
+var _timeRangesJs = _dereq_('./time-ranges.js');
/**
* Compute how much your video has been buffered
@@ -14939,12 +14744,6 @@ exports.__esModule = true;
* @private
* @function bufferedPercent
*/
-exports.bufferedPercent = bufferedPercent;
-/**
- * @file buffer.js
- */
-
-var _createTimeRange = _dereq_('./time-ranges.js');
function bufferedPercent(buffered, duration) {
var bufferedDuration = 0,
@@ -14956,7 +14755,7 @@ function bufferedPercent(buffered, duration) {
}
if (!buffered || !buffered.length) {
- buffered = _createTimeRange.createTimeRange(0, 0);
+ buffered = _timeRangesJs.createTimeRange(0, 0);
}
for (var i = 0; i < buffered.length; i++) {
@@ -14974,16 +14773,16 @@ function bufferedPercent(buffered, duration) {
return bufferedDuration / duration;
}
-},{"./time-ranges.js":119}],110:[function(_dereq_,module,exports){
+},{"./time-ranges.js":115}],106:[function(_dereq_,module,exports){
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
-var _log = _dereq_('./log.js');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _log2 = _interopRequireWildcard(_log);
+var _logJs = _dereq_('./log.js');
+
+var _logJs2 = _interopRequireDefault(_logJs);
/**
* Object containing the default behaviors for available handler methods.
@@ -15016,7 +14815,7 @@ var defaultBehaviors = {
*/
exports['default'] = function (target) {
- var messages = arguments[1] === undefined ? {} : arguments[1];
+ var messages = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
if (typeof Proxy === 'function') {
var _ret = (function () {
@@ -15027,7 +14826,7 @@ exports['default'] = function (target) {
Object.keys(messages).forEach(function (key) {
if (defaultBehaviors.hasOwnProperty(key)) {
handler[key] = function () {
- _log2['default'].warn(messages[key]);
+ _logJs2['default'].warn(messages[key]);
return defaultBehaviors[key].apply(this, arguments);
};
}
@@ -15045,12 +14844,43 @@ exports['default'] = function (target) {
module.exports = exports['default'];
-},{"./log.js":116}],111:[function(_dereq_,module,exports){
+},{"./log.js":112}],107:[function(_dereq_,module,exports){
+/**
+ * @file dom.js
+ */
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
+exports.getEl = getEl;
+exports.createEl = createEl;
+exports.insertElFirst = insertElFirst;
+exports.getElData = getElData;
+exports.hasElData = hasElData;
+exports.removeElData = removeElData;
+exports.hasElClass = hasElClass;
+exports.addElClass = addElClass;
+exports.removeElClass = removeElClass;
+exports.setElAttributes = setElAttributes;
+exports.getElAttributes = getElAttributes;
+exports.blockTextSelection = blockTextSelection;
+exports.unblockTextSelection = unblockTextSelection;
+exports.findElPosition = findElPosition;
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _guidJs = _dereq_('./guid.js');
+
+var Guid = _interopRequireWildcard(_guidJs);
/**
* Shorthand for document.getElementById()
@@ -15060,7 +14890,14 @@ exports.__esModule = true;
* @return {Element} Element with supplied ID
* @function getEl
*/
-exports.getEl = getEl;
+
+function getEl(id) {
+ if (id.indexOf('#') === 0) {
+ id = id.slice(1);
+ }
+
+ return _globalDocument2['default'].getElementById(id);
+}
/**
* Creates an element and applies properties.
@@ -15070,151 +14907,12 @@ exports.getEl = getEl;
* @return {Element}
* @function createEl
*/
-exports.createEl = createEl;
-
-/**
- * Insert an element as the first child node of another
- *
- * @param {Element} child Element to insert
- * @param {Element} parent Element to insert child into
- * @private
- * @function insertElFirst
- */
-exports.insertElFirst = insertElFirst;
-
-/**
- * Returns the cache object where data for an element is stored
- *
- * @param {Element} el Element to store data for.
- * @return {Object}
- * @function getElData
- */
-exports.getElData = getElData;
-
-/**
- * Returns whether or not an element has cached data
- *
- * @param {Element} el A dom element
- * @return {Boolean}
- * @private
- * @function hasElData
- */
-exports.hasElData = hasElData;
-
-/**
- * Delete data for the element from the cache and the guid attr from getElementById
- *
- * @param {Element} el Remove data for an element
- * @private
- * @function removeElData
- */
-exports.removeElData = removeElData;
-
-/**
- * Check if an element has a CSS class
- *
- * @param {Element} element Element to check
- * @param {String} classToCheck Classname to check
- * @function hasElClass
- */
-exports.hasElClass = hasElClass;
-
-/**
- * Add a CSS class name to an element
- *
- * @param {Element} element Element to add class name to
- * @param {String} classToAdd Classname to add
- * @function addElClass
- */
-exports.addElClass = addElClass;
-
-/**
- * Remove a CSS class name from an element
- *
- * @param {Element} element Element to remove from class name
- * @param {String} classToRemove Classname to remove
- * @function removeElClass
- */
-exports.removeElClass = removeElClass;
-
-/**
- * Apply attributes to an HTML element.
- *
- * @param {Element} el Target element.
- * @param {Object=} attributes Element attributes to be applied.
- * @private
- * @function setElAttributes
- */
-exports.setElAttributes = setElAttributes;
-
-/**
- * Get an element's attribute values, as defined on the HTML tag
- * Attributes are not the same as properties. They're defined on the tag
- * or with setAttribute (which shouldn't be used with HTML)
- * This will return true or false for boolean attributes.
- *
- * @param {Element} tag Element from which to get tag attributes
- * @return {Object}
- * @private
- * @function getElAttributes
- */
-exports.getElAttributes = getElAttributes;
-
-/**
- * Attempt to block the ability to select text while dragging controls
- *
- * @return {Boolean}
- * @method blockTextSelection
- */
-exports.blockTextSelection = blockTextSelection;
-
-/**
- * Turn off text selection blocking
- *
- * @return {Boolean}
- * @method unblockTextSelection
- */
-exports.unblockTextSelection = unblockTextSelection;
-
-/**
- * Offset Left
- * getBoundingClientRect technique from
- * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/
- *
- * @param {Element} el Element from which to get offset
- * @return {Object=}
- * @method findElPosition
- */
-exports.findElPosition = findElPosition;
-/**
- * @file dom.js
- */
-
-var _document = _dereq_('global/document');
-
-var _document2 = _interopRequireWildcard(_document);
-
-var _window = _dereq_('global/window');
-
-var _window2 = _interopRequireWildcard(_window);
-
-var _import = _dereq_('./guid.js');
-
-var Guid = _interopRequireWildcard(_import);
-
-function getEl(id) {
- if (id.indexOf('#') === 0) {
- id = id.slice(1);
- }
-
- return _document2['default'].getElementById(id);
-}
function createEl() {
- var tagName = arguments[0] === undefined ? 'div' : arguments[0];
- var properties = arguments[1] === undefined ? {} : arguments[1];
+ var tagName = arguments.length <= 0 || arguments[0] === undefined ? 'div' : arguments[0];
+ var properties = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];
- var el = _document2['default'].createElement(tagName);
+ var el = _globalDocument2['default'].createElement(tagName);
Object.getOwnPropertyNames(properties).forEach(function (propName) {
var val = properties[propName];
@@ -15237,6 +14935,15 @@ function createEl() {
return el;
}
+/**
+ * Insert an element as the first child node of another
+ *
+ * @param {Element} child Element to insert
+ * @param {Element} parent Element to insert child into
+ * @private
+ * @function insertElFirst
+ */
+
function insertElFirst(child, parent) {
if (parent.firstChild) {
parent.insertBefore(child, parent.firstChild);
@@ -15263,6 +14970,15 @@ var elData = {};
* @private
*/
var elIdAttr = 'vdata' + new Date().getTime();
+
+/**
+ * Returns the cache object where data for an element is stored
+ *
+ * @param {Element} el Element to store data for.
+ * @return {Object}
+ * @function getElData
+ */
+
function getElData(el) {
var id = el[elIdAttr];
@@ -15277,6 +14993,15 @@ function getElData(el) {
return elData[id];
}
+/**
+ * Returns whether or not an element has cached data
+ *
+ * @param {Element} el A dom element
+ * @return {Boolean}
+ * @private
+ * @function hasElData
+ */
+
function hasElData(el) {
var id = el[elIdAttr];
@@ -15287,6 +15012,14 @@ function hasElData(el) {
return !!Object.getOwnPropertyNames(elData[id]).length;
}
+/**
+ * Delete data for the element from the cache and the guid attr from getElementById
+ *
+ * @param {Element} el Remove data for an element
+ * @private
+ * @function removeElData
+ */
+
function removeElData(el) {
var id = el[elIdAttr];
@@ -15310,16 +15043,40 @@ function removeElData(el) {
}
}
+/**
+ * Check if an element has a CSS class
+ *
+ * @param {Element} element Element to check
+ * @param {String} classToCheck Classname to check
+ * @function hasElClass
+ */
+
function hasElClass(element, classToCheck) {
return (' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1;
}
+/**
+ * Add a CSS class name to an element
+ *
+ * @param {Element} element Element to add class name to
+ * @param {String} classToAdd Classname to add
+ * @function addElClass
+ */
+
function addElClass(element, classToAdd) {
if (!hasElClass(element, classToAdd)) {
element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;
}
}
+/**
+ * Remove a CSS class name from an element
+ *
+ * @param {Element} element Element to remove from class name
+ * @param {String} classToRemove Classname to remove
+ * @function removeElClass
+ */
+
function removeElClass(element, classToRemove) {
if (!hasElClass(element, classToRemove)) {
return;
@@ -15337,6 +15094,15 @@ function removeElClass(element, classToRemove) {
element.className = classNames.join(' ');
}
+/**
+ * Apply attributes to an HTML element.
+ *
+ * @param {Element} el Target element.
+ * @param {Object=} attributes Element attributes to be applied.
+ * @private
+ * @function setElAttributes
+ */
+
function setElAttributes(el, attributes) {
Object.getOwnPropertyNames(attributes).forEach(function (attrName) {
var attrValue = attributes[attrName];
@@ -15349,6 +15115,18 @@ function setElAttributes(el, attributes) {
});
}
+/**
+ * Get an element's attribute values, as defined on the HTML tag
+ * Attributes are not the same as properties. They're defined on the tag
+ * or with setAttribute (which shouldn't be used with HTML)
+ * This will return true or false for boolean attributes.
+ *
+ * @param {Element} tag Element from which to get tag attributes
+ * @return {Object}
+ * @private
+ * @function getElAttributes
+ */
+
function getElAttributes(tag) {
var obj, knownBooleans, attrs, attrName, attrVal;
@@ -15382,19 +15160,43 @@ function getElAttributes(tag) {
return obj;
}
+/**
+ * Attempt to block the ability to select text while dragging controls
+ *
+ * @return {Boolean}
+ * @method blockTextSelection
+ */
+
function blockTextSelection() {
- _document2['default'].body.focus();
- _document2['default'].onselectstart = function () {
+ _globalDocument2['default'].body.focus();
+ _globalDocument2['default'].onselectstart = function () {
return false;
};
}
+/**
+ * Turn off text selection blocking
+ *
+ * @return {Boolean}
+ * @method unblockTextSelection
+ */
+
function unblockTextSelection() {
- _document2['default'].onselectstart = function () {
+ _globalDocument2['default'].onselectstart = function () {
return true;
};
}
+/**
+ * Offset Left
+ * getBoundingClientRect technique from
+ * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/
+ *
+ * @param {Element} el Element from which to get offset
+ * @return {Object=}
+ * @method findElPosition
+ */
+
function findElPosition(el) {
var box = undefined;
@@ -15409,15 +15211,15 @@ function findElPosition(el) {
};
}
- var docEl = _document2['default'].documentElement;
- var body = _document2['default'].body;
+ var docEl = _globalDocument2['default'].documentElement;
+ var body = _globalDocument2['default'].body;
var clientLeft = docEl.clientLeft || body.clientLeft || 0;
- var scrollLeft = _window2['default'].pageXOffset || body.scrollLeft;
+ var scrollLeft = _globalWindow2['default'].pageXOffset || body.scrollLeft;
var left = box.left + scrollLeft - clientLeft;
var clientTop = docEl.clientTop || body.clientTop || 0;
- var scrollTop = _window2['default'].pageYOffset || body.scrollTop;
+ var scrollTop = _globalWindow2['default'].pageYOffset || body.scrollTop;
var top = box.top + scrollTop - clientTop;
// Android sometimes returns slightly off decimal values, so need to round
@@ -15427,12 +15229,44 @@ function findElPosition(el) {
};
}
-},{"./guid.js":115,"global/document":1,"global/window":2}],112:[function(_dereq_,module,exports){
+},{"./guid.js":111,"global/document":1,"global/window":2}],108:[function(_dereq_,module,exports){
+/**
+ * @file events.js
+ *
+ * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)
+ * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)
+ * This should work very similarly to jQuery's events, however it's based off the book version which isn't as
+ * robust as jquery's, so there's probably some differences.
+ */
+
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
+exports.on = on;
+exports.off = off;
+exports.trigger = trigger;
+exports.one = one;
+exports.fixEvent = fixEvent;
+
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
+
+var _domJs = _dereq_('./dom.js');
+
+var Dom = _interopRequireWildcard(_domJs);
+
+var _guidJs = _dereq_('./guid.js');
+
+var Guid = _interopRequireWildcard(_guidJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* Add an event listener to element
@@ -15445,72 +15279,6 @@ exports.__esModule = true;
* @param {Function} fn Event listener.
* @method on
*/
-exports.on = on;
-
-/**
- * Removes event listeners from an element
- *
- * @param {Element|Object} elem Object to remove listeners from
- * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.
- * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.
- * @method off
- */
-exports.off = off;
-
-/**
- * Trigger an event for an element
- *
- * @param {Element|Object} elem Element to trigger an event on
- * @param {Event|Object|String} event A string (the type) or an event object with a type attribute
- * @param {Object} [hash] data hash to pass along with the event
- * @return {Boolean=} Returned only if default was prevented
- * @method trigger
- */
-exports.trigger = trigger;
-
-/**
- * Trigger a listener only once for an event
- *
- * @param {Element|Object} elem Element or object to
- * @param {String|Array} type Name/type of event
- * @param {Function} fn Event handler function
- * @method one
- */
-exports.one = one;
-
-/**
- * Fix a native event to have standard property values
- *
- * @param {Object} event Event object to fix
- * @return {Object}
- * @private
- * @method fixEvent
- */
-exports.fixEvent = fixEvent;
-/**
- * @file events.js
- *
- * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)
- * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)
- * This should work very similarly to jQuery's events, however it's based off the book version which isn't as
- * robust as jquery's, so there's probably some differences.
- */
-
-var _import = _dereq_('./dom.js');
-
-var Dom = _interopRequireWildcard(_import);
-
-var _import2 = _dereq_('./guid.js');
-
-var Guid = _interopRequireWildcard(_import2);
-
-var _window = _dereq_('global/window');
-
-var _window2 = _interopRequireWildcard(_window);
-
-var _document = _dereq_('global/document');
-
-var _document2 = _interopRequireWildcard(_document);
function on(elem, type, fn) {
if (Array.isArray(type)) {
@@ -15562,11 +15330,20 @@ function on(elem, type, fn) {
}
}
+/**
+ * Removes event listeners from an element
+ *
+ * @param {Element|Object} elem Object to remove listeners from
+ * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.
+ * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.
+ * @method off
+ */
+
function off(elem, type, fn) {
// Don't want to add a cache object through getElData if not needed
- if (!Dom.hasElData(elem)) {
- return;
- }var data = Dom.getElData(elem);
+ if (!Dom.hasElData(elem)) return;
+
+ var data = Dom.getElData(elem);
// If no events exist, nothing to unbind
if (!data.handlers) {
@@ -15593,9 +15370,9 @@ function off(elem, type, fn) {
var handlers = data.handlers[type];
// If no handlers exist, nothing to unbind
- if (!handlers) {
- return;
- } // If no listener was provided, remove all listeners for type
+ if (!handlers) return;
+
+ // If no listener was provided, remove all listeners for type
if (!fn) {
removeType(type);
return;
@@ -15613,6 +15390,16 @@ function off(elem, type, fn) {
_cleanUpEvents(elem, type);
}
+/**
+ * Trigger an event for an element
+ *
+ * @param {Element|Object} elem Element to trigger an event on
+ * @param {Event|Object|String} event A string (the type) or an event object with a type attribute
+ * @param {Object} [hash] data hash to pass along with the event
+ * @return {Boolean=} Returned only if default was prevented
+ * @method trigger
+ */
+
function trigger(elem, event, hash) {
// Fetches element data and a reference to the parent (for bubbling).
// Don't want to add a data object to cache for every parent,
@@ -15641,48 +15428,56 @@ function trigger(elem, event, hash) {
// If at the top of the DOM, triggers the default action unless disabled.
} else if (!parent && !event.defaultPrevented) {
- var targetData = Dom.getElData(event.target);
+ var targetData = Dom.getElData(event.target);
- // Checks if the target has a default action for this event.
- if (event.target[event.type]) {
- // Temporarily disables event dispatching on the target as we have already executed the handler.
- targetData.disabled = true;
- // Executes the default action.
- if (typeof event.target[event.type] === 'function') {
- event.target[event.type]();
+ // Checks if the target has a default action for this event.
+ if (event.target[event.type]) {
+ // Temporarily disables event dispatching on the target as we have already executed the handler.
+ targetData.disabled = true;
+ // Executes the default action.
+ if (typeof event.target[event.type] === 'function') {
+ event.target[event.type]();
+ }
+ // Re-enables event dispatching.
+ targetData.disabled = false;
}
- // Re-enables event dispatching.
- targetData.disabled = false;
}
- }
// Inform the triggerer if the default was prevented by returning false
return !event.defaultPrevented;
}
+/**
+ * Trigger a listener only once for an event
+ *
+ * @param {Element|Object} elem Element or object to
+ * @param {String|Array} type Name/type of event
+ * @param {Function} fn Event handler function
+ * @method one
+ */
+
function one(elem, type, fn) {
if (Array.isArray(type)) {
return _handleMultipleEvents(one, elem, type, fn);
}
- var func = (function (_func) {
- function func() {
- return _func.apply(this, arguments);
- }
-
- func.toString = function () {
- return _func.toString();
- };
-
- return func;
- })(function () {
+ var func = function func() {
off(elem, type, func);
fn.apply(this, arguments);
- });
+ };
// copy the guid to the new function so it can removed using the original function's ID
func.guid = fn.guid = fn.guid || Guid.newGUID();
on(elem, type, func);
}
+/**
+ * Fix a native event to have standard property values
+ *
+ * @param {Object} event Event object to fix
+ * @return {Object}
+ * @private
+ * @method fixEvent
+ */
+
function fixEvent(event) {
function returnTrue() {
@@ -15698,7 +15493,7 @@ function fixEvent(event) {
// other expected methods like isPropagationStopped. Seems to be a problem
// with the Javascript Ninja code. So we're just overriding all events now.
if (!event || !event.isPropagationStopped) {
- var old = event || _window2['default'].event;
+ var old = event || _globalWindow2['default'].event;
event = {};
// Clone the old object so that we can modify the values event = {};
@@ -15720,7 +15515,7 @@ function fixEvent(event) {
// The event occurred on this element
if (!event.target) {
- event.target = event.srcElement || _document2['default'];
+ event.target = event.srcElement || _globalDocument2['default'];
}
// Handle which other element the event is related to
@@ -15763,8 +15558,8 @@ function fixEvent(event) {
// Handle mouse position
if (event.clientX != null) {
- var doc = _document2['default'].documentElement,
- body = _document2['default'].body;
+ var doc = _globalDocument2['default'].documentElement,
+ body = _globalDocument2['default'].body;
event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);
event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);
@@ -15839,15 +15634,15 @@ function _handleMultipleEvents(fn, elem, types, callback) {
});
}
-},{"./dom.js":111,"./guid.js":115,"global/document":1,"global/window":2}],113:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"./dom.js":107,"./guid.js":111,"global/document":1,"global/window":2}],109:[function(_dereq_,module,exports){
/**
* @file fn.js
*/
+'use strict';
-var _newGUID = _dereq_('./guid.js');
+exports.__esModule = true;
+
+var _guidJs = _dereq_('./guid.js');
/**
* Bind (a.k.a proxy or Context). A simple method for changing the context of a function
@@ -15863,7 +15658,7 @@ var _newGUID = _dereq_('./guid.js');
var bind = function bind(context, fn, uid) {
// Make sure the function has a unique ID
if (!fn.guid) {
- fn.guid = _newGUID.newGUID();
+ fn.guid = _guidJs.newGUID();
}
// Create the new function that changes the context
@@ -15883,10 +15678,7 @@ var bind = function bind(context, fn, uid) {
};
exports.bind = bind;
-},{"./guid.js":115}],114:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"./guid.js":111}],110:[function(_dereq_,module,exports){
/**
* @file format-time.js
*
@@ -15900,8 +15692,11 @@ exports.__esModule = true;
* @private
* @function formatTime
*/
+'use strict';
+
+exports.__esModule = true;
function formatTime(seconds) {
- var guide = arguments[1] === undefined ? seconds : arguments[1];
+ var guide = arguments.length <= 1 || arguments[1] === undefined ? seconds : arguments[1];
return (function () {
var s = Math.floor(seconds % 60);
var m = Math.floor(seconds / 60 % 60);
@@ -15933,18 +15728,7 @@ function formatTime(seconds) {
exports['default'] = formatTime;
module.exports = exports['default'];
-},{}],115:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
-
-/**
- * Get the next unique ID
- *
- * @return {String}
- * @function newGUID
- */
-exports.newGUID = newGUID;
+},{}],111:[function(_dereq_,module,exports){
/**
* @file guid.js
*
@@ -15952,24 +15736,36 @@ exports.newGUID = newGUID;
* @type {Number}
* @private
*/
+"use strict";
+
+exports.__esModule = true;
+exports.newGUID = newGUID;
var _guid = 1;
+
+/**
+ * Get the next unique ID
+ *
+ * @return {String}
+ * @function newGUID
+ */
+
function newGUID() {
return _guid++;
}
-},{}],116:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{}],112:[function(_dereq_,module,exports){
/**
* @file log.js
*/
+'use strict';
-var _window = _dereq_('global/window');
+exports.__esModule = true;
-var _window2 = _interopRequireWildcard(_window);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/**
* Log plain debug messages
@@ -16015,10 +15811,10 @@ function _logType(type, args) {
// in the function makes it easier to test cases where console doesn't exist
var noop = function noop() {};
- var console = _window2['default'].console || {
- log: noop,
- warn: noop,
- error: noop
+ var console = _globalWindow2['default']['console'] || {
+ 'log': noop,
+ 'warn': noop,
+ 'error': noop
};
if (type) {
@@ -16047,30 +15843,20 @@ function _logType(type, args) {
exports['default'] = log;
module.exports = exports['default'];
-},{"global/window":2}],117:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
-
-/**
- * Merge one or more options objects, recursively merging **only**
- * plain object properties. Previously `deepMerge`.
- *
- * @param {...Object} source One or more objects to merge
- * @returns {Object} a new object that is the union of all
- * provided objects
- * @function mergeOptions
- */
-exports['default'] = mergeOptions;
+},{"global/window":2}],113:[function(_dereq_,module,exports){
/**
* @file merge-options.js
*/
+'use strict';
-var _merge = _dereq_('lodash-compat/object/merge');
+exports.__esModule = true;
+exports['default'] = mergeOptions;
-var _merge2 = _interopRequireWildcard(_merge);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');
+
+var _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);
function isPlain(obj) {
return !!obj && typeof obj === 'object' && obj.toString() === '[object Object]' && obj.constructor === Object;
@@ -16097,6 +15883,17 @@ var customizer = function customizer(destination, source) {
return mergeOptions(source);
}
};
+
+/**
+ * Merge one or more options objects, recursively merging **only**
+ * plain object properties. Previously `deepMerge`.
+ *
+ * @param {...Object} source One or more objects to merge
+ * @returns {Object} a new object that is the union of all
+ * provided objects
+ * @function mergeOptions
+ */
+
function mergeOptions() {
// contruct the call dynamically to handle the variable number of
// objects to merge
@@ -16109,7 +15906,7 @@ function mergeOptions() {
// customize conflict resolution to match our historical merge behavior
args.push(customizer);
- _merge2['default'].apply(null, args);
+ _lodashCompatObjectMerge2['default'].apply(null, args);
// return the mutated result object
return args[0];
@@ -16117,19 +15914,19 @@ function mergeOptions() {
module.exports = exports['default'];
-},{"lodash-compat/object/merge":40}],118:[function(_dereq_,module,exports){
+},{"lodash-compat/object/merge":37}],114:[function(_dereq_,module,exports){
'use strict';
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
exports.__esModule = true;
-var _document = _dereq_('global/document');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _document2 = _interopRequireWildcard(_document);
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
var createStyleElement = function createStyleElement(className) {
- var style = _document2['default'].createElement('style');
+ var style = _globalDocument2['default'].createElement('style');
style.className = className;
return style;
@@ -16145,10 +15942,7 @@ var setTextContent = function setTextContent(el, content) {
};
exports.setTextContent = setTextContent;
-},{"global/document":1}],119:[function(_dereq_,module,exports){
-'use strict';
-
-exports.__esModule = true;
+},{"global/document":1}],115:[function(_dereq_,module,exports){
/**
* @file time-ranges.js
*
@@ -16163,10 +15957,13 @@ exports.__esModule = true;
* @private
* @method createTimeRange
*/
+'use strict';
+
+exports.__esModule = true;
exports.createTimeRange = createTimeRange;
-function createTimeRange(start, end) {
- if (start === undefined && end === undefined) {
+function createTimeRange(_start, _end) {
+ if (_start === undefined && _end === undefined) {
return {
length: 0,
start: function start() {
@@ -16179,39 +15976,16 @@ function createTimeRange(start, end) {
}
return {
length: 1,
- start: (function (_start) {
- function start() {
- return _start.apply(this, arguments);
- }
-
- start.toString = function () {
- return _start.toString();
- };
-
- return start;
- })(function () {
- return start;
- }),
- end: (function (_end) {
- function end() {
- return _end.apply(this, arguments);
- }
-
- end.toString = function () {
- return _end.toString();
- };
-
- return end;
- })(function () {
- return end;
- })
+ start: function start() {
+ return _start;
+ },
+ end: function end() {
+ return _end;
+ }
};
}
-},{}],120:[function(_dereq_,module,exports){
-"use strict";
-
-exports.__esModule = true;
+},{}],116:[function(_dereq_,module,exports){
/**
* @file to-title-case.js
*
@@ -16222,6 +15996,9 @@ exports.__esModule = true;
* @private
* @method toTitleCase
*/
+"use strict";
+
+exports.__esModule = true;
function toTitleCase(string) {
return string.charAt(0).toUpperCase() + string.slice(1);
}
@@ -16229,19 +16006,19 @@ function toTitleCase(string) {
exports["default"] = toTitleCase;
module.exports = exports["default"];
-},{}],121:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{}],117:[function(_dereq_,module,exports){
/**
* @file url.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
+
+var _globalDocument = _dereq_('global/document');
+
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
/**
* Resolve and parse the elements of a URL
@@ -16254,7 +16031,7 @@ var parseUrl = function parseUrl(url) {
var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];
// add the url to an anchor and let the browser parse the URL
- var a = _document2['default'].createElement('a');
+ var a = _globalDocument2['default'].createElement('a');
a.href = url;
// IE8 (and 9?) Fix
@@ -16263,12 +16040,12 @@ var parseUrl = function parseUrl(url) {
var addToBody = a.host === '' && a.protocol !== 'file:';
var div = undefined;
if (addToBody) {
- div = _document2['default'].createElement('div');
+ div = _globalDocument2['default'].createElement('div');
div.innerHTML = '';
a = div.firstChild;
// prevent the div from affecting layout
div.setAttribute('style', 'display:none; position:absolute;');
- _document2['default'].body.appendChild(div);
+ _globalDocument2['default'].body.appendChild(div);
}
// Copy the specific URL properties to a new object
@@ -16289,7 +16066,7 @@ var parseUrl = function parseUrl(url) {
}
if (addToBody) {
- _document2['default'].body.removeChild(div);
+ _globalDocument2['default'].body.removeChild(div);
}
return details;
@@ -16309,7 +16086,7 @@ var getAbsoluteURL = function getAbsoluteURL(url) {
// Check if absolute URL
if (!url.match(/^https?:\/\//)) {
// Convert to absolute URL. Flash hosted off-site needs an absolute URL.
- var div = _document2['default'].createElement('div');
+ var div = _globalDocument2['default'].createElement('div');
div.innerHTML = 'x';
url = div.firstChild.href;
}
@@ -16339,113 +16116,115 @@ var getFileExtension = function getFileExtension(path) {
};
exports.getFileExtension = getFileExtension;
-},{"global/document":1}],122:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"global/document":1}],118:[function(_dereq_,module,exports){
/**
* @file video.js
*/
+'use strict';
-var _document = _dereq_('global/document');
+exports.__esModule = true;
-var _document2 = _interopRequireWildcard(_document);
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _import = _dereq_('./setup');
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var setup = _interopRequireWildcard(_import);
+var _globalDocument = _dereq_('global/document');
-var _import2 = _dereq_('./utils/stylesheet.js');
+var _globalDocument2 = _interopRequireDefault(_globalDocument);
-var stylesheet = _interopRequireWildcard(_import2);
+var _setup = _dereq_('./setup');
-var _Component = _dereq_('./component');
+var setup = _interopRequireWildcard(_setup);
-var _Component2 = _interopRequireWildcard(_Component);
+var _utilsStylesheetJs = _dereq_('./utils/stylesheet.js');
-var _EventTarget = _dereq_('./event-target');
+var stylesheet = _interopRequireWildcard(_utilsStylesheetJs);
-var _EventTarget2 = _interopRequireWildcard(_EventTarget);
+var _component = _dereq_('./component');
-var _import3 = _dereq_('./utils/events.js');
+var _component2 = _interopRequireDefault(_component);
-var Events = _interopRequireWildcard(_import3);
+var _eventTarget = _dereq_('./event-target');
-var _Player = _dereq_('./player');
+var _eventTarget2 = _interopRequireDefault(_eventTarget);
-var _Player2 = _interopRequireWildcard(_Player);
+var _utilsEventsJs = _dereq_('./utils/events.js');
-var _plugin = _dereq_('./plugins.js');
+var Events = _interopRequireWildcard(_utilsEventsJs);
-var _plugin2 = _interopRequireWildcard(_plugin);
+var _player = _dereq_('./player');
-var _mergeOptions = _dereq_('../../src/js/utils/merge-options.js');
+var _player2 = _interopRequireDefault(_player);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _pluginsJs = _dereq_('./plugins.js');
-var _import4 = _dereq_('./utils/fn.js');
+var _pluginsJs2 = _interopRequireDefault(_pluginsJs);
-var Fn = _interopRequireWildcard(_import4);
+var _srcJsUtilsMergeOptionsJs = _dereq_('../../src/js/utils/merge-options.js');
-var _assign = _dereq_('object.assign');
+var _srcJsUtilsMergeOptionsJs2 = _interopRequireDefault(_srcJsUtilsMergeOptionsJs);
-var _assign2 = _interopRequireWildcard(_assign);
+var _utilsFnJs = _dereq_('./utils/fn.js');
-var _createTimeRange = _dereq_('./utils/time-ranges.js');
+var Fn = _interopRequireWildcard(_utilsFnJs);
-var _formatTime = _dereq_('./utils/format-time.js');
+var _objectAssign = _dereq_('object.assign');
-var _formatTime2 = _interopRequireWildcard(_formatTime);
+var _objectAssign2 = _interopRequireDefault(_objectAssign);
-var _log = _dereq_('./utils/log.js');
+var _utilsTimeRangesJs = _dereq_('./utils/time-ranges.js');
-var _log2 = _interopRequireWildcard(_log);
+var _utilsFormatTimeJs = _dereq_('./utils/format-time.js');
-var _xhr = _dereq_('./xhr.js');
+var _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);
-var _xhr2 = _interopRequireWildcard(_xhr);
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _import5 = _dereq_('./utils/dom.js');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var Dom = _interopRequireWildcard(_import5);
+var _xhrJs = _dereq_('./xhr.js');
-var _import6 = _dereq_('./utils/browser.js');
+var _xhrJs2 = _interopRequireDefault(_xhrJs);
-var browser = _interopRequireWildcard(_import6);
+var _utilsDomJs = _dereq_('./utils/dom.js');
-var _import7 = _dereq_('./utils/url.js');
+var Dom = _interopRequireWildcard(_utilsDomJs);
-var Url = _interopRequireWildcard(_import7);
+var _utilsBrowserJs = _dereq_('./utils/browser.js');
-var _extendsFn = _dereq_('./extends.js');
+var browser = _interopRequireWildcard(_utilsBrowserJs);
-var _extendsFn2 = _interopRequireWildcard(_extendsFn);
+var _utilsUrlJs = _dereq_('./utils/url.js');
-var _merge2 = _dereq_('lodash-compat/object/merge');
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _merge3 = _interopRequireWildcard(_merge2);
+var _extendsJs = _dereq_('./extends.js');
-var _createDeprecationProxy = _dereq_('./utils/create-deprecation-proxy.js');
+var _extendsJs2 = _interopRequireDefault(_extendsJs);
-var _createDeprecationProxy2 = _interopRequireWildcard(_createDeprecationProxy);
+var _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');
+
+var _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);
+
+var _utilsCreateDeprecationProxyJs = _dereq_('./utils/create-deprecation-proxy.js');
+
+var _utilsCreateDeprecationProxyJs2 = _interopRequireDefault(_utilsCreateDeprecationProxyJs);
// Include the built-in techs
-var _Html5 = _dereq_('./tech/html5.js');
+var _techHtml5Js = _dereq_('./tech/html5.js');
-var _Html52 = _interopRequireWildcard(_Html5);
+var _techHtml5Js2 = _interopRequireDefault(_techHtml5Js);
-var _Flash = _dereq_('./tech/flash.js');
+var _techFlashJs = _dereq_('./tech/flash.js');
-var _Flash2 = _interopRequireWildcard(_Flash);
+var _techFlashJs2 = _interopRequireDefault(_techFlashJs);
// HTML5 Element Shim for IE8
if (typeof HTMLVideoElement === 'undefined') {
- _document2['default'].createElement('video');
- _document2['default'].createElement('audio');
- _document2['default'].createElement('track');
+ _globalDocument2['default'].createElement('video');
+ _globalDocument2['default'].createElement('audio');
+ _globalDocument2['default'].createElement('track');
}
/**
@@ -16463,17 +16242,7 @@ if (typeof HTMLVideoElement === 'undefined') {
* @mixes videojs
* @method videojs
*/
-var videojs = (function (_videojs) {
- function videojs(_x, _x2, _x3) {
- return _videojs.apply(this, arguments);
- }
-
- videojs.toString = function () {
- return _videojs.toString();
- };
-
- return videojs;
-})(function (id, options, ready) {
+var videojs = function videojs(id, options, ready) {
var tag; // Element of ID
// Allow for element or ID to be passed in
@@ -16490,7 +16259,7 @@ var videojs = (function (_videojs) {
// If options or ready funtion are passed, warn
if (options) {
- _log2['default'].warn('Player "' + id + '" is already initialised. Options will not be applied.');
+ _utilsLogJs2['default'].warn('Player "' + id + '" is already initialised. Options will not be applied.');
}
if (ready) {
@@ -16501,13 +16270,13 @@ var videojs = (function (_videojs) {
// Otherwise get element for ID
} else {
- tag = Dom.getEl(id);
- }
+ tag = Dom.getEl(id);
+ }
// ID is a media element
} else {
- tag = id;
- }
+ tag = id;
+ }
// Check for a useable element
if (!tag || !tag.nodeName) {
@@ -16517,12 +16286,12 @@ var videojs = (function (_videojs) {
// Element may have a player attr referring to an already created player instance.
// If not, set up a new player and return the instance.
- return tag.player || new _Player2['default'](tag, options, ready);
-});
+ return tag['player'] || new _player2['default'](tag, options, ready);
+};
// Add default styles
var style = stylesheet.createStyleElement('vjs-styles-defaults');
-var head = _document2['default'].querySelector('head');
+var head = _globalDocument2['default'].querySelector('head');
head.insertBefore(style, head.firstChild);
stylesheet.setTextContent(style, '\n .video-js {\n width: 300px;\n height: 150px;\n');
@@ -16535,7 +16304,7 @@ setup.autoSetupTimeout(1, videojs);
*
* @type {String}
*/
-videojs.VERSION = '5.0.0-rc.59';
+videojs.VERSION = '5.0.0-rc.72';
/**
* The global options object. These are the settings that take effect
@@ -16548,7 +16317,7 @@ videojs.VERSION = '5.0.0-rc.59';
*
* @type {Object}
*/
-videojs.options = _Player2['default'].prototype.options_;
+videojs.options = _player2['default'].prototype.options_;
/**
* Get an object with the currently created players, keyed by player ID
@@ -16558,7 +16327,7 @@ videojs.options = _Player2['default'].prototype.options_;
* @method getPlayers
*/
videojs.getPlayers = function () {
- return _Player2['default'].players;
+ return _player2['default'].players;
};
/**
@@ -16568,7 +16337,7 @@ videojs.getPlayers = function () {
* @memberOf videojs
* @property {Object|Proxy} players
*/
-videojs.players = _createDeprecationProxy2['default'](_Player2['default'].players, {
+videojs.players = _utilsCreateDeprecationProxyJs2['default'](_player2['default'].players, {
get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',
set: 'Modification of videojs.players is deprecated'
});
@@ -16585,7 +16354,7 @@ videojs.players = _createDeprecationProxy2['default'](_Player2['default'].player
* @mixes videojs
* @method getComponent
*/
-videojs.getComponent = _Component2['default'].getComponent;
+videojs.getComponent = _component2['default'].getComponent;
/**
* Register a component so it can referred to by name
@@ -16613,7 +16382,7 @@ videojs.getComponent = _Component2['default'].getComponent;
* @mixes videojs
* @method registerComponent
*/
-videojs.registerComponent = _Component2['default'].registerComponent;
+videojs.registerComponent = _component2['default'].registerComponent;
/**
* A suite of browser and device tests
@@ -16666,7 +16435,7 @@ videojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;
* @mixes videojs
* @method extends
*/
-videojs['extends'] = _extendsFn2['default'];
+videojs['extends'] = _extendsJs2['default'];
/**
* Merge two options objects recursively
@@ -16701,7 +16470,7 @@ videojs['extends'] = _extendsFn2['default'];
* @mixes videojs
* @method mergeOptions
*/
-videojs.mergeOptions = _mergeOptions2['default'];
+videojs.mergeOptions = _srcJsUtilsMergeOptionsJs2['default'];
/**
* Change the context (this) of a function
@@ -16765,7 +16534,7 @@ videojs.bind = Fn.bind;
* @mixes videojs
* @method plugin
*/
-videojs.plugin = _plugin2['default'];
+videojs.plugin = _pluginsJs2['default'];
/**
* Adding languages so that they're available to all players.
@@ -16783,7 +16552,7 @@ videojs.addLanguage = function (code, data) {
var _merge;
code = ('' + code).toLowerCase();
- return _merge3['default'](videojs.options.languages, (_merge = {}, _merge[code] = data, _merge))[code];
+ return _lodashCompatObjectMerge2['default'](videojs.options.languages, (_merge = {}, _merge[code] = data, _merge))[code];
};
/**
@@ -16791,7 +16560,7 @@ videojs.addLanguage = function (code, data) {
*
* @param {...Object} messages One or more messages to log
*/
-videojs.log = _log2['default'];
+videojs.log = _utilsLogJs2['default'];
/**
* Creates an emulated TimeRange object.
@@ -16801,7 +16570,7 @@ videojs.log = _log2['default'];
* @return {Object} Fake TimeRange object
* @method createTimeRange
*/
-videojs.createTimeRange = _createTimeRange.createTimeRange;
+videojs.createTimeRange = _utilsTimeRangesJs.createTimeRange;
/**
* Format seconds as a time string, H:MM:SS or M:SS
@@ -16813,7 +16582,7 @@ videojs.createTimeRange = _createTimeRange.createTimeRange;
* @return {String} Time formatted as H:MM:SS or M:SS
* @method formatTime
*/
-videojs.formatTime = _formatTime2['default'];
+videojs.formatTime = _utilsFormatTimeJs2['default'];
/**
* Simple http request for retrieving external files (e.g. text tracks)
@@ -16844,7 +16613,7 @@ videojs.formatTime = _formatTime2['default'];
* @param {Function} callback The callback function
* @returns {Object} The request
*/
-videojs.xhr = _xhr2['default'];
+videojs.xhr = _xhrJs2['default'];
/**
* Resolve and parse the elements of a URL
@@ -16860,7 +16629,7 @@ videojs.parseUrl = Url.parseUrl;
*
* @type {Function}
*/
-videojs.EventTarget = _EventTarget2['default'];
+videojs.EventTarget = _eventTarget2['default'];
/**
* Add an event listener to element
@@ -16930,44 +16699,46 @@ videojs.trigger = Events.trigger;
* still support requirejs and browserify. This also needs to be closure
* compiler compatible, so string keys are used.
*/
-if (typeof define === 'function' && define.amd) {
+if (typeof define === 'function' && define['amd']) {
define('videojs', [], function () {
return videojs;
});
// checking that module is an object too because of umdjs/umd#35
} else if (typeof exports === 'object' && typeof module === 'object') {
- module.exports = videojs;
-}
+ module['exports'] = videojs;
+ }
exports['default'] = videojs;
module.exports = exports['default'];
-},{"../../src/js/utils/merge-options.js":117,"./component":52,"./event-target":83,"./extends.js":84,"./player":91,"./plugins.js":92,"./setup":94,"./tech/flash.js":97,"./tech/html5.js":98,"./utils/browser.js":108,"./utils/create-deprecation-proxy.js":110,"./utils/dom.js":111,"./utils/events.js":112,"./utils/fn.js":113,"./utils/format-time.js":114,"./utils/log.js":116,"./utils/stylesheet.js":118,"./utils/time-ranges.js":119,"./utils/url.js":121,"./xhr.js":123,"global/document":1,"lodash-compat/object/merge":40,"object.assign":44}],123:[function(_dereq_,module,exports){
-'use strict';
-
-var _interopRequireWildcard = function (obj) { return obj && obj.__esModule ? obj : { 'default': obj }; };
-
-exports.__esModule = true;
+},{"../../src/js/utils/merge-options.js":113,"./component":48,"./event-target":79,"./extends.js":80,"./player":87,"./plugins.js":88,"./setup":90,"./tech/flash.js":93,"./tech/html5.js":94,"./utils/browser.js":104,"./utils/create-deprecation-proxy.js":106,"./utils/dom.js":107,"./utils/events.js":108,"./utils/fn.js":109,"./utils/format-time.js":110,"./utils/log.js":112,"./utils/stylesheet.js":114,"./utils/time-ranges.js":115,"./utils/url.js":117,"./xhr.js":119,"global/document":1,"lodash-compat/object/merge":37,"object.assign":40}],119:[function(_dereq_,module,exports){
/**
* @file xhr.js
*/
+'use strict';
-var _import = _dereq_('./utils/url.js');
+exports.__esModule = true;
-var Url = _interopRequireWildcard(_import);
+function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }
-var _log = _dereq_('./utils/log.js');
+function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }
-var _log2 = _interopRequireWildcard(_log);
+var _utilsUrlJs = _dereq_('./utils/url.js');
-var _mergeOptions = _dereq_('./utils/merge-options.js');
+var Url = _interopRequireWildcard(_utilsUrlJs);
-var _mergeOptions2 = _interopRequireWildcard(_mergeOptions);
+var _utilsLogJs = _dereq_('./utils/log.js');
-var _window = _dereq_('global/window');
+var _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);
-var _window2 = _interopRequireWildcard(_window);
+var _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');
+
+var _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);
+
+var _globalWindow = _dereq_('global/window');
+
+var _globalWindow2 = _interopRequireDefault(_globalWindow);
/*
* Simple http request for retrieving external files (e.g. text tracks)
@@ -17008,26 +16779,26 @@ var xhr = function xhr(options, callback) {
}
// Merge with default options
- options = _mergeOptions2['default']({
+ options = _utilsMergeOptionsJs2['default']({
method: 'GET',
timeout: 45 * 1000
}, options);
callback = callback || function () {};
- var XHR = _window2['default'].XMLHttpRequest;
+ var XHR = _globalWindow2['default'].XMLHttpRequest;
if (typeof XHR === 'undefined') {
// Shim XMLHttpRequest for older IEs
XHR = function () {
try {
- return new _window2['default'].ActiveXObject('Msxml2.XMLHTTP.6.0');
+ return new _globalWindow2['default'].ActiveXObject('Msxml2.XMLHTTP.6.0');
} catch (e) {}
try {
- return new _window2['default'].ActiveXObject('Msxml2.XMLHTTP.3.0');
+ return new _globalWindow2['default'].ActiveXObject('Msxml2.XMLHTTP.3.0');
} catch (f) {}
try {
- return new _window2['default'].ActiveXObject('Msxml2.XMLHTTP');
+ return new _globalWindow2['default'].ActiveXObject('Msxml2.XMLHTTP');
} catch (g) {}
throw new Error('This browser does not support XMLHttpRequest.');
};
@@ -17038,18 +16809,18 @@ var xhr = function xhr(options, callback) {
request.uri = options.uri;
var urlInfo = Url.parseUrl(options.uri);
- var winLoc = _window2['default'].location;
+ var winLoc = _globalWindow2['default'].location;
var successHandler = function successHandler() {
- _window2['default'].clearTimeout(abortTimeout);
+ _globalWindow2['default'].clearTimeout(abortTimeout);
callback(null, request, request.response || request.responseText);
};
var errorHandler = function errorHandler(err) {
- _window2['default'].clearTimeout(abortTimeout);
+ _globalWindow2['default'].clearTimeout(abortTimeout);
if (!err || typeof err === 'string') {
- err = new Error(err);
+ err = new Error(err || 'XHR Failed with a response of: ' + (request && (request.response || request.responseText)));
}
callback(err, request);
@@ -17062,8 +16833,8 @@ var xhr = function xhr(options, callback) {
// XDomainRequest -- Use for IE if XMLHTTPRequest2 isn't available
// 'withCredentials' is only available in XMLHTTPRequest2
// Also XDomainRequest has a lot of gotchas, so only use if cross domain
- if (crossOrigin && _window2['default'].XDomainRequest && !('withCredentials' in request)) {
- request = new _window2['default'].XDomainRequest();
+ if (crossOrigin && _globalWindow2['default'].XDomainRequest && !('withCredentials' in request)) {
+ request = new _globalWindow2['default'].XDomainRequest();
request.onload = successHandler;
request.onerror = errorHandler;
// These blank handlers need to be set to fix ie9
@@ -17073,33 +16844,33 @@ var xhr = function xhr(options, callback) {
// XMLHTTPRequest
} else {
- (function () {
- var fileUrl = urlInfo.protocol === 'file:' || winLoc.protocol === 'file:';
+ (function () {
+ var fileUrl = urlInfo.protocol === 'file:' || winLoc.protocol === 'file:';
- request.onreadystatechange = function () {
- if (request.readyState === 4) {
- if (request.timedout) {
- return errorHandler('timeout');
- }
+ request.onreadystatechange = function () {
+ if (request.readyState === 4) {
+ if (request.timedout) {
+ return errorHandler('timeout');
+ }
- if (request.status === 200 || fileUrl && request.status === 0) {
- successHandler();
- } else {
- errorHandler();
+ if (request.status === 200 || fileUrl && request.status === 0) {
+ successHandler();
+ } else {
+ errorHandler();
+ }
}
+ };
+
+ if (options.timeout) {
+ abortTimeout = _globalWindow2['default'].setTimeout(function () {
+ if (request.readyState !== 4) {
+ request.timedout = true;
+ request.abort();
+ }
+ }, options.timeout);
}
- };
-
- if (options.timeout) {
- abortTimeout = _window2['default'].setTimeout(function () {
- if (request.readyState !== 4) {
- request.timedout = true;
- request.abort();
- }
- }, options.timeout);
- }
- })();
- }
+ })();
+ }
// open the connection
try {
@@ -17131,7 +16902,7 @@ var xhr = function xhr(options, callback) {
exports['default'] = xhr;
module.exports = exports['default'];
-},{"./utils/log.js":116,"./utils/merge-options.js":117,"./utils/url.js":121,"global/window":2}]},{},[122])(122)
+},{"./utils/log.js":112,"./utils/merge-options.js":113,"./utils/url.js":117,"global/window":2}]},{},[118])(118)
});