/
clappr.plainhtml5.js.map
1 lines (1 loc) · 794 KB
/
clappr.plainhtml5.js.map
1
{"version":3,"file":"clappr.plainhtml5.js","sources":["../node_modules/@clappr/core/dist/clappr-core.esm.js","../node_modules/@clappr/plugins/dist/clappr-plugins.esm.js","../src/base_bundle.js"],"sourcesContent":["function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n _typeof = function (obj) {\n return typeof obj;\n };\n } else {\n _typeof = function (obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n }\n\n return _typeof(obj);\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _isNativeReflectConstruct() {\n if (typeof Reflect === \"undefined\" || !Reflect.construct) return false;\n if (Reflect.construct.sham) return false;\n if (typeof Proxy === \"function\") return true;\n\n try {\n Date.prototype.toString.call(Reflect.construct(Date, [], function () {}));\n return true;\n } catch (e) {\n return false;\n }\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _createSuper(Derived) {\n var hasNativeReflectConstruct = _isNativeReflectConstruct();\n\n return function _createSuperInternal() {\n var Super = _getPrototypeOf(Derived),\n result;\n\n if (hasNativeReflectConstruct) {\n var NewTarget = _getPrototypeOf(this).constructor;\n\n result = Reflect.construct(Super, arguments, NewTarget);\n } else {\n result = Super.apply(this, arguments);\n }\n\n return _possibleConstructorReturn(this, result);\n };\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nfunction _slicedToArray(arr, i) {\n return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest();\n}\n\nfunction _toConsumableArray(arr) {\n return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _unsupportedIterableToArray(arr) || _nonIterableSpread();\n}\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return _arrayLikeToArray(arr);\n}\n\nfunction _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nfunction _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && Symbol.iterator in Object(iter)) return Array.from(iter);\n}\n\nfunction _iterableToArrayLimit(arr, i) {\n if (typeof Symbol === \"undefined\" || !(Symbol.iterator in Object(arr))) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n var _e = undefined;\n\n try {\n for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return _arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen);\n}\n\nfunction _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) arr2[i] = arr[i];\n\n return arr2;\n}\n\nfunction _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nfunction _createForOfIteratorHelper(o, allowArrayLike) {\n var it;\n\n if (typeof Symbol === \"undefined\" || o[Symbol.iterator] == null) {\n if (Array.isArray(o) || (it = _unsupportedIterableToArray(o)) || allowArrayLike && o && typeof o.length === \"number\") {\n if (it) o = it;\n var i = 0;\n\n var F = function () {};\n\n return {\n s: F,\n n: function () {\n if (i >= o.length) return {\n done: true\n };\n return {\n done: false,\n value: o[i++]\n };\n },\n e: function (e) {\n throw e;\n },\n f: F\n };\n }\n\n throw new TypeError(\"Invalid attempt to iterate non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n }\n\n var normalCompletion = true,\n didErr = false,\n err;\n return {\n s: function () {\n it = o[Symbol.iterator]();\n },\n n: function () {\n var step = it.next();\n normalCompletion = step.done;\n return step;\n },\n e: function (e) {\n didErr = true;\n err = e;\n },\n f: function () {\n try {\n if (!normalCompletion && it.return != null) it.return();\n } finally {\n if (didErr) throw err;\n }\n }\n };\n}\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/* istanbul ignore file */\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function value(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null) throw new TypeError('\"this\" is null or not defined');\n var o = Object(this); // 2. Let len be ? ToLength(? Get(O, \"length\")).\n\n var len = o.length >>> 0; // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n\n if (typeof predicate !== 'function') throw new TypeError('predicate must be a function'); // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n\n var thisArg = arguments[1]; // 5. Let k be 0.\n\n var k = 0; // 6. Repeat, while k < len\n\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n var kValue = o[k];\n if (predicate.call(thisArg, kValue, k, o)) return kValue; // e. Increase k by 1.\n\n k++;\n } // 7. Return undefined.\n\n\n return undefined;\n }\n });\n} // polyfills for smart TVs\n\n\nif (!Object.entries) {\n Object.entries = function (obj) {\n var ownProps = Object.keys(obj),\n i = ownProps.length,\n resArray = new Array(i); // preallocate the Array\n\n while (i--) {\n resArray[i] = [ownProps[i], obj[ownProps[i]]];\n }\n\n return resArray;\n };\n}\n\nif (!Object.values) {\n Object.values = function (obj) {\n var ownProps = Object.keys(obj),\n i = ownProps.length,\n resArray = new Array(i); // preallocate the Array\n\n while (i--) {\n resArray[i] = obj[ownProps[i]];\n }\n\n return resArray;\n };\n}\n/**\n * Object.assign\n * This polyfill doesn't support symbol properties, since ES5 doesn't have symbols anyway\n *\n * Original source : https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/assign\n */\n\n\nif (typeof Object.assign != 'function') {\n // Must be writable: true, enumerable: false, configurable: true\n Object.defineProperty(Object, 'assign', {\n // length of function is 2.\n value: function assign(target, varArgs) {\n\n if (target == null) {\n // TypeError if undefined or null\n throw new TypeError('Cannot convert undefined or null to object');\n }\n\n var to = Object(target);\n\n for (var index = 1; index < arguments.length; index++) {\n var nextSource = arguments[index];\n\n if (nextSource != null) {\n // Skip over if undefined or null\n for (var nextKey in nextSource) {\n // Avoid bugs when hasOwnProperty is shadowed\n if (Object.prototype.hasOwnProperty.call(nextSource, nextKey)) {\n to[nextKey] = nextSource[nextKey];\n }\n }\n }\n }\n\n return to;\n },\n writable: true,\n configurable: true\n });\n} // https://tc39.github.io/ecma262/#sec-array.prototype.findindex\n\n\nif (!Array.prototype.findIndex) {\n Object.defineProperty(Array.prototype, 'findIndex', {\n value: function value(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n var o = Object(this); // 2. Let len be ? ToLength(? Get(O, \"length\")).\n\n var len = o.length >>> 0; // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n\n if (typeof predicate !== 'function') {\n throw new TypeError('predicate must be a function');\n } // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n\n\n var thisArg = arguments[1]; // 5. Let k be 0.\n\n var k = 0; // 6. Repeat, while k < len\n\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return k.\n var kValue = o[k];\n\n if (predicate.call(thisArg, kValue, k, o)) {\n return k;\n } // e. Increase k by 1.\n\n\n k++;\n } // 7. Return -1.\n\n\n return -1;\n },\n configurable: true,\n writable: true\n });\n}\n\n/* istanbul ignore file */\n// https://github.com/mathiasbynens/small\nvar mp4 = 'data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAC721kYXQhEAUgpBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBSCkG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAsJtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAALwABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB7HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAALwAAAAAAAAAAAAAAAQEAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAC8AAAAAAAEAAAAAAWRtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAAKxEAAAIAFXEAAAAAAAtaGRscgAAAAAAAAAAc291bgAAAAAAAAAAAAAAAFNvdW5kSGFuZGxlcgAAAAEPbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADTc3RibAAAAGdzdHNkAAAAAAAAAAEAAABXbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAAKxEAAAAAAAzZXNkcwAAAAADgICAIgACAASAgIAUQBUAAAAAAfQAAAHz+QWAgIACEhAGgICAAQIAAAAYc3R0cwAAAAAAAAABAAAAAgAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAIAAAABAAAAHHN0c3oAAAAAAAAAAAAAAAIAAAFzAAABdAAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDE=';\nvar Media = {\n mp4: mp4\n};\n\n/* Zepto v1.2.0 - zepto ajax callbacks deferred event ie selector - zeptojs.com/license */\nvar Zepto = function () {\n var undefined$1,\n key,\n $,\n classList,\n emptyArray = [],\n concat = emptyArray.concat,\n filter = emptyArray.filter,\n slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {},\n classCache = {},\n cssNumber = {\n 'column-count': 1,\n 'columns': 1,\n 'font-weight': 1,\n 'line-height': 1,\n 'opacity': 1,\n 'z-index': 1,\n 'zoom': 1\n },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n adjacencyOperators = ['after', 'prepend', 'before', 'append'],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table,\n 'thead': table,\n 'tfoot': table,\n 'td': tableRow,\n 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize,\n uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray || function (object) {\n return object instanceof Array;\n };\n\n zepto.matches = function (element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false;\n var matchesSelector = element.matches || element.webkitMatchesSelector || element.mozMatchesSelector || element.oMatchesSelector || element.matchesSelector;\n if (matchesSelector) return matchesSelector.call(element, selector); // fall back to performing a selector:\n\n var match,\n parent = element.parentNode,\n temp = !parent;\n if (temp) (parent = tempParent).appendChild(element);\n match = ~zepto.qsa(parent, selector).indexOf(element);\n temp && tempParent.removeChild(element);\n return match;\n };\n\n function type(obj) {\n return obj == null ? String(obj) : class2type[toString.call(obj)] || \"object\";\n }\n\n function isFunction(value) {\n return type(value) == \"function\";\n }\n\n function isWindow(obj) {\n return obj != null && obj == obj.window;\n }\n\n function isDocument(obj) {\n return obj != null && obj.nodeType == obj.DOCUMENT_NODE;\n }\n\n function isObject(obj) {\n return type(obj) == \"object\";\n }\n\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype;\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj);\n return 'function' != type && !isWindow(obj) && ('array' == type || length === 0 || typeof length == 'number' && length > 0 && length - 1 in obj);\n }\n\n function compact(array) {\n return filter.call(array, function (item) {\n return item != null;\n });\n }\n\n function flatten(array) {\n return array.length > 0 ? $.fn.concat.apply([], array) : array;\n }\n\n camelize = function (str) {\n return str.replace(/-+(.)?/g, function (match, chr) {\n return chr ? chr.toUpperCase() : '';\n });\n };\n\n function dasherize(str) {\n return str.replace(/::/g, '/').replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2').replace(/([a-z\\d])([A-Z])/g, '$1_$2').replace(/_/g, '-').toLowerCase();\n }\n\n uniq = function (array) {\n return filter.call(array, function (item, idx) {\n return array.indexOf(item) == idx;\n });\n };\n\n function classRE(name) {\n return name in classCache ? classCache[name] : classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)');\n }\n\n function maybeAddPx(name, value) {\n return typeof value == \"number\" && !cssNumber[dasherize(name)] ? value + \"px\" : value;\n }\n\n function defaultDisplay(nodeName) {\n var element, display;\n\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName);\n document.body.appendChild(element);\n display = getComputedStyle(element, '').getPropertyValue(\"display\");\n element.parentNode.removeChild(element);\n display == \"none\" && (display = \"block\");\n elementDisplay[nodeName] = display;\n }\n\n return elementDisplay[nodeName];\n }\n\n function children(element) {\n return 'children' in element ? slice.call(element.children) : $.map(element.childNodes, function (node) {\n if (node.nodeType == 1) return node;\n });\n }\n\n function Z(dom, selector) {\n var i,\n len = dom ? dom.length : 0;\n\n for (i = 0; i < len; i++) this[i] = dom[i];\n\n this.length = len;\n this.selector = selector || '';\n } // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n\n\n zepto.fragment = function (html, name, properties) {\n var dom, nodes, container; // A special case optimization for a single tag\n\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1));\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1></$2>\");\n if (name === undefined$1) name = fragmentRE.test(html) && RegExp.$1;\n if (!(name in containers)) name = '*';\n container = containers[name];\n container.innerHTML = '' + html;\n dom = $.each(slice.call(container.childNodes), function () {\n container.removeChild(this);\n });\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom);\n $.each(properties, function (key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value);else nodes.attr(key, value);\n });\n }\n\n return dom;\n }; // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n\n\n zepto.Z = function (dom, selector) {\n return new Z(dom, selector);\n }; // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n\n\n zepto.isZ = function (object) {\n return object instanceof zepto.Z;\n }; // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n\n\n zepto.init = function (selector, context) {\n var dom; // If nothing given, return an empty Zepto collection\n\n if (!selector) return zepto.Z(); // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim(); // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n\n if (selector[0] == '<' && fragmentRE.test(selector)) dom = zepto.fragment(selector, RegExp.$1, context), selector = null; // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined$1) return $(context).find(selector); // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector);\n } // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector); // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector;else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector); // Wrap DOM nodes.\n else if (isObject(selector)) dom = [selector], selector = null; // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector)) dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null; // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined$1) return $(context).find(selector); // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector);\n } // create a new Zepto collection from the nodes found\n\n return zepto.Z(dom, selector);\n }; // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n\n\n $ = function (selector, context) {\n return zepto.init(selector, context);\n };\n\n function extend(target, source, deep) {\n for (key in source) if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key])) target[key] = {};\n if (isArray(source[key]) && !isArray(target[key])) target[key] = [];\n extend(target[key], source[key], deep);\n } else if (source[key] !== undefined$1) target[key] = source[key];\n } // Copy all but undefined properties from one or more\n // objects to the `target` object.\n\n\n $.extend = function (target) {\n var deep,\n args = slice.call(arguments, 1);\n\n if (typeof target == 'boolean') {\n deep = target;\n target = args.shift();\n }\n\n args.forEach(function (arg) {\n extend(target, arg, deep);\n });\n return target;\n }; // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n\n\n zepto.qsa = function (element, selector) {\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector,\n // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly);\n return element.getElementById && isSimple && maybeID ? // Safari DocumentFragment doesn't have getElementById\n (found = element.getElementById(nameOnly)) ? [found] : [] : element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11 ? [] : slice.call(isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n );\n };\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector);\n }\n\n $.contains = document.documentElement.contains ? function (parent, node) {\n return parent !== node && parent.contains(node);\n } : function (parent, node) {\n while (node && (node = node.parentNode)) if (node === parent) return true;\n\n return false;\n };\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg;\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value);\n } // access className property while respecting SVGAnimatedString\n\n\n function className(node, value) {\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined$1;\n if (value === undefined$1) return svg ? klass.baseVal : klass;\n svg ? klass.baseVal = value : node.className = value;\n } // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n\n\n function deserializeValue(value) {\n try {\n return value ? value == \"true\" || (value == \"false\" ? false : value == \"null\" ? null : +value + \"\" == value ? +value : /^[\\[\\{]/.test(value) ? $.parseJSON(value) : value) : value;\n } catch (e) {\n return value;\n }\n }\n\n $.type = type;\n $.isFunction = isFunction;\n $.isWindow = isWindow;\n $.isArray = isArray;\n $.isPlainObject = isPlainObject;\n\n $.isEmptyObject = function (obj) {\n var name;\n\n for (name in obj) return false;\n\n return true;\n };\n\n $.isNumeric = function (val) {\n var num = Number(val),\n type = typeof val;\n return val != null && type != 'boolean' && (type != 'string' || val.length) && !isNaN(num) && isFinite(num) || false;\n };\n\n $.inArray = function (elem, array, i) {\n return emptyArray.indexOf.call(array, elem, i);\n };\n\n $.camelCase = camelize;\n\n $.trim = function (str) {\n return str == null ? \"\" : String.prototype.trim.call(str);\n }; // plugin compatibility\n\n\n $.uuid = 0;\n $.support = {};\n $.expr = {};\n\n $.noop = function () {};\n\n $.map = function (elements, callback) {\n var value,\n values = [],\n i,\n key;\n if (likeArray(elements)) for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i);\n if (value != null) values.push(value);\n } else for (key in elements) {\n value = callback(elements[key], key);\n if (value != null) values.push(value);\n }\n return flatten(values);\n };\n\n $.each = function (elements, callback) {\n var i, key;\n\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++) if (callback.call(elements[i], i, elements[i]) === false) return elements;\n } else {\n for (key in elements) if (callback.call(elements[key], key, elements[key]) === false) return elements;\n }\n\n return elements;\n };\n\n $.grep = function (elements, callback) {\n return filter.call(elements, callback);\n };\n\n if (window.JSON) $.parseJSON = JSON.parse; // Populate the class2type map\n\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function (i, name) {\n class2type[\"[object \" + name + \"]\"] = name.toLowerCase();\n }); // Define methods that will be available on all\n // Zepto collections\n\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function () {\n var i,\n value,\n args = [];\n\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i];\n args[i] = zepto.isZ(value) ? value.toArray() : value;\n }\n\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args);\n },\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function (fn) {\n return $($.map(this, function (el, i) {\n return fn.call(el, i, el);\n }));\n },\n slice: function () {\n return $(slice.apply(this, arguments));\n },\n ready: function (callback) {\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($);else document.addEventListener('DOMContentLoaded', function () {\n callback($);\n }, false);\n return this;\n },\n get: function (idx) {\n return idx === undefined$1 ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length];\n },\n toArray: function () {\n return this.get();\n },\n size: function () {\n return this.length;\n },\n remove: function () {\n return this.each(function () {\n if (this.parentNode != null) this.parentNode.removeChild(this);\n });\n },\n each: function (callback) {\n emptyArray.every.call(this, function (el, idx) {\n return callback.call(el, idx, el) !== false;\n });\n return this;\n },\n filter: function (selector) {\n if (isFunction(selector)) return this.not(this.not(selector));\n return $(filter.call(this, function (element) {\n return zepto.matches(element, selector);\n }));\n },\n add: function (selector, context) {\n return $(uniq(this.concat($(selector, context))));\n },\n is: function (selector) {\n return this.length > 0 && zepto.matches(this[0], selector);\n },\n not: function (selector) {\n var nodes = [];\n if (isFunction(selector) && selector.call !== undefined$1) this.each(function (idx) {\n if (!selector.call(this, idx)) nodes.push(this);\n });else {\n var excludes = typeof selector == 'string' ? this.filter(selector) : likeArray(selector) && isFunction(selector.item) ? slice.call(selector) : $(selector);\n this.forEach(function (el) {\n if (excludes.indexOf(el) < 0) nodes.push(el);\n });\n }\n return $(nodes);\n },\n has: function (selector) {\n return this.filter(function () {\n return isObject(selector) ? $.contains(this, selector) : $(this).find(selector).size();\n });\n },\n eq: function (idx) {\n return idx === -1 ? this.slice(idx) : this.slice(idx, +idx + 1);\n },\n first: function () {\n var el = this[0];\n return el && !isObject(el) ? el : $(el);\n },\n last: function () {\n var el = this[this.length - 1];\n return el && !isObject(el) ? el : $(el);\n },\n find: function (selector) {\n var result,\n $this = this;\n if (!selector) result = $();else if (typeof selector == 'object') result = $(selector).filter(function () {\n var node = this;\n return emptyArray.some.call($this, function (parent) {\n return $.contains(parent, node);\n });\n });else if (this.length == 1) result = $(zepto.qsa(this[0], selector));else result = this.map(function () {\n return zepto.qsa(this, selector);\n });\n return result;\n },\n closest: function (selector, context) {\n var nodes = [],\n collection = typeof selector == 'object' && $(selector);\n this.each(function (_, node) {\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) node = node !== context && !isDocument(node) && node.parentNode;\n\n if (node && nodes.indexOf(node) < 0) nodes.push(node);\n });\n return $(nodes);\n },\n parents: function (selector) {\n var ancestors = [],\n nodes = this;\n\n while (nodes.length > 0) nodes = $.map(nodes, function (node) {\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node);\n return node;\n }\n });\n\n return filtered(ancestors, selector);\n },\n parent: function (selector) {\n return filtered(uniq(this.pluck('parentNode')), selector);\n },\n children: function (selector) {\n return filtered(this.map(function () {\n return children(this);\n }), selector);\n },\n contents: function () {\n return this.map(function () {\n return this.contentDocument || slice.call(this.childNodes);\n });\n },\n siblings: function (selector) {\n return filtered(this.map(function (i, el) {\n return filter.call(children(el.parentNode), function (child) {\n return child !== el;\n });\n }), selector);\n },\n empty: function () {\n return this.each(function () {\n this.innerHTML = '';\n });\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function (property) {\n return $.map(this, function (el) {\n return el[property];\n });\n },\n show: function () {\n return this.each(function () {\n this.style.display == \"none\" && (this.style.display = '');\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\") this.style.display = defaultDisplay(this.nodeName);\n });\n },\n replaceWith: function (newContent) {\n return this.before(newContent).remove();\n },\n wrap: function (structure) {\n var func = isFunction(structure);\n if (this[0] && !func) var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1;\n return this.each(function (index) {\n $(this).wrapAll(func ? structure.call(this, index) : clone ? dom.cloneNode(true) : dom);\n });\n },\n wrapAll: function (structure) {\n if (this[0]) {\n $(this[0]).before(structure = $(structure));\n var children; // drill down to the inmost element\n\n while ((children = structure.children()).length) structure = children.first();\n\n $(structure).append(this);\n }\n\n return this;\n },\n wrapInner: function (structure) {\n var func = isFunction(structure);\n return this.each(function (index) {\n var self = $(this),\n contents = self.contents(),\n dom = func ? structure.call(this, index) : structure;\n contents.length ? contents.wrapAll(dom) : self.append(dom);\n });\n },\n unwrap: function () {\n this.parent().each(function () {\n $(this).replaceWith($(this).children());\n });\n return this;\n },\n clone: function () {\n return this.map(function () {\n return this.cloneNode(true);\n });\n },\n hide: function () {\n return this.css(\"display\", \"none\");\n },\n toggle: function (setting) {\n return this.each(function () {\n var el = $(this);\n (setting === undefined$1 ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide();\n });\n },\n prev: function (selector) {\n return $(this.pluck('previousElementSibling')).filter(selector || '*');\n },\n next: function (selector) {\n return $(this.pluck('nextElementSibling')).filter(selector || '*');\n },\n html: function (html) {\n return 0 in arguments ? this.each(function (idx) {\n var originHtml = this.innerHTML;\n $(this).empty().append(funcArg(this, html, idx, originHtml));\n }) : 0 in this ? this[0].innerHTML : null;\n },\n text: function (text) {\n return 0 in arguments ? this.each(function (idx) {\n var newText = funcArg(this, text, idx, this.textContent);\n this.textContent = newText == null ? '' : '' + newText;\n }) : 0 in this ? this.pluck('textContent').join(\"\") : null;\n },\n attr: function (name, value) {\n var result;\n return typeof name == 'string' && !(1 in arguments) ? 0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined$1 : this.each(function (idx) {\n if (this.nodeType !== 1) return;\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key]);else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)));\n });\n },\n removeAttr: function (name) {\n return this.each(function () {\n this.nodeType === 1 && name.split(' ').forEach(function (attribute) {\n setAttribute(this, attribute);\n }, this);\n });\n },\n prop: function (name, value) {\n name = propMap[name] || name;\n return 1 in arguments ? this.each(function (idx) {\n this[name] = funcArg(this, value, idx, this[name]);\n }) : this[0] && this[0][name];\n },\n removeProp: function (name) {\n name = propMap[name] || name;\n return this.each(function () {\n delete this[name];\n });\n },\n data: function (name, value) {\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase();\n var data = 1 in arguments ? this.attr(attrName, value) : this.attr(attrName);\n return data !== null ? deserializeValue(data) : undefined$1;\n },\n val: function (value) {\n if (0 in arguments) {\n if (value == null) value = \"\";\n return this.each(function (idx) {\n this.value = funcArg(this, value, idx, this.value);\n });\n } else {\n return this[0] && (this[0].multiple ? $(this[0]).find('option').filter(function () {\n return this.selected;\n }).pluck('value') : this[0].value);\n }\n },\n offset: function (coordinates) {\n if (coordinates) return this.each(function (index) {\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n };\n if ($this.css('position') == 'static') props['position'] = 'relative';\n $this.css(props);\n });\n if (!this.length) return null;\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0])) return {\n top: 0,\n left: 0\n };\n var obj = this[0].getBoundingClientRect();\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n };\n },\n css: function (property, value) {\n if (arguments.length < 2) {\n var element = this[0];\n\n if (typeof property == 'string') {\n if (!element) return;\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property);\n } else if (isArray(property)) {\n if (!element) return;\n var props = {};\n var computedStyle = getComputedStyle(element, '');\n $.each(property, function (_, prop) {\n props[prop] = element.style[camelize(prop)] || computedStyle.getPropertyValue(prop);\n });\n return props;\n }\n }\n\n var css = '';\n\n if (type(property) == 'string') {\n if (!value && value !== 0) this.each(function () {\n this.style.removeProperty(dasherize(property));\n });else css = dasherize(property) + \":\" + maybeAddPx(property, value);\n } else {\n for (key in property) if (!property[key] && property[key] !== 0) this.each(function () {\n this.style.removeProperty(dasherize(key));\n });else css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';';\n }\n\n return this.each(function () {\n this.style.cssText += ';' + css;\n });\n },\n index: function (element) {\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]);\n },\n hasClass: function (name) {\n if (!name) return false;\n return emptyArray.some.call(this, function (el) {\n return this.test(className(el));\n }, classRE(name));\n },\n addClass: function (name) {\n if (!name) return this;\n return this.each(function (idx) {\n if (!('className' in this)) return;\n classList = [];\n var cls = className(this),\n newName = funcArg(this, name, idx, cls);\n newName.split(/\\s+/g).forEach(function (klass) {\n if (!$(this).hasClass(klass)) classList.push(klass);\n }, this);\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"));\n });\n },\n removeClass: function (name) {\n return this.each(function (idx) {\n if (!('className' in this)) return;\n if (name === undefined$1) return className(this, '');\n classList = className(this);\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function (klass) {\n classList = classList.replace(classRE(klass), \" \");\n });\n className(this, classList.trim());\n });\n },\n toggleClass: function (name, when) {\n if (!name) return this;\n return this.each(function (idx) {\n var $this = $(this),\n names = funcArg(this, name, idx, className(this));\n names.split(/\\s+/g).forEach(function (klass) {\n (when === undefined$1 ? !$this.hasClass(klass) : when) ? $this.addClass(klass) : $this.removeClass(klass);\n });\n });\n },\n scrollTop: function (value) {\n if (!this.length) return;\n var hasScrollTop = ('scrollTop' in this[0]);\n if (value === undefined$1) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset;\n return this.each(hasScrollTop ? function () {\n this.scrollTop = value;\n } : function () {\n this.scrollTo(this.scrollX, value);\n });\n },\n scrollLeft: function (value) {\n if (!this.length) return;\n var hasScrollLeft = ('scrollLeft' in this[0]);\n if (value === undefined$1) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset;\n return this.each(hasScrollLeft ? function () {\n this.scrollLeft = value;\n } : function () {\n this.scrollTo(value, this.scrollY);\n });\n },\n position: function () {\n if (!this.length) return;\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? {\n top: 0,\n left: 0\n } : offsetParent.offset(); // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n\n offset.top -= parseFloat($(elem).css('margin-top')) || 0;\n offset.left -= parseFloat($(elem).css('margin-left')) || 0; // Add offsetParent borders\n\n parentOffset.top += parseFloat($(offsetParent[0]).css('border-top-width')) || 0;\n parentOffset.left += parseFloat($(offsetParent[0]).css('border-left-width')) || 0; // Subtract the two offsets\n\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n };\n },\n offsetParent: function () {\n return this.map(function () {\n var parent = this.offsetParent || document.body;\n\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\") parent = parent.offsetParent;\n\n return parent;\n });\n }\n }; // for now\n\n $.fn.detach = $.fn.remove // Generate the `width` and `height` functions\n ;\n ['width', 'height'].forEach(function (dimension) {\n var dimensionProperty = dimension.replace(/./, function (m) {\n return m[0].toUpperCase();\n });\n\n $.fn[dimension] = function (value) {\n var offset,\n el = this[0];\n if (value === undefined$1) return isWindow(el) ? el['inner' + dimensionProperty] : isDocument(el) ? el.documentElement['scroll' + dimensionProperty] : (offset = this.offset()) && offset[dimension];else return this.each(function (idx) {\n el = $(this);\n el.css(dimension, funcArg(this, value, idx, el[dimension]()));\n });\n };\n });\n\n function traverseNode(node, fun) {\n fun(node);\n\n for (var i = 0, len = node.childNodes.length; i < len; i++) traverseNode(node.childNodes[i], fun);\n } // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n\n\n adjacencyOperators.forEach(function (operator, operatorIndex) {\n var inside = operatorIndex % 2; //=> prepend, append\n\n $.fn[operator] = function () {\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType,\n nodes = $.map(arguments, function (arg) {\n var arr = [];\n argType = type(arg);\n\n if (argType == \"array\") {\n arg.forEach(function (el) {\n if (el.nodeType !== undefined$1) return arr.push(el);else if ($.zepto.isZ(el)) return arr = arr.concat(el.get());\n arr = arr.concat(zepto.fragment(el));\n });\n return arr;\n }\n\n return argType == \"object\" || arg == null ? arg : zepto.fragment(arg);\n }),\n parent,\n copyByClone = this.length > 1;\n if (nodes.length < 1) return this;\n return this.each(function (_, target) {\n parent = inside ? target : target.parentNode; // convert all methods to a \"before\" operation\n\n target = operatorIndex == 0 ? target.nextSibling : operatorIndex == 1 ? target.firstChild : operatorIndex == 2 ? target : null;\n var parentInDocument = $.contains(document.documentElement, parent);\n nodes.forEach(function (node) {\n if (copyByClone) node = node.cloneNode(true);else if (!parent) return $(node).remove();\n parent.insertBefore(node, target);\n if (parentInDocument) traverseNode(node, function (el) {\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && (!el.type || el.type === 'text/javascript') && !el.src) {\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window;\n target['eval'].call(target, el.innerHTML);\n }\n });\n });\n });\n }; // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n\n\n $.fn[inside ? operator + 'To' : 'insert' + (operatorIndex ? 'Before' : 'After')] = function (html) {\n $(html)[operator](this);\n return this;\n };\n });\n zepto.Z.prototype = Z.prototype = $.fn; // Export internal API functions in the `$.zepto` namespace\n\n zepto.uniq = uniq;\n zepto.deserializeValue = deserializeValue;\n $.zepto = zepto;\n return $;\n}();\n\nwindow.Zepto = Zepto;\nwindow.$ === undefined && (window.$ = Zepto);\n\n(function ($) {\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a');\n originAnchor.href = window.location.href; // trigger a custom event and return false if it was cancelled\n\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName);\n $(context).trigger(event, data);\n return !event.isDefaultPrevented();\n } // trigger an Ajax \"global\" event\n\n\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data);\n } // Number of active Ajax requests\n\n\n $.active = 0;\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart');\n }\n\n function ajaxStop(settings) {\n if (settings.global && ! --$.active) triggerGlobal(settings, null, 'ajaxStop');\n } // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n\n\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context;\n if (settings.beforeSend.call(context, xhr, settings) === false || triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) return false;\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]);\n }\n\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context,\n status = 'success';\n settings.success.call(context, data, status, xhr);\n if (deferred) deferred.resolveWith(context, [data, status, xhr]);\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]);\n ajaxComplete(status, xhr, settings);\n } // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n\n\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context;\n settings.error.call(context, xhr, type, error);\n if (deferred) deferred.rejectWith(context, [xhr, type, error]);\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type]);\n ajaxComplete(type, xhr, settings);\n } // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n\n\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context;\n settings.complete.call(context, xhr, status);\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]);\n ajaxStop(settings);\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data;\n var context = settings.context;\n return settings.dataFilter.call(context, data, type);\n } // Empty function, used as default callback\n\n\n function empty() {}\n\n $.ajaxJSONP = function (options, deferred) {\n if (!('type' in options)) return $.ajax(options);\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ? _callbackName() : _callbackName) || 'Zepto' + jsonpID++,\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function (errorType) {\n $(script).triggerHandler('error', errorType || 'abort');\n },\n xhr = {\n abort: abort\n },\n abortTimeout;\n\n if (deferred) deferred.promise(xhr);\n $(script).on('load error', function (e, errorType) {\n clearTimeout(abortTimeout);\n $(script).off().remove();\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred);\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred);\n }\n\n window[callbackName] = originalCallback;\n if (responseData && $.isFunction(originalCallback)) originalCallback(responseData[0]);\n originalCallback = responseData = undefined;\n });\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort');\n return xhr;\n }\n\n window[callbackName] = function () {\n responseData = arguments;\n };\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName);\n document.head.appendChild(script);\n if (options.timeout > 0) abortTimeout = setTimeout(function () {\n abort('timeout');\n }, options.timeout);\n return xhr;\n };\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function () {\n return new window.XMLHttpRequest();\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n };\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0];\n return mime && (mime == htmlType ? 'html' : mime == jsonType ? 'json' : scriptTypeRE.test(mime) ? 'script' : xmlTypeRE.test(mime) && 'xml') || 'text';\n }\n\n function appendQuery(url, query) {\n if (query == '') return url;\n return (url + '&' + query).replace(/[&?]{1,2}/, '?');\n } // serialize payload and append it to the URL for GET requests\n\n\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\") options.data = $.param(options.data, options.traditional);\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType)) options.url = appendQuery(options.url, options.data), options.data = undefined;\n }\n\n $.ajax = function (options) {\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor,\n hashIndex;\n\n for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key];\n\n ajaxStart(settings);\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a');\n urlAnchor.href = settings.url; // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n\n urlAnchor.href = urlAnchor.href;\n settings.crossDomain = originAnchor.protocol + '//' + originAnchor.host !== urlAnchor.protocol + '//' + urlAnchor.host;\n }\n\n if (!settings.url) settings.url = window.location.toString();\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex);\n serializeData(settings);\n var dataType = settings.dataType,\n hasPlaceholder = /\\?.+=\\?/.test(settings.url);\n if (hasPlaceholder) dataType = 'jsonp';\n if (settings.cache === false || (!options || options.cache !== true) && ('script' == dataType || 'jsonp' == dataType)) settings.url = appendQuery(settings.url, '_=' + Date.now());\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder) settings.url = appendQuery(settings.url, settings.jsonp ? settings.jsonp + '=?' : settings.jsonp === false ? '' : 'callback=?');\n return $.ajaxJSONP(settings, deferred);\n }\n\n var mime = settings.accepts[dataType],\n headers = {},\n setHeader = function (name, value) {\n headers[name.toLowerCase()] = [name, value];\n },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout;\n\n if (deferred) deferred.promise(xhr);\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest');\n setHeader('Accept', mime || '*/*');\n\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0];\n xhr.overrideMimeType && xhr.overrideMimeType(mime);\n }\n\n if (settings.contentType || settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET') setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded');\n if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name]);\n xhr.setRequestHeader = setHeader;\n\n xhr.onreadystatechange = function () {\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty;\n clearTimeout(abortTimeout);\n var result,\n error = false;\n\n if (xhr.status >= 200 && xhr.status < 300 || xhr.status == 304 || xhr.status == 0 && protocol == 'file:') {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'));\n if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob') result = xhr.response;else {\n result = xhr.responseText;\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings);\n if (dataType == 'script') (1, eval)(result);else if (dataType == 'xml') result = xhr.responseXML;else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result);\n } catch (e) {\n error = e;\n }\n\n if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred);\n }\n ajaxSuccess(result, xhr, settings, deferred);\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred);\n }\n }\n };\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort();\n ajaxError(null, 'abort', xhr, settings, deferred);\n return xhr;\n }\n\n var async = 'async' in settings ? settings.async : true;\n xhr.open(settings.type, settings.url, async, settings.username, settings.password);\n if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name];\n\n for (name in headers) nativeSetHeader.apply(xhr, headers[name]);\n\n if (settings.timeout > 0) abortTimeout = setTimeout(function () {\n xhr.onreadystatechange = empty;\n xhr.abort();\n ajaxError(null, 'timeout', xhr, settings, deferred);\n }, settings.timeout); // avoid sending empty string (#319)\n\n xhr.send(settings.data ? settings.data : null);\n return xhr;\n }; // handle optional data/success arguments\n\n\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined;\n if (!$.isFunction(success)) dataType = success, success = undefined;\n return {\n url: url,\n data: data,\n success: success,\n dataType: dataType\n };\n }\n\n $.get = function ()\n /* url, data, success, dataType */\n {\n return $.ajax(parseArguments.apply(null, arguments));\n };\n\n $.post = function ()\n /* url, data, success, dataType */\n {\n var options = parseArguments.apply(null, arguments);\n options.type = 'POST';\n return $.ajax(options);\n };\n\n $.getJSON = function ()\n /* url, data, success */\n {\n var options = parseArguments.apply(null, arguments);\n options.dataType = 'json';\n return $.ajax(options);\n };\n\n $.fn.load = function (url, data, success) {\n if (!this.length) return this;\n var self = this,\n parts = url.split(/\\s/),\n selector,\n options = parseArguments(url, data, success),\n callback = options.success;\n if (parts.length > 1) options.url = parts[0], selector = parts[1];\n\n options.success = function (response) {\n self.html(selector ? $('<div>').html(response.replace(rscript, \"\")).find(selector) : response);\n callback && callback.apply(self, arguments);\n };\n\n $.ajax(options);\n return this;\n };\n\n var escape = encodeURIComponent;\n\n function serialize(params, obj, traditional, scope) {\n var type,\n array = $.isArray(obj),\n hash = $.isPlainObject(obj);\n $.each(obj, function (key, value) {\n type = $.type(value);\n if (scope) key = traditional ? scope : scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']'; // handle data in serializeArray() format\n\n if (!scope && array) params.add(value.name, value.value); // recurse into nested objects\n else if (type == \"array\" || !traditional && type == \"object\") serialize(params, value, traditional, key);else params.add(key, value);\n });\n }\n\n $.param = function (obj, traditional) {\n var params = [];\n\n params.add = function (key, value) {\n if ($.isFunction(value)) value = value();\n if (value == null) value = \"\";\n this.push(escape(key) + '=' + escape(value));\n };\n\n serialize(params, obj, traditional);\n return params.join('&').replace(/%20/g, '+');\n };\n})(Zepto);\n\n(function ($) {\n // Create a collection of callbacks to be fired in a sequence, with configurable behaviour\n // Option flags:\n // - once: Callbacks fired at most one time.\n // - memory: Remember the most recent context and arguments\n // - stopOnFalse: Cease iterating over callback list\n // - unique: Permit adding at most one instance of the same callback\n $.Callbacks = function (options) {\n options = $.extend({}, options);\n\n var memory,\n // Last fire value (for non-forgettable lists)\n fired,\n // Flag to know if list was already fired\n firing,\n // Flag to know if list is currently firing\n firingStart,\n // First callback to fire (used internally by add and fireWith)\n firingLength,\n // End of the loop when firing\n firingIndex,\n // Index of currently firing callback (modified by remove if needed)\n list = [],\n // Actual callback list\n stack = !options.once && [],\n // Stack of fire calls for repeatable lists\n fire = function (data) {\n memory = options.memory && data;\n fired = true;\n firingIndex = firingStart || 0;\n firingStart = 0;\n firingLength = list.length;\n firing = true;\n\n for (; list && firingIndex < firingLength; ++firingIndex) {\n if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {\n memory = false;\n break;\n }\n }\n\n firing = false;\n\n if (list) {\n if (stack) stack.length && fire(stack.shift());else if (memory) list.length = 0;else Callbacks.disable();\n }\n },\n Callbacks = {\n add: function () {\n if (list) {\n var start = list.length,\n add = function (args) {\n $.each(args, function (_, arg) {\n if (typeof arg === \"function\") {\n if (!options.unique || !Callbacks.has(arg)) list.push(arg);\n } else if (arg && arg.length && typeof arg !== 'string') add(arg);\n });\n };\n\n add(arguments);\n if (firing) firingLength = list.length;else if (memory) {\n firingStart = start;\n fire(memory);\n }\n }\n\n return this;\n },\n remove: function () {\n if (list) {\n $.each(arguments, function (_, arg) {\n var index;\n\n while ((index = $.inArray(arg, list, index)) > -1) {\n list.splice(index, 1); // Handle firing indexes\n\n if (firing) {\n if (index <= firingLength) --firingLength;\n if (index <= firingIndex) --firingIndex;\n }\n }\n });\n }\n\n return this;\n },\n has: function (fn) {\n return !!(list && (fn ? $.inArray(fn, list) > -1 : list.length));\n },\n empty: function () {\n firingLength = list.length = 0;\n return this;\n },\n disable: function () {\n list = stack = memory = undefined;\n return this;\n },\n disabled: function () {\n return !list;\n },\n lock: function () {\n stack = undefined;\n if (!memory) Callbacks.disable();\n return this;\n },\n locked: function () {\n return !stack;\n },\n fireWith: function (context, args) {\n if (list && (!fired || stack)) {\n args = args || [];\n args = [context, args.slice ? args.slice() : args];\n if (firing) stack.push(args);else fire(args);\n }\n\n return this;\n },\n fire: function () {\n return Callbacks.fireWith(this, arguments);\n },\n fired: function () {\n return !!fired;\n }\n };\n\n return Callbacks;\n };\n})(Zepto);\n\n(function ($) {\n var slice = Array.prototype.slice;\n\n function Deferred(func) {\n var tuples = [// action, add listener, listener list, final state\n [\"resolve\", \"done\", $.Callbacks({\n once: 1,\n memory: 1\n }), \"resolved\"], [\"reject\", \"fail\", $.Callbacks({\n once: 1,\n memory: 1\n }), \"rejected\"], [\"notify\", \"progress\", $.Callbacks({\n memory: 1\n })]],\n state = \"pending\",\n promise = {\n state: function () {\n return state;\n },\n always: function () {\n deferred.done(arguments).fail(arguments);\n return this;\n },\n then: function ()\n /* fnDone [, fnFailed [, fnProgress]] */\n {\n var fns = arguments;\n return Deferred(function (defer) {\n $.each(tuples, function (i, tuple) {\n var fn = $.isFunction(fns[i]) && fns[i];\n deferred[tuple[1]](function () {\n var returned = fn && fn.apply(this, arguments);\n\n if (returned && $.isFunction(returned.promise)) {\n returned.promise().done(defer.resolve).fail(defer.reject).progress(defer.notify);\n } else {\n var context = this === promise ? defer.promise() : this,\n values = fn ? [returned] : arguments;\n defer[tuple[0] + \"With\"](context, values);\n }\n });\n });\n fns = null;\n }).promise();\n },\n promise: function (obj) {\n return obj != null ? $.extend(obj, promise) : promise;\n }\n },\n deferred = {};\n $.each(tuples, function (i, tuple) {\n var list = tuple[2],\n stateString = tuple[3];\n promise[tuple[1]] = list.add;\n\n if (stateString) {\n list.add(function () {\n state = stateString;\n }, tuples[i ^ 1][2].disable, tuples[2][2].lock);\n }\n\n deferred[tuple[0]] = function () {\n deferred[tuple[0] + \"With\"](this === deferred ? promise : this, arguments);\n return this;\n };\n\n deferred[tuple[0] + \"With\"] = list.fireWith;\n });\n promise.promise(deferred);\n if (func) func.call(deferred, deferred);\n return deferred;\n }\n\n $.when = function (sub) {\n var resolveValues = slice.call(arguments),\n len = resolveValues.length,\n i = 0,\n remain = len !== 1 || sub && $.isFunction(sub.promise) ? len : 0,\n deferred = remain === 1 ? sub : Deferred(),\n progressValues,\n progressContexts,\n resolveContexts,\n updateFn = function (i, ctx, val) {\n return function (value) {\n ctx[i] = this;\n val[i] = arguments.length > 1 ? slice.call(arguments) : value;\n\n if (val === progressValues) {\n deferred.notifyWith(ctx, val);\n } else if (! --remain) {\n deferred.resolveWith(ctx, val);\n }\n };\n };\n\n if (len > 1) {\n progressValues = new Array(len);\n progressContexts = new Array(len);\n resolveContexts = new Array(len);\n\n for (; i < len; ++i) {\n if (resolveValues[i] && $.isFunction(resolveValues[i].promise)) {\n resolveValues[i].promise().done(updateFn(i, resolveContexts, resolveValues)).fail(deferred.reject).progress(updateFn(i, progressContexts, progressValues));\n } else {\n --remain;\n }\n }\n }\n\n if (!remain) deferred.resolveWith(resolveContexts, resolveValues);\n return deferred.promise();\n };\n\n $.Deferred = Deferred;\n})(Zepto);\n\n(function ($) {\n var _zid = 1,\n undefined$1,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function (obj) {\n return typeof obj == 'string';\n },\n handlers = {},\n specialEvents = {},\n focusinSupported = ('onfocusin' in window),\n focus = {\n focus: 'focusin',\n blur: 'focusout'\n },\n hover = {\n mouseenter: 'mouseover',\n mouseleave: 'mouseout'\n };\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents';\n\n function zid(element) {\n return element._zid || (element._zid = _zid++);\n }\n\n function findHandlers(element, event, fn, selector) {\n event = parse(event);\n if (event.ns) var matcher = matcherFor(event.ns);\n return (handlers[zid(element)] || []).filter(function (handler) {\n return handler && (!event.e || handler.e == event.e) && (!event.ns || matcher.test(handler.ns)) && (!fn || zid(handler.fn) === zid(fn)) && (!selector || handler.sel == selector);\n });\n }\n\n function parse(event) {\n var parts = ('' + event).split('.');\n return {\n e: parts[0],\n ns: parts.slice(1).sort().join(' ')\n };\n }\n\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)');\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del && !focusinSupported && handler.e in focus || !!captureSetting;\n }\n\n function realEvent(type) {\n return hover[type] || focusinSupported && focus[type] || type;\n }\n\n function add(element, events, fn, data, selector, delegator, capture) {\n var id = zid(element),\n set = handlers[id] || (handlers[id] = []);\n events.split(/\\s/).forEach(function (event) {\n if (event == 'ready') return $(document).ready(fn);\n var handler = parse(event);\n handler.fn = fn;\n handler.sel = selector; // emulate mouseenter, mouseleave\n\n if (handler.e in hover) fn = function (e) {\n var related = e.relatedTarget;\n if (!related || related !== this && !$.contains(this, related)) return handler.fn.apply(this, arguments);\n };\n handler.del = delegator;\n var callback = delegator || fn;\n\n handler.proxy = function (e) {\n e = compatible(e);\n if (e.isImmediatePropagationStopped()) return;\n e.data = data;\n var result = callback.apply(element, e._args == undefined$1 ? [e] : [e].concat(e._args));\n if (result === false) e.preventDefault(), e.stopPropagation();\n return result;\n };\n\n handler.i = set.length;\n set.push(handler);\n if ('addEventListener' in element) element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));\n });\n }\n\n function remove(element, events, fn, selector, capture) {\n var id = zid(element);\n (events || '').split(/\\s/).forEach(function (event) {\n findHandlers(element, event, fn, selector).forEach(function (handler) {\n delete handlers[id][handler.i];\n if ('removeEventListener' in element) element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture));\n });\n });\n }\n\n $.event = {\n add: add,\n remove: remove\n };\n\n $.proxy = function (fn, context) {\n var args = 2 in arguments && slice.call(arguments, 2);\n\n if (isFunction(fn)) {\n var proxyFn = function () {\n return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments);\n };\n\n proxyFn._zid = zid(fn);\n return proxyFn;\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn);\n return $.proxy.apply(null, args);\n } else {\n return $.proxy(fn[context], fn);\n }\n } else {\n throw new TypeError(\"expected function\");\n }\n };\n\n $.fn.bind = function (event, data, callback) {\n return this.on(event, data, callback);\n };\n\n $.fn.unbind = function (event, callback) {\n return this.off(event, callback);\n };\n\n $.fn.one = function (event, selector, data, callback) {\n return this.on(event, selector, data, callback, 1);\n };\n\n var returnTrue = function () {\n return true;\n },\n returnFalse = function () {\n return false;\n },\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n };\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event);\n $.each(eventMethods, function (name, predicate) {\n var sourceMethod = source[name];\n\n event[name] = function () {\n this[predicate] = returnTrue;\n return sourceMethod && sourceMethod.apply(source, arguments);\n };\n\n event[predicate] = returnFalse;\n });\n event.timeStamp || (event.timeStamp = Date.now());\n if (source.defaultPrevented !== undefined$1 ? source.defaultPrevented : 'returnValue' in source ? source.returnValue === false : source.getPreventDefault && source.getPreventDefault()) event.isDefaultPrevented = returnTrue;\n }\n\n return event;\n }\n\n function createProxy(event) {\n var key,\n proxy = {\n originalEvent: event\n };\n\n for (key in event) if (!ignoreProperties.test(key) && event[key] !== undefined$1) proxy[key] = event[key];\n\n return compatible(proxy, event);\n }\n\n $.fn.delegate = function (selector, event, callback) {\n return this.on(event, selector, callback);\n };\n\n $.fn.undelegate = function (selector, event, callback) {\n return this.off(event, selector, callback);\n };\n\n $.fn.live = function (event, callback) {\n $(document.body).delegate(this.selector, event, callback);\n return this;\n };\n\n $.fn.die = function (event, callback) {\n $(document.body).undelegate(this.selector, event, callback);\n return this;\n };\n\n $.fn.on = function (event, selector, data, callback, one) {\n var autoRemove,\n delegator,\n $this = this;\n\n if (event && !isString(event)) {\n $.each(event, function (type, fn) {\n $this.on(type, selector, data, fn, one);\n });\n return $this;\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false) callback = data, data = selector, selector = undefined$1;\n if (callback === undefined$1 || data === false) callback = data, data = undefined$1;\n if (callback === false) callback = returnFalse;\n return $this.each(function (_, element) {\n if (one) autoRemove = function (e) {\n remove(element, e.type, callback);\n return callback.apply(this, arguments);\n };\n if (selector) delegator = function (e) {\n var evt,\n match = $(e.target).closest(selector, element).get(0);\n\n if (match && match !== element) {\n evt = $.extend(createProxy(e), {\n currentTarget: match,\n liveFired: element\n });\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)));\n }\n };\n add(element, event, callback, data, selector, delegator || autoRemove);\n });\n };\n\n $.fn.off = function (event, selector, callback) {\n var $this = this;\n\n if (event && !isString(event)) {\n $.each(event, function (type, fn) {\n $this.off(type, selector, fn);\n });\n return $this;\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false) callback = selector, selector = undefined$1;\n if (callback === false) callback = returnFalse;\n return $this.each(function () {\n remove(this, event, callback, selector);\n });\n };\n\n $.fn.trigger = function (event, args) {\n event = isString(event) || $.isPlainObject(event) ? $.Event(event) : compatible(event);\n event._args = args;\n return this.each(function () {\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type](); // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event);else $(this).triggerHandler(event, args);\n });\n }; // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n\n\n $.fn.triggerHandler = function (event, args) {\n var e, result;\n this.each(function (i, element) {\n e = createProxy(isString(event) ? $.Event(event) : event);\n e._args = args;\n e.target = element;\n $.each(findHandlers(element, event.type || event), function (i, handler) {\n result = handler.proxy(e);\n if (e.isImmediatePropagationStopped()) return false;\n });\n });\n return result;\n } // shortcut methods for `.bind(event, fn)` for each event type\n ;\n\n ('focusin focusout focus blur load resize scroll unload click dblclick ' + 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave ' + 'change select keydown keypress keyup error').split(' ').forEach(function (event) {\n $.fn[event] = function (callback) {\n return 0 in arguments ? this.bind(event, callback) : this.trigger(event);\n };\n });\n\n $.Event = function (type, props) {\n if (!isString(type)) props = type, type = props.type;\n var event = document.createEvent(specialEvents[type] || 'Events'),\n bubbles = true;\n if (props) for (var name in props) name == 'bubbles' ? bubbles = !!props[name] : event[name] = props[name];\n event.initEvent(type, bubbles, true);\n return compatible(event);\n };\n})(Zepto);\n\n(function () {\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined);\n } catch (e) {\n var nativeGetComputedStyle = getComputedStyle;\n\n window.getComputedStyle = function (element, pseudoElement) {\n try {\n return nativeGetComputedStyle(element, pseudoElement);\n } catch (e) {\n return null;\n }\n };\n }\n})();\n\n(function ($) {\n var zepto = $.zepto,\n oldQsa = zepto.qsa,\n oldMatches = zepto.matches;\n\n function visible(elem) {\n elem = $(elem);\n return !!(elem.width() || elem.height()) && elem.css(\"display\") !== \"none\";\n } // Implements a subset from:\n // http://api.jquery.com/category/selectors/jquery-selector-extensions/\n //\n // Each filter function receives the current index, all nodes in the\n // considered set, and a value if there were parentheses. The value\n // of `this` is the node currently being considered. The function returns the\n // resulting node(s), null, or undefined.\n //\n // Complex selectors are not supported:\n // li:has(label:contains(\"foo\")) + li:has(label:contains(\"bar\"))\n // ul.inner:first > li\n\n\n var filters = $.expr[':'] = {\n visible: function () {\n if (visible(this)) return this;\n },\n hidden: function () {\n if (!visible(this)) return this;\n },\n selected: function () {\n if (this.selected) return this;\n },\n checked: function () {\n if (this.checked) return this;\n },\n parent: function () {\n return this.parentNode;\n },\n first: function (idx) {\n if (idx === 0) return this;\n },\n last: function (idx, nodes) {\n if (idx === nodes.length - 1) return this;\n },\n eq: function (idx, _, value) {\n if (idx === value) return this;\n },\n contains: function (idx, _, text) {\n if ($(this).text().indexOf(text) > -1) return this;\n },\n has: function (idx, _, sel) {\n if (zepto.qsa(this, sel).length) return this;\n }\n };\n var filterRe = new RegExp('(.*):(\\\\w+)(?:\\\\(([^)]+)\\\\))?$\\\\s*'),\n childRe = /^\\s*>/,\n classTag = 'Zepto' + +new Date();\n\n function process(sel, fn) {\n // quote the hash in `a[href^=#]` expression\n sel = sel.replace(/=#\\]/g, '=\"#\"]');\n var filter,\n arg,\n match = filterRe.exec(sel);\n\n if (match && match[2] in filters) {\n filter = filters[match[2]], arg = match[3];\n sel = match[1];\n\n if (arg) {\n var num = Number(arg);\n if (isNaN(num)) arg = arg.replace(/^[\"']|[\"']$/g, '');else arg = num;\n }\n }\n\n return fn(sel, filter, arg);\n }\n\n zepto.qsa = function (node, selector) {\n return process(selector, function (sel, filter, arg) {\n try {\n var taggedParent;\n if (!sel && filter) sel = '*';else if (childRe.test(sel)) // support \"> *\" child queries by tagging the parent node with a\n // unique class and prepending that classname onto the selector\n taggedParent = $(node).addClass(classTag), sel = '.' + classTag + ' ' + sel;\n var nodes = oldQsa(node, sel);\n } catch (e) {\n console.error('error performing selector: %o', selector);\n throw e;\n } finally {\n if (taggedParent) taggedParent.removeClass(classTag);\n }\n\n return !filter ? nodes : zepto.uniq($.map(nodes, function (n, i) {\n return filter.call(n, i, nodes, arg);\n }));\n });\n };\n\n zepto.matches = function (node, selector) {\n return process(selector, function (sel, filter, arg) {\n return (!sel || oldMatches(node, sel)) && (!filter || filter.call(node, null, arg) === node);\n });\n };\n})(Zepto);\n\nvar zepto = Zepto;\n\n/* eslint-disable no-useless-escape */\n// The order of the following arrays is important, be careful if you change it.\nvar BROWSER_DATA = [{\n name: 'Chromium',\n group: 'Chrome',\n identifier: 'Chromium/([0-9\\.]*)'\n}, {\n name: 'Chrome Mobile',\n group: 'Chrome',\n identifier: 'Chrome/([0-9\\.]*) Mobile',\n versionIdentifier: 'Chrome/([0-9\\.]*)'\n}, {\n name: 'Chrome',\n group: 'Chrome',\n identifier: 'Chrome/([0-9\\.]*)'\n}, {\n name: 'Chrome for iOS',\n group: 'Chrome',\n identifier: 'CriOS/([0-9\\.]*)'\n}, {\n name: 'Android Browser',\n group: 'Chrome',\n identifier: 'CrMo/([0-9\\.]*)'\n}, {\n name: 'Firefox',\n group: 'Firefox',\n identifier: 'Firefox/([0-9\\.]*)'\n}, {\n name: 'Opera Mini',\n group: 'Opera',\n identifier: 'Opera Mini/([0-9\\.]*)'\n}, {\n name: 'Opera',\n group: 'Opera',\n identifier: 'Opera ([0-9\\.]*)'\n}, {\n name: 'Opera',\n group: 'Opera',\n identifier: 'Opera/([0-9\\.]*)',\n versionIdentifier: 'Version/([0-9\\.]*)'\n}, {\n name: 'IEMobile',\n group: 'Explorer',\n identifier: 'IEMobile/([0-9\\.]*)'\n}, {\n name: 'Internet Explorer',\n group: 'Explorer',\n identifier: 'MSIE ([a-zA-Z0-9\\.]*)'\n}, {\n name: 'Internet Explorer',\n group: 'Explorer',\n identifier: 'Trident/([0-9\\.]*)',\n versionIdentifier: 'rv:([0-9\\.]*)'\n}, {\n name: 'Spartan',\n group: 'Spartan',\n identifier: 'Edge/([0-9\\.]*)',\n versionIdentifier: 'Edge/([0-9\\.]*)'\n}, {\n name: 'Safari',\n group: 'Safari',\n identifier: 'Safari/([0-9\\.]*)',\n versionIdentifier: 'Version/([0-9\\.]*)'\n}];\n\n/* eslint-disable no-useless-escape */\n// The order of the following arrays is important, be careful if you change it.\nvar OS_DATA = [{\n name: 'Windows 2000',\n group: 'Windows',\n identifier: 'Windows NT 5.0',\n version: '5.0'\n}, {\n name: 'Windows XP',\n group: 'Windows',\n identifier: 'Windows NT 5.1',\n version: '5.1'\n}, {\n name: 'Windows Vista',\n group: 'Windows',\n identifier: 'Windows NT 6.0',\n version: '6.0'\n}, {\n name: 'Windows 7',\n group: 'Windows',\n identifier: 'Windows NT 6.1',\n version: '7.0'\n}, {\n name: 'Windows 8',\n group: 'Windows',\n identifier: 'Windows NT 6.2',\n version: '8.0'\n}, {\n name: 'Windows 8.1',\n group: 'Windows',\n identifier: 'Windows NT 6.3',\n version: '8.1'\n}, {\n name: 'Windows 10',\n group: 'Windows',\n identifier: 'Windows NT 10.0',\n version: '10.0'\n}, {\n name: 'Windows Phone',\n group: 'Windows Phone',\n identifier: 'Windows Phone ([0-9\\.]*)'\n}, {\n name: 'Windows Phone',\n group: 'Windows Phone',\n identifier: 'Windows Phone OS ([0-9\\.]*)'\n}, {\n name: 'Windows',\n group: 'Windows',\n identifier: 'Windows'\n}, {\n name: 'Chrome OS',\n group: 'Chrome OS',\n identifier: 'CrOS'\n}, {\n name: 'Android',\n group: 'Android',\n identifier: 'Android',\n versionIdentifier: 'Android ([a-zA-Z0-9\\.-]*)'\n}, {\n name: 'iPad',\n group: 'iOS',\n identifier: 'iPad',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'iPod',\n group: 'iOS',\n identifier: 'iPod',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'iPhone',\n group: 'iOS',\n identifier: 'iPhone OS',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X High Sierra',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])13([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Sierra',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])12([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X El Capitan',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])11([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Yosemite',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])10([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Mavericks',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])9([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Mountain Lion',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])8([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Lion',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])7([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Snow Leopard',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])6([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Leopard',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])5([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Tiger',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])4([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Panther',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])3([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Jaguar',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])2([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Puma',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])1([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Cheetah',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])0([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS',\n group: 'Mac OS',\n identifier: 'Mac OS'\n}, {\n name: 'Ubuntu',\n group: 'Linux',\n identifier: 'Ubuntu',\n versionIdentifier: 'Ubuntu/([0-9\\.]*)'\n}, {\n name: 'Debian',\n group: 'Linux',\n identifier: 'Debian'\n}, {\n name: 'Gentoo',\n group: 'Linux',\n identifier: 'Gentoo'\n}, {\n name: 'Linux',\n group: 'Linux',\n identifier: 'Linux'\n}, {\n name: 'BlackBerry',\n group: 'BlackBerry',\n identifier: 'BlackBerry'\n}];\n\nvar Browser = {};\n\nvar hasLocalstorage = function hasLocalstorage() {\n try {\n localStorage.setItem('clappr', 'clappr');\n localStorage.removeItem('clappr');\n return true;\n } catch (e) {\n return false;\n }\n};\n\nvar hasFlash = function hasFlash() {\n try {\n var fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash');\n return !!fo;\n } catch (e) {\n return !!(navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'] !== undefined && navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin);\n }\n};\n\nvar getBrowserInfo = function getBrowserInfo(ua) {\n var parts = ua.match(/\\b(playstation 4|nx|opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [],\n extra;\n\n if (/trident/i.test(parts[1])) {\n extra = /\\brv[ :]+(\\d+)/g.exec(ua) || [];\n return {\n name: 'IE',\n version: parseInt(extra[1] || '')\n };\n } else if (parts[1] === 'Chrome') {\n extra = ua.match(/\\bOPR\\/(\\d+)/);\n if (extra != null) return {\n name: 'Opera',\n version: parseInt(extra[1])\n };\n extra = ua.match(/\\bEdge\\/(\\d+)/);\n if (extra != null) return {\n name: 'Edge',\n version: parseInt(extra[1])\n };\n } else if (/android/i.test(ua) && (extra = ua.match(/version\\/(\\d+)/i))) {\n parts.splice(1, 1, 'Android WebView');\n parts.splice(2, 1, extra[1]);\n }\n\n parts = parts[2] ? [parts[1], parts[2]] : [navigator.appName, navigator.appVersion, '-?'];\n return {\n name: parts[0],\n version: parseInt(parts[1])\n };\n}; // Get browser data\n\nvar getBrowserData = function getBrowserData() {\n var browserObject = {};\n var userAgent = Browser.userAgent.toLowerCase(); // Check browser type\n\n var _iterator = _createForOfIteratorHelper(BROWSER_DATA),\n _step;\n\n try {\n for (_iterator.s(); !(_step = _iterator.n()).done;) {\n var browser = _step.value;\n var browserRegExp = new RegExp(browser.identifier.toLowerCase());\n var browserRegExpResult = browserRegExp.exec(userAgent);\n\n if (browserRegExpResult != null && browserRegExpResult[1]) {\n browserObject.name = browser.name;\n browserObject.group = browser.group; // Check version\n\n if (browser.versionIdentifier) {\n var versionRegExp = new RegExp(browser.versionIdentifier.toLowerCase());\n var versionRegExpResult = versionRegExp.exec(userAgent);\n if (versionRegExpResult != null && versionRegExpResult[1]) setBrowserVersion(versionRegExpResult[1], browserObject);\n } else {\n setBrowserVersion(browserRegExpResult[1], browserObject);\n }\n\n break;\n }\n }\n } catch (err) {\n _iterator.e(err);\n } finally {\n _iterator.f();\n }\n\n return browserObject;\n}; // Set browser version\n\nvar setBrowserVersion = function setBrowserVersion(version, browserObject) {\n var splitVersion = version.split('.', 2);\n browserObject.fullVersion = version; // Major version\n\n if (splitVersion[0]) browserObject.majorVersion = parseInt(splitVersion[0]); // Minor version\n\n if (splitVersion[1]) browserObject.minorVersion = parseInt(splitVersion[1]);\n}; // Get OS data\n\n\nvar getOsData = function getOsData() {\n var osObject = {};\n var userAgent = Browser.userAgent.toLowerCase(); // Check browser type\n\n var _iterator2 = _createForOfIteratorHelper(OS_DATA),\n _step2;\n\n try {\n for (_iterator2.s(); !(_step2 = _iterator2.n()).done;) {\n var os = _step2.value;\n var osRegExp = new RegExp(os.identifier.toLowerCase());\n var osRegExpResult = osRegExp.exec(userAgent);\n\n if (osRegExpResult != null) {\n osObject.name = os.name;\n osObject.group = os.group; // Version defined\n\n if (os.version) {\n setOsVersion(os.version, os.versionSeparator ? os.versionSeparator : '.', osObject); // Version detected\n } else if (osRegExpResult[1]) {\n setOsVersion(osRegExpResult[1], os.versionSeparator ? os.versionSeparator : '.', osObject); // Version identifier\n } else if (os.versionIdentifier) {\n var versionRegExp = new RegExp(os.versionIdentifier.toLowerCase());\n var versionRegExpResult = versionRegExp.exec(userAgent);\n if (versionRegExpResult != null && versionRegExpResult[1]) setOsVersion(versionRegExpResult[1], os.versionSeparator ? os.versionSeparator : '.', osObject);\n }\n\n break;\n }\n }\n } catch (err) {\n _iterator2.e(err);\n } finally {\n _iterator2.f();\n }\n\n return osObject;\n}; // Set OS version\n\nvar setOsVersion = function setOsVersion(version, separator, osObject) {\n var finalSeparator = separator.substr(0, 1) == '[' ? new RegExp(separator, 'g') : separator;\n var splitVersion = version.split(finalSeparator, 2);\n if (separator != '.') version = version.replace(new RegExp(separator, 'g'), '.');\n osObject.fullVersion = version; // Major version\n\n if (splitVersion && splitVersion[0]) osObject.majorVersion = parseInt(splitVersion[0]); // Minor version\n\n if (splitVersion && splitVersion[1]) osObject.minorVersion = parseInt(splitVersion[1]);\n}; // Set viewport size\n\n\nvar getViewportSize = function getViewportSize() {\n var viewportObject = {};\n viewportObject.width = zepto(window).width();\n viewportObject.height = zepto(window).height();\n return viewportObject;\n}; // Set viewport orientation\n\nvar setViewportOrientation = function setViewportOrientation() {\n switch (window.orientation) {\n case -90:\n case 90:\n Browser.viewport.orientation = 'landscape';\n break;\n\n default:\n Browser.viewport.orientation = 'portrait';\n break;\n }\n};\n\nvar getDevice = function getDevice(ua) {\n var platformRegExp = /\\((iP(?:hone|ad|od))?(?:[^;]*; ){0,2}([^)]+(?=\\)))/;\n var matches = platformRegExp.exec(ua);\n var device = matches && (matches[1] || matches[2]) || '';\n return device;\n};\nvar browserInfo = getBrowserInfo(navigator.userAgent);\nBrowser.isEdge = /edge/i.test(navigator.userAgent);\nBrowser.isChrome = /chrome|CriOS/i.test(navigator.userAgent) && !Browser.isEdge;\nBrowser.isSafari = /safari/i.test(navigator.userAgent) && !Browser.isChrome && !Browser.isEdge;\nBrowser.isFirefox = /firefox/i.test(navigator.userAgent);\nBrowser.isLegacyIE = !!window.ActiveXObject;\nBrowser.isIE = Browser.isLegacyIE || /trident.*rv:1\\d/i.test(navigator.userAgent);\nBrowser.isIE11 = /trident.*rv:11/i.test(navigator.userAgent);\nBrowser.isChromecast = Browser.isChrome && /CrKey/i.test(navigator.userAgent);\nBrowser.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone|IEMobile|Mobile Safari|Opera Mini/i.test(navigator.userAgent);\nBrowser.isiOS = /iPad|iPhone|iPod/i.test(navigator.userAgent);\nBrowser.isAndroid = /Android/i.test(navigator.userAgent);\nBrowser.isWindowsPhone = /Windows Phone/i.test(navigator.userAgent);\nBrowser.isWin8App = /MSAppHost/i.test(navigator.userAgent);\nBrowser.isWiiU = /WiiU/i.test(navigator.userAgent);\nBrowser.isPS4 = /PlayStation 4/i.test(navigator.userAgent);\nBrowser.hasLocalstorage = hasLocalstorage();\nBrowser.hasFlash = hasFlash();\n/**\n* @deprecated\n* This parameter currently exists for retrocompatibility reasons.\n* Use Browser.data.name instead.\n*/\n\nBrowser.name = browserInfo.name;\n/**\n* @deprecated\n* This parameter currently exists for retrocompatibility reasons.\n* Use Browser.data.fullVersion instead.\n*/\n\nBrowser.version = browserInfo.version;\nBrowser.userAgent = navigator.userAgent;\nBrowser.data = getBrowserData();\nBrowser.os = getOsData();\nBrowser.viewport = getViewportSize();\nBrowser.device = getDevice(Browser.userAgent);\ntypeof window.orientation !== 'undefined' && setViewportOrientation();\n\nvar idsCounter = {};\nvar videoStack = [];\nvar requestAnimationFrame = (window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (fn) {\n window.setTimeout(fn, 1000 / 60);\n}).bind(window);\nvar cancelAnimationFrame = (window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout).bind(window);\nfunction assign(obj, source) {\n if (source) {\n for (var prop in source) {\n var propDescriptor = Object.getOwnPropertyDescriptor(source, prop);\n propDescriptor ? Object.defineProperty(obj, prop, propDescriptor) : obj[prop] = source[prop];\n }\n }\n\n return obj;\n}\nfunction extend(parent, properties) {\n var Surrogate = /*#__PURE__*/function (_parent) {\n _inherits(Surrogate, _parent);\n\n var _super = _createSuper(Surrogate);\n\n function Surrogate() {\n var _this;\n\n _classCallCheck(this, Surrogate);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n if (properties.initialize) properties.initialize.apply(_assertThisInitialized(_this), args);\n return _this;\n }\n\n return Surrogate;\n }(parent);\n\n assign(Surrogate.prototype, properties);\n return Surrogate;\n}\nfunction formatTime(time, paddedHours) {\n if (!isFinite(time)) return '--:--';\n time = time * 1000;\n time = parseInt(time / 1000);\n var seconds = time % 60;\n time = parseInt(time / 60);\n var minutes = time % 60;\n time = parseInt(time / 60);\n var hours = time % 24;\n var days = parseInt(time / 24);\n var out = '';\n\n if (days && days > 0) {\n out += days + ':';\n if (hours < 1) out += '00:';\n }\n\n if (hours && hours > 0 || paddedHours) out += ('0' + hours).slice(-2) + ':';\n out += ('0' + minutes).slice(-2) + ':';\n out += ('0' + seconds).slice(-2);\n return out.trim();\n}\nvar Fullscreen = {\n fullscreenElement: function fullscreenElement() {\n return document.fullscreenElement || document.webkitFullscreenElement || document.mozFullScreenElement || document.msFullscreenElement;\n },\n requestFullscreen: function requestFullscreen(el) {\n if (el.requestFullscreen) {\n return el.requestFullscreen();\n } else if (el.webkitRequestFullscreen) {\n if (typeof el.then === 'function') return el.webkitRequestFullscreen();\n el.webkitRequestFullscreen();\n } else if (el.mozRequestFullScreen) {\n return el.mozRequestFullScreen();\n } else if (el.msRequestFullscreen) {\n return el.msRequestFullscreen();\n } else if (el.querySelector && el.querySelector('video') && el.querySelector('video').webkitEnterFullScreen) {\n el.querySelector('video').webkitEnterFullScreen();\n } else if (el.webkitEnterFullScreen) {\n el.webkitEnterFullScreen();\n }\n },\n cancelFullscreen: function cancelFullscreen() {\n var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document;\n if (el.exitFullscreen) el.exitFullscreen();else if (el.webkitCancelFullScreen) el.webkitCancelFullScreen();else if (el.webkitExitFullscreen) el.webkitExitFullscreen();else if (el.mozCancelFullScreen) el.mozCancelFullScreen();else if (el.msExitFullscreen) el.msExitFullscreen();\n },\n fullscreenEnabled: function fullscreenEnabled() {\n return !!(document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled);\n }\n};\nvar Config = /*#__PURE__*/function () {\n function Config() {\n _classCallCheck(this, Config);\n }\n\n _createClass(Config, null, [{\n key: \"_defaultConfig\",\n value: function _defaultConfig() {\n return {\n volume: {\n value: 100,\n parse: parseInt\n }\n };\n }\n }, {\n key: \"_defaultValueFor\",\n value: function _defaultValueFor(key) {\n try {\n return this._defaultConfig()[key].parse(this._defaultConfig()[key].value);\n } catch (e) {\n return undefined;\n }\n }\n }, {\n key: \"_createKeyspace\",\n value: function _createKeyspace(key) {\n return \"clappr.\".concat(document.domain, \".\").concat(key);\n }\n }, {\n key: \"restore\",\n value: function restore(key) {\n if (Browser.hasLocalstorage && localStorage[this._createKeyspace(key)]) return this._defaultConfig()[key].parse(localStorage[this._createKeyspace(key)]);\n return this._defaultValueFor(key);\n }\n }, {\n key: \"persist\",\n value: function persist(key, value) {\n if (Browser.hasLocalstorage) {\n try {\n localStorage[this._createKeyspace(key)] = value;\n return true;\n } catch (e) {\n return false;\n }\n }\n }\n }]);\n\n return Config;\n}();\nvar QueryString = /*#__PURE__*/function () {\n function QueryString() {\n _classCallCheck(this, QueryString);\n }\n\n _createClass(QueryString, null, [{\n key: \"parse\",\n value: function parse(paramsString) {\n var match;\n\n var pl = /\\+/g,\n // Regex for replacing addition symbol with a space\n search = /([^&=]+)=?([^&]*)/g,\n decode = function decode(s) {\n return decodeURIComponent(s.replace(pl, ' '));\n },\n params = {};\n\n while (match = search.exec(paramsString)) {\n // eslint-disable-line no-cond-assign\n params[decode(match[1]).toLowerCase()] = decode(match[2]);\n }\n\n return params;\n }\n }, {\n key: \"params\",\n get: function get() {\n var query = window.location.search.substring(1);\n\n if (query !== this.query) {\n this._urlParams = this.parse(query);\n this.query = query;\n }\n\n return this._urlParams;\n }\n }, {\n key: \"hashParams\",\n get: function get() {\n var hash = window.location.hash.substring(1);\n\n if (hash !== this.hash) {\n this._hashParams = this.parse(hash);\n this.hash = hash;\n }\n\n return this._hashParams;\n }\n }]);\n\n return QueryString;\n}();\nfunction seekStringToSeconds() {\n var paramName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 't';\n var seconds = 0;\n var seekString = QueryString.params[paramName] || QueryString.hashParams[paramName] || '';\n var parts = seekString.match(/[0-9]+[hms]+/g) || [];\n\n if (parts.length > 0) {\n var factor = {\n 'h': 3600,\n 'm': 60,\n 's': 1\n };\n parts.forEach(function (el) {\n if (el) {\n var suffix = el[el.length - 1];\n var time = parseInt(el.slice(0, el.length - 1), 10);\n seconds += time * factor[suffix];\n }\n });\n } else if (seekString) {\n seconds = parseInt(seekString, 10);\n }\n\n return seconds;\n}\nfunction uniqueId(prefix) {\n idsCounter[prefix] || (idsCounter[prefix] = 0);\n var id = ++idsCounter[prefix];\n return prefix + id;\n}\nfunction isNumber(value) {\n return value - parseFloat(value) + 1 >= 0;\n}\nfunction currentScriptUrl() {\n var scripts = document.getElementsByTagName('script');\n return scripts.length ? scripts[scripts.length - 1].src : '';\n}\nfunction getBrowserLanguage() {\n return window.navigator && window.navigator.language;\n}\nfunction now() {\n if (window.performance && window.performance.now) return performance.now();\n return Date.now();\n} // remove the item from the array if it exists in the array\n\nfunction removeArrayItem(arr, item) {\n var i = arr.indexOf(item);\n if (i >= 0) arr.splice(i, 1);\n} // find an item regardless of its letter case\n\nfunction listContainsIgnoreCase(item, items) {\n if (item === undefined || items === undefined) return false;\n return items.find(function (itemEach) {\n return item.toLowerCase() === itemEach.toLowerCase();\n }) !== undefined;\n} // https://github.com/video-dev/can-autoplay\n\nfunction canAutoPlayMedia(cb, options) {\n options = Object.assign({\n inline: false,\n muted: false,\n timeout: 250,\n type: 'video',\n source: Media.mp4,\n element: null\n }, options);\n var element = options.element ? options.element : document.createElement(options.type);\n element.muted = options.muted;\n if (options.muted === true) element.setAttribute('muted', 'muted');\n if (options.inline === true) element.setAttribute('playsinline', 'playsinline');\n element.src = options.source;\n var promise = element.play();\n var timeoutId = setTimeout(function () {\n setResult(false, new Error(\"Timeout \".concat(options.timeout, \" ms has been reached\")));\n }, options.timeout);\n\n var setResult = function setResult(result) {\n var error = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : null;\n clearTimeout(timeoutId);\n cb(result, error);\n };\n\n if (promise !== undefined) {\n promise.then(function () {\n return setResult(true);\n })[\"catch\"](function (err) {\n return setResult(false, err);\n });\n } else {\n setResult(true);\n }\n} // Simple element factory with video recycle feature.\n\nvar DomRecycler = /*#__PURE__*/function () {\n function DomRecycler() {\n _classCallCheck(this, DomRecycler);\n }\n\n _createClass(DomRecycler, null, [{\n key: \"configure\",\n value: function configure(options) {\n this.options = zepto.extend(this.options, options);\n }\n }, {\n key: \"create\",\n value: function create(name) {\n if (this.options.recycleVideo && name === 'video' && videoStack.length > 0) return videoStack.shift();\n return document.createElement(name);\n }\n }, {\n key: \"garbage\",\n value: function garbage(el) {\n if (!this.options.recycleVideo || el.tagName.toUpperCase() !== 'VIDEO') return;\n zepto(el).children().remove();\n Object.values(el.attributes).forEach(function (attr) {\n return el.removeAttribute(attr.name);\n });\n videoStack.push(el);\n }\n }]);\n\n return DomRecycler;\n}();\nDomRecycler.options = {\n recycleVideo: false\n};\nvar DoubleEventHandler = /*#__PURE__*/function () {\n function DoubleEventHandler() {\n var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 500;\n\n _classCallCheck(this, DoubleEventHandler);\n\n this.delay = delay;\n this.lastTime = 0;\n }\n\n _createClass(DoubleEventHandler, [{\n key: \"handle\",\n value: function handle(event, cb) {\n var prevented = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;\n // Based on http://jsfiddle.net/brettwp/J4djY/\n var currentTime = new Date().getTime();\n var diffTime = currentTime - this.lastTime;\n\n if (diffTime < this.delay && diffTime > 0) {\n cb();\n prevented && event.preventDefault();\n }\n\n this.lastTime = currentTime;\n }\n }]);\n\n return DoubleEventHandler;\n}();\nvar Utils = {\n Config: Config,\n Fullscreen: Fullscreen,\n QueryString: QueryString,\n DomRecycler: DomRecycler,\n assign: assign,\n extend: extend,\n formatTime: formatTime,\n seekStringToSeconds: seekStringToSeconds,\n uniqueId: uniqueId,\n currentScriptUrl: currentScriptUrl,\n isNumber: isNumber,\n requestAnimationFrame: requestAnimationFrame,\n cancelAnimationFrame: cancelAnimationFrame,\n getBrowserLanguage: getBrowserLanguage,\n now: now,\n removeArrayItem: removeArrayItem,\n listContainsIgnoreCase: listContainsIgnoreCase,\n canAutoPlayMedia: canAutoPlayMedia,\n Media: Media,\n DoubleEventHandler: DoubleEventHandler\n};\n\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\nvar BOLD = 'font-weight: bold; font-size: 13px;';\nvar INFO = 'color: #006600;' + BOLD;\nvar DEBUG = 'color: #0000ff;' + BOLD;\nvar WARN = 'color: #ff8000;' + BOLD;\nvar ERROR = 'color: #ff0000;' + BOLD;\nvar LEVEL_DEBUG = 0;\nvar LEVEL_INFO = 1;\nvar LEVEL_WARN = 2;\nvar LEVEL_ERROR = 3;\nvar LEVEL_DISABLED = LEVEL_ERROR;\nvar COLORS = [DEBUG, INFO, WARN, ERROR, ERROR];\nvar DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled'];\n\nvar Log = /*#__PURE__*/function () {\n _createClass(Log, [{\n key: \"level\",\n get: function get() {\n return this._level;\n },\n set: function set(newLevel) {\n this._level = newLevel;\n }\n }]);\n\n function Log() {\n var level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : LEVEL_INFO;\n var offLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : LEVEL_DISABLED;\n\n _classCallCheck(this, Log);\n\n this.EXCLUDE_LIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress'];\n this.level = level;\n this.previousLevel = this.level;\n this.offLevel = offLevel;\n }\n\n _createClass(Log, [{\n key: \"debug\",\n value: function debug(klass) {\n this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1));\n }\n }, {\n key: \"info\",\n value: function info(klass) {\n this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1));\n }\n }, {\n key: \"warn\",\n value: function warn(klass) {\n this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1));\n }\n }, {\n key: \"error\",\n value: function error(klass) {\n this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1));\n }\n }, {\n key: \"onOff\",\n value: function onOff() {\n if (this.level === this.offLevel) {\n this.level = this.previousLevel;\n } else {\n this.previousLevel = this.level;\n this.level = this.offLevel;\n } // handle instances where console.log is unavailable\n\n\n window.console && window.console.log && window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN);\n }\n }, {\n key: \"log\",\n value: function log(klass, level, message) {\n if (this.EXCLUDE_LIST.indexOf(message[0]) >= 0) return;\n if (level < this.level) return;\n\n if (!message) {\n message = klass;\n klass = null;\n }\n\n var color = COLORS[level];\n var klassDescription = '';\n if (klass) klassDescription = '[' + klass + ']';\n window.console && window.console.log && window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message));\n }\n }]);\n\n return Log;\n}();\nLog.LEVEL_DEBUG = LEVEL_DEBUG;\nLog.LEVEL_INFO = LEVEL_INFO;\nLog.LEVEL_WARN = LEVEL_WARN;\nLog.LEVEL_ERROR = LEVEL_ERROR;\n\nLog.getInstance = function () {\n if (this._instance === undefined) this._instance = new this();\n return this._instance;\n};\n\nLog.setLevel = function (level) {\n this.getInstance().level = level;\n};\n\nLog.debug = function () {\n this.getInstance().debug.apply(this.getInstance(), arguments);\n};\n\nLog.info = function () {\n this.getInstance().info.apply(this.getInstance(), arguments);\n};\n\nLog.warn = function () {\n this.getInstance().warn.apply(this.getInstance(), arguments);\n};\n\nLog.error = function () {\n this.getInstance().error.apply(this.getInstance(), arguments);\n};\n\nvar slice = Array.prototype.slice;\nvar eventSplitter = /\\s+/;\n\nvar eventsApi = function eventsApi(obj, action, name, rest) {\n if (!name) return true; // Handle event maps.\n\n if (_typeof(name) === 'object') {\n for (var key in name) {\n obj[action].apply(obj, [key, name[key]].concat(rest));\n }\n\n return false;\n } // Handle space separated event names.\n\n\n if (eventSplitter.test(name)) {\n var names = name.split(eventSplitter);\n\n for (var i = 0, l = names.length; i < l; i++) {\n obj[action].apply(obj, [names[i]].concat(rest));\n }\n\n return false;\n }\n\n return true;\n};\n\nvar triggerEvents = function triggerEvents(events, args, klass, name) {\n var ev,\n i = -1;\n var l = events.length,\n a1 = args[0],\n a2 = args[1],\n a3 = args[2];\n run();\n\n function run() {\n try {\n switch (args.length) {\n /* eslint-disable curly */\n case 0:\n while (++i < l) {\n (ev = events[i]).callback.call(ev.ctx);\n }\n\n return;\n\n case 1:\n while (++i < l) {\n (ev = events[i]).callback.call(ev.ctx, a1);\n }\n\n return;\n\n case 2:\n while (++i < l) {\n (ev = events[i]).callback.call(ev.ctx, a1, a2);\n }\n\n return;\n\n case 3:\n while (++i < l) {\n (ev = events[i]).callback.call(ev.ctx, a1, a2, a3);\n }\n\n return;\n\n default:\n while (++i < l) {\n (ev = events[i]).callback.apply(ev.ctx, args);\n }\n\n return;\n }\n } catch (exception) {\n Log.error.apply(Log, [klass, 'error on event', name, 'trigger', '-', exception]);\n run();\n }\n }\n};\n/**\n * @class Events\n * @constructor\n * @module base\n */\n\n\nvar Events = /*#__PURE__*/function () {\n function Events() {\n _classCallCheck(this, Events);\n }\n\n _createClass(Events, [{\n key: \"on\",\n\n /**\n * listen to an event indefinitely, if you want to stop you need to call `off`\n * @method on\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n value: function on(name, callback, context) {\n if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this;\n this._events || (this._events = {});\n var events = this._events[name] || (this._events[name] = []);\n events.push({\n callback: callback,\n context: context,\n ctx: context || this\n });\n return this;\n }\n /**\n * listen to an event only once\n * @method once\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n\n }, {\n key: \"once\",\n value: function once(name, callback, context) {\n var _this = this;\n\n var _once;\n\n if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this;\n\n var off = function off() {\n return _this.off(name, _once);\n };\n\n _once = function once() {\n off();\n callback.apply(this, arguments);\n };\n\n return this.on(name, _once, context);\n }\n /**\n * stop listening to an event\n * @method off\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n\n }, {\n key: \"off\",\n value: function off(name, callback, context) {\n var retain, ev, events, names, i, l, j, k;\n if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this;\n\n if (!name && !callback && !context) {\n this._events = void 0;\n return this;\n }\n\n names = name ? [name] : Object.keys(this._events); // jshint maxdepth:5\n\n for (i = 0, l = names.length; i < l; i++) {\n name = names[i];\n events = this._events[name];\n\n if (events) {\n this._events[name] = retain = [];\n\n if (callback || context) {\n for (j = 0, k = events.length; j < k; j++) {\n ev = events[j];\n if (callback && callback !== ev.callback && callback !== ev.callback._callback || context && context !== ev.context) retain.push(ev);\n }\n }\n\n if (!retain.length) delete this._events[name];\n }\n }\n\n return this;\n }\n /**\n * triggers an event given its `name`\n * @method trigger\n * @param {String} name\n */\n\n }, {\n key: \"trigger\",\n value: function trigger(name) {\n var klass = this.name || this.constructor.name;\n Log.debug.apply(Log, [klass].concat(Array.prototype.slice.call(arguments)));\n if (!this._events) return this;\n var args = slice.call(arguments, 1);\n if (!eventsApi(this, 'trigger', name, args)) return this;\n var events = this._events[name];\n var allEvents = this._events.all;\n if (events) triggerEvents(events, args, klass, name);\n if (allEvents) triggerEvents(allEvents, arguments, klass, name);\n return this;\n }\n /**\n * stop listening an event for a given object\n * @method stopListening\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n */\n\n }, {\n key: \"stopListening\",\n value: function stopListening(obj, name, callback) {\n var listeningTo = this._listeningTo;\n if (!listeningTo) return this;\n var remove = !name && !callback;\n if (!callback && _typeof(name) === 'object') callback = this;\n if (obj) (listeningTo = {})[obj._listenId] = obj;\n\n for (var id in listeningTo) {\n obj = listeningTo[id];\n obj.off(name, callback, this);\n if (remove || Object.keys(obj._events).length === 0) delete this._listeningTo[id];\n }\n\n return this;\n }\n }], [{\n key: \"register\",\n value: function register(eventName) {\n Events.Custom || (Events.Custom = {});\n var property = typeof eventName === 'string' && eventName.toUpperCase().trim();\n\n if (property && !Events.Custom[property]) {\n Events.Custom[property] = property.toLowerCase().split('_').map(function (value, index) {\n return index === 0 ? value : value = value[0].toUpperCase() + value.slice(1);\n }).join('');\n } else Log.error('Events', 'Error when register event: ' + eventName);\n }\n }, {\n key: \"listAvailableCustomEvents\",\n value: function listAvailableCustomEvents() {\n Events.Custom || (Events.Custom = {});\n return Object.keys(Events.Custom).filter(function (property) {\n return typeof Events.Custom[property] === 'string';\n });\n }\n }]);\n\n return Events;\n}();\nvar listenMethods = {\n listenTo: 'on',\n listenToOnce: 'once'\n};\nObject.keys(listenMethods).forEach(function (method) {\n Events.prototype[method] = function (obj, name, callback) {\n var listeningTo = this._listeningTo || (this._listeningTo = {});\n var id = obj._listenId || (obj._listenId = uniqueId('l'));\n listeningTo[id] = obj;\n if (!callback && _typeof(name) === 'object') callback = this;\n obj[listenMethods[method]](name, callback, this);\n return this;\n };\n}); // PLAYER EVENTS\n\n/**\n * Fired when the player is ready on startup\n *\n * @event PLAYER_READY\n */\n\nEvents.PLAYER_READY = 'ready';\n/**\n * Fired when player resizes\n *\n * @event PLAYER_RESIZE\n * @param {Object} currentSize an object with the current size\n */\n\nEvents.PLAYER_RESIZE = 'resize';\n/**\n * Fired when player changes its fullscreen state\n *\n * @event PLAYER_FULLSCREEN\n * @param {Boolean} whether or not the player is on fullscreen mode\n */\n\nEvents.PLAYER_FULLSCREEN = 'fullscreen';\n/**\n * Fired when player starts to play\n *\n * @event PLAYER_PLAY\n */\n\nEvents.PLAYER_PLAY = 'play';\n/**\n * Fired when player pauses\n *\n * @event PLAYER_PAUSE\n */\n\nEvents.PLAYER_PAUSE = 'pause';\n/**\n * Fired when player stops\n *\n * @event PLAYER_STOP\n */\n\nEvents.PLAYER_STOP = 'stop';\n/**\n * Fired when player ends the video\n *\n * @event PLAYER_ENDED\n */\n\nEvents.PLAYER_ENDED = 'ended';\n/**\n * Fired when player seeks the video\n *\n * @event PLAYER_SEEK\n * @param {Number} time the current time in seconds\n */\n\nEvents.PLAYER_SEEK = 'seek';\n/**\n * Fired when player receives an error\n *\n * @event PLAYER_ERROR\n * @param {Object} error the error\n */\n\nEvents.PLAYER_ERROR = 'playererror';\n/**\n * Fired when there is an error\n *\n * @event ERROR\n * @param {Object} error\n * the error with the following format `{code, description, level, raw, origin, scope}`\n * @param {String} [options.code]\n * error's code: code to identify error in the following format: origin:code\n * @param {String} [options.description]\n * error's description: description of the error\n * @param {String} [options.level]\n * error's level: FATAL or WARN.\n * @param {String} [options.origin]\n * error's origin. Example: hls, html5, etc\n * @param {String} [options.scope]\n * error's scope. Example: playback, container, etc\n * @param {String} [options.raw]\n * raw error: the initial error received\n */\n\nEvents.ERROR = 'error';\n/**\n * Fired when the time is updated on player\n *\n * @event PLAYER_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\n\nEvents.PLAYER_TIMEUPDATE = 'timeupdate';\n/**\n * Fired when player updates its volume\n *\n * @event PLAYER_VOLUMEUPDATE\n * @param {Number} volume the current volume\n */\n\nEvents.PLAYER_VOLUMEUPDATE = 'volumeupdate';\n/**\n * Fired when subtitle is available\n *\n * @event PLAYER_SUBTITLE_AVAILABLE\n */\n\nEvents.PLAYER_SUBTITLE_AVAILABLE = 'subtitleavailable'; // Playback Events\n\n/**\n * Fired when the playback is downloading the media\n *\n * @event PLAYBACK_PROGRESS\n * @param progress {Object}\n * Data progress object\n * @param [progress.start] {Number}\n * start position of buffered content at current position\n * @param [progress.current] {Number}\n * end position of buffered content at current position\n * @param [progress.total] {Number}\n * total content to be downloaded\n * @param buffered {Array}\n * array of buffered segments ({start, end}). [Only for supported playbacks]\n */\n\nEvents.PLAYBACK_PROGRESS = 'playback:progress';\n/**\n * Fired when the time is updated on playback\n *\n * @event PLAYBACK_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\n\nEvents.PLAYBACK_TIMEUPDATE = 'playback:timeupdate';\n/**\n * Fired when playback is ready\n *\n * @event PLAYBACK_READY\n */\n\nEvents.PLAYBACK_READY = 'playback:ready';\n/**\n * Fired when the playback starts having to buffer because\n * playback can currently not be smooth.\n *\n * This corresponds to the playback `buffering` property being\n * `true`.\n *\n * @event PLAYBACK_BUFFERING\n */\n\nEvents.PLAYBACK_BUFFERING = 'playback:buffering';\n/**\n * Fired when the playback has enough in the buffer to be\n * able to play smoothly, after previously being unable to\n * do this.\n *\n * This corresponds to the playback `buffering` property being\n * `false`.\n *\n * @event PLAYBACK_BUFFERFULL\n */\n\nEvents.PLAYBACK_BUFFERFULL = 'playback:bufferfull';\n/**\n * Fired when playback changes any settings (volume, seek and etc)\n *\n * @event PLAYBACK_SETTINGSUPDATE\n */\n\nEvents.PLAYBACK_SETTINGSUPDATE = 'playback:settingsupdate';\n/**\n * Fired when playback loaded its metadata\n *\n * @event PLAYBACK_LOADEDMETADATA\n * @param {Object} metadata Data\n * settings object\n * @param {Number} [metadata.duration]\n * the playback duration\n * @param {Object} [metadata.data]\n * extra meta data\n */\n\nEvents.PLAYBACK_LOADEDMETADATA = 'playback:loadedmetadata';\n/**\n * Fired when playback updates its video quality\n *\n * @event PLAYBACK_HIGHDEFINITIONUPDATE\n * @param {Boolean} isHD\n * true when is on HD, false otherwise\n */\n\nEvents.PLAYBACK_HIGHDEFINITIONUPDATE = 'playback:highdefinitionupdate';\n/**\n * Fired when playback updates its bitrate\n *\n * @event PLAYBACK_BITRATE\n * @param {Object} bitrate Data\n * bitrate object\n * @param {Number} [bitrate.bandwidth]\n * bitrate bandwidth when it's available\n * @param {Number} [bitrate.width]\n * playback width (ex: 720, 640, 1080)\n * @param {Number} [bitrate.height]\n * playback height (ex: 240, 480, 720)\n * @param {Number} [bitrate.level]\n * playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)\n */\n\nEvents.PLAYBACK_BITRATE = 'playback:bitrate';\n/**\n * Fired when the playback has its levels\n *\n * @event PLAYBACK_LEVELS_AVAILABLE\n * @param {Array} levels\n * the ordered levels, each one with the following format `{id: 1, label: '500kbps'}` ps: id should be a number >= 0\n * @param {Number} initial\n * the initial level otherwise -1 (AUTO)\n */\n\nEvents.PLAYBACK_LEVELS_AVAILABLE = 'playback:levels:available';\n/**\n * Fired when the playback starts to switch level\n *\n * @event PLAYBACK_LEVEL_SWITCH_START\n *\n */\n\nEvents.PLAYBACK_LEVEL_SWITCH_START = 'playback:levels:switch:start';\n/**\n * Fired when the playback ends the level switch\n *\n * @event PLAYBACK_LEVEL_SWITCH_END\n *\n */\n\nEvents.PLAYBACK_LEVEL_SWITCH_END = 'playback:levels:switch:end';\n/**\n * Fired when playback internal state changes\n *\n * @event PLAYBACK_PLAYBACKSTATE\n * @param {Object} state Data\n * state object\n * @param {String} [state.type]\n * the playback type\n */\n\nEvents.PLAYBACK_PLAYBACKSTATE = 'playback:playbackstate';\n/**\n * Fired when DVR becomes enabled/disabled.\n *\n * @event PLAYBACK_DVR\n * @param {boolean} state true if dvr enabled\n */\n\nEvents.PLAYBACK_DVR = 'playback:dvr'; // TODO doc\n\nEvents.PLAYBACK_MEDIACONTROL_DISABLE = 'playback:mediacontrol:disable'; // TODO doc\n\nEvents.PLAYBACK_MEDIACONTROL_ENABLE = 'playback:mediacontrol:enable';\n/**\n * Fired when the media for a playback ends.\n *\n * @event PLAYBACK_ENDED\n * @param {String} name the name of the playback\n */\n\nEvents.PLAYBACK_ENDED = 'playback:ended';\n/**\n * Fired when user requests `play()`\n *\n * @event PLAYBACK_PLAY_INTENT\n */\n\nEvents.PLAYBACK_PLAY_INTENT = 'playback:play:intent';\n/**\n * Fired when the media for a playback starts playing.\n * This is not necessarily when the user requests `play()`\n * The media may have to buffer first.\n * I.e. `isPlaying()` might return `true` before this event is fired,\n * because `isPlaying()` represents the intended state.\n *\n * @event PLAYBACK_PLAY\n */\n\nEvents.PLAYBACK_PLAY = 'playback:play';\n/**\n * Fired when the media for a playback pauses.\n *\n * @event PLAYBACK_PAUSE\n */\n\nEvents.PLAYBACK_PAUSE = 'playback:pause';\n/**\n * Fired when the media for a playback is seeking.\n *\n * @event PLAYBACK_SEEK\n */\n\nEvents.PLAYBACK_SEEK = 'playback:seek';\n/**\n * Fired when the media for a playback is seeked.\n *\n * @event PLAYBACK_SEEKED\n */\n\nEvents.PLAYBACK_SEEKED = 'playback:seeked';\n/**\n * Fired when the media for a playback is stopped.\n *\n * @event PLAYBACK_STOP\n */\n\nEvents.PLAYBACK_STOP = 'playback:stop';\n/**\n * Fired if an error occurs in the playback.\n *\n * @event PLAYBACK_ERROR\n * @param {Object} error An object containing the error details\n * @param {String} name Playback name\n */\n\nEvents.PLAYBACK_ERROR = 'playback:error'; // TODO doc\n\nEvents.PLAYBACK_STATS_ADD = 'playback:stats:add'; // TODO doc\n\nEvents.PLAYBACK_FRAGMENT_LOADED = 'playback:fragment:loaded'; // TODO doc\n\nEvents.PLAYBACK_LEVEL_SWITCH = 'playback:level:switch';\n/**\n * Fired when subtitle is available on playback for display\n *\n * @event PLAYBACK_SUBTITLE_AVAILABLE\n */\n\nEvents.PLAYBACK_SUBTITLE_AVAILABLE = 'playback:subtitle:available';\n/**\n * Fired when playback subtitle track has changed\n *\n * @event CONTAINER_SUBTITLE_CHANGED\n * @param {Object} track Data\n * track object\n * @param {Number} [track.id]\n * selected track id\n */\n\nEvents.PLAYBACK_SUBTITLE_CHANGED = 'playback:subtitle:changed'; // Core Events\n\n/**\n * Fired when the containers are created\n *\n * @event CORE_CONTAINERS_CREATED\n */\n\nEvents.CORE_CONTAINERS_CREATED = 'core:containers:created';\n/**\n * Fired when the active container changed\n *\n * @event CORE_ACTIVE_CONTAINER_CHANGED\n */\n\nEvents.CORE_ACTIVE_CONTAINER_CHANGED = 'core:active:container:changed';\n/**\n * Fired when the options were changed for the core\n *\n * @event CORE_OPTIONS_CHANGE\n * @param {Object} new options provided to configure() method\n */\n\nEvents.CORE_OPTIONS_CHANGE = 'core:options:change';\n/**\n * Fired after creating containers, when the core is ready\n *\n * @event CORE_READY\n */\n\nEvents.CORE_READY = 'core:ready';\n/**\n * Fired when the fullscreen state change\n *\n * @event CORE_FULLSCREEN\n * @param {Boolean} whether or not the player is on fullscreen mode\n */\n\nEvents.CORE_FULLSCREEN = 'core:fullscreen';\n/**\n * Fired when core updates size\n *\n * @event CORE_RESIZE\n * @param {Object} currentSize an object with the current size\n */\n\nEvents.CORE_RESIZE = 'core:resize';\n/**\n * Fired when the screen orientation has changed.\n * This event is trigger only for mobile devices.\n *\n * @event CORE_SCREEN_ORIENTATION_CHANGED\n * @param {Object} screen An object with screen orientation\n * screen object\n * @param {Object} [screen.event]\n * window resize event object\n * @param {String} [screen.orientation]\n * screen orientation (ie: 'landscape' or 'portrait')\n */\n\nEvents.CORE_SCREEN_ORIENTATION_CHANGED = 'core:screen:orientation:changed';\n/**\n * Fired when occurs mouse move event on core element\n *\n * @event CORE_MOUSE_MOVE\n * @param {Object} event a DOM event\n */\n\nEvents.CORE_MOUSE_MOVE = 'core:mousemove';\n/**\n * Fired when occurs mouse leave event on core element\n *\n * @event CORE_MOUSE_LEAVE\n * @param {Object} event a DOM event\n */\n\nEvents.CORE_MOUSE_LEAVE = 'core:mouseleave'; // Container Events\n\n/**\n * Fired when the container internal state changes\n *\n * @event CONTAINER_PLAYBACKSTATE\n * @param {Object} state Data\n * state object\n * @param {String} [state.type]\n * the playback type\n */\n\nEvents.CONTAINER_PLAYBACKSTATE = 'container:playbackstate';\nEvents.CONTAINER_PLAYBACKDVRSTATECHANGED = 'container:dvr';\n/**\n * Fired when the container updates its bitrate\n *\n * @event CONTAINER_BITRATE\n * @param {Object} bitrate Data\n * bitrate object\n * @param {Number} [bitrate.bandwidth]\n * bitrate bandwidth when it's available\n * @param {Number} [bitrate.width]\n * playback width (ex: 720, 640, 1080)\n * @param {Number} [bitrate.height]\n * playback height (ex: 240, 480, 720)\n * @param {Number} [bitrate.level]\n * playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)\n */\n\nEvents.CONTAINER_BITRATE = 'container:bitrate';\nEvents.CONTAINER_STATS_REPORT = 'container:stats:report';\nEvents.CONTAINER_DESTROYED = 'container:destroyed';\n/**\n * Fired when the container is ready\n *\n * @event CONTAINER_READY\n */\n\nEvents.CONTAINER_READY = 'container:ready';\n/**\n * Fired when the container was resized.\n *\n * Some fullscreen modes won't trigger this resize since they don't affect the container, only the playback contents.\n *\n * @event CONTAINER_RESIZE\n */\n\nEvents.CONTAINER_RESIZE = 'container:resize';\nEvents.CONTAINER_ERROR = 'container:error';\n/**\n * Fired when the container loaded its metadata\n *\n * @event CONTAINER_LOADEDMETADATA\n * @param {Object} metadata Data\n * settings object\n * @param {Number} [metadata.duration]\n * the playback duration\n * @param {Object} [metadata.data]\n * extra meta data\n */\n\nEvents.CONTAINER_LOADEDMETADATA = 'container:loadedmetadata';\n/**\n * Fired when subtitle is available on container for display\n *\n * @event CONTAINER_SUBTITLE_AVAILABLE\n */\n\nEvents.CONTAINER_SUBTITLE_AVAILABLE = 'container:subtitle:available';\n/**\n * Fired when subtitle track has changed\n *\n * @event CONTAINER_SUBTITLE_CHANGED\n * @param {Object} track Data\n * track object\n * @param {Number} [track.id]\n * selected track id\n */\n\nEvents.CONTAINER_SUBTITLE_CHANGED = 'container:subtitle:changed';\n/**\n * Fired when the time is updated on container\n *\n * @event CONTAINER_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\n\nEvents.CONTAINER_TIMEUPDATE = 'container:timeupdate';\n/**\n * Fired when the container is downloading the media\n *\n * @event CONTAINER_PROGRESS\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.start]\n * initial downloaded content\n * @param {Number} [progress.current]\n * current dowloaded content\n * @param {Number} [progress.total]\n * total content to be downloaded\n */\n\nEvents.CONTAINER_PROGRESS = 'container:progress';\nEvents.CONTAINER_PLAY = 'container:play';\nEvents.CONTAINER_STOP = 'container:stop';\nEvents.CONTAINER_PAUSE = 'container:pause';\nEvents.CONTAINER_ENDED = 'container:ended';\nEvents.CONTAINER_CLICK = 'container:click';\nEvents.CONTAINER_DBLCLICK = 'container:dblclick';\nEvents.CONTAINER_CONTEXTMENU = 'container:contextmenu';\nEvents.CONTAINER_MOUSE_ENTER = 'container:mouseenter';\nEvents.CONTAINER_MOUSE_LEAVE = 'container:mouseleave';\n/**\n * Fired when the container seeks the video\n *\n * @event CONTAINER_SEEK\n * @param {Number} time the current time in seconds\n */\n\nEvents.CONTAINER_SEEK = 'container:seek';\n/**\n * Fired when the container was finished the seek video\n *\n * @event CONTAINER_SEEKED\n * @param {Number} time the current time in seconds\n */\n\nEvents.CONTAINER_SEEKED = 'container:seeked';\nEvents.CONTAINER_VOLUME = 'container:volume';\nEvents.CONTAINER_FULLSCREEN = 'container:fullscreen';\n/**\n * Fired when container is buffering\n *\n * @event CONTAINER_STATE_BUFFERING\n */\n\nEvents.CONTAINER_STATE_BUFFERING = 'container:state:buffering';\n/**\n * Fired when the container filled the buffer\n *\n * @event CONTAINER_STATE_BUFFERFULL\n */\n\nEvents.CONTAINER_STATE_BUFFERFULL = 'container:state:bufferfull';\n/**\n * Fired when the container changes any settings (volume, seek and etc)\n *\n * @event CONTAINER_SETTINGSUPDATE\n */\n\nEvents.CONTAINER_SETTINGSUPDATE = 'container:settingsupdate';\n/**\n * Fired when container updates its video quality\n *\n * @event CONTAINER_HIGHDEFINITIONUPDATE\n * @param {Boolean} isHD\n * true when is on HD, false otherwise\n */\n\nEvents.CONTAINER_HIGHDEFINITIONUPDATE = 'container:highdefinitionupdate';\n/**\n * Fired when the media control shows\n *\n * @event CONTAINER_MEDIACONTROL_SHOW\n */\n\nEvents.CONTAINER_MEDIACONTROL_SHOW = 'container:mediacontrol:show';\n/**\n * Fired when the media control hides\n *\n * @event CONTAINER_MEDIACONTROL_HIDE\n */\n\nEvents.CONTAINER_MEDIACONTROL_HIDE = 'container:mediacontrol:hide';\nEvents.CONTAINER_MEDIACONTROL_DISABLE = 'container:mediacontrol:disable';\nEvents.CONTAINER_MEDIACONTROL_ENABLE = 'container:mediacontrol:enable';\nEvents.CONTAINER_STATS_ADD = 'container:stats:add';\n/**\n * Fired when the options were changed for the container\n *\n * @event CONTAINER_OPTIONS_CHANGE\n */\n\nEvents.CONTAINER_OPTIONS_CHANGE = 'container:options:change'; // MediaControl Events\n\nEvents.MEDIACONTROL_RENDERED = 'mediacontrol:rendered';\n/**\n * Fired when the player enters/exit on fullscreen\n *\n * @event MEDIACONTROL_FULLSCREEN\n */\n\nEvents.MEDIACONTROL_FULLSCREEN = 'mediacontrol:fullscreen';\n/**\n * Fired when the media control shows\n *\n * @event MEDIACONTROL_SHOW\n */\n\nEvents.MEDIACONTROL_SHOW = 'mediacontrol:show';\n/**\n * Fired when the media control hides\n *\n * @event MEDIACONTROL_HIDE\n */\n\nEvents.MEDIACONTROL_HIDE = 'mediacontrol:hide';\n/**\n * Fired when mouse enters on the seekbar\n *\n * @event MEDIACONTROL_MOUSEMOVE_SEEKBAR\n * @param {Object} event\n * the javascript event\n */\n\nEvents.MEDIACONTROL_MOUSEMOVE_SEEKBAR = 'mediacontrol:mousemove:seekbar';\n/**\n * Fired when mouse leaves the seekbar\n *\n * @event MEDIACONTROL_MOUSELEAVE_SEEKBAR\n * @param {Object} event\n * the javascript event\n */\n\nEvents.MEDIACONTROL_MOUSELEAVE_SEEKBAR = 'mediacontrol:mouseleave:seekbar';\n/**\n * Fired when the media is being played\n *\n * @event MEDIACONTROL_PLAYING\n */\n\nEvents.MEDIACONTROL_PLAYING = 'mediacontrol:playing';\n/**\n * Fired when the media is not being played\n *\n * @event MEDIACONTROL_NOTPLAYING\n */\n\nEvents.MEDIACONTROL_NOTPLAYING = 'mediacontrol:notplaying';\n/**\n * Fired when the container was changed\n *\n * @event MEDIACONTROL_CONTAINERCHANGED\n */\n\nEvents.MEDIACONTROL_CONTAINERCHANGED = 'mediacontrol:containerchanged';\n/**\n * Fired when the options were changed for the mediacontrol\n *\n * @event MEDIACONTROL_OPTIONS_CHANGE\n */\n\nEvents.MEDIACONTROL_OPTIONS_CHANGE = 'mediacontrol:options:change';\n\n/**\n * @class BaseObject\n * @constructor\n * @extends Events\n * @module base\n */\n\nvar BaseObject = /*#__PURE__*/function (_Events) {\n _inherits(BaseObject, _Events);\n\n var _super = _createSuper(BaseObject);\n\n _createClass(BaseObject, [{\n key: \"options\",\n\n /**\n * returns the object options\n * @property options\n * @type Object\n */\n get: function get() {\n return this._options;\n }\n /**\n * @method constructor\n * @param {Object} options\n */\n\n }]);\n\n function BaseObject() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n _classCallCheck(this, BaseObject);\n\n _this = _super.call(this, options);\n _this._options = options;\n _this.uniqueId = uniqueId('o');\n return _this;\n }\n /**\n * a unique id prefixed with `'o'`, `o1, o232`\n *\n * @property uniqueId\n * @type String\n */\n\n\n return BaseObject;\n}(Events);\n\nvar delegateEventSplitter = /^(\\S+)\\s*(.*)$/;\n/**\n * A base class to create ui object.\n * @class UIObject\n * @constructor\n * @extends BaseObject\n * @module base\n */\n\nvar UIObject = /*#__PURE__*/function (_BaseObject) {\n _inherits(UIObject, _BaseObject);\n\n var _super = _createSuper(UIObject);\n\n _createClass(UIObject, [{\n key: \"tagName\",\n\n /**\n * a unique id prefixed with `'c'`, `c1, c232`\n *\n * @property cid\n * @type String\n */\n\n /**\n * the dom element itself\n *\n * @property el\n * @type HTMLElement\n */\n\n /**\n * the dom element wrapped by `$`\n *\n * @property $el\n * @type HTMLElement\n */\n\n /**\n * gets the tag name for the ui component\n * @method tagName\n * @default div\n * @return {String} tag's name\n */\n get: function get() {\n return 'div';\n }\n /**\n * a literal object mapping element's events to methods\n * @property events\n * @type Object\n * @example\n *\n *```javascript\n *\n * class MyButton extends UIObject {\n * constructor(options) {\n * super(options)\n * this.myId = 0\n * }\n * get events() { return { 'click': 'myClick' } }\n * myClick(){ this.myId = 42 }\n * }\n *\n * // when you click on MyButton the method `myClick` will be called\n *```\n */\n\n }, {\n key: \"events\",\n get: function get() {\n return {};\n }\n /**\n * a literal object mapping attributes and values to the element\n * element's attribute name and the value the attribute value\n * @property attributes\n * @type Object\n * @example\n *\n *```javascript\n *\n * class MyButton extends UIObject {\n * constructor(options) { super(options) }\n * get attributes() { return { class: 'my-button'} }\n * }\n *\n * // MyButton.el.className will be 'my-button'\n * ```\n */\n\n }, {\n key: \"attributes\",\n get: function get() {\n return {};\n }\n /**\n * it builds an ui component by:\n * * creating an id for the component `cid`\n * * making sure the element is created `$el`\n * * delegating all `events` to the element\n * @method constructor\n * @param {Object} options the options object\n */\n\n }]);\n\n function UIObject(options) {\n var _this;\n\n _classCallCheck(this, UIObject);\n\n _this = _super.call(this, options);\n _this.cid = uniqueId('c');\n\n _this._ensureElement();\n\n _this.delegateEvents();\n\n return _this;\n }\n /**\n * selects within the component.\n * @method $\n * @param {String} selector a selector to find within the component.\n * @return {HTMLElement} an element, if it exists.\n * @example\n * ```javascript\n * fullScreenBarUIComponent.$('.button-full') //will return only `.button-full` within the component\n * ```\n */\n\n\n _createClass(UIObject, [{\n key: \"$\",\n value: function $(selector) {\n return this.$el.find(selector);\n }\n /**\n * render the component, usually attach it to a real existent `element`\n * @method render\n * @return {UIObject} itself\n */\n\n }, {\n key: \"render\",\n value: function render() {\n return this;\n }\n /**\n * removes the ui component from DOM\n * @method destroy\n * @return {UIObject} itself\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.$el.remove();\n this.stopListening();\n this.undelegateEvents();\n return this;\n }\n /**\n * set element to `el` and `$el`\n * @method setElement\n * @param {HTMLElement} element\n * @param {Boolean} delegate whether is delegate or not\n * @return {UIObject} itself\n */\n\n }, {\n key: \"setElement\",\n value: function setElement(element, delegate) {\n if (this.$el) this.undelegateEvents();\n this.$el = zepto.zepto.isZ(element) ? element : zepto(element);\n this.el = this.$el[0];\n if (delegate !== false) this.delegateEvents();\n return this;\n }\n /**\n * delegates all the original `events` on `element` to its callbacks\n * @method delegateEvents\n * @param {Object} events\n * @return {UIObject} itself\n */\n\n }, {\n key: \"delegateEvents\",\n value: function delegateEvents(events) {\n if (!events) events = this.events;\n this.undelegateEvents();\n\n for (var key in events) {\n var method = events[key];\n if (method && method.constructor !== Function) method = this[events[key]];\n if (!method) continue;\n var match = key.match(delegateEventSplitter);\n var eventName = match[1],\n selector = match[2];\n eventName += '.delegateEvents' + this.cid;\n if (selector === '') this.$el.on(eventName, method.bind(this));else this.$el.on(eventName, selector, method.bind(this));\n }\n\n return this;\n }\n /**\n * undelegats all the `events`\n * @method undelegateEvents\n * @return {UIObject} itself\n */\n\n }, {\n key: \"undelegateEvents\",\n value: function undelegateEvents() {\n this.$el.off('.delegateEvents' + this.cid);\n return this;\n }\n /**\n * ensures the creation of this ui component\n * @method _ensureElement\n * @private\n */\n\n }, {\n key: \"_ensureElement\",\n value: function _ensureElement() {\n if (!this.el) {\n var attrs = zepto.extend({}, this.attributes);\n if (this.id) attrs.id = this.id;\n if (this.className) attrs['class'] = this.className;\n var $el = zepto(DomRecycler.create(this.tagName)).attr(attrs);\n this.setElement($el, false);\n } else {\n this.setElement(this.el, false);\n }\n }\n }]);\n\n return UIObject;\n}(BaseObject);\n\n/**\n * The PlayerError is responsible to receive and propagate errors.\n * @class PlayerError\n * @constructor\n * @extends BaseObject\n * @module components\n */\n\nvar PlayerError = /*#__PURE__*/function (_BaseObject) {\n _inherits(PlayerError, _BaseObject);\n\n var _super = _createSuper(PlayerError);\n\n _createClass(PlayerError, [{\n key: \"name\",\n get: function get() {\n return 'error';\n }\n /**\n * @property Levels\n * @type {Object} object with error levels\n */\n\n }], [{\n key: \"Levels\",\n get: function get() {\n return {\n FATAL: 'FATAL',\n WARN: 'WARN',\n INFO: 'INFO'\n };\n }\n }]);\n\n function PlayerError() {\n var _this;\n\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var core = arguments.length > 1 ? arguments[1] : undefined;\n\n _classCallCheck(this, PlayerError);\n\n _this = _super.call(this, options);\n _this.core = core;\n return _this;\n }\n /**\n * creates and trigger an error.\n * @method createError\n * @param {Object} err should be an object with code, description, level, origin, scope and raw error.\n */\n\n\n _createClass(PlayerError, [{\n key: \"createError\",\n value: function createError(err) {\n if (!this.core) {\n Log.warn(this.name, 'Core is not set. Error: ', err);\n return;\n }\n\n this.core.trigger(Events.ERROR, err);\n }\n }]);\n\n return PlayerError;\n}(BaseObject);\n\nvar ErrorMixin = {\n /**\n * creates an error.\n * @method createError\n * @param {Object} error should be an object with code, description, level and raw error.\n * @return {Object} Object with formatted error data including origin and scope\n */\n createError: function createError(error) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n useCodePrefix: true\n };\n var scope = this.constructor && this.constructor.type || '';\n var origin = this.name || scope;\n var i18n = this.i18n || this.core && this.core.i18n || this.container && this.container.i18n;\n var prefixedCode = \"\".concat(origin, \":\").concat(error && error.code || 'unknown');\n var defaultError = {\n description: '',\n level: PlayerError.Levels.FATAL,\n origin: origin,\n scope: scope,\n raw: {}\n };\n var errorData = Object.assign({}, defaultError, error, {\n code: options.useCodePrefix ? prefixedCode : error.code\n });\n\n if (i18n && errorData.level == PlayerError.Levels.FATAL && !errorData.UI) {\n var defaultUI = {\n title: i18n.t('default_error_title'),\n message: i18n.t('default_error_message')\n };\n errorData.UI = defaultUI;\n }\n\n this.playerError ? this.playerError.createError(errorData) : Log.warn(origin, 'PlayerError is not defined. Error: ', errorData);\n return errorData;\n }\n};\n\nvar UICorePlugin = /*#__PURE__*/function (_UIObject) {\n _inherits(UICorePlugin, _UIObject);\n\n var _super = _createSuper(UICorePlugin);\n\n _createClass(UICorePlugin, [{\n key: \"playerError\",\n get: function get() {\n return this.core.playerError;\n }\n }]);\n\n function UICorePlugin(core) {\n var _this;\n\n _classCallCheck(this, UICorePlugin);\n\n _this = _super.call(this, core.options);\n _this.core = core;\n _this.enabled = true;\n\n _this.bindEvents();\n\n _this.render();\n\n return _this;\n }\n\n _createClass(UICorePlugin, [{\n key: \"bindEvents\",\n value: function bindEvents() {}\n }, {\n key: \"getExternalInterface\",\n value: function getExternalInterface() {\n return {};\n }\n }, {\n key: \"enable\",\n value: function enable() {\n if (!this.enabled) {\n this.bindEvents();\n this.$el.show();\n this.enabled = true;\n }\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.stopListening();\n this.$el.hide();\n this.enabled = false;\n }\n }, {\n key: \"render\",\n value: function render() {\n return this;\n }\n }]);\n\n return UICorePlugin;\n}(UIObject);\nObject.assign(UICorePlugin.prototype, ErrorMixin);\n\nUICorePlugin.extend = function (properties) {\n return extend(UICorePlugin, properties);\n};\n\nUICorePlugin.type = 'core';\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css_248z = \".container[data-container] {\\n position: absolute;\\n background-color: black;\\n height: 100%;\\n width: 100%;\\n max-width: 100%; }\\n .container[data-container] .chromeless {\\n cursor: default; }\\n\\n[data-player]:not(.nocursor) .container[data-container]:not(.chromeless).pointer-enabled {\\n cursor: pointer; }\\n\";\nstyleInject(css_248z);\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\n\nvar Container = /*#__PURE__*/function (_UIObject) {\n _inherits(Container, _UIObject);\n\n var _super = _createSuper(Container);\n\n _createClass(Container, [{\n key: \"name\",\n\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get: function get() {\n return 'Container';\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n \"class\": 'container',\n 'data-container': ''\n };\n }\n }, {\n key: \"events\",\n get: function get() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'touchend': 'dblTap',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n };\n }\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: \"ended\",\n get: function get() {\n return this.playback.ended;\n }\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: \"buffering\",\n get: function get() {\n return this.playback.buffering;\n }\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n\n }, {\n key: \"i18n\",\n get: function get() {\n return this._i18n;\n }\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n\n }, {\n key: \"hasClosedCaptionsTracks\",\n get: function get() {\n return this.playback.hasClosedCaptionsTracks;\n }\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n\n }, {\n key: \"closedCaptionsTracks\",\n get: function get() {\n return this.playback.closedCaptionsTracks;\n }\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n\n }, {\n key: \"closedCaptionsTrackId\",\n get: function get() {\n return this.playback.closedCaptionsTrackId;\n }\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n ,\n set: function set(trackId) {\n this.playback.closedCaptionsTrackId = trackId;\n }\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n\n }]);\n\n function Container(options, i18n, playerError) {\n var _this;\n\n _classCallCheck(this, Container);\n\n _this = _super.call(this, options);\n _this._i18n = i18n;\n _this.currentTime = 0;\n _this.volume = 100;\n _this.playback = options.playback;\n _this.playerError = playerError;\n _this.settings = zepto.extend({}, _this.playback.settings);\n _this.isReady = false;\n _this.mediaControlDisabled = false;\n _this.plugins = [_this.playback];\n _this.dblTapHandler = new DoubleEventHandler(500);\n _this.clickTimer = null;\n _this.clickDelay = 200; // FIXME: could be a player option\n\n _this.bindEvents();\n\n return _this;\n }\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n\n\n _createClass(Container, [{\n key: \"bindEvents\",\n value: function bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.onProgress);\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated);\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready);\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering);\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull);\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate);\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata);\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate);\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged);\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged);\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl);\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl);\n this.listenTo(this.playback, Events.PLAYBACK_SEEK, this.onSeek);\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked);\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded);\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing);\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused);\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped);\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error);\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable);\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged);\n }\n }, {\n key: \"subtitleAvailable\",\n value: function subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE);\n }\n }, {\n key: \"subtitleChanged\",\n value: function subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track);\n }\n }, {\n key: \"playbackStateChanged\",\n value: function playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state);\n }\n }, {\n key: \"playbackDvrStateChanged\",\n value: function playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings;\n this.dvrInUse = dvrInUse;\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse);\n }\n }, {\n key: \"updateBitrate\",\n value: function updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate);\n }\n }, {\n key: \"statsReport\",\n value: function statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics);\n }\n }, {\n key: \"getPlaybackType\",\n value: function getPlaybackType() {\n return this.playback.getPlaybackType();\n }\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n\n }, {\n key: \"isDvrEnabled\",\n value: function isDvrEnabled() {\n return !!this.playback.dvrEnabled;\n }\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n\n }, {\n key: \"isDvrInUse\",\n value: function isDvrInUse() {\n return !!this.dvrInUse;\n }\n /**\n * destroys the container\n * @method destroy\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.disableResizeObserver();\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name);\n this.stopListening();\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n this.$el.remove();\n }\n }, {\n key: \"setStyle\",\n value: function setStyle(style) {\n this.$el.css(style);\n }\n }, {\n key: \"animate\",\n value: function animate(style, duration) {\n return this.$el.animate(style, duration).promise();\n }\n }, {\n key: \"ready\",\n value: function ready() {\n this.isReady = true;\n this.trigger(Events.CONTAINER_READY, this.name);\n }\n }, {\n key: \"isPlaying\",\n value: function isPlaying() {\n return this.playback.isPlaying();\n }\n }, {\n key: \"getStartTimeOffset\",\n value: function getStartTimeOffset() {\n return this.playback.getStartTimeOffset();\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.currentTime;\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.playback.getDuration();\n }\n }, {\n key: \"error\",\n value: function error(_error) {\n if (!this.isReady) this.ready();\n this.trigger(Events.CONTAINER_ERROR, _error, this.name);\n }\n }, {\n key: \"loadedMetadata\",\n value: function loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata);\n }\n }, {\n key: \"timeUpdated\",\n value: function timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current;\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name);\n }\n }, {\n key: \"onProgress\",\n value: function onProgress() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n this.trigger.apply(this, [Events.CONTAINER_PROGRESS].concat(args, [this.name]));\n }\n }, {\n key: \"playing\",\n value: function playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name);\n }\n }, {\n key: \"paused\",\n value: function paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name);\n }\n /**\n * plays the playback\n * @method play\n */\n\n }, {\n key: \"play\",\n value: function play() {\n this.playback.play();\n }\n /**\n * stops the playback\n * @method stop\n */\n\n }, {\n key: \"stop\",\n value: function stop() {\n this.playback.stop();\n this.currentTime = 0;\n }\n /**\n * pauses the playback\n * @method pause\n */\n\n }, {\n key: \"pause\",\n value: function pause() {\n this.playback.pause();\n }\n }, {\n key: \"onEnded\",\n value: function onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name);\n this.currentTime = 0;\n }\n }, {\n key: \"stopped\",\n value: function stopped() {\n this.trigger(Events.CONTAINER_STOP);\n }\n }, {\n key: \"clicked\",\n value: function clicked() {\n var _this2 = this;\n\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n // The event is delayed because it can be canceled by a double-click event\n // An example of use is to prevent playback from pausing when switching to full screen\n this.clickTimer = setTimeout(function () {\n _this2.clickTimer && _this2.trigger(Events.CONTAINER_CLICK, _this2, _this2.name);\n }, this.clickDelay);\n }\n }\n }, {\n key: \"cancelClicked\",\n value: function cancelClicked() {\n clearTimeout(this.clickTimer);\n this.clickTimer = null;\n }\n }, {\n key: \"dblClicked\",\n value: function dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.cancelClicked();\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name);\n }\n }\n }, {\n key: \"dblTap\",\n value: function dblTap(evt) {\n var _this3 = this;\n\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.dblTapHandler.handle(evt, function () {\n _this3.cancelClicked();\n\n _this3.trigger(Events.CONTAINER_DBLCLICK, _this3, _this3.name);\n });\n }\n }\n }, {\n key: \"onContextMenu\",\n value: function onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name);\n }\n }, {\n key: \"seek\",\n value: function seek(time) {\n this.playback.seek(time);\n }\n }, {\n key: \"onSeek\",\n value: function onSeek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name);\n }\n }, {\n key: \"onSeeked\",\n value: function onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name);\n }\n }, {\n key: \"seekPercentage\",\n value: function seekPercentage(percentage) {\n var duration = this.getDuration();\n\n if (percentage >= 0 && percentage <= 100) {\n var time = duration * (percentage / 100);\n this.seek(time);\n }\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(value) {\n this.volume = parseFloat(value);\n this.trigger(Events.CONTAINER_VOLUME, this.volume, this.name);\n this.playback.volume(this.volume);\n }\n }, {\n key: \"fullscreen\",\n value: function fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name);\n }\n }, {\n key: \"onBuffering\",\n value: function onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name);\n }\n }, {\n key: \"bufferfull\",\n value: function bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name);\n }\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n\n }, {\n key: \"addPlugin\",\n value: function addPlugin(plugin) {\n this.plugins.push(plugin);\n }\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n\n }, {\n key: \"hasPlugin\",\n value: function hasPlugin(name) {\n return !!this.getPlugin(name);\n }\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n\n }, {\n key: \"getPlugin\",\n value: function getPlugin(name) {\n return this.plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n }\n }, {\n key: \"mouseEnter\",\n value: function mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events.CONTAINER_MOUSE_ENTER);\n }\n }, {\n key: \"mouseLeave\",\n value: function mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(Events.CONTAINER_MOUSE_LEAVE);\n }\n }, {\n key: \"settingsUpdate\",\n value: function settingsUpdate() {\n this.settings = this.playback.settings;\n this.trigger(Events.CONTAINER_SETTINGSUPDATE);\n }\n }, {\n key: \"highDefinitionUpdate\",\n value: function highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD);\n }\n }, {\n key: \"isHighDefinitionInUse\",\n value: function isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse();\n }\n }, {\n key: \"disableMediaControl\",\n value: function disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true;\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE);\n }\n }\n }, {\n key: \"enableMediaControl\",\n value: function enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false;\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE);\n }\n }\n }, {\n key: \"updateStyle\",\n value: function updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction) this.$el.removeClass('chromeless');else this.$el.addClass('chromeless');\n }\n }, {\n key: \"enableResizeObserver\",\n value: function enableResizeObserver() {\n var _this4 = this;\n\n this.disableResizeObserver();\n this.resizeObserverInterval = setInterval(function () {\n return _this4.checkResize();\n }, 500);\n }\n }, {\n key: \"disableResizeObserver\",\n value: function disableResizeObserver() {\n this.resizeObserverInterval && clearInterval(this.resizeObserverInterval);\n }\n }, {\n key: \"checkResize\",\n value: function checkResize() {\n var newSize = {\n width: this.el.clientWidth,\n height: this.el.clientHeight\n };\n\n var _ref = this.currentSize || {},\n width = _ref.width,\n height = _ref.height;\n\n var isResize = height !== newSize.height || width !== newSize.width;\n\n if (isResize) {\n this.currentSize = newSize;\n this.trigger(Events.CONTAINER_RESIZE, newSize);\n }\n }\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n }, {\n key: \"configure\",\n value: function configure(options) {\n this._options = zepto.extend(this._options, options);\n this.updateStyle();\n this.playback.configure(this.options);\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE);\n }\n }, {\n key: \"render\",\n value: function render() {\n this.$el.append(this.playback.render().el);\n this.updateStyle();\n this.checkResize();\n this.enableResizeObserver();\n return this;\n }\n }]);\n\n return Container;\n}(UIObject);\nObject.assign(Container.prototype, ErrorMixin);\n\n/**\n * An abstraction to represent a generic playback, it's like an interface to be implemented by subclasses.\n * @class Playback\n * @constructor\n * @extends UIObject\n * @module base\n */\n\nvar Playback = /*#__PURE__*/function (_UIObject) {\n _inherits(Playback, _UIObject);\n\n var _super = _createSuper(Playback);\n\n _createClass(Playback, [{\n key: \"isAudioOnly\",\n\n /**\n * Determine if the playback does not contain video/has video but video should be ignored.\n * @property isAudioOnly\n * @type Boolean\n */\n get: function get() {\n return false;\n }\n }, {\n key: \"isAdaptive\",\n get: function get() {\n return false;\n }\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: \"ended\",\n get: function get() {\n return false;\n }\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n\n }, {\n key: \"i18n\",\n get: function get() {\n return this._i18n;\n }\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: \"buffering\",\n get: function get() {\n return false;\n }\n /**\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n\n }]);\n\n function Playback(options, i18n, playerError) {\n var _this;\n\n _classCallCheck(this, Playback);\n\n _this = _super.call(this, options);\n _this.settings = {};\n _this._i18n = i18n;\n _this.playerError = playerError;\n _this._consented = false;\n return _this;\n }\n /**\n * Gives user consent to playback (mobile devices).\n * @method consent\n * @param {Function} callback function called when playback is consented\n */\n\n\n _createClass(Playback, [{\n key: \"consent\",\n value: function consent(cb) {\n typeof cb === 'function' && cb();\n }\n /**\n * plays the playback.\n * @method play\n */\n\n }, {\n key: \"play\",\n value: function play() {}\n /**\n * pauses the playback.\n * @method pause\n */\n\n }, {\n key: \"pause\",\n value: function pause() {}\n /**\n * stops the playback.\n * @method stop\n */\n\n }, {\n key: \"stop\",\n value: function stop() {}\n /**\n * seeks the playback to a given `time` in seconds\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration\n */\n\n }, {\n key: \"seek\",\n value: function seek(time) {} // eslint-disable-line no-unused-vars\n\n /**\n * seeks the playback to a given `percentage` in percentage\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100\n */\n\n }, {\n key: \"seekPercentage\",\n value: function seekPercentage(percentage) {} // eslint-disable-line no-unused-vars\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n\n }, {\n key: \"getStartTimeOffset\",\n value: function getStartTimeOffset() {\n return 0;\n }\n /**\n * gets the duration in seconds\n * @method getDuration\n * @return {Number} duration (in seconds) of the current source\n */\n\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return 0;\n }\n /**\n * checks if the playback is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current playback is playing, otherwise `false`\n */\n\n }, {\n key: \"isPlaying\",\n value: function isPlaying() {\n return false;\n }\n /**\n * checks if the playback is ready.\n * @property isReady\n * @type {Boolean} `true` if the current playback is ready, otherwise `false`\n */\n\n }, {\n key: \"getPlaybackType\",\n // eslint-disable-line no-unused-vars\n\n /**\n * gets the playback type (`'vod', 'live', 'aod'`)\n * @method getPlaybackType\n * @return {String} you should write the playback type otherwise it'll assume `'no_op'`\n * @example\n * ```javascript\n * html5VideoPlayback.getPlaybackType() //vod\n * html5AudioPlayback.getPlaybackType() //aod\n * html5VideoPlayback.getPlaybackType() //live\n * flashHlsPlayback.getPlaybackType() //live\n * ```\n */\n value: function getPlaybackType() {\n return Playback.NO_OP;\n }\n /**\n * checks if the playback is in HD.\n * @method isHighDefinitionInUse\n * @return {Boolean} `true` if the playback is playing in HD, otherwise `false`\n */\n\n }, {\n key: \"isHighDefinitionInUse\",\n value: function isHighDefinitionInUse() {\n return false;\n }\n /**\n * mutes the playback\n * @method mute\n */\n\n }, {\n key: \"mute\",\n value: function mute() {}\n /**\n * restores the playback volume\n * @method unmute\n */\n\n }, {\n key: \"unmute\",\n value: function unmute() {}\n /**\n * sets the volume for the playback\n * @method volume\n * @param {Number} value a number between 0 (`muted`) to 100 (`max`)\n */\n\n }, {\n key: \"volume\",\n value: function volume(value) {} // eslint-disable-line no-unused-vars\n\n /**\n * enables to configure the playback after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n }, {\n key: \"configure\",\n value: function configure(options) {\n this._options = zepto.extend(this._options, options);\n }\n /**\n * attempt to autoplays the playback.\n * @method attemptAutoPlay\n */\n\n }, {\n key: \"attemptAutoPlay\",\n value: function attemptAutoPlay() {\n var _this2 = this;\n\n this.canAutoPlay(function (result, error) {\n // eslint-disable-line no-unused-vars\n result && _this2.play();\n });\n }\n /**\n * checks if the playback can autoplay.\n * @method canAutoPlay\n * @param {Function} callback function where first param is Boolean and second param is playback Error or null\n */\n\n }, {\n key: \"canAutoPlay\",\n value: function canAutoPlay(cb) {\n cb(true, null); // Assume playback can autoplay by default\n }\n }, {\n key: \"isReady\",\n get: function get() {\n return false;\n }\n /**\n * checks if the playback has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n\n }, {\n key: \"hasClosedCaptionsTracks\",\n get: function get() {\n return this.closedCaptionsTracks.length > 0;\n }\n /**\n * gets the playback available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n\n }, {\n key: \"closedCaptionsTracks\",\n get: function get() {\n return [];\n }\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n\n }, {\n key: \"closedCaptionsTrackId\",\n get: function get() {\n return -1;\n }\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n ,\n set: function set(trackId) {}\n }]);\n\n return Playback;\n}(UIObject);\nObject.assign(Playback.prototype, ErrorMixin);\n\nPlayback.extend = function (properties) {\n return extend(Playback, properties);\n};\n/**\n * checks if the playback can play a given `source`\n * If a mimeType is provided then this will be used instead of inferring the mimetype\n * from the source extension.\n * @method canPlay\n * @static\n * @param {String} source the given source ex: `http://example.com/play.mp4`\n * @param {String} [mimeType] the given mime type, ex: `'application/vnd.apple.mpegurl'`\n * @return {Boolean} `true` if the playback is playable, otherwise `false`\n */\n\n\nPlayback.canPlay = function (source, mimeType) {\n // eslint-disable-line no-unused-vars\n return false;\n};\n/**\n * a playback type for video on demand\n *\n * @property VOD\n * @static\n * @type String\n */\n\n\nPlayback.VOD = 'vod';\n/**\n * a playback type for audio on demand\n *\n * @property AOD\n * @static\n * @type String\n */\n\nPlayback.AOD = 'aod';\n/**\n * a playback type for live video\n *\n * @property LIVE\n * @static\n * @type String\n */\n\nPlayback.LIVE = 'live';\n/**\n * a default playback type\n *\n * @property NO_OP\n * @static\n * @type String\n */\n\nPlayback.NO_OP = 'no_op';\n/**\n * the plugin type\n *\n * @property type\n * @static\n * @type String\n */\n\nPlayback.type = 'playback';\n\nvar ContainerFactory = /*#__PURE__*/function (_BaseObject) {\n _inherits(ContainerFactory, _BaseObject);\n\n var _super = _createSuper(ContainerFactory);\n\n _createClass(ContainerFactory, [{\n key: \"options\",\n get: function get() {\n return this._options;\n },\n set: function set(options) {\n this._options = options;\n }\n }]);\n\n function ContainerFactory(options, loader, i18n, playerError) {\n var _this;\n\n _classCallCheck(this, ContainerFactory);\n\n _this = _super.call(this, options);\n _this._i18n = i18n;\n _this.loader = loader;\n _this.playerError = playerError;\n return _this;\n }\n\n _createClass(ContainerFactory, [{\n key: \"createContainers\",\n value: function createContainers() {\n var _this2 = this;\n\n return zepto.Deferred(function (promise) {\n promise.resolve(_this2.options.sources.map(function (source) {\n return _this2.createContainer(source);\n }));\n });\n }\n }, {\n key: \"findPlaybackPlugin\",\n value: function findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(function (p) {\n return p.canPlay(source, mimeType);\n })[0];\n }\n }, {\n key: \"createContainer\",\n value: function createContainer(source) {\n var resolvedSource = null;\n var mimeType = this.options.mimeType;\n\n if (_typeof(source) === 'object') {\n resolvedSource = source.source.toString();\n if (source.mimeType) mimeType = source.mimeType;\n } else {\n resolvedSource = source.toString();\n }\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource;\n\n var options = _objectSpread2(_objectSpread2({}, this.options), {}, {\n src: resolvedSource,\n mimeType: mimeType\n });\n\n var playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType); // Fallback to empty playback object until we sort out unsupported sources error without NoOp playback\n\n var playback = playbackPlugin ? new playbackPlugin(options, this._i18n, this.playerError) : new Playback();\n options = _objectSpread2(_objectSpread2({}, options), {}, {\n playback: playback\n });\n var container = new Container(options, this._i18n, this.playerError);\n var defer = zepto.Deferred();\n defer.promise(container);\n this.addContainerPlugins(container);\n this.listenToOnce(container, Events.CONTAINER_READY, function () {\n return defer.resolve(container);\n });\n return container;\n }\n }, {\n key: \"addContainerPlugins\",\n value: function addContainerPlugins(container) {\n this.loader.containerPlugins.forEach(function (Plugin) {\n container.addPlugin(new Plugin(container));\n });\n }\n }]);\n\n return ContainerFactory;\n}(BaseObject);\n\nvar css_248z$1 = \"[data-player] {\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n -o-user-select: none;\\n user-select: none;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n transform: translate3d(0, 0, 0);\\n position: relative;\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font-style: normal;\\n font-weight: normal;\\n text-align: center;\\n overflow: hidden;\\n font-size: 100%;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-shadow: 0 0 0;\\n box-sizing: border-box; }\\n [data-player] div, [data-player] span, [data-player] applet, [data-player] object, [data-player] iframe,\\n [data-player] h1, [data-player] h2, [data-player] h3, [data-player] h4, [data-player] h5, [data-player] h6, [data-player] p, [data-player] blockquote, [data-player] pre,\\n [data-player] a, [data-player] abbr, [data-player] acronym, [data-player] address, [data-player] big, [data-player] cite, [data-player] code,\\n [data-player] del, [data-player] dfn, [data-player] em, [data-player] img, [data-player] ins, [data-player] kbd, [data-player] q, [data-player] s, [data-player] samp,\\n [data-player] small, [data-player] strike, [data-player] strong, [data-player] sub, [data-player] sup, [data-player] tt, [data-player] var,\\n [data-player] b, [data-player] u, [data-player] i, [data-player] center,\\n [data-player] dl, [data-player] dt, [data-player] dd, [data-player] ol, [data-player] ul, [data-player] li,\\n [data-player] fieldset, [data-player] form, [data-player] label, [data-player] legend,\\n [data-player] table, [data-player] caption, [data-player] tbody, [data-player] tfoot, [data-player] thead, [data-player] tr, [data-player] th, [data-player] td,\\n [data-player] article, [data-player] aside, [data-player] canvas, [data-player] details, [data-player] embed,\\n [data-player] figure, [data-player] figcaption, [data-player] footer, [data-player] header, [data-player] hgroup,\\n [data-player] menu, [data-player] nav, [data-player] output, [data-player] ruby, [data-player] section, [data-player] summary,\\n [data-player] time, [data-player] mark, [data-player] audio, [data-player] video {\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font: inherit;\\n font-size: 100%;\\n vertical-align: baseline; }\\n [data-player] table {\\n border-collapse: collapse;\\n border-spacing: 0; }\\n [data-player] caption, [data-player] th, [data-player] td {\\n text-align: left;\\n font-weight: normal;\\n vertical-align: middle; }\\n [data-player] q, [data-player] blockquote {\\n quotes: none; }\\n [data-player] q:before, [data-player] q:after, [data-player] blockquote:before, [data-player] blockquote:after {\\n content: \\\"\\\";\\n content: none; }\\n [data-player] a img {\\n border: none; }\\n [data-player]:focus {\\n outline: 0; }\\n [data-player] * {\\n box-sizing: inherit; }\\n [data-player] > * {\\n float: none;\\n max-width: none; }\\n [data-player] > div {\\n display: block; }\\n [data-player].fullscreen {\\n width: 100% !important;\\n height: 100% !important;\\n top: 0;\\n left: 0; }\\n [data-player].nocursor {\\n cursor: none; }\\n\\n.clappr-style {\\n display: none !important; }\\n\";\nstyleInject(css_248z$1);\n\n/**\n * The Core is responsible to manage Containers and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\n\nvar Core = /*#__PURE__*/function (_UIObject) {\n _inherits(Core, _UIObject);\n\n var _super = _createSuper(Core);\n\n _createClass(Core, [{\n key: \"events\",\n get: function get() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'onMouseMove',\n 'mouseleave': 'onMouseLeave'\n };\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n 'data-player': '',\n tabindex: 9999\n };\n }\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n\n }, {\n key: \"isReady\",\n get: function get() {\n return !!this.ready;\n }\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n\n }, {\n key: \"i18n\",\n get: function get() {\n return this.getPlugin('strings') || {\n t: function t(key) {\n return key;\n }\n };\n }\n /**\n * @deprecated\n * This property currently exists for backward compatibility reasons.\n * If you need to access the media control instance, use the method getPlugin('media_control').\n * This approach is still not recommended.\n */\n\n }, {\n key: \"mediaControl\",\n get: function get() {\n return this._mediaControl || (this._mediaControl = this.getPlugin('media_control')) || this.dummyMediaControl;\n }\n }, {\n key: \"dummyMediaControl\",\n get: function get() {\n if (this._dummyMediaControl) return this._dummyMediaControl;\n this._dummyMediaControl = new UICorePlugin(this);\n return this._dummyMediaControl;\n }\n /**\n * gets the active container reference.\n * @property activeContainer\n * @type {Object}\n */\n\n }, {\n key: \"activeContainer\",\n get: function get() {\n return this._activeContainer;\n }\n /**\n * sets the active container reference and trigger a event with the new reference.\n * @property activeContainer\n * @type {Object}\n */\n ,\n set: function set(container) {\n this._activeContainer = container;\n this.trigger(Events.CORE_ACTIVE_CONTAINER_CHANGED, this._activeContainer);\n }\n /**\n * gets the active playback reference.\n * @property activePlayback\n * @type {Object}\n */\n\n }, {\n key: \"activePlayback\",\n get: function get() {\n return this.activeContainer && this.activeContainer.playback;\n }\n }]);\n\n function Core(options) {\n var _this;\n\n _classCallCheck(this, Core);\n\n _this = _super.call(this, options);\n _this.playerError = new PlayerError(options, _assertThisInitialized(_this));\n\n _this.configureDomRecycler();\n\n _this.firstResize = true;\n _this.plugins = [];\n _this.containers = []; //FIXME fullscreen api sucks\n\n _this._boundFullscreenHandler = function () {\n return _this.handleFullscreenChange();\n };\n\n zepto(document).bind('fullscreenchange', _this._boundFullscreenHandler);\n zepto(document).bind('MSFullscreenChange', _this._boundFullscreenHandler);\n zepto(document).bind('mozfullscreenchange', _this._boundFullscreenHandler);\n Browser.isMobile && zepto(window).bind('resize', function (o) {\n _this.handleWindowResize(o);\n });\n return _this;\n }\n\n _createClass(Core, [{\n key: \"configureDomRecycler\",\n value: function configureDomRecycler() {\n var recycleVideo = this.options && this.options.playback && this.options.playback.recycleVideo;\n DomRecycler.configure({\n recycleVideo: recycleVideo\n });\n }\n }, {\n key: \"createContainers\",\n value: function createContainers(options) {\n this.defer = zepto.Deferred();\n this.defer.promise(this);\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n, this.playerError);\n this.prepareContainers();\n }\n }, {\n key: \"prepareContainers\",\n value: function prepareContainers() {\n var _this2 = this;\n\n this.containerFactory.createContainers().then(function (containers) {\n return _this2.setupContainers(containers);\n }).then(function (containers) {\n return _this2.resolveOnContainersReady(containers);\n });\n }\n }, {\n key: \"updateSize\",\n value: function updateSize() {\n this.isFullscreen() ? this.setFullscreen() : this.setPlayerSize();\n }\n }, {\n key: \"setFullscreen\",\n value: function setFullscreen() {\n if (!Browser.isiOS) {\n this.$el.addClass('fullscreen');\n this.$el.removeAttr('style');\n this.previousSize = {\n width: this.options.width,\n height: this.options.height\n };\n this.currentSize = {\n width: zepto(window).width(),\n height: zepto(window).height()\n };\n }\n }\n }, {\n key: \"setPlayerSize\",\n value: function setPlayerSize() {\n this.$el.removeClass('fullscreen');\n this.currentSize = this.previousSize;\n this.previousSize = {\n width: zepto(window).width(),\n height: zepto(window).height()\n };\n this.resize(this.currentSize);\n }\n }, {\n key: \"resize\",\n value: function resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = \"\".concat(options.height);\n this.el.style.width = \"\".concat(options.width);\n } else {\n this.el.style.height = \"\".concat(options.height, \"px\");\n this.el.style.width = \"\".concat(options.width, \"px\");\n }\n\n this.previousSize = {\n width: this.options.width,\n height: this.options.height\n };\n this.options.width = options.width;\n this.options.height = options.height;\n this.currentSize = options;\n this.triggerResize(this.currentSize);\n }\n }, {\n key: \"enableResizeObserver\",\n value: function enableResizeObserver() {\n var _this3 = this;\n\n this.disableResizeObserver();\n\n var checkSizeCallback = function checkSizeCallback() {\n _this3.triggerResize({\n width: _this3.el.clientWidth,\n height: _this3.el.clientHeight\n });\n };\n\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500);\n }\n }, {\n key: \"triggerResize\",\n value: function triggerResize(newSize) {\n var thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width;\n\n if (thereWasChange) {\n this.oldHeight = newSize.height;\n this.oldWidth = newSize.width;\n this.computedSize = newSize;\n this.firstResize = false;\n this.trigger(Events.CORE_RESIZE, newSize);\n }\n }\n }, {\n key: \"disableResizeObserver\",\n value: function disableResizeObserver() {\n this.resizeObserverInterval && clearInterval(this.resizeObserverInterval);\n this.resizeObserverInterval = null;\n }\n }, {\n key: \"resolveOnContainersReady\",\n value: function resolveOnContainersReady(containers) {\n var _this4 = this;\n\n zepto.when.apply(zepto, containers).done(function () {\n _this4.defer.resolve(_this4);\n\n _this4.ready = true;\n\n _this4.trigger(Events.CORE_READY);\n });\n }\n }, {\n key: \"addPlugin\",\n value: function addPlugin(plugin) {\n this.plugins.push(plugin);\n }\n }, {\n key: \"hasPlugin\",\n value: function hasPlugin(name) {\n return !!this.getPlugin(name);\n }\n }, {\n key: \"getPlugin\",\n value: function getPlugin(name) {\n return this.plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n }\n }, {\n key: \"load\",\n value: function load(sources, mimeType) {\n this.options.mimeType = mimeType;\n sources = sources && sources.constructor === Array ? sources : [sources];\n this.options.sources = sources;\n this.containers.forEach(function (container) {\n return container.destroy();\n });\n this.containerFactory.options = zepto.extend(this.options, {\n sources: sources\n });\n this.prepareContainers();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.disableResizeObserver();\n this.containers.forEach(function (container) {\n return container.destroy();\n });\n this.plugins.forEach(function (plugin) {\n return plugin.destroy();\n });\n this.$el.remove();\n zepto(document).unbind('fullscreenchange', this._boundFullscreenHandler);\n zepto(document).unbind('MSFullscreenChange', this._boundFullscreenHandler);\n zepto(document).unbind('mozfullscreenchange', this._boundFullscreenHandler);\n this.stopListening();\n }\n }, {\n key: \"handleFullscreenChange\",\n value: function handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, this.isFullscreen());\n this.updateSize();\n }\n }, {\n key: \"handleWindowResize\",\n value: function handleWindowResize(event) {\n var orientation = window.innerWidth > window.innerHeight ? 'landscape' : 'portrait';\n if (this._screenOrientation === orientation) return;\n this._screenOrientation = orientation;\n this.triggerResize({\n width: this.el.clientWidth,\n height: this.el.clientHeight\n });\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n });\n }\n }, {\n key: \"removeContainer\",\n value: function removeContainer(container) {\n this.stopListening(container);\n this.containers = this.containers.filter(function (c) {\n return c !== container;\n });\n }\n }, {\n key: \"setupContainer\",\n value: function setupContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer);\n this.containers.push(container);\n }\n }, {\n key: \"setupContainers\",\n value: function setupContainers(containers) {\n containers.forEach(this.setupContainer.bind(this));\n this.trigger(Events.CORE_CONTAINERS_CREATED);\n this.renderContainers();\n this.activeContainer = containers[0];\n this.render();\n this.appendToParent();\n return this.containers;\n }\n }, {\n key: \"renderContainers\",\n value: function renderContainers() {\n var _this5 = this;\n\n this.containers.forEach(function (container) {\n return _this5.el.appendChild(container.render().el);\n });\n }\n }, {\n key: \"createContainer\",\n value: function createContainer(source, options) {\n var container = this.containerFactory.createContainer(source, options);\n this.setupContainer(container);\n this.el.appendChild(container.render().el);\n return container;\n }\n /**\n * @deprecated\n * This method currently exists for retrocompatibility reasons.\n * If you want the current container reference, use the activeContainer getter.\n */\n\n }, {\n key: \"getCurrentContainer\",\n value: function getCurrentContainer() {\n return this.activeContainer;\n }\n /**\n * @deprecated\n * This method currently exists for retrocompatibility reasons.\n * If you want the current playback reference, use the activePlayback getter.\n */\n\n }, {\n key: \"getCurrentPlayback\",\n value: function getCurrentPlayback() {\n return this.activePlayback;\n }\n }, {\n key: \"getPlaybackType\",\n value: function getPlaybackType() {\n return this.activeContainer && this.activeContainer.getPlaybackType();\n }\n }, {\n key: \"isFullscreen\",\n value: function isFullscreen() {\n // Ensure current instance is in fullscreen mode by checking fullscreen element\n var fullscreenElement = Fullscreen.fullscreenElement();\n if (!fullscreenElement) return false;\n var playbackEl = this.activePlayback && this.activePlayback.el;\n return fullscreenElement === this.el || fullscreenElement === playbackEl;\n }\n }, {\n key: \"toggleFullscreen\",\n value: function toggleFullscreen() {\n var _this6 = this;\n\n if (this.isFullscreen()) {\n Fullscreen.cancelFullscreen();\n !Browser.isiOS && this.$el.removeClass('fullscreen nocursor');\n } else {\n var fullscreenEl = Browser.isiOS ? this.activePlayback && this.activePlayback.el : this.el;\n if (!fullscreenEl) return;\n Browser.isSafari || Browser.isiOS ? // Safari doesn't return a promise like the other browsers. See more in https://developer.mozilla.org/en-US/docs/Web/API/Element/requestFullScreen\n Fullscreen.requestFullscreen(fullscreenEl) : Fullscreen.requestFullscreen(fullscreenEl).then(function (_) {\n return _;\n }, function (error) {\n return setTimeout(function () {\n // fixes the issue https://github.com/clappr/clappr/issues/1860\n if (!_this6.isFullscreen()) throw new ReferenceError(error);\n }, 600);\n });\n !Browser.isiOS && this.$el.addClass('fullscreen');\n }\n }\n }, {\n key: \"onMouseMove\",\n value: function onMouseMove(event) {\n this.trigger(Events.CORE_MOUSE_MOVE, event);\n }\n }, {\n key: \"onMouseLeave\",\n value: function onMouseLeave(event) {\n this.trigger(Events.CORE_MOUSE_LEAVE, event);\n }\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n }, {\n key: \"configure\",\n value: function configure(options) {\n var _this7 = this;\n\n this._options = zepto.extend(this._options, options);\n this.configureDomRecycler();\n var sources = options.source || options.sources;\n sources && this.load(sources, options.mimeType || this.options.mimeType);\n this.trigger(Events.CORE_OPTIONS_CHANGE, options); // Trigger with newly provided options\n\n this.containers.forEach(function (container) {\n return container.configure(_this7.options);\n });\n }\n }, {\n key: \"appendToParent\",\n value: function appendToParent() {\n var hasCoreParent = this.$el.parent() && this.$el.parent().length;\n !hasCoreParent && this.$el.appendTo(this.options.parentElement);\n }\n }, {\n key: \"render\",\n value: function render() {\n this.options.width = this.options.width || this.$el.width();\n this.options.height = this.options.height || this.$el.height();\n var size = {\n width: this.options.width,\n height: this.options.height\n };\n this.previousSize = this.currentSize = this.computedSize = size;\n this.updateSize();\n this.enableResizeObserver();\n return this;\n }\n }]);\n\n return Core;\n}(UIObject);\nObject.assign(Core.prototype, ErrorMixin);\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\n\nvar CoreFactory = /*#__PURE__*/function (_BaseObject) {\n _inherits(CoreFactory, _BaseObject);\n\n var _super = _createSuper(CoreFactory);\n\n _createClass(CoreFactory, [{\n key: \"loader\",\n get: function get() {\n return this.player.loader;\n }\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n\n }]);\n\n function CoreFactory(player) {\n var _this;\n\n _classCallCheck(this, CoreFactory);\n\n _this = _super.call(this);\n _this.player = player;\n _this._options = player.options;\n return _this;\n }\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n\n\n _createClass(CoreFactory, [{\n key: \"create\",\n value: function create() {\n this.options.loader = this.loader;\n this.core = new Core(this.options);\n this.addCorePlugins();\n this.core.createContainers(this.options);\n return this.core;\n }\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n\n }, {\n key: \"addCorePlugins\",\n value: function addCorePlugins() {\n var _this2 = this;\n\n this.loader.corePlugins.forEach(function (Plugin) {\n var plugin = new Plugin(_this2.core);\n\n _this2.core.addPlugin(plugin);\n\n _this2.setupExternalInterface(plugin);\n });\n return this.core;\n }\n }, {\n key: \"setupExternalInterface\",\n value: function setupExternalInterface(plugin) {\n var externalFunctions = plugin.getExternalInterface();\n\n for (var key in externalFunctions) {\n this.player[key] = externalFunctions[key].bind(plugin);\n }\n }\n }]);\n\n return CoreFactory;\n}(BaseObject);\n\nvar VERSION_REGEX = /(\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))?/;\n\nvar Version = /*#__PURE__*/function () {\n _createClass(Version, null, [{\n key: \"parse\",\n value: function parse() {\n var str = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';\n var matches = str.match(VERSION_REGEX) || [];\n\n var _matches = _slicedToArray(matches, 4),\n major = _matches[1],\n minor = _matches[2],\n patch = _matches[3];\n\n if (typeof major === 'undefined') return null;\n return new Version(major, minor, patch);\n }\n }]);\n\n function Version(major, minor, patch) {\n _classCallCheck(this, Version);\n\n this.major = parseInt(major || 0, 10);\n this.minor = parseInt(minor || 0, 10);\n this.patch = parseInt(patch || 0, 10);\n }\n\n _createClass(Version, [{\n key: \"compare\",\n value: function compare(other) {\n var diff = this.major - other.major;\n diff = diff || this.minor - other.minor;\n diff = diff || this.patch - other.patch;\n return diff;\n }\n }, {\n key: \"inc\",\n value: function inc() {\n var type = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 'patch';\n typeof this[type] !== 'undefined' && (this[type] += 1);\n return this;\n }\n }, {\n key: \"satisfies\",\n value: function satisfies(min, max) {\n return this.compare(min) >= 0 && (!max || this.compare(max) < 0);\n }\n }, {\n key: \"toString\",\n value: function toString() {\n return \"\".concat(this.major, \".\").concat(this.minor, \".\").concat(this.patch);\n }\n }]);\n\n return Version;\n}();\n\nvar filterPluginsByType = function filterPluginsByType(plugins, type) {\n if (!plugins || !type) return {};\n return Object.entries(plugins).filter(function (_ref) {\n var _ref2 = _slicedToArray(_ref, 2),\n value = _ref2[1];\n\n return value.type === type;\n }).reduce(function (obj, _ref3) {\n var _ref4 = _slicedToArray(_ref3, 2),\n key = _ref4[0],\n value = _ref4[1];\n\n return obj[key] = value, obj;\n }, {});\n};\n/**\n * It keeps a list of the default plugins (playback, container, core) and it merges external plugins with its internals.\n * @class Loader\n * @constructor\n * @extends BaseObject\n * @module components\n */\n\n\nvar Loader = (function () {\n var registry = {\n plugins: {},\n playbacks: []\n };\n var currentVersion = \"0.4.15\";\n return /*#__PURE__*/function () {\n _createClass(Loader, null, [{\n key: \"checkVersionSupport\",\n value: function checkVersionSupport(entry) {\n var _entry$prototype = entry.prototype,\n supportedVersion = _entry$prototype.supportedVersion,\n name = _entry$prototype.name;\n\n if (!supportedVersion || !supportedVersion.min) {\n Log.warn('Loader', \"missing version information for \".concat(name));\n return false;\n }\n\n var maxVersion = supportedVersion.max ? Version.parse(supportedVersion.max) : Version.parse(supportedVersion.min).inc('minor');\n var minVersion = Version.parse(supportedVersion.min);\n\n if (!Version.parse(currentVersion).satisfies(minVersion, maxVersion)) {\n Log.warn('Loader', \"unsupported plugin \".concat(name, \": Clappr version \").concat(currentVersion, \" does not match required range [\").concat(minVersion, \",\").concat(maxVersion, \")\"));\n return false;\n }\n\n return true;\n }\n }, {\n key: \"registerPlugin\",\n value: function registerPlugin(pluginEntry) {\n if (!pluginEntry || !pluginEntry.prototype.name) {\n Log.warn('Loader', \"missing information to register plugin: \".concat(pluginEntry));\n return false;\n }\n\n Loader.checkVersionSupport(pluginEntry);\n var pluginRegistry = registry.plugins;\n if (!pluginRegistry) return false;\n var previousEntry = pluginRegistry[pluginEntry.prototype.name];\n if (previousEntry) Log.warn('Loader', \"overriding plugin entry: \".concat(pluginEntry.prototype.name, \" - \").concat(previousEntry));\n pluginRegistry[pluginEntry.prototype.name] = pluginEntry;\n return true;\n }\n }, {\n key: \"registerPlayback\",\n value: function registerPlayback(playbackEntry) {\n if (!playbackEntry || !playbackEntry.prototype.name) return false;\n Loader.checkVersionSupport(playbackEntry);\n var playbacks = registry.playbacks;\n var previousEntryIdx = playbacks.findIndex(function (entry) {\n return entry.prototype.name === playbackEntry.prototype.name;\n });\n\n if (previousEntryIdx >= 0) {\n var previousEntry = playbacks[previousEntryIdx];\n playbacks.splice(previousEntryIdx, 1);\n Log.warn('Loader', \"overriding playback entry: \".concat(previousEntry.name, \" - \").concat(previousEntry));\n }\n\n registry.playbacks = [playbackEntry].concat(_toConsumableArray(playbacks));\n return true;\n }\n }, {\n key: \"unregisterPlugin\",\n value: function unregisterPlugin(name) {\n if (!name) return false;\n var plugins = registry.plugins;\n var plugin = plugins[name];\n if (!plugin) return false;\n delete plugins[name];\n return true;\n }\n }, {\n key: \"unregisterPlayback\",\n value: function unregisterPlayback(name) {\n if (!name) return false;\n var playbacks = registry.playbacks;\n var index = playbacks.findIndex(function (entry) {\n return entry.prototype.name === name;\n });\n if (index < 0) return false;\n playbacks.splice(index, 1);\n registry.playbacks = playbacks;\n return true;\n }\n }, {\n key: \"clearPlugins\",\n value: function clearPlugins() {\n registry.plugins = {};\n }\n }, {\n key: \"clearPlaybacks\",\n value: function clearPlaybacks() {\n registry.playbacks = [];\n }\n /**\n * builds the loader\n * @method constructor\n * @param {Object} externalPlugins the external plugins\n * @param {Number} playerId you can embed multiple instances of clappr, therefore this is the unique id of each one.\n */\n\n }, {\n key: \"registeredPlaybacks\",\n get: function get() {\n return _toConsumableArray(registry.playbacks);\n }\n }, {\n key: \"registeredPlugins\",\n get: function get() {\n var plugins = registry.plugins;\n var core = filterPluginsByType(plugins, 'core');\n var container = filterPluginsByType(plugins, 'container');\n return {\n core: core,\n container: container\n };\n }\n }]);\n\n function Loader() {\n var externalPlugins = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : [];\n var playerId = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0;\n\n _classCallCheck(this, Loader);\n\n this.playerId = playerId;\n this.playbackPlugins = _toConsumableArray(registry.playbacks);\n var _Loader$registeredPlu = Loader.registeredPlugins,\n core = _Loader$registeredPlu.core,\n container = _Loader$registeredPlu.container;\n this.containerPlugins = Object.values(container);\n this.corePlugins = Object.values(core);\n if (!Array.isArray(externalPlugins)) this.validateExternalPluginsType(externalPlugins);\n this.addExternalPlugins(externalPlugins);\n }\n /**\n * groups by type the external plugins that were passed through `options.plugins` it they're on a flat array\n * @method addExternalPlugins\n * @private\n * @param {Object} an config object or an array of plugins\n * @return {Object} plugins the config object with the plugins separated by type\n */\n\n\n _createClass(Loader, [{\n key: \"groupPluginsByType\",\n value: function groupPluginsByType(plugins) {\n if (Array.isArray(plugins)) {\n plugins = plugins.reduce(function (memo, plugin) {\n memo[plugin.type] || (memo[plugin.type] = []);\n memo[plugin.type].push(plugin);\n return memo;\n }, {});\n }\n\n return plugins;\n }\n }, {\n key: \"removeDups\",\n value: function removeDups(list) {\n var useReversePrecedence = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n var groupUp = function groupUp(plugins, plugin) {\n if (plugins[plugin.prototype.name] && useReversePrecedence) return plugins;\n plugins[plugin.prototype.name] && delete plugins[plugin.prototype.name];\n plugins[plugin.prototype.name] = plugin;\n return plugins;\n };\n\n var pluginsMap = list.reduceRight(groupUp, Object.create(null));\n var plugins = [];\n\n for (var key in pluginsMap) {\n plugins.unshift(pluginsMap[key]);\n }\n\n return plugins;\n }\n /**\n * adds all the external plugins that were passed through `options.plugins`\n * @method addExternalPlugins\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n\n }, {\n key: \"addExternalPlugins\",\n value: function addExternalPlugins(plugins) {\n var loadExternalPluginsFirst = typeof plugins.loadExternalPluginsFirst === 'boolean' ? plugins.loadExternalPluginsFirst : true;\n var loadExternalPlaybacksFirst = typeof plugins.loadExternalPlaybacksFirst === 'boolean' ? plugins.loadExternalPlaybacksFirst : true;\n plugins = this.groupPluginsByType(plugins);\n\n if (plugins.playback) {\n var playbacks = plugins.playback.filter(function (playback) {\n return Loader.checkVersionSupport(playback), true;\n });\n this.playbackPlugins = loadExternalPlaybacksFirst ? this.removeDups(playbacks.concat(this.playbackPlugins)) : this.removeDups(this.playbackPlugins.concat(playbacks), true);\n }\n\n if (plugins.container) {\n var containerPlugins = plugins.container.filter(function (plugin) {\n return Loader.checkVersionSupport(plugin), true;\n });\n this.containerPlugins = loadExternalPluginsFirst ? this.removeDups(containerPlugins.concat(this.containerPlugins)) : this.removeDups(this.containerPlugins.concat(containerPlugins), true);\n }\n\n if (plugins.core) {\n var corePlugins = plugins.core.filter(function (plugin) {\n return Loader.checkVersionSupport(plugin), true;\n });\n this.corePlugins = loadExternalPluginsFirst ? this.removeDups(corePlugins.concat(this.corePlugins)) : this.removeDups(this.corePlugins.concat(corePlugins), true);\n }\n }\n /**\n * validate if the external plugins that were passed through `options.plugins` are associated to the correct type\n * @method validateExternalPluginsType\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n\n }, {\n key: \"validateExternalPluginsType\",\n value: function validateExternalPluginsType(plugins) {\n var pluginTypes = ['playback', 'container', 'core'];\n pluginTypes.forEach(function (type) {\n (plugins[type] || []).forEach(function (el) {\n var errorMessage = 'external ' + el.type + ' plugin on ' + type + ' array';\n if (el.type !== type) throw new ReferenceError(errorMessage);\n });\n });\n }\n }]);\n\n return Loader;\n }();\n})();\n\nvar baseUrl = currentScriptUrl().replace(/\\/[^/]+$/, '');\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * <head>\n * <script type=\"text/javascript\" src=\"http://cdn.clappr.io/latest/clappr.min.js\"></script>\n * </head>\n * ```\n * Now, create the player:\n * ```html\n * <body>\n * <div id=\"player\"></div>\n * <script>\n * var player = new Clappr.Player({source: \"http://your.video/here.mp4\", parentId: \"#player\"});\n * </script>\n * </body>\n * ```\n */\n\nvar Player = /*#__PURE__*/function (_BaseObject) {\n _inherits(Player, _BaseObject);\n\n var _super = _createSuper(Player);\n\n _createClass(Player, [{\n key: \"loader\",\n set: function set(loader) {\n this._loader = loader;\n },\n get: function get() {\n if (!this._loader) this._loader = new Loader(this.options.plugins || {}, this.options.playerId);\n return this._loader;\n }\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: \"ended\",\n get: function get() {\n return this.core.activeContainer.ended;\n }\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: \"buffering\",\n get: function get() {\n return this.core.activeContainer.buffering;\n }\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n\n }, {\n key: \"isReady\",\n get: function get() {\n return !!this._ready;\n }\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n\n }, {\n key: \"eventsMapping\",\n get: function get() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n };\n }\n /**\n * @typedef {Object} PlaybackConfig\n * @prop {boolean} disableContextMenu\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @prop {boolean} preload\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @prop {boolean} controls\n * enabled/disables displaying controls\n * @prop {boolean} crossOrigin\n * enables cross-origin capability for media-resources\n * @prop {boolean} playInline\n * enables in-line video elements\n * @prop {boolean} audioOnly\n * enforce audio-only playback (when possible)\n * @prop {Object} externalTracks\n * pass externaly loaded track to playback\n * @prop {Number} [maxBufferLength]\n * The default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @prop {Number} [maxBackBufferLength]\n * After how much distance of the playhead data should be pruned from the buffer (influences memory consumption\n * of adaptive media-engines like Hls.js or Shaka)\n * @prop {Number} [minBufferLength]\n * After how much data in the buffer at least we attempt to consume it (influences QoS-related behavior\n * of adaptive media-engines like Hls.js or Shaka). If this is too low, and the available bandwidth is varying a lot\n * and too close to the streamed bitrate, we may continuously hit under-runs.\n * @prop {Number} [initialBandwidthEstimate]\n * define an initial bandwidth \"guess\" (or previously stored/established value) for underlying adaptive-bitreate engines\n * of adaptive playback implementations, like Hls.js or Shaka\n * @prop {Number} [maxAdaptiveBitrate]\n * Limits the streamed bitrate (for adaptive media-engines in underlying playback implementations)\n * @prop {Object} [maxAdaptiveVideoDimensions]\n * Limits the video dimensions in adaptive media-engines. Should be a literal object with `height` and `width`.\n * @prop {Boolean}[enableAutomaticABR] **default**: `true`\n * Allows to enable/disable automatic bitrate switching in adaptive media-engines\n * @prop {String} [preferredTextLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred text language, that may be enabled by the media-engine if available.\n * @prop {String} [preferredAudioLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred audio language, that may be enabled by the media-engine if available.\n */\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <<source URL>>, mimeType: <<source mime type>>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <<source URL>>, mimeType: <<source mime type>>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {Boolean} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload] @deprecated\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength] @deprecated\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu] @deprecated\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n * @param {PlaybackConfig} [options.playback]\n * Generic `Playback` component related configuration\n * @param {Boolean} [options.disableErrorScreen]\n * disables the error screen plugin.\n * @param {Number} [options.autoPlayTimeout]\n * autoplay check timeout.\n */\n\n }]);\n\n function Player(options) {\n var _this;\n\n _classCallCheck(this, Player);\n\n _this = _super.call(this, options);\n var playbackDefaultOptions = {\n recycleVideo: true\n };\n var defaultOptions = {\n playerId: uniqueId(''),\n persistConfig: true,\n width: 640,\n height: 360,\n baseUrl: baseUrl,\n allowUserInteraction: Browser.isMobile,\n playback: playbackDefaultOptions\n };\n _this._options = zepto.extend(defaultOptions, options);\n _this.options.sources = _this._normalizeSources(options);\n\n if (!_this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n _this.options.allowUserInteraction = true;\n }\n\n if (!_this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n _this.options.disableKeyboardShortcuts = true;\n }\n\n _this._registerOptionEventListeners(_this.options.events);\n\n _this._coreFactory = new CoreFactory(_assertThisInitialized(_this));\n if (_this.options.parentId) _this.setParentId(_this.options.parentId);else if (_this.options.parent) _this.attachTo(_this.options.parent);\n return _this;\n }\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n\n\n _createClass(Player, [{\n key: \"setParentId\",\n value: function setParentId(parentId) {\n var el = document.querySelector(parentId);\n if (el) this.attachTo(el);\n return this;\n }\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n\n }, {\n key: \"attachTo\",\n value: function attachTo(element) {\n this.options.parentElement = element;\n this.core = this._coreFactory.create();\n\n this._addEventListeners();\n\n return this;\n }\n }, {\n key: \"_addEventListeners\",\n value: function _addEventListeners() {\n if (!this.core.isReady) this.listenToOnce(this.core, Events.CORE_READY, this._onReady);else this._onReady();\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this._containerChanged);\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange);\n this.listenTo(this.core, Events.CORE_RESIZE, this._onResize);\n return this;\n }\n }, {\n key: \"_addContainerEventListeners\",\n value: function _addContainerEventListeners() {\n var container = this.core.activeContainer;\n\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay);\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause);\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop);\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded);\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek);\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError);\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate);\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate);\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable);\n }\n\n return this;\n }\n }, {\n key: \"_registerOptionEventListeners\",\n value: function _registerOptionEventListeners() {\n var _this2 = this;\n\n var newEvents = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n var events = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var hasNewEvents = Object.keys(newEvents).length > 0;\n hasNewEvents && Object.keys(events).forEach(function (userEvent) {\n var eventType = _this2.eventsMapping[userEvent];\n eventType && _this2.off(eventType, events[userEvent]);\n });\n Object.keys(newEvents).forEach(function (userEvent) {\n var eventType = _this2.eventsMapping[userEvent];\n\n if (eventType) {\n var eventFunction = newEvents[userEvent];\n eventFunction = typeof eventFunction === 'function' && eventFunction;\n eventFunction && _this2.on(eventType, eventFunction);\n }\n });\n return this;\n }\n }, {\n key: \"_containerChanged\",\n value: function _containerChanged() {\n this.stopListening();\n\n this._addEventListeners();\n }\n }, {\n key: \"_onReady\",\n value: function _onReady() {\n this._ready = true;\n\n this._addContainerEventListeners();\n\n this.trigger(Events.PLAYER_READY);\n }\n }, {\n key: \"_onFullscreenChange\",\n value: function _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen);\n }\n }, {\n key: \"_onVolumeUpdate\",\n value: function _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume);\n }\n }, {\n key: \"_onSubtitleAvailable\",\n value: function _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE);\n }\n }, {\n key: \"_onResize\",\n value: function _onResize(size) {\n this.trigger(Events.PLAYER_RESIZE, size);\n }\n }, {\n key: \"_onPlay\",\n value: function _onPlay() {\n this.trigger(Events.PLAYER_PLAY);\n }\n }, {\n key: \"_onPause\",\n value: function _onPause() {\n this.trigger(Events.PLAYER_PAUSE);\n }\n }, {\n key: \"_onStop\",\n value: function _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime());\n }\n }, {\n key: \"_onEnded\",\n value: function _onEnded() {\n this.trigger(Events.PLAYER_ENDED);\n }\n }, {\n key: \"_onSeek\",\n value: function _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time);\n }\n }, {\n key: \"_onTimeUpdate\",\n value: function _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress);\n }\n }, {\n key: \"_onError\",\n value: function _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error);\n }\n }, {\n key: \"_normalizeSources\",\n value: function _normalizeSources(options) {\n var sources = options.sources || (options.source !== undefined ? [options.source] : []);\n return sources.length === 0 ? [{\n source: '',\n mimeType: ''\n }] : sources;\n }\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n\n }, {\n key: \"resize\",\n value: function resize(size) {\n this.core.resize(size);\n return this;\n }\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <<source URL>>, mimeType: <<source mime type>>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n\n }, {\n key: \"load\",\n value: function load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined) this.configure({\n autoPlay: !!autoPlay\n });\n this.core.load(sources, mimeType);\n return this;\n }\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.stopListening();\n this.core.destroy();\n return this;\n }\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @param {Function} callback function called when current playback is consented\n * @example\n * ```javascript\n * player.consent(function() { doSomethingNext(); });\n * ```\n */\n\n }, {\n key: \"consent\",\n value: function consent(cb) {\n this.core.getCurrentPlayback().consent(cb);\n }\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n\n }, {\n key: \"play\",\n value: function play() {\n this.core.activeContainer.play();\n return this;\n }\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n\n }, {\n key: \"pause\",\n value: function pause() {\n this.core.activeContainer.pause();\n return this;\n }\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n\n }, {\n key: \"stop\",\n value: function stop() {\n this.core.activeContainer.stop();\n return this;\n }\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n\n }, {\n key: \"seek\",\n value: function seek(time) {\n this.core.activeContainer.seek(time);\n return this;\n }\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n\n }, {\n key: \"seekPercentage\",\n value: function seekPercentage(percentage) {\n this.core.activeContainer.seekPercentage(percentage);\n return this;\n }\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n\n }, {\n key: \"mute\",\n value: function mute() {\n this.core.activePlayback.mute();\n return this;\n }\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n\n }, {\n key: \"unmute\",\n value: function unmute() {\n this.core.activePlayback.unmute();\n return this;\n }\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n\n }, {\n key: \"isPlaying\",\n value: function isPlaying() {\n return this.core.activeContainer.isPlaying();\n }\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n\n }, {\n key: \"isDvrEnabled\",\n value: function isDvrEnabled() {\n return this.core.activeContainer.isDvrEnabled();\n }\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n\n }, {\n key: \"isDvrInUse\",\n value: function isDvrInUse() {\n return this.core.activeContainer.isDvrInUse();\n }\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n\n }, {\n key: \"configure\",\n value: function configure() {\n var options = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n this._registerOptionEventListeners(options.events, this.options.events);\n\n this.core.configure(options);\n return this;\n }\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n\n }, {\n key: \"getPlugin\",\n value: function getPlugin(name) {\n var plugins = this.core.plugins.concat(this.core.activeContainer.plugins);\n return plugins.filter(function (plugin) {\n return plugin.name === name;\n })[0];\n }\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.core.activeContainer.getCurrentTime();\n }\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n\n }, {\n key: \"getStartTimeOffset\",\n value: function getStartTimeOffset() {\n return this.core.activeContainer.getStartTimeOffset();\n }\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n return this.core.activeContainer.getDuration();\n }\n }]);\n\n return Player;\n}(BaseObject);\nObject.assign(Player.prototype, ErrorMixin);\n\n/**\n * The base class for a container plugin\n * @class ContainerPlugin\n * @constructor\n * @extends BaseObject\n * @module base\n */\n\nvar ContainerPlugin = /*#__PURE__*/function (_BaseObject) {\n _inherits(ContainerPlugin, _BaseObject);\n\n var _super = _createSuper(ContainerPlugin);\n\n _createClass(ContainerPlugin, [{\n key: \"playerError\",\n get: function get() {\n return this.container.playerError;\n }\n }]);\n\n function ContainerPlugin(container) {\n var _this;\n\n _classCallCheck(this, ContainerPlugin);\n\n _this = _super.call(this, container.options);\n _this.container = container;\n _this.enabled = true;\n\n _this.bindEvents();\n\n return _this;\n }\n\n _createClass(ContainerPlugin, [{\n key: \"enable\",\n value: function enable() {\n if (!this.enabled) {\n this.bindEvents();\n this.enabled = true;\n }\n }\n }, {\n key: \"disable\",\n value: function disable() {\n if (this.enabled) {\n this.stopListening();\n this.enabled = false;\n }\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {}\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.stopListening();\n }\n }]);\n\n return ContainerPlugin;\n}(BaseObject);\nObject.assign(ContainerPlugin.prototype, ErrorMixin);\n\nContainerPlugin.extend = function (properties) {\n return extend(ContainerPlugin, properties);\n};\n\nContainerPlugin.type = 'container';\n\nvar CorePlugin = /*#__PURE__*/function (_BaseObject) {\n _inherits(CorePlugin, _BaseObject);\n\n var _super = _createSuper(CorePlugin);\n\n _createClass(CorePlugin, [{\n key: \"playerError\",\n get: function get() {\n return this.core.playerError;\n }\n }]);\n\n function CorePlugin(core) {\n var _this;\n\n _classCallCheck(this, CorePlugin);\n\n _this = _super.call(this, core.options);\n _this.core = core;\n _this.enabled = true;\n\n _this.bindEvents();\n\n return _this;\n }\n\n _createClass(CorePlugin, [{\n key: \"bindEvents\",\n value: function bindEvents() {}\n }, {\n key: \"enable\",\n value: function enable() {\n if (!this.enabled) {\n this.bindEvents();\n this.enabled = true;\n }\n }\n }, {\n key: \"disable\",\n value: function disable() {\n if (this.enabled) {\n this.stopListening();\n this.enabled = false;\n }\n }\n }, {\n key: \"getExternalInterface\",\n value: function getExternalInterface() {\n return {};\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this.stopListening();\n }\n }]);\n\n return CorePlugin;\n}(BaseObject);\nObject.assign(CorePlugin.prototype, ErrorMixin);\n\nCorePlugin.extend = function (properties) {\n return extend(CorePlugin, properties);\n};\n\nCorePlugin.type = 'core';\n\n/**\n * The base class for an ui container plugin\n * @class UIContainerPlugin\n * @constructor\n * @extends UIObject\n * @module base\n */\n\nvar UIContainerPlugin = /*#__PURE__*/function (_UIObject) {\n _inherits(UIContainerPlugin, _UIObject);\n\n var _super = _createSuper(UIContainerPlugin);\n\n _createClass(UIContainerPlugin, [{\n key: \"playerError\",\n get: function get() {\n return this.container.playerError;\n }\n }]);\n\n function UIContainerPlugin(container) {\n var _this;\n\n _classCallCheck(this, UIContainerPlugin);\n\n _this = _super.call(this, container.options);\n _this.container = container;\n _this.enabled = true;\n\n _this.bindEvents();\n\n return _this;\n }\n\n _createClass(UIContainerPlugin, [{\n key: \"enable\",\n value: function enable() {\n if (!this.enabled) {\n this.bindEvents();\n this.$el.show();\n this.enabled = true;\n }\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.stopListening();\n this.$el.hide();\n this.enabled = false;\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {}\n }]);\n\n return UIContainerPlugin;\n}(UIObject);\nObject.assign(UIContainerPlugin.prototype, ErrorMixin);\n\nUIContainerPlugin.extend = function (properties) {\n return extend(UIContainerPlugin, properties);\n};\n\nUIContainerPlugin.type = 'container';\n\n/* eslint-disable no-var */\n// Simple JavaScript Templating\n// Paul Miller (http://paulmillr.com)\n// http://underscorejs.org\n// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n// By default, Underscore uses ERB-style template delimiters, change the\n// following template settings to use alternative delimiters.\nvar settings = {\n evaluate: /<%([\\s\\S]+?)%>/g,\n interpolate: /<%=([\\s\\S]+?)%>/g,\n escape: /<%-([\\s\\S]+?)%>/g\n}; // When customizing `templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\n\nvar noMatch = /(.)^/; // Certain characters need to be escaped so that they can be put into a\n// string literal.\n\nvar escapes = {\n '\\'': '\\'',\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\t': 't',\n \"\\u2028\": 'u2028',\n \"\\u2029\": 'u2029'\n};\nvar escaper = /\\\\|'|\\r|\\n|\\t|\\u2028|\\u2029/g; // List of HTML entities for escaping.\n\nvar htmlEntities = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n};\nvar entityRe = new RegExp('[&<>\"\\']', 'g');\n\nvar escapeExpr = function escapeExpr(string) {\n if (string === null) return '';\n return ('' + string).replace(entityRe, function (match) {\n return htmlEntities[match];\n });\n};\n\nvar counter = 0; // JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\n\nvar tmpl = function tmpl(text, data) {\n var render; // Combine delimiters into one regular expression via alternation.\n\n var matcher = new RegExp([(settings.escape || noMatch).source, (settings.interpolate || noMatch).source, (settings.evaluate || noMatch).source].join('|') + '|$', 'g'); // Compile the template source, escaping string literals appropriately.\n\n var index = 0;\n var source = '__p+=\\'';\n text.replace(matcher, function (match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset).replace(escaper, function (match) {\n return '\\\\' + escapes[match];\n });\n if (escape) source += '\\'+\\n((__t=(' + escape + '))==null?\\'\\':escapeExpr(__t))+\\n\\'';\n if (interpolate) source += '\\'+\\n((__t=(' + interpolate + '))==null?\\'\\':__t)+\\n\\'';\n if (evaluate) source += '\\';\\n' + evaluate + '\\n__p+=\\'';\n index = offset + match.length;\n return match;\n });\n source += '\\';\\n'; // If a variable is not specified, place data values in local scope.\n\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n';\n source = 'var __t,__p=\\'\\',__j=Array.prototype.join,' + 'print=function(){__p+=__j.call(arguments,\\'\\');};\\n' + source + 'return __p;\\n//# sourceURL=/microtemplates/source[' + counter++ + ']';\n\n try {\n /*jshint -W054 */\n // TODO: find a way to avoid eval\n render = new Function(settings.variable || 'obj', 'escapeExpr', source);\n } catch (e) {\n e.source = source;\n throw e;\n }\n\n if (data) return render(data, escapeExpr);\n\n var template = function template(data) {\n return render.call(this, data, escapeExpr);\n }; // Provide the compiled function source as a convenience for precompilation.\n\n\n template.source = 'function(' + (settings.variable || 'obj') + '){\\n' + source + '}';\n return template;\n};\n\ntmpl.settings = settings;\n\nvar tracksHTML = \"<% for (var i = 0; i < tracks.length; i++) { %>\\n <track data-html5-video-track=\\\"<%= i %>\\\" kind=\\\"<%= tracks[i].kind %>\\\" label=\\\"<%= tracks[i].label %>\\\" srclang=\\\"<%= tracks[i].lang %>\\\" src=\\\"<%= tracks[i].src %>\\\">\\n<% }; %>\\n\";\n\nvar css_248z$2 = \"[data-html5-video] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n display: block; }\\n\";\nstyleInject(css_248z$2);\n\nvar MIMETYPES = {\n 'mp4': ['avc1.42E01E', 'avc1.58A01E', 'avc1.4D401E', 'avc1.64001E', 'mp4v.20.8', 'mp4v.20.240', 'mp4a.40.2'].map(function (codec) {\n return 'video/mp4; codecs=\"' + codec + ', mp4a.40.2\"';\n }),\n 'ogg': ['video/ogg; codecs=\"theora, vorbis\"', 'video/ogg; codecs=\"dirac\"', 'video/ogg; codecs=\"theora, speex\"'],\n '3gpp': ['video/3gpp; codecs=\"mp4v.20.8, samr\"'],\n 'webm': ['video/webm; codecs=\"vp8, vorbis\"'],\n 'mkv': ['video/x-matroska; codecs=\"theora, vorbis\"'],\n 'm3u8': ['application/x-mpegurl']\n};\nMIMETYPES['ogv'] = MIMETYPES['ogg'];\nMIMETYPES['3gp'] = MIMETYPES['3gpp'];\nvar AUDIO_MIMETYPES = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n};\nvar KNOWN_AUDIO_MIMETYPES = Object.keys(AUDIO_MIMETYPES).reduce(function (acc, k) {\n return [].concat(_toConsumableArray(acc), _toConsumableArray(AUDIO_MIMETYPES[k]));\n}, []);\nvar UNKNOWN_ERROR = {\n code: 'unknown',\n message: 'unknown'\n}; // TODO: rename this Playback to HTML5Playback (breaking change, only after 0.3.0)\n\nvar HTML5Video = /*#__PURE__*/function (_Playback) {\n _inherits(HTML5Video, _Playback);\n\n var _super = _createSuper(HTML5Video);\n\n _createClass(HTML5Video, [{\n key: \"name\",\n get: function get() {\n return 'html5_video';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.15\"\n };\n }\n }, {\n key: \"tagName\",\n get: function get() {\n return this.isAudioOnly ? 'audio' : 'video';\n }\n }, {\n key: \"isAudioOnly\",\n get: function get() {\n var resourceUrl = this.options.src;\n\n var mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, AUDIO_MIMETYPES, this.options.mimeType);\n\n return this.options.playback && this.options.playback.audioOnly || this.options.audioOnly || KNOWN_AUDIO_MIMETYPES.indexOf(mimeTypes[0]) >= 0;\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n 'data-html5-video': ''\n };\n }\n }, {\n key: \"events\",\n get: function get() {\n return {\n 'canplay': '_onCanPlay',\n 'canplaythrough': '_handleBufferingEvents',\n 'durationchange': '_onDurationChange',\n 'ended': '_onEnded',\n 'error': '_onError',\n 'loadeddata': '_onLoadedData',\n 'loadedmetadata': '_onLoadedMetadata',\n 'pause': '_onPause',\n 'playing': '_onPlaying',\n 'progress': '_onProgress',\n 'seeking': '_onSeeking',\n 'seeked': '_onSeeked',\n 'stalled': '_handleBufferingEvents',\n 'timeupdate': '_onTimeUpdate',\n 'waiting': '_onWaiting'\n };\n }\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n\n }, {\n key: \"ended\",\n get: function get() {\n return this.el.ended;\n }\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n\n }, {\n key: \"buffering\",\n get: function get() {\n return this._isBuffering;\n }\n }, {\n key: \"isLive\",\n get: function get() {\n return this.getPlaybackType() === Playback.LIVE;\n }\n }, {\n key: \"dvrEnabled\",\n get: function get() {\n return this.getDuration() >= this._minDvrSize && this.isLive;\n }\n }, {\n key: \"minimumDVRSizeConfig\",\n get: function get() {\n return this.options.playback && this.options.playback.minimumDvrSize;\n }\n }, {\n key: \"isValidMinimumDVRSizeConfig\",\n get: function get() {\n return typeof this.minimumDVRSizeConfig !== 'undefined' && typeof this.minimumDVRSizeConfig === 'number';\n }\n }]);\n\n function HTML5Video() {\n var _this;\n\n _classCallCheck(this, HTML5Video);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this._destroyed = false;\n _this._loadStarted = false;\n _this._isBuffering = false;\n _this._playheadMoving = false;\n _this._playheadMovingTimer = null;\n _this._stopped = false;\n _this._ccTrackId = -1;\n\n _this._setupSrc(_this.options.src); // backwards compatibility (TODO: remove on 0.3.0)\n\n\n _this.options.playback || (_this.options.playback = _this.options || {});\n _this.options.playback.disableContextMenu = _this.options.playback.disableContextMenu || _this.options.disableVideoTagContextMenu;\n _this._minDvrSize = _this.isValidMinimumDVRSizeConfig ? _this.minimumDVRSizeConfig : 60;\n var playbackConfig = _this.options.playback;\n var preload = playbackConfig.preload || (Browser.isSafari ? 'auto' : _this.options.preload);\n var posterUrl; // FIXME: poster plugin should always convert poster to object with expected properties ?\n\n if (_this.options.poster) {\n if (typeof _this.options.poster === 'string') posterUrl = _this.options.poster;else if (typeof _this.options.poster.url === 'string') posterUrl = _this.options.poster.url;\n }\n\n zepto.extend(_this.el, {\n muted: _this.options.mute,\n defaultMuted: _this.options.mute,\n loop: _this.options.loop,\n poster: posterUrl,\n preload: preload || 'metadata',\n crossOrigin: playbackConfig.crossOrigin,\n 'x-webkit-playsinline': playbackConfig.playInline\n });\n if (playbackConfig.controls || _this.options.useVideoTagDefaultControls) _this.$el.attr('controls', '');\n playbackConfig.playInline && _this.$el.attr({\n playsinline: 'playsinline'\n });\n playbackConfig.crossOrigin && _this.$el.attr({\n crossorigin: playbackConfig.crossOrigin\n }); // TODO should settings be private?\n\n _this.settings = {\n \"default\": ['seekbar']\n };\n _this.settings.left = ['playpause', 'position', 'duration'];\n _this.settings.right = ['fullscreen', 'volume', 'hd-indicator'];\n playbackConfig.externalTracks && _this._setupExternalTracks(playbackConfig.externalTracks);\n _this.options.autoPlay && _this.attemptAutoPlay();\n return _this;\n }\n\n _createClass(HTML5Video, [{\n key: \"configure\",\n value: function configure(options) {\n _get(_getPrototypeOf(HTML5Video.prototype), \"configure\", this).call(this, options);\n\n this.el.loop = !!options.loop;\n } // See Playback.attemptAutoPlay()\n\n }, {\n key: \"attemptAutoPlay\",\n value: function attemptAutoPlay() {\n var _this2 = this;\n\n this.canAutoPlay(function (result, error) {\n error && Log.warn(_this2.name, 'autoplay error.', {\n result: result,\n error: error\n }); // https://github.com/clappr/clappr/issues/1076\n\n result && setTimeout(function () {\n return !_this2._destroyed && _this2.play();\n }, 0);\n });\n } // See Playback.canAutoPlay()\n\n }, {\n key: \"canAutoPlay\",\n value: function canAutoPlay(cb) {\n if (this.options.disableCanAutoPlay) {\n cb(true, null);\n return;\n }\n\n var opts = {\n timeout: this.options.autoPlayTimeout || 500,\n inline: this.options.playback.playInline || false,\n muted: this.options.mute || false // Known issue: mediacontrols may asynchronously mute video\n\n }; // Use current video element if recycling feature enabled with mobile devices\n\n if (Browser.isMobile && DomRecycler.options.recycleVideo) opts.element = this.el; // Desktop browser autoplay policy may require user action\n // Mobile browser autoplay require user consent and video recycling feature enabled\n // It may returns a false positive with source-less player consent\n\n canAutoPlayMedia(cb, opts);\n }\n }, {\n key: \"_setupExternalTracks\",\n value: function _setupExternalTracks(tracks) {\n this._externalTracks = tracks.map(function (track) {\n return {\n kind: track.kind || 'subtitles',\n // Default is 'subtitles'\n label: track.label,\n lang: track.lang,\n src: track.src\n };\n });\n }\n /**\n * Sets the source url on the <video> element, and also the 'src' property.\n * @method setupSrc\n * @private\n * @param {String} srcUrl The source URL.\n */\n\n }, {\n key: \"_setupSrc\",\n value: function _setupSrc(srcUrl) {\n if (this.el.src === srcUrl) return;\n this._ccIsSetup = false;\n this.el.src = srcUrl;\n this._src = this.el.src;\n }\n }, {\n key: \"_onLoadedMetadata\",\n value: function _onLoadedMetadata(e) {\n this._handleBufferingEvents();\n\n this.trigger(Events.PLAYBACK_LOADEDMETADATA, {\n duration: e.target.duration,\n data: e\n });\n\n this._updateSettings();\n\n var autoSeekFromUrl = typeof this._options.autoSeekFromUrl === 'undefined' || this._options.autoSeekFromUrl;\n if (this.getPlaybackType() !== Playback.LIVE && autoSeekFromUrl) this._checkInitialSeek();\n }\n }, {\n key: \"_onDurationChange\",\n value: function _onDurationChange() {\n this._updateSettings();\n\n this._onTimeUpdate(); // onProgress uses the duration\n\n\n this._onProgress();\n }\n }, {\n key: \"_updateSettings\",\n value: function _updateSettings() {\n // we can't figure out if hls resource is VoD or not until it is being loaded or duration has changed.\n // that's why we check it again and update media control accordingly.\n if (this.getPlaybackType() === Playback.VOD || this.getPlaybackType() === Playback.AOD) this.settings.left = ['playpause', 'position', 'duration'];else this.settings.left = ['playstop'];\n this.settings.seekEnabled = this.isSeekEnabled();\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE);\n }\n }, {\n key: \"isSeekEnabled\",\n value: function isSeekEnabled() {\n return isFinite(this.getDuration());\n }\n }, {\n key: \"getPlaybackType\",\n value: function getPlaybackType() {\n var onDemandType = this.tagName === 'audio' ? Playback.AOD : Playback.VOD;\n return [0, undefined, Infinity].indexOf(this.el.duration) >= 0 ? Playback.LIVE : onDemandType;\n }\n }, {\n key: \"isHighDefinitionInUse\",\n value: function isHighDefinitionInUse() {\n return false;\n } // On mobile device, HTML5 video element \"retains\" user action consent if\n // load() method is called. See Player.consent().\n\n }, {\n key: \"consent\",\n value: function consent(cb) {\n var _this3 = this;\n\n if (this.isPlaying()) {\n _get(_getPrototypeOf(HTML5Video.prototype), \"consent\", this).call(this, cb);\n } else {\n var eventHandler = function eventHandler() {\n _this3.el.removeEventListener('loadedmetadata', eventHandler, false);\n\n _this3.el.removeEventListener('error', eventHandler, false);\n\n _get(_getPrototypeOf(HTML5Video.prototype), \"consent\", _this3).call(_this3, cb);\n };\n\n this.el.addEventListener('loadedmetadata', eventHandler, false);\n this.el.addEventListener('error', eventHandler, false);\n this.el.load();\n }\n }\n }, {\n key: \"play\",\n value: function play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT);\n this._stopped = false;\n\n this._setupSrc(this._src);\n\n this._handleBufferingEvents();\n\n var promise = this.el.play(); // For more details, see https://developers.google.com/web/updates/2016/03/play-returns-promise\n\n if (promise && promise[\"catch\"]) promise[\"catch\"](function () {});\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.el.pause();\n this.dvrEnabled && this._updateDvr(true);\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.pause();\n this._stopped = true; // src will be added again in play()\n\n this.el.removeAttribute('src');\n this.el.load(); // load with no src to stop loading of the previous source and avoid leaks\n\n this._stopPlayheadMovingChecks();\n\n this._handleBufferingEvents();\n\n this.trigger(Events.PLAYBACK_STOP);\n }\n }, {\n key: \"volume\",\n value: function volume(value) {\n if (value === 0) {\n this.$el.attr({\n muted: 'true'\n });\n this.el.muted = true;\n } else {\n this.$el.attr({\n muted: null\n });\n this.el.muted = false;\n this.el.volume = value / 100;\n }\n }\n /**\n * @deprecated\n * @private\n */\n\n }, {\n key: \"mute\",\n value: function mute() {\n this.el.muted = true;\n }\n /**\n * @deprecated\n * @private\n */\n\n }, {\n key: \"unmute\",\n value: function unmute() {\n this.el.muted = false;\n }\n }, {\n key: \"isMuted\",\n value: function isMuted() {\n return this.el.muted === true || this.el.volume === 0;\n }\n }, {\n key: \"isPlaying\",\n value: function isPlaying() {\n return !this.el.paused && !this.el.ended;\n }\n }, {\n key: \"_startPlayheadMovingChecks\",\n value: function _startPlayheadMovingChecks() {\n if (this._playheadMovingTimer !== null) return;\n this._playheadMovingTimeOnCheck = null;\n\n this._determineIfPlayheadMoving();\n\n this._playheadMovingTimer = setInterval(this._determineIfPlayheadMoving.bind(this), 500);\n }\n }, {\n key: \"_stopPlayheadMovingChecks\",\n value: function _stopPlayheadMovingChecks() {\n if (this._playheadMovingTimer === null) return;\n clearInterval(this._playheadMovingTimer);\n this._playheadMovingTimer = null;\n this._playheadMoving = false;\n }\n }, {\n key: \"_determineIfPlayheadMoving\",\n value: function _determineIfPlayheadMoving() {\n var before = this._playheadMovingTimeOnCheck;\n var now = this.el.currentTime;\n this._playheadMoving = before !== now;\n this._playheadMovingTimeOnCheck = now;\n\n this._handleBufferingEvents();\n } // this seems to happen when the user is having to wait\n // for something to happen AFTER A USER INTERACTION\n // e.g the player might be buffering, but when `play()` is called\n // only at this point will this be called.\n // Or the user may seek somewhere but the new area requires buffering,\n // so it will fire then as well.\n // On devices where playing is blocked until requested with a user action,\n // buffering may start, but never finish until the user initiates a play,\n // but this only happens when play is actually requested\n\n }, {\n key: \"_onWaiting\",\n value: function _onWaiting() {\n this._loadStarted = true;\n\n this._handleBufferingEvents();\n } // called after the first frame has loaded\n // note this doesn't fire on ios before the user has requested play\n // ideally the \"loadstart\" event would be used instead, but this fires\n // before a user has requested play on iOS, and also this is always fired\n // even if the preload setting is \"none\". In both these cases this causes\n // infinite buffering until the user does something which isn't great.\n\n }, {\n key: \"_onLoadedData\",\n value: function _onLoadedData() {\n this._loadStarted = true;\n\n this._handleBufferingEvents();\n } // note this doesn't fire on ios before user has requested play\n\n }, {\n key: \"_onCanPlay\",\n value: function _onCanPlay() {\n this._handleBufferingEvents();\n }\n }, {\n key: \"_onPlaying\",\n value: function _onPlaying() {\n this._checkForClosedCaptions();\n\n this._startPlayheadMovingChecks();\n\n this._handleBufferingEvents();\n\n this.trigger(Events.PLAYBACK_PLAY);\n }\n }, {\n key: \"_onPause\",\n value: function _onPause() {\n this._stopPlayheadMovingChecks();\n\n this._handleBufferingEvents();\n\n this.trigger(Events.PLAYBACK_PAUSE);\n }\n }, {\n key: \"_onSeeking\",\n value: function _onSeeking() {\n this.trigger(Events.PLAYBACK_SEEK, this.getCurrentTime());\n\n this._handleBufferingEvents();\n }\n }, {\n key: \"_onSeeked\",\n value: function _onSeeked() {\n this._handleBufferingEvents();\n\n this.trigger(Events.PLAYBACK_SEEKED);\n }\n }, {\n key: \"_onEnded\",\n value: function _onEnded() {\n this._handleBufferingEvents();\n\n this.trigger(Events.PLAYBACK_ENDED, this.name);\n } // The playback should be classed as buffering if the following are true:\n // - the ready state is less then HAVE_FUTURE_DATA or the playhead isn't moving and it should be\n // - the media hasn't \"ended\",\n // - the media hasn't been stopped\n // - loading has started\n\n }, {\n key: \"_handleBufferingEvents\",\n value: function _handleBufferingEvents() {\n var playheadShouldBeMoving = !this.el.ended && !this.el.paused;\n var buffering = this._loadStarted && !this.el.ended && !this._stopped && (playheadShouldBeMoving && !this._playheadMoving || this.el.readyState < this.el.HAVE_FUTURE_DATA);\n\n if (this._isBuffering !== buffering) {\n this._isBuffering = buffering;\n if (buffering) this.trigger(Events.PLAYBACK_BUFFERING, this.name);else this.trigger(Events.PLAYBACK_BUFFERFULL, this.name);\n }\n }\n }, {\n key: \"_onError\",\n value: function _onError() {\n var _ref = this.el.error || UNKNOWN_ERROR,\n code = _ref.code,\n message = _ref.message;\n\n var isUnknownError = code === UNKNOWN_ERROR.code;\n var formattedError = this.createError({\n code: code,\n description: message,\n raw: this.el.error,\n level: isUnknownError ? PlayerError.Levels.WARN : PlayerError.Levels.FATAL\n });\n if (isUnknownError) Log.warn(this.name, 'HTML5 unknown error: ', formattedError);else this.trigger(Events.PLAYBACK_ERROR, formattedError);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n this._destroyed = true;\n this.handleTextTrackChange && this.el.textTracks.removeEventListener('change', this.handleTextTrackChange);\n\n _get(_getPrototypeOf(HTML5Video.prototype), \"destroy\", this).call(this);\n\n this.el.removeAttribute('src');\n this.el.load(); // load with no src to stop loading of the previous source and avoid leaks\n\n this._src = null;\n DomRecycler.garbage(this.el);\n }\n }, {\n key: \"_updateDvr\",\n value: function _updateDvr(status) {\n this.trigger(Events.PLAYBACK_DVR, status);\n this.trigger(Events.PLAYBACK_STATS_ADD, {\n 'dvr': status\n });\n }\n }, {\n key: \"seek\",\n value: function seek(time) {\n if (time < 0) {\n Log.warn('Attempt to seek to a negative time. Resetting to live point. Use seekToLivePoint() to seek to the live point.');\n time = this.getDuration();\n } // assume live if time within 3 seconds of end of stream\n\n\n this.dvrEnabled && this._updateDvr(time < this.getDuration() - 3);\n time += this.el.seekable.start(0);\n this.el.currentTime = time;\n }\n }, {\n key: \"seekPercentage\",\n value: function seekPercentage(percentage) {\n var time = this.el.duration * (percentage / 100);\n this.seek(time);\n }\n }, {\n key: \"_checkInitialSeek\",\n value: function _checkInitialSeek() {\n var seekTime = seekStringToSeconds();\n if (seekTime !== 0) this.seek(seekTime);\n }\n }, {\n key: \"getCurrentTime\",\n value: function getCurrentTime() {\n return this.el.currentTime;\n }\n }, {\n key: \"getDuration\",\n value: function getDuration() {\n var _this4 = this;\n\n if (this.isLive) {\n try {\n return this.el.seekable.end(0) - this.el.seekable.start(0);\n } catch (e) {\n setTimeout(function () {\n return _this4._updateSettings();\n }, 1000);\n }\n }\n\n return this.el.duration;\n }\n }, {\n key: \"_onTimeUpdate\",\n value: function _onTimeUpdate() {\n var duration = this.isLive ? this.getDuration() : this.el.duration;\n this.trigger(Events.PLAYBACK_TIMEUPDATE, {\n current: this.el.currentTime,\n total: duration\n }, this.name);\n }\n }, {\n key: \"_onProgress\",\n value: function _onProgress() {\n if (!this.el.buffered.length) return;\n var buffered = [];\n var bufferedPos = 0;\n\n for (var i = 0; i < this.el.buffered.length; i++) {\n buffered = [].concat(_toConsumableArray(buffered), [{\n start: this.el.buffered.start(i),\n end: this.el.buffered.end(i)\n }]);\n if (this.el.currentTime >= buffered[i].start && this.el.currentTime <= buffered[i].end) bufferedPos = i;\n }\n\n var progress = {\n start: buffered[bufferedPos].start,\n current: buffered[bufferedPos].end,\n total: this.el.duration\n };\n this.trigger(Events.PLAYBACK_PROGRESS, progress, buffered);\n }\n }, {\n key: \"_typeFor\",\n value: function _typeFor(src) {\n var mimeTypes = HTML5Video._mimeTypesForUrl(src, MIMETYPES, this.options.mimeType);\n\n if (mimeTypes.length === 0) mimeTypes = HTML5Video._mimeTypesForUrl(src, AUDIO_MIMETYPES, this.options.mimeType);\n var mimeType = mimeTypes[0] || '';\n return mimeType.split(';')[0];\n }\n }, {\n key: \"_ready\",\n value: function _ready() {\n if (this._isReadyState) return;\n this._isReadyState = true;\n this.trigger(Events.PLAYBACK_READY, this.name);\n }\n }, {\n key: \"_checkForClosedCaptions\",\n value: function _checkForClosedCaptions() {\n // Check if CC available only if current playback is HTML5Video\n if (this.isHTML5Video && !this._ccIsSetup) {\n if (this.hasClosedCaptionsTracks) {\n this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE);\n var trackId = this.closedCaptionsTrackId;\n this.closedCaptionsTrackId = trackId;\n this.handleTextTrackChange = this._handleTextTrackChange.bind(this);\n this.el.textTracks.addEventListener('change', this.handleTextTrackChange);\n }\n\n this._ccIsSetup = true;\n }\n }\n }, {\n key: \"_handleTextTrackChange\",\n value: function _handleTextTrackChange() {\n var tracks = this.closedCaptionsTracks;\n var track = tracks.find(function (track) {\n return track.track.mode === 'showing';\n }) || {\n id: -1\n };\n\n if (this._ccTrackId !== track.id) {\n this._ccTrackId = track.id;\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: track.id\n });\n }\n }\n }, {\n key: \"render\",\n value: function render() {\n if (this.options.playback.disableContextMenu) {\n this.$el.on('contextmenu', function () {\n return false;\n });\n }\n\n if (this._externalTracks && this._externalTracks.length > 0) {\n this.$el.html(this.template({\n tracks: this._externalTracks\n }));\n }\n\n this._ready();\n\n return this;\n }\n }, {\n key: \"isReady\",\n get: function get() {\n return this._isReadyState;\n }\n }, {\n key: \"isHTML5Video\",\n get: function get() {\n return this.name === HTML5Video.prototype.name;\n }\n }, {\n key: \"closedCaptionsTracks\",\n get: function get() {\n var id = 0;\n\n var trackId = function trackId() {\n return id++;\n };\n\n var textTracks = this.el.textTracks ? Array.from(this.el.textTracks) : [];\n return textTracks.filter(function (track) {\n return track.kind === 'subtitles' || track.kind === 'captions';\n }).map(function (track) {\n return {\n id: trackId(),\n name: track.label,\n track: track\n };\n });\n }\n }, {\n key: \"closedCaptionsTrackId\",\n get: function get() {\n return this._ccTrackId;\n },\n set: function set(trackId) {\n if (!isNumber(trackId)) return;\n var tracks = this.closedCaptionsTracks;\n var showingTrack; // Note: -1 is for hide all tracks\n\n if (trackId !== -1) {\n showingTrack = tracks.find(function (track) {\n return track.id === trackId;\n });\n if (!showingTrack) return; // Track id not found\n\n if (showingTrack.track.mode === 'showing') return; // Track already showing\n } // Since it is possible to display multiple tracks,\n // ensure that all tracks are hidden.\n\n\n tracks.filter(function (track) {\n return track.track.mode !== 'hidden';\n }).forEach(function (track) {\n return track.track.mode = 'hidden';\n });\n showingTrack && (showingTrack.track.mode = 'showing');\n this._ccTrackId = trackId;\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: trackId\n });\n }\n }, {\n key: \"template\",\n get: function get() {\n return tmpl(tracksHTML);\n }\n }]);\n\n return HTML5Video;\n}(Playback);\n\nHTML5Video._mimeTypesForUrl = function (resourceUrl, mimeTypesByExtension, mimeType) {\n var extension = (resourceUrl.split('?')[0].match(/.*\\.(.*)$/) || [])[1];\n var mimeTypes = mimeType || extension && mimeTypesByExtension[extension.toLowerCase()] || [];\n return mimeTypes.constructor === Array ? mimeTypes : [mimeTypes];\n};\n\nHTML5Video._canPlay = function (type, mimeTypesByExtension, resourceUrl, mimeType) {\n var mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, mimeTypesByExtension, mimeType);\n\n var media = document.createElement(type);\n return !!mimeTypes.filter(function (mediaType) {\n return !!media.canPlayType(mediaType).replace(/no/, '');\n })[0];\n};\n\nHTML5Video.canPlay = function (resourceUrl, mimeType) {\n return HTML5Video._canPlay('audio', AUDIO_MIMETYPES, resourceUrl, mimeType) || HTML5Video._canPlay('video', MIMETYPES, resourceUrl, mimeType);\n};\n\nvar HTML5Audio = /*#__PURE__*/function (_HTML5Video) {\n _inherits(HTML5Audio, _HTML5Video);\n\n var _super = _createSuper(HTML5Audio);\n\n function HTML5Audio() {\n _classCallCheck(this, HTML5Audio);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(HTML5Audio, [{\n key: \"updateSettings\",\n value: function updateSettings() {\n this.settings.left = ['playpause', 'position', 'duration'];\n this.settings.seekEnabled = this.isSeekEnabled();\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE);\n }\n }, {\n key: \"getPlaybackType\",\n value: function getPlaybackType() {\n return Playback.AOD;\n }\n }, {\n key: \"name\",\n get: function get() {\n return 'html5_audio';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.15\"\n };\n }\n }, {\n key: \"tagName\",\n get: function get() {\n return 'audio';\n }\n }, {\n key: \"isAudioOnly\",\n get: function get() {\n return true;\n }\n }]);\n\n return HTML5Audio;\n}(HTML5Video);\n\nHTML5Audio.canPlay = function (resourceUrl, mimeType) {\n var mimetypes = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n };\n return HTML5Video._canPlay('audio', mimetypes, resourceUrl, mimeType);\n};\n\nvar css_248z$3 = \"[data-html-img] {\\n max-width: 100%;\\n max-height: 100%; }\\n\";\nstyleInject(css_248z$3);\n\nvar HTMLImg = /*#__PURE__*/function (_Playback) {\n _inherits(HTMLImg, _Playback);\n\n var _super = _createSuper(HTMLImg);\n\n _createClass(HTMLImg, [{\n key: \"getPlaybackType\",\n value: function getPlaybackType() {\n return Playback.NO_OP;\n }\n }, {\n key: \"name\",\n get: function get() {\n return 'html_img';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.15\"\n };\n }\n }, {\n key: \"tagName\",\n get: function get() {\n return 'img';\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n 'data-html-img': ''\n };\n }\n }, {\n key: \"events\",\n get: function get() {\n return {\n 'load': '_onLoad',\n 'abort': '_onError',\n 'error': '_onError'\n };\n }\n }]);\n\n function HTMLImg(params) {\n var _this;\n\n _classCallCheck(this, HTMLImg);\n\n _this = _super.call(this, params);\n _this.el.src = params.src;\n return _this;\n }\n\n _createClass(HTMLImg, [{\n key: \"render\",\n value: function render() {\n this.trigger(Events.PLAYBACK_READY, this.name);\n return this;\n }\n }, {\n key: \"_onLoad\",\n value: function _onLoad() {\n this.trigger(Events.PLAYBACK_ENDED, this.name);\n }\n }, {\n key: \"_onError\",\n value: function _onError(evt) {\n var m = evt.type === 'error' ? 'load error' : 'loading aborted';\n this.trigger(Events.PLAYBACK_ERROR, {\n message: m\n }, this.name);\n }\n }]);\n\n return HTMLImg;\n}(Playback);\n\nHTMLImg.canPlay = function (resource) {\n return /\\.(png|jpg|jpeg|gif|bmp|tiff|pgm|pnm|webp)(|\\?.*)$/i.test(resource);\n};\n\nvar noOpHTML = \"<canvas data-no-op-canvas></canvas>\\n<p data-no-op-msg><%=message%></p><p>\\n</p>\";\n\nvar css_248z$4 = \"[data-no-op] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n text-align: center; }\\n\\n[data-no-op] p[data-no-op-msg] {\\n position: absolute;\\n text-align: center;\\n font-size: 25px;\\n left: 0;\\n right: 0;\\n color: white;\\n padding: 10px;\\n /* center vertically */\\n top: 50%;\\n transform: translateY(-50%);\\n max-height: 100%;\\n overflow: auto; }\\n\\n[data-no-op] canvas[data-no-op-canvas] {\\n background-color: #777;\\n height: 100%;\\n width: 100%; }\\n\";\nstyleInject(css_248z$4);\n\nvar NoOp = /*#__PURE__*/function (_Playback) {\n _inherits(NoOp, _Playback);\n\n var _super = _createSuper(NoOp);\n\n _createClass(NoOp, [{\n key: \"name\",\n get: function get() {\n return 'no_op';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.15\"\n };\n }\n }, {\n key: \"template\",\n get: function get() {\n return tmpl(noOpHTML);\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n 'data-no-op': ''\n };\n }\n }]);\n\n function NoOp() {\n var _this;\n\n _classCallCheck(this, NoOp);\n\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n _this = _super.call.apply(_super, [this].concat(args));\n _this._noiseFrameNum = -1;\n return _this;\n }\n\n _createClass(NoOp, [{\n key: \"render\",\n value: function render() {\n var playbackNotSupported = this.options.playbackNotSupportedMessage || this.i18n.t('playback_not_supported');\n this.$el.html(this.template({\n message: playbackNotSupported\n }));\n this.trigger(Events.PLAYBACK_READY, this.name);\n var showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp);\n if (this.options.autoPlay || !showForNoOp) this._animate();\n return this;\n }\n }, {\n key: \"_noise\",\n value: function _noise() {\n this._noiseFrameNum = (this._noiseFrameNum + 1) % 5;\n\n if (this._noiseFrameNum) {\n // only update noise every 5 frames to save cpu\n return;\n }\n\n var idata = this.context.createImageData(this.context.canvas.width, this.context.canvas.height);\n var buffer32;\n\n try {\n buffer32 = new Uint32Array(idata.data.buffer);\n } catch (err) {\n buffer32 = new Uint32Array(this.context.canvas.width * this.context.canvas.height * 4);\n var data = idata.data;\n\n for (var i = 0; i < data.length; i++) {\n buffer32[i] = data[i];\n }\n }\n\n var len = buffer32.length,\n m = Math.random() * 6 + 4;\n var run = 0,\n color = 0;\n\n for (var _i = 0; _i < len;) {\n if (run < 0) {\n run = m * Math.random();\n var p = Math.pow(Math.random(), 0.4);\n color = 255 * p << 24;\n }\n\n run -= 1;\n buffer32[_i++] = color;\n }\n\n this.context.putImageData(idata, 0, 0);\n }\n }, {\n key: \"_loop\",\n value: function _loop() {\n var _this2 = this;\n\n if (this._stop) return;\n\n this._noise();\n\n this._animationHandle = requestAnimationFrame(function () {\n return _this2._loop();\n });\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n if (this._animationHandle) {\n cancelAnimationFrame(this._animationHandle);\n this._stop = true;\n }\n }\n }, {\n key: \"_animate\",\n value: function _animate() {\n this.canvas = this.$el.find('canvas[data-no-op-canvas]')[0];\n this.context = this.canvas.getContext('2d');\n\n this._loop();\n }\n }]);\n\n return NoOp;\n}(Playback);\n\nNoOp.canPlay = function (source) {\n // eslint-disable-line no-unused-vars\n return true;\n};\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\nvar Styler = {\n getStyleFor: function getStyleFor(style) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n baseUrl: ''\n };\n return zepto('<style class=\"clappr-style\"></style>').html(tmpl(style.toString())(options));\n }\n};\n\n/**\n * The internationalization (i18n) plugin\n * @class Strings\n * @constructor\n * @extends CorePlugin\n * @module plugins\n */\n\nvar Strings = /*#__PURE__*/function (_CorePlugin) {\n _inherits(Strings, _CorePlugin);\n\n var _super = _createSuper(Strings);\n\n _createClass(Strings, [{\n key: \"name\",\n get: function get() {\n return 'strings';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.15\"\n };\n }\n }]);\n\n function Strings(core) {\n var _this;\n\n _classCallCheck(this, Strings);\n\n _this = _super.call(this, core);\n\n _this._initializeMessages();\n\n return _this;\n }\n /**\n * Gets a translated string for the given key.\n * @method t\n * @param {String} key the key to all messages\n * @return {String} translated label\n */\n\n\n _createClass(Strings, [{\n key: \"t\",\n value: function t(key) {\n var lang = this._language();\n\n var fallbackLang = this._messages['en'];\n var i18n = lang && this._messages[lang] || fallbackLang;\n return i18n[key] || fallbackLang[key] || key;\n }\n }, {\n key: \"_language\",\n value: function _language() {\n return this.core.options.language || getBrowserLanguage();\n }\n }, {\n key: \"_initializeMessages\",\n value: function _initializeMessages() {\n var defaultMessages = {\n 'en': {\n 'live': 'live',\n 'back_to_live': 'back to live',\n 'disabled': 'Disabled',\n 'playback_not_supported': 'Your browser does not support the playback of this video. Please try using a different browser.',\n 'default_error_title': 'Could not play video.',\n 'default_error_message': 'There was a problem trying to load the video.'\n },\n 'pt': {\n 'live': 'ao vivo',\n 'back_to_live': 'voltar para o ao vivo',\n 'disabled': 'Desativado',\n 'playback_not_supported': 'Seu navegador não supporta a reprodução deste video. Por favor, tente usar um navegador diferente.',\n 'default_error_title': 'Não foi possível reproduzir o vídeo.',\n 'default_error_message': 'Ocorreu um problema ao tentar carregar o vídeo.'\n },\n 'es': {\n 'live': 'vivo',\n 'back_to_live': 'volver en vivo',\n 'disabled': 'Discapacitado',\n 'playback_not_supported': 'Su navegador no soporta la reproducción de un video. Por favor, trate de usar un navegador diferente.'\n },\n 'ru': {\n 'live': 'прямой эфир',\n 'back_to_live': 'к прямому эфиру',\n 'disabled': 'Отключено',\n 'playback_not_supported': 'Ваш браузер не поддерживает воспроизведение этого видео. Пожалуйста, попробуйте другой браузер.'\n },\n 'fr': {\n 'live': 'en direct',\n 'back_to_live': 'retour au direct',\n 'disabled': 'Désactivé',\n 'playback_not_supported': 'Votre navigateur ne supporte pas la lecture de cette vidéo. Merci de tenter sur un autre navigateur.',\n 'default_error_title': 'Impossible de lire la vidéo.',\n 'default_error_message': 'Un problème est survenu lors du chargement de la vidéo.'\n },\n 'tr': {\n 'live': 'canlı',\n 'back_to_live': 'canlı yayına dön',\n 'disabled': 'Engelli',\n 'playback_not_supported': 'Tarayıcınız bu videoyu oynatma desteğine sahip değil. Lütfen farklı bir tarayıcı ile deneyin.'\n },\n 'et': {\n 'live': 'Otseülekanne',\n 'back_to_live': 'Tagasi otseülekande juurde',\n 'disabled': 'Keelatud',\n 'playback_not_supported': 'Teie brauser ei toeta selle video taasesitust. Proovige kasutada muud brauserit.'\n },\n 'ar': {\n 'live': 'مباشر',\n 'back_to_live': 'الرجوع إلى المباشر',\n 'disabled': 'معطّل',\n 'playback_not_supported': 'المتصفح الذي تستخدمه لا يدعم تشغيل هذا الفيديو. الرجاء إستخدام متصفح آخر.',\n 'default_error_title': 'غير قادر الى التشغيل.',\n 'default_error_message': 'حدثت مشكلة أثناء تحميل الفيديو.'\n }\n };\n this._messages = zepto.extend(true, defaultMessages, this.core.options.strings || {});\n this._messages['pt-BR'] = this._messages['pt'];\n this._messages['en-US'] = this._messages['en'];\n this._messages['es-419'] = this._messages['es'];\n this._messages['fr-FR'] = this._messages['fr'];\n this._messages['tr-TR'] = this._messages['tr'];\n this._messages['et-EE'] = this._messages['et'];\n this._messages['ar-IQ'] = this._messages['ar'];\n }\n }]);\n\n return Strings;\n}(CorePlugin);\n\nvar SourcesPlugin = /*#__PURE__*/function (_CorePlugin) {\n _inherits(SourcesPlugin, _CorePlugin);\n\n var _super = _createSuper(SourcesPlugin);\n\n function SourcesPlugin() {\n _classCallCheck(this, SourcesPlugin);\n\n return _super.apply(this, arguments);\n }\n\n _createClass(SourcesPlugin, [{\n key: \"bindEvents\",\n value: function bindEvents() {\n this.listenTo(this.core, Events.CORE_CONTAINERS_CREATED, this.onContainersCreated);\n }\n }, {\n key: \"onContainersCreated\",\n value: function onContainersCreated() {\n var firstValidSource = this.core.containers.filter(function (container) {\n return container.playback.name !== 'no_op';\n })[0] || this.core.containers[0];\n firstValidSource && this.core.containers.forEach(function (container) {\n if (container !== firstValidSource) container.destroy();\n });\n }\n }, {\n key: \"name\",\n get: function get() {\n return 'sources';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.15\"\n };\n }\n }]);\n\n return SourcesPlugin;\n}(CorePlugin);\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\nvar version = \"0.4.15\"; // Built-in Plugins/Playbacks\n\nLoader.registerPlugin(Strings);\nLoader.registerPlugin(SourcesPlugin);\nLoader.registerPlayback(NoOp);\nLoader.registerPlayback(HTMLImg);\nLoader.registerPlayback(HTML5Audio);\nLoader.registerPlayback(HTML5Video);\nvar main = {\n Player: Player,\n Events: Events,\n Browser: Browser,\n ContainerPlugin: ContainerPlugin,\n UIContainerPlugin: UIContainerPlugin,\n CorePlugin: CorePlugin,\n UICorePlugin: UICorePlugin,\n Playback: Playback,\n Container: Container,\n Core: Core,\n PlayerError: PlayerError,\n Loader: Loader,\n BaseObject: BaseObject,\n UIObject: UIObject,\n Utils: Utils,\n HTML5Audio: HTML5Audio,\n HTML5Video: HTML5Video,\n HTMLImg: HTMLImg,\n Log: Log,\n Styler: Styler,\n version: version,\n template: tmpl,\n $: zepto\n};\n\nexport default main;\nexport { zepto as $, BaseObject, Browser, Container, ContainerPlugin, Core, CorePlugin, Events, HTML5Audio, HTML5Video, HTMLImg, Loader, Log, Playback, Player, PlayerError, Styler, UIContainerPlugin, UICorePlugin, UIObject, Utils, tmpl as template, version };\n","import { Events, Playback, ContainerPlugin, template, UICorePlugin, CorePlugin, PlayerError, $, Utils, Browser, UIContainerPlugin } from '@clappr/core';\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf(subClass, superClass);\n}\n\nfunction _getPrototypeOf(o) {\n _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n return _getPrototypeOf(o);\n}\n\nfunction _setPrototypeOf(o, p) {\n _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n return _setPrototypeOf(o, p);\n}\n\nfunction _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (typeof call === \"object\" || typeof call === \"function\")) {\n return call;\n }\n\n return _assertThisInitialized(self);\n}\n\nfunction _superPropBase(object, property) {\n while (!Object.prototype.hasOwnProperty.call(object, property)) {\n object = _getPrototypeOf(object);\n if (object === null) break;\n }\n\n return object;\n}\n\nfunction _get(target, property, receiver) {\n if (typeof Reflect !== \"undefined\" && Reflect.get) {\n _get = Reflect.get;\n } else {\n _get = function _get(target, property, receiver) {\n var base = _superPropBase(target, property);\n\n if (!base) return;\n var desc = Object.getOwnPropertyDescriptor(base, property);\n\n if (desc.get) {\n return desc.get.call(receiver);\n }\n\n return desc.value;\n };\n }\n\n return _get(target, property, receiver || target);\n}\n\nvar ClickToPausePlugin = /*#__PURE__*/function (_ContainerPlugin) {\n _inherits(ClickToPausePlugin, _ContainerPlugin);\n\n _createClass(ClickToPausePlugin, [{\n key: \"name\",\n get: function get() {\n return 'click_to_pause';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }]);\n\n function ClickToPausePlugin(container) {\n _classCallCheck(this, ClickToPausePlugin);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(ClickToPausePlugin).call(this, container));\n }\n\n _createClass(ClickToPausePlugin, [{\n key: \"bindEvents\",\n value: function bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_CLICK, this.click);\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate);\n }\n }, {\n key: \"click\",\n value: function click() {\n if (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()) {\n if (this.container.isPlaying()) this.container.pause();else this.container.play();\n }\n }\n }, {\n key: \"settingsUpdate\",\n value: function settingsUpdate() {\n var pointerEnabled = this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled();\n if (pointerEnabled === this.pointerEnabled) return;\n var method = pointerEnabled ? 'addClass' : 'removeClass';\n this.container.$el[method]('pointer-enabled');\n this.pointerEnabled = pointerEnabled;\n }\n }]);\n\n return ClickToPausePlugin;\n}(ContainerPlugin);\n\nvar ccIcon = \"<svg version=\\\"1.1\\\" id=\\\"Layer_1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" x=\\\"0px\\\" y=\\\"0px\\\"\\n\\t viewBox=\\\"0 0 49 41.8\\\" style=\\\"enable-background:new 0 0 49 41.8;\\\" xml:space=\\\"preserve\\\">\\n<path d=\\\"M47.1,0H3.2C1.6,0,0,1.2,0,2.8v31.5C0,35.9,1.6,37,3.2,37h11.9l3.2,1.9l4.7,2.7c0.9,0.5,2-0.1,2-1.1V37h22.1\\n\\tc1.6,0,1.9-1.1,1.9-2.7V2.8C49,1.2,48.7,0,47.1,0z M7.2,18.6c0-4.8,3.5-9.3,9.9-9.3c4.8,0,7.1,2.7,7.1,2.7l-2.5,4\\n\\tc0,0-1.7-1.7-4.2-1.7c-2.8,0-4.3,2.1-4.3,4.3c0,2.1,1.5,4.4,4.5,4.4c2.5,0,4.9-2.1,4.9-2.1l2.2,4.2c0,0-2.7,2.9-7.6,2.9\\n\\tC10.8,27.9,7.2,23.5,7.2,18.6z M36.9,27.9c-6.4,0-9.9-4.4-9.9-9.3c0-4.8,3.5-9.3,9.9-9.3C41.7,9.3,44,12,44,12l-2.5,4\\n\\tc0,0-1.7-1.7-4.2-1.7c-2.8,0-4.3,2.1-4.3,4.3c0,2.1,1.5,4.4,4.5,4.4c2.5,0,4.9-2.1,4.9-2.1l2.2,4.2C44.5,25,41.9,27.9,36.9,27.9z\\\"/>\\n</svg>\";\n\nvar ccHTML = \"<button type=\\\"button\\\" class=\\\"cc-button media-control-button media-control-icon\\\" data-cc-button aria-label=\\\"<%= ariaLabel %>\\\"></button>\\n<ul>\\n <% if (title) { %>\\n <li data-title><%= title %></li>\\n <% }; %>\\n <li><a href=\\\"#\\\" data-cc-select=\\\"-1\\\"><%= disabledLabel %></a></li>\\n <% for (var i = 0; i < tracks.length; i++) { %>\\n <li><a href=\\\"#\\\" data-cc-select=\\\"<%= tracks[i].id %>\\\"><%= tracks[i].label %></a></li>\\n <% }; %>\\n</ul>\\n\";\n\nfunction styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nvar css = \".cc-controls[data-cc-controls] {\\n float: right;\\n position: relative;\\n display: none; }\\n .cc-controls[data-cc-controls].available {\\n display: block; }\\n .cc-controls[data-cc-controls] .cc-button {\\n padding: 6px !important; }\\n .cc-controls[data-cc-controls] .cc-button.enabled {\\n display: block;\\n opacity: 1.0; }\\n .cc-controls[data-cc-controls] .cc-button.enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .cc-controls[data-cc-controls] > ul {\\n list-style-type: none;\\n position: absolute;\\n bottom: 25px;\\n border: 1px solid black;\\n display: none;\\n background-color: #e6e6e6; }\\n .cc-controls[data-cc-controls] li {\\n font-size: 10px; }\\n .cc-controls[data-cc-controls] li[data-title] {\\n background-color: #c3c2c2;\\n padding: 5px; }\\n .cc-controls[data-cc-controls] li a {\\n color: #444;\\n padding: 2px 10px;\\n display: block;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li a:hover {\\n background-color: #555;\\n color: white; }\\n .cc-controls[data-cc-controls] li a:hover a {\\n color: white;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li.current a {\\n color: #f00; }\\n\";\nstyleInject(css);\n\nvar ClosedCaptions = /*#__PURE__*/function (_UICorePlugin) {\n _inherits(ClosedCaptions, _UICorePlugin);\n\n _createClass(ClosedCaptions, [{\n key: \"name\",\n get: function get() {\n return 'closed_captions';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }, {\n key: \"template\",\n get: function get() {\n return template(ccHTML);\n }\n }, {\n key: \"events\",\n get: function get() {\n return {\n 'click [data-cc-button]': 'toggleContextMenu',\n 'click [data-cc-select]': 'onTrackSelect'\n };\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n 'class': 'cc-controls',\n 'data-cc-controls': ''\n };\n }\n }]);\n\n function ClosedCaptions(core) {\n var _this;\n\n _classCallCheck(this, ClosedCaptions);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ClosedCaptions).call(this, core));\n var config = core.options.closedCaptionsConfig;\n _this._title = config && config.title ? config.title : null;\n _this._ariaLabel = config && config.ariaLabel ? config.ariaLabel : 'cc-button';\n _this._labelCb = config && config.labelCallback && typeof config.labelCallback === 'function' ? config.labelCallback : function (track) {\n return track.name;\n };\n return _this;\n }\n\n _createClass(ClosedCaptions, [{\n key: \"bindEvents\",\n value: function bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged);\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render);\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hideContextMenu);\n this.bindContainerEvents();\n }\n }, {\n key: \"bindContainerEvents\",\n value: function bindContainerEvents() {\n this.container = this.core.activeContainer;\n\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_AVAILABLE, this.onSubtitleAvailable);\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_CHANGED, this.onSubtitleChanged);\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onContainerStop);\n }\n }\n }, {\n key: \"onContainerStop\",\n value: function onContainerStop() {\n this.ccAvailable(false);\n }\n }, {\n key: \"containerChanged\",\n value: function containerChanged() {\n this.ccAvailable(false);\n this.stopListening();\n this.bindEvents();\n }\n }, {\n key: \"onSubtitleAvailable\",\n value: function onSubtitleAvailable() {\n this.renderCcButton();\n this.ccAvailable(true);\n }\n }, {\n key: \"onSubtitleChanged\",\n value: function onSubtitleChanged(track) {\n this.setCurrentContextMenuElement(track.id);\n }\n }, {\n key: \"onTrackSelect\",\n value: function onTrackSelect(event) {\n var trackId = parseInt(event.target.dataset.ccSelect, 10);\n this.container.closedCaptionsTrackId = trackId;\n this.hideContextMenu();\n event.stopPropagation();\n return false;\n }\n }, {\n key: \"ccAvailable\",\n value: function ccAvailable(hasCC) {\n var method = hasCC ? 'addClass' : 'removeClass';\n this.$el[method]('available');\n }\n }, {\n key: \"toggleContextMenu\",\n value: function toggleContextMenu() {\n this.$el.find('ul').toggle();\n }\n }, {\n key: \"hideContextMenu\",\n value: function hideContextMenu() {\n this.$el.find('ul').hide();\n }\n }, {\n key: \"contextMenuElement\",\n value: function contextMenuElement(id) {\n return this.$el.find('ul a' + (!isNaN(id) ? '[data-cc-select=\"' + id + '\"]' : '')).parent();\n }\n }, {\n key: \"setCurrentContextMenuElement\",\n value: function setCurrentContextMenuElement(trackId) {\n if (this._trackId !== trackId) {\n this.contextMenuElement().removeClass('current');\n this.contextMenuElement(trackId).addClass('current');\n var method = trackId > -1 ? 'addClass' : 'removeClass';\n this.$ccButton[method]('enabled');\n this._trackId = trackId;\n }\n }\n }, {\n key: \"renderCcButton\",\n value: function renderCcButton() {\n var tracks = this.container ? this.container.closedCaptionsTracks : [];\n\n for (var i = 0; i < tracks.length; i++) {\n tracks[i].label = this._labelCb(tracks[i]);\n }\n\n this.$el.html(this.template({\n ariaLabel: this._ariaLabel,\n disabledLabel: this.core.i18n.t('disabled'),\n title: this._title,\n tracks: tracks\n }));\n this.$ccButton = this.$el.find('button.cc-button[data-cc-button]');\n this.$ccButton.append(ccIcon);\n this.$el.append(this.style);\n }\n }, {\n key: \"render\",\n value: function render() {\n this.renderCcButton();\n var $fullscreen = this.core.mediaControl.$el.find('button[data-fullscreen]');\n if ($fullscreen[0]) this.$el.insertAfter($fullscreen);else this.core.mediaControl.$el.find('.media-control-right-panel[data-media-control]').prepend(this.$el);\n return this;\n }\n }]);\n\n return ClosedCaptions;\n}(UICorePlugin);\n\nvar dvrHTML = \"<div class=\\\"live-info\\\"><%= live %></div>\\n<button type=\\\"button\\\" class=\\\"live-button\\\" aria-label=\\\"<%= backToLive %>\\\"><%= backToLive %></button>\\n\";\n\nvar css$1 = \".dvr-controls[data-dvr-controls] {\\n display: inline-block;\\n float: left;\\n color: #fff;\\n line-height: 32px;\\n font-size: 10px;\\n font-weight: bold;\\n margin-left: 6px; }\\n .dvr-controls[data-dvr-controls] .live-info {\\n cursor: default;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase; }\\n .dvr-controls[data-dvr-controls] .live-info:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #ff0101; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled {\\n opacity: 0.3; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled:before {\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button {\\n cursor: pointer;\\n outline: none;\\n display: none;\\n border: 0;\\n color: #fff;\\n background-color: transparent;\\n height: 32px;\\n padding: 0;\\n opacity: 0.7;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase;\\n transition: all 0.1s ease; }\\n .dvr-controls[data-dvr-controls] .live-button:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button:hover {\\n opacity: 1;\\n text-shadow: rgba(255, 255, 255, 0.75) 0 0 5px; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-info {\\n display: none; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-button {\\n display: block; }\\n\\n.dvr.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n background-color: #005aff; }\\n\\n.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n background-color: #ff0101; }\\n\";\nstyleInject(css$1);\n\nvar DVRControls = /*#__PURE__*/function (_UICorePlugin) {\n _inherits(DVRControls, _UICorePlugin);\n\n _createClass(DVRControls, [{\n key: \"template\",\n get: function get() {\n return template(dvrHTML);\n }\n }, {\n key: \"name\",\n get: function get() {\n return 'dvr_controls';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }, {\n key: \"events\",\n get: function get() {\n return {\n 'click .live-button': 'click'\n };\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n 'class': 'dvr-controls',\n 'data-dvr-controls': ''\n };\n }\n }]);\n\n function DVRControls(core) {\n var _this;\n\n _classCallCheck(this, DVRControls);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(DVRControls).call(this, core));\n\n _this.settingsUpdate();\n\n return _this;\n }\n\n _createClass(DVRControls, [{\n key: \"bindEvents\",\n value: function bindEvents() {\n this.bindCoreEvents();\n this.bindContainerEvents();\n }\n }, {\n key: \"bindCoreEvents\",\n value: function bindCoreEvents() {\n var _this2 = this;\n\n if (this.core.mediaControl.settings) {\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged);\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.settingsUpdate);\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render);\n } else {\n setTimeout(function () {\n return _this2.bindCoreEvents();\n }, 100);\n }\n }\n }, {\n key: \"bindContainerEvents\",\n value: function bindContainerEvents() {\n if (this.core.activeContainer) {\n this.listenToOnce(this.core.activeContainer, Events.CONTAINER_TIMEUPDATE, this.render);\n this.listenTo(this.core.activeContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.dvrChanged);\n }\n }\n }, {\n key: \"containerChanged\",\n value: function containerChanged() {\n this.stopListening();\n this.bindEvents();\n }\n }, {\n key: \"dvrChanged\",\n value: function dvrChanged(dvrEnabled) {\n if (this.core.getPlaybackType() !== Playback.LIVE) return;\n this.settingsUpdate();\n this.core.mediaControl.$el.addClass('live');\n\n if (dvrEnabled) {\n this.core.mediaControl.$el.addClass('dvr');\n this.core.mediaControl.$el.find('.media-control-indicator[data-position], .media-control-indicator[data-duration]').hide();\n } else {\n this.core.mediaControl.$el.removeClass('dvr');\n }\n }\n }, {\n key: \"click\",\n value: function click() {\n var mediaControl = this.core.mediaControl;\n var container = mediaControl.container;\n if (!container.isPlaying()) container.play();\n if (mediaControl.$el.hasClass('dvr')) container.seek(container.getDuration());\n }\n }, {\n key: \"settingsUpdate\",\n value: function settingsUpdate() {\n var _this3 = this;\n\n this.stopListening();\n this.core.mediaControl.$el.removeClass('live');\n\n if (this.shouldRender()) {\n this.render();\n this.$el.click(function () {\n return _this3.click();\n });\n }\n\n this.bindEvents();\n }\n }, {\n key: \"shouldRender\",\n value: function shouldRender() {\n var useDvrControls = this.core.options.useDvrControls === undefined || !!this.core.options.useDvrControls;\n return useDvrControls && this.core.getPlaybackType() === Playback.LIVE;\n }\n }, {\n key: \"render\",\n value: function render() {\n this.$el.html(this.template({\n live: this.core.i18n.t('live'),\n backToLive: this.core.i18n.t('back_to_live')\n }));\n\n if (this.shouldRender()) {\n this.core.mediaControl.$el.addClass('live');\n this.core.mediaControl.$('.media-control-left-panel[data-media-control]').append(this.$el);\n }\n\n return this;\n }\n }]);\n\n return DVRControls;\n}(UICorePlugin);\n\nvar EndVideo = /*#__PURE__*/function (_CorePlugin) {\n _inherits(EndVideo, _CorePlugin);\n\n function EndVideo() {\n _classCallCheck(this, EndVideo);\n\n return _possibleConstructorReturn(this, _getPrototypeOf(EndVideo).apply(this, arguments));\n }\n\n _createClass(EndVideo, [{\n key: \"bindEvents\",\n value: function bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged);\n var container = this.core.activeContainer;\n\n if (container) {\n this.listenTo(container, Events.CONTAINER_ENDED, this.ended);\n this.listenTo(container, Events.CONTAINER_STOP, this.ended);\n }\n }\n }, {\n key: \"containerChanged\",\n value: function containerChanged() {\n this.stopListening();\n this.bindEvents();\n }\n }, {\n key: \"ended\",\n value: function ended() {\n var exitOnEnd = typeof this.core.options.exitFullscreenOnEnd === 'undefined' || this.core.options.exitFullscreenOnEnd;\n if (exitOnEnd && this.core.isFullscreen()) this.core.toggleFullscreen();\n }\n }, {\n key: \"name\",\n get: function get() {\n return 'end_video';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }]);\n\n return EndVideo;\n}(CorePlugin);\n\nvar reloadIcon = \"<svg fill=\\\"#FFFFFF\\\" height=\\\"24\\\" viewBox=\\\"0 0 24 24\\\" width=\\\"24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\">\\n <path d=\\\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\\\"/>\\n <path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"/>\\n</svg>\";\n\nvar templateHtml = \"<div class=\\\"player-error-screen__content\\\" data-error-screen>\\n <% if (icon) { %>\\n <div class=\\\"player-error-screen__icon\\\" data-error-screen><%= icon %></div>\\n <% } %>\\n <div class=\\\"player-error-screen__title\\\" data-error-screen><%= title %></div>\\n <div class=\\\"player-error-screen__message\\\" data-error-screen><%= message %></div>\\n <div class=\\\"player-error-screen__code\\\" data-error-screen>Error code: <%= code %></div>\\n <div class=\\\"player-error-screen__reload\\\" data-error-screen><%= reloadIcon %></div>\\n</div>\\n\";\n\nvar css$2 = \"div.player-error-screen {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n color: #CCCACA;\\n position: absolute;\\n top: 0;\\n height: 100%;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0.7);\\n z-index: 2000;\\n display: flex;\\n flex-direction: column;\\n justify-content: center; }\\n div.player-error-screen__content[data-error-screen] {\\n font-size: 14px;\\n color: #CCCACA;\\n margin-top: 45px; }\\n div.player-error-screen__title[data-error-screen] {\\n font-weight: bold;\\n line-height: 30px;\\n font-size: 18px; }\\n div.player-error-screen__message[data-error-screen] {\\n width: 90%;\\n margin: 0 auto; }\\n div.player-error-screen__code[data-error-screen] {\\n font-size: 13px;\\n margin-top: 15px; }\\n div.player-error-screen__reload {\\n cursor: pointer;\\n width: 30px;\\n margin: 15px auto 0; }\\n\";\nstyleInject(css$2);\n\nvar ErrorScreen = /*#__PURE__*/function (_UICorePlugin) {\n _inherits(ErrorScreen, _UICorePlugin);\n\n _createClass(ErrorScreen, [{\n key: \"name\",\n get: function get() {\n return 'error_screen';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }, {\n key: \"template\",\n get: function get() {\n return template(templateHtml);\n }\n }, {\n key: \"container\",\n get: function get() {\n return this.core.getCurrentContainer();\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n 'class': 'player-error-screen',\n 'data-error-screen': ''\n };\n }\n }]);\n\n function ErrorScreen(core) {\n var _this;\n\n _classCallCheck(this, ErrorScreen);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(ErrorScreen).call(this, core));\n if (_this.options.disableErrorScreen) return _possibleConstructorReturn(_this, _this.disable());\n return _this;\n }\n\n _createClass(ErrorScreen, [{\n key: \"bindEvents\",\n value: function bindEvents() {\n this.listenTo(this.core, Events.ERROR, this.onError);\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged);\n }\n }, {\n key: \"bindReload\",\n value: function bindReload() {\n this.reloadButton = this.$el.find('.player-error-screen__reload');\n this.reloadButton && this.reloadButton.on('click', this.reload.bind(this));\n }\n }, {\n key: \"reload\",\n value: function reload() {\n var _this2 = this;\n\n this.listenToOnce(this.core, Events.CORE_READY, function () {\n return _this2.container.play();\n });\n this.core.load(this.options.sources, this.options.mimeType);\n this.unbindReload();\n }\n }, {\n key: \"unbindReload\",\n value: function unbindReload() {\n this.reloadButton && this.reloadButton.off('click');\n }\n }, {\n key: \"onContainerChanged\",\n value: function onContainerChanged() {\n this.err = null;\n this.unbindReload();\n this.hide();\n }\n }, {\n key: \"onError\",\n value: function onError() {\n var err = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};\n\n if (err.level === PlayerError.Levels.FATAL) {\n this.err = err;\n this.container.disableMediaControl();\n this.container.stop();\n this.show();\n }\n }\n }, {\n key: \"show\",\n value: function show() {\n this.render();\n this.$el.show();\n }\n }, {\n key: \"hide\",\n value: function hide() {\n this.$el.hide();\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!this.err) return;\n this.$el.html(this.template({\n title: this.err.UI.title,\n message: this.err.UI.message,\n code: this.err.code,\n icon: this.err.UI.icon || '',\n reloadIcon: reloadIcon\n }));\n this.core.$el.append(this.el);\n this.bindReload();\n return this;\n }\n }]);\n\n return ErrorScreen;\n}(UICorePlugin);\n\nvar playIcon = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\">\\n <path fill=\\\"#010101\\\" d=\\\"M1.425.35L14.575 8l-13.15 7.65V.35z\\\"/>\\n</svg>\";\n\nvar pauseIcon = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M1.712 14.76H6.43V1.24H1.71v13.52zm7.86-13.52v13.52h4.716V1.24H9.573z\\\"/>\\n</svg>\";\n\nvar oldIcon = $('link[rel=\"shortcut icon\"]');\n\nvar Favicon = /*#__PURE__*/function (_CorePlugin) {\n _inherits(Favicon, _CorePlugin);\n\n _createClass(Favicon, [{\n key: \"name\",\n get: function get() {\n return 'favicon';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }, {\n key: \"oldIcon\",\n get: function get() {\n return oldIcon;\n }\n }]);\n\n function Favicon(core) {\n var _this;\n\n _classCallCheck(this, Favicon);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(Favicon).call(this, core));\n _this._container = null;\n\n _this.configure();\n\n return _this;\n }\n\n _createClass(Favicon, [{\n key: \"configure\",\n value: function configure() {\n if (this.core.options.changeFavicon) {\n if (!this.enabled) {\n this.stopListening(this.core, Events.CORE_OPTIONS_CHANGE);\n this.enable();\n }\n } else if (this.enabled) {\n this.disable();\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure);\n }\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure);\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged);\n this.core.activeContainer && this.containerChanged();\n }\n }, {\n key: \"containerChanged\",\n value: function containerChanged() {\n this._container && this.stopListening(this._container);\n this._container = this.core.activeContainer;\n this.listenTo(this._container, Events.CONTAINER_PLAY, this.setPlayIcon);\n this.listenTo(this._container, Events.CONTAINER_PAUSE, this.setPauseIcon);\n this.listenTo(this._container, Events.CONTAINER_STOP, this.resetIcon);\n this.listenTo(this._container, Events.CONTAINER_ENDED, this.resetIcon);\n this.listenTo(this._container, Events.CONTAINER_ERROR, this.resetIcon);\n this.resetIcon();\n }\n }, {\n key: \"disable\",\n value: function disable() {\n _get(_getPrototypeOf(Favicon.prototype), \"disable\", this).call(this);\n\n this.resetIcon();\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n _get(_getPrototypeOf(Favicon.prototype), \"destroy\", this).call(this);\n\n this.resetIcon();\n }\n }, {\n key: \"createIcon\",\n value: function createIcon(svg) {\n var canvas = $('<canvas/>');\n canvas[0].width = 16;\n canvas[0].height = 16;\n var ctx = canvas[0].getContext('2d');\n ctx.fillStyle = '#000';\n var d = $(svg).find('path').attr('d');\n var path = new Path2D(d);\n ctx.fill(path);\n var icon = $('<link rel=\"shortcut icon\" type=\"image/png\"/>');\n icon.attr('href', canvas[0].toDataURL('image/png'));\n return icon;\n }\n }, {\n key: \"setPlayIcon\",\n value: function setPlayIcon() {\n if (!this.playIcon) this.playIcon = this.createIcon(playIcon);\n this.changeIcon(this.playIcon);\n }\n }, {\n key: \"setPauseIcon\",\n value: function setPauseIcon() {\n if (!this.pauseIcon) this.pauseIcon = this.createIcon(pauseIcon);\n this.changeIcon(this.pauseIcon);\n }\n }, {\n key: \"resetIcon\",\n value: function resetIcon() {\n $('link[rel=\"shortcut icon\"]').remove();\n $('head').append(this.oldIcon);\n }\n }, {\n key: \"changeIcon\",\n value: function changeIcon(icon) {\n if (icon) {\n $('link[rel=\"shortcut icon\"]').remove();\n $('head').append(icon);\n }\n }\n }]);\n\n return Favicon;\n}(CorePlugin);\n\nvar GoogleAnalytics = /*#__PURE__*/function (_ContainerPlugin) {\n _inherits(GoogleAnalytics, _ContainerPlugin);\n\n _createClass(GoogleAnalytics, [{\n key: \"name\",\n get: function get() {\n return 'google_analytics';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }]);\n\n function GoogleAnalytics(container) {\n var _this;\n\n _classCallCheck(this, GoogleAnalytics);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(GoogleAnalytics).call(this, container));\n\n if (_this.container.options.gaAccount) {\n _this.account = _this.container.options.gaAccount;\n _this.trackerName = _this.container.options.gaTrackerName ? _this.container.options.gaTrackerName + '.' : 'Clappr.';\n _this.domainName = _this.container.options.gaDomainName;\n _this.currentHDState = undefined;\n\n _this.embedScript();\n }\n\n return _this;\n }\n\n _createClass(GoogleAnalytics, [{\n key: \"embedScript\",\n value: function embedScript() {\n var _this2 = this;\n\n if (!window._gat) {\n var script = document.createElement('script');\n script.setAttribute('type', 'text/javascript');\n script.setAttribute('async', 'async');\n script.setAttribute('src', '//www.google-analytics.com/ga.js');\n\n script.onload = function () {\n return _this2.addEventListeners();\n };\n\n document.body.appendChild(script);\n } else {\n this.addEventListeners();\n }\n }\n }, {\n key: \"addEventListeners\",\n value: function addEventListeners() {\n var _this3 = this;\n\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_READY, this.onReady);\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay);\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop);\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.onPause);\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onEnded);\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering);\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull);\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError);\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKSTATE, this.onPlaybackChanged);\n this.listenTo(this.container, Events.CONTAINER_VOLUME, function (event) {\n return _this3.onVolumeChanged(event);\n });\n this.listenTo(this.container, Events.CONTAINER_SEEK, function (event) {\n return _this3.onSeek(event);\n });\n this.listenTo(this.container, Events.CONTAINER_FULL_SCREEN, this.onFullscreen);\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.onHD);\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.onDVR);\n }\n\n _gaq.push([this.trackerName + '_setAccount', this.account]);\n\n if (this.domainName) _gaq.push([this.trackerName + '_setDomainName', this.domainName]);\n }\n }, {\n key: \"onReady\",\n value: function onReady() {\n this.push(['Video', 'Playback', this.container.playback.name]);\n }\n }, {\n key: \"onPlay\",\n value: function onPlay() {\n this.push(['Video', 'Play', this.container.playback.src]);\n }\n }, {\n key: \"onStop\",\n value: function onStop() {\n this.push(['Video', 'Stop', this.container.playback.src]);\n }\n }, {\n key: \"onEnded\",\n value: function onEnded() {\n this.push(['Video', 'Ended', this.container.playback.src]);\n }\n }, {\n key: \"onBuffering\",\n value: function onBuffering() {\n this.push(['Video', 'Buffering', this.container.playback.src]);\n }\n }, {\n key: \"onBufferFull\",\n value: function onBufferFull() {\n this.push(['Video', 'Bufferfull', this.container.playback.src]);\n }\n }, {\n key: \"onError\",\n value: function onError() {\n this.push(['Video', 'Error', this.container.playback.src]);\n }\n }, {\n key: \"onHD\",\n value: function onHD(isHD) {\n var status = isHD ? 'ON' : 'OFF';\n\n if (status !== this.currentHDState) {\n this.currentHDState = status;\n this.push(['Video', 'HD - ' + status, this.container.playback.src]);\n }\n }\n }, {\n key: \"onPlaybackChanged\",\n value: function onPlaybackChanged(playbackState) {\n if (playbackState.type !== null) this.push(['Video', 'Playback Type - ' + playbackState.type, this.container.playback.src]);\n }\n }, {\n key: \"onDVR\",\n value: function onDVR(dvrInUse) {\n var status = dvrInUse ? 'ON' : 'OFF';\n this.push(['Interaction', 'DVR - ' + status, this.container.playback.src]);\n }\n }, {\n key: \"onPause\",\n value: function onPause() {\n this.push(['Video', 'Pause', this.container.playback.src]);\n }\n }, {\n key: \"onSeek\",\n value: function onSeek() {\n this.push(['Video', 'Seek', this.container.playback.src]);\n }\n }, {\n key: \"onVolumeChanged\",\n value: function onVolumeChanged() {\n this.push(['Interaction', 'Volume', this.container.playback.src]);\n }\n }, {\n key: \"onFullscreen\",\n value: function onFullscreen() {\n this.push(['Interaction', 'Fullscreen', this.container.playback.src]);\n }\n }, {\n key: \"push\",\n value: function push(array) {\n var res = [this.trackerName + '_trackEvent'].concat(array);\n\n _gaq.push(res);\n }\n }]);\n\n return GoogleAnalytics;\n}(ContainerPlugin);\n\nvar global$1 = (typeof global !== \"undefined\" ? global :\n typeof self !== \"undefined\" ? self :\n typeof window !== \"undefined\" ? window : {});\n\n// shim for using process in browser\n// based off https://github.com/defunctzombie/node-process/blob/master/browser.js\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\nvar cachedSetTimeout = defaultSetTimout;\nvar cachedClearTimeout = defaultClearTimeout;\nif (typeof global$1.setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n}\nif (typeof global$1.clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n}\n\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\nfunction nextTick(fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n}\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\n\n// from https://github.com/kumavis/browser-process-hrtime/blob/master/index.js\nvar performance = global$1.performance || {};\nvar performanceNow =\n performance.now ||\n performance.mozNow ||\n performance.msNow ||\n performance.oNow ||\n performance.webkitNow ||\n function(){ return (new Date()).getTime() };\n\n/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\nvar Kibo = function Kibo(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace',\n 9: 'tab',\n 13: 'enter',\n 16: 'shift',\n 17: 'ctrl',\n 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left',\n 38: 'up',\n 39: 'right',\n 40: 'down',\n 48: '0',\n 49: '1',\n 50: '2',\n 51: '3',\n 52: '4',\n 53: '5',\n 54: '6',\n 55: '7',\n 56: '8',\n 57: '9',\n 65: 'a',\n 66: 'b',\n 67: 'c',\n 68: 'd',\n 69: 'e',\n 70: 'f',\n 71: 'g',\n 72: 'h',\n 73: 'i',\n 74: 'j',\n 75: 'k',\n 76: 'l',\n 77: 'm',\n 78: 'n',\n 79: 'o',\n 80: 'p',\n 81: 'q',\n 82: 'r',\n 83: 's',\n 84: 't',\n 85: 'u',\n 86: 'v',\n 87: 'w',\n 88: 'x',\n 89: 'y',\n 90: 'z',\n 112: 'f1',\n 113: 'f2',\n 114: 'f3',\n 115: 'f4',\n 116: 'f5',\n 117: 'f6',\n 118: 'f7',\n 119: 'f8',\n 120: 'f9',\n 121: 'f10',\n 122: 'f11',\n 123: 'f12'\n};\nKibo.KEY_CODES_BY_NAME = {};\n\n(function () {\n for (var key in Kibo.KEY_NAMES_BY_CODE) {\n if (Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = function () {\n if (document.addEventListener) {\n return function (element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n } else if (document.attachEvent) {\n return function (element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n}();\n\nKibo.unregisterEvent = function () {\n if (document.removeEventListener) {\n return function (element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n } else if (document.detachEvent) {\n return function (element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n}();\n\nKibo.stringContains = function (string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function (string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function (string) {\n return string.toLowerCase().replace(/^./, function (match) {\n return match.toUpperCase();\n });\n};\n\nKibo.isString = function (what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = function () {\n if (Array.prototype.indexOf) {\n return function (haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n } else {\n return function (haystack, needle) {\n for (var i = 0; i < haystack.length; i++) {\n if (haystack[i] === needle) {\n return true;\n }\n }\n\n return false;\n };\n }\n}();\n\nKibo.extractModifiers = function (keyCombination) {\n var modifiers, i;\n modifiers = [];\n\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n if (Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n\n return modifiers;\n};\n\nKibo.extractKey = function (keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n\n for (i = 0; i < keys.length; i++) {\n if (!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function (keyCombination) {\n var result, key;\n\n if (Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n key = Kibo.extractKey(keyCombination);\n\n if (key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n};\n\nKibo.keyName = function (keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function (keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function () {\n var i,\n that = this;\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = {\n any: []\n };\n this.keysUp = {\n any: []\n };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function (upOrDown) {\n var that = this;\n return function (e) {\n var i, registeredKeys, lastModifiersAndKey;\n e = e || window.event;\n that.lastKeyCode = e.keyCode;\n\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n\n if (Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for (i = 0; i < registeredKeys.any.length; i++) {\n if (registeredKeys.any[i](e) === false && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n\n if (registeredKeys[lastModifiersAndKey]) {\n for (i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if (registeredKeys[lastModifiersAndKey][i](e) === false && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function (upOrDown, newKeys, func) {\n var i,\n keys,\n registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if (Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for (i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if (registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n}; // jshint maxdepth:5\n\n\nKibo.prototype.unregisterKeys = function (upOrDown, newKeys, func) {\n var i,\n j,\n keys,\n registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if (Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for (i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if (func === null) {\n delete registeredKeys[keys];\n } else {\n if (registeredKeys[keys]) {\n for (j = 0; j < registeredKeys[keys].length; j++) {\n if (String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function (keys) {\n return this.unregisterKeys('down', keys, null);\n};\n\nKibo.prototype.delegate = function (upOrDown, keys, func) {\n return func !== null || func !== undefined ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function (keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function (keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function (modifier) {\n if (!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function () {\n var result, i;\n result = [];\n\n for (i = 0; i < Kibo.MODIFIERS.length; i++) {\n if (this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if (!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nvar index = {\n Kibo: Kibo\n};\n\nvar css$3 = \".media-control-notransition {\\n transition: none !important; }\\n\\n.media-control[data-media-control] {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n pointer-events: none; }\\n .media-control[data-media-control].dragging {\\n pointer-events: auto;\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\\\"closed-hand.cur\\\"), move; }\\n .media-control[data-media-control].dragging * {\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\\\"closed-hand.cur\\\"), move; }\\n .media-control[data-media-control] .media-control-background[data-background] {\\n position: absolute;\\n height: 40%;\\n width: 100%;\\n bottom: 0;\\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.9));\\n will-change: transform, opacity;\\n transition: opacity 0.6s ease-out; }\\n .media-control[data-media-control] .media-control-icon {\\n line-height: 0;\\n letter-spacing: 0;\\n speak: none;\\n color: #fff;\\n opacity: 0.5;\\n vertical-align: middle;\\n text-align: left;\\n transition: all 0.1s ease; }\\n .media-control[data-media-control] .media-control-icon:hover {\\n color: white;\\n opacity: 0.75;\\n text-shadow: rgba(255, 255, 255, 0.8) 0 0 5px; }\\n .media-control[data-media-control].media-control-hide .media-control-background[data-background] {\\n opacity: 0; }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] {\\n transform: translateY(50px); }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] {\\n position: absolute;\\n transform: translateY(-7px);\\n bottom: 0;\\n width: 100%;\\n height: 32px;\\n font-size: 0;\\n vertical-align: middle;\\n pointer-events: auto;\\n transition: bottom 0.4s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-left-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n left: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-center-panel[data-media-control] {\\n height: 100%;\\n text-align: center;\\n line-height: 32px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-right-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n right: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button {\\n background-color: transparent;\\n border: 0;\\n margin: 0 6px;\\n padding: 0;\\n cursor: pointer;\\n display: inline-block;\\n width: 32px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg {\\n width: 100%;\\n height: 22px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg path {\\n fill: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button:focus {\\n outline: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-play] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-pause] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-stop] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-fullscreen] {\\n float: right;\\n background-color: transparent;\\n border: 0;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator] {\\n background-color: transparent;\\n border: 0;\\n cursor: default;\\n display: none;\\n float: right;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled {\\n display: block;\\n opacity: 1.0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playpause] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playstop] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position], .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n display: inline-block;\\n font-size: 10px;\\n color: white;\\n cursor: default;\\n line-height: 32px;\\n position: relative; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position] {\\n margin: 0 6px 0 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n color: rgba(255, 255, 255, 0.5);\\n margin-right: 6px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] {\\n position: absolute;\\n top: -20px;\\n left: 0;\\n display: inline-block;\\n vertical-align: middle;\\n width: 100%;\\n height: 25px;\\n cursor: pointer; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] {\\n width: 100%;\\n height: 1px;\\n position: relative;\\n top: 12px;\\n background-color: #666666; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-1[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]:hover .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled {\\n cursor: default; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled:hover .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n position: absolute;\\n transform: translateX(-50%);\\n top: 2px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] .bar-scrubber-icon[data-seekbar] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] {\\n float: right;\\n display: inline-block;\\n height: 32px;\\n cursor: pointer;\\n margin: 0 6px;\\n box-sizing: border-box; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] {\\n float: left;\\n bottom: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] {\\n background-color: transparent;\\n border: 0;\\n box-sizing: content-box;\\n width: 32px;\\n height: 32px;\\n opacity: 0.5; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]:hover {\\n opacity: 0.75; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg {\\n height: 24px;\\n position: relative;\\n top: 3px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg path {\\n fill: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume].muted svg {\\n margin-left: 2px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] {\\n float: left;\\n position: relative;\\n overflow: hidden;\\n top: 6px;\\n width: 42px;\\n height: 18px;\\n padding: 3px 0;\\n transition: width .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] {\\n height: 1px;\\n position: relative;\\n top: 7px;\\n margin: 0 3px;\\n background-color: #666666; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-1[data-volume] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-2[data-volume] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-hover[data-volume] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] {\\n position: absolute;\\n transform: translateX(-50%);\\n top: 0px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] .bar-scrubber-icon[data-volume] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume] {\\n float: left;\\n width: 4px;\\n padding-left: 2px;\\n height: 12px;\\n opacity: 0.5;\\n box-shadow: inset 2px 0 0 white;\\n transition: transform .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume].fill {\\n box-shadow: inset 2px 0 0 #fff;\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:nth-of-type(1) {\\n padding-left: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:hover {\\n transform: scaleY(1.5); }\\n .media-control[data-media-control].w320 .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume].volume-bar-hide {\\n width: 0;\\n height: 12px;\\n top: 9px;\\n padding: 0; }\\n\";\nstyleInject(css$3);\n\nvar mediaControlHTML = \"<div class=\\\"media-control-background\\\" data-background></div>\\n<div class=\\\"media-control-layer\\\" data-controls>\\n <% var renderBar = function(name) { %>\\n <div class=\\\"bar-container\\\" data-<%= name %>>\\n <div class=\\\"bar-background\\\" data-<%= name %>>\\n <div class=\\\"bar-fill-1\\\" data-<%= name %>></div>\\n <div class=\\\"bar-fill-2\\\" data-<%= name %>></div>\\n <div class=\\\"bar-hover\\\" data-<%= name %>></div>\\n </div>\\n <div class=\\\"bar-scrubber\\\" data-<%= name %>>\\n <div class=\\\"bar-scrubber-icon\\\" data-<%= name %>></div>\\n </div>\\n </div>\\n <% }; %>\\n <% var renderSegmentedBar = function(name, segments) {\\n segments = segments || 10; %>\\n <div class=\\\"bar-container\\\" data-<%= name %>>\\n <% for (var i = 0; i < segments; i++) { %>\\n <div class=\\\"segmented-bar-element\\\" data-<%= name %>></div>\\n <% } %>\\n </div>\\n <% }; %>\\n <% var renderDrawer = function(name, renderContent) { %>\\n <div class=\\\"drawer-container\\\" data-<%= name %>>\\n <div class=\\\"drawer-icon-container\\\" data-<%= name %>>\\n <div class=\\\"drawer-icon media-control-icon\\\" data-<%= name %>></div>\\n <span class=\\\"drawer-text\\\" data-<%= name %>></span>\\n </div>\\n <% renderContent(name); %>\\n </div>\\n <% }; %>\\n <% var renderIndicator = function(name) { %>\\n <div class=\\\"media-control-indicator\\\" data-<%= name %>></div>\\n <% }; %>\\n <% var renderButton = function(name) { %>\\n <button type=\\\"button\\\" class=\\\"media-control-button media-control-icon\\\" data-<%= name %> aria-label=\\\"<%= name %>\\\"></button>\\n <% }; %>\\n <% var templates = {\\n bar: renderBar,\\n segmentedBar: renderSegmentedBar,\\n };\\n var render = function(settingsList) {\\n settingsList.forEach(function(setting) {\\n if(setting === \\\"seekbar\\\") {\\n renderBar(setting);\\n } else if (setting === \\\"volume\\\") {\\n renderDrawer(setting, settings.volumeBarTemplate ? templates[settings.volumeBarTemplate] : function(name) { return renderSegmentedBar(name); });\\n } else if (setting === \\\"duration\\\" || setting === \\\"position\\\") {\\n renderIndicator(setting);\\n } else {\\n renderButton(setting);\\n }\\n });\\n }; %>\\n <% if (settings.default && settings.default.length) { %>\\n <div class=\\\"media-control-center-panel\\\" data-media-control>\\n <% render(settings.default); %>\\n </div>\\n <% } %>\\n <% if (settings.left && settings.left.length) { %>\\n <div class=\\\"media-control-left-panel\\\" data-media-control>\\n <% render(settings.left); %>\\n </div>\\n <% } %>\\n <% if (settings.right && settings.right.length) { %>\\n <div class=\\\"media-control-right-panel\\\" data-media-control>\\n <% render(settings.right); %>\\n </div>\\n <% } %>\\n</div>\\n\";\n\nvar stopIcon = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M1.712 1.24h12.6v13.52h-12.6z\\\"/>\\n</svg>\";\n\nvar volumeIcon = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M11.5 11h-.002v1.502L7.798 10H4.5V6h3.297l3.7-2.502V4.5h.003V11zM11 4.49L7.953 6.5H5v3h2.953L11 11.51V4.49z\\\"/>\\n</svg>\";\n\nvar volumeMuteIcon = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\">\\n <path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M9.75 11.51L6.7 9.5H3.75v-3H6.7L9.75 4.49v.664l.497.498V3.498L6.547 6H3.248v4h3.296l3.7 2.502v-2.154l-.497.5v.662zm3-5.165L12.404 6l-1.655 1.653L9.093 6l-.346.345L10.402 8 8.747 9.654l.346.347 1.655-1.653L12.403 10l.348-.346L11.097 8l1.655-1.655z\\\"/>\\n</svg>\";\n\nvar fullscreenIcon = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\">\\n <path fill=\\\"#010101\\\" d=\\\"M7.156 8L4 11.156V8.5H3V13h4.5v-1H4.844L8 8.844 7.156 8zM8.5 3v1h2.657L8 7.157 8.846 8 12 4.844V7.5h1V3H8.5z\\\"/>\\n</svg>\";\n\nvar exitFullscreenIcon = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\">\\n <path fill=\\\"#010101\\\" d=\\\"M13.5 3.344l-.844-.844L9.5 5.656V3h-1v4.5H13v-1h-2.656L13.5 3.344zM3 9.5h2.656L2.5 12.656l.844.844L6.5 10.344V13h1V8.5H3v1z\\\"/>\\n</svg>\";\n\nvar hdIcon = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\">\\n <path fill=\\\"#010101\\\" d=\\\"M5.375 7.062H2.637V4.26H.502v7.488h2.135V8.9h2.738v2.848h2.133V4.26H5.375v2.802zm5.97-2.81h-2.84v7.496h2.798c2.65 0 4.195-1.607 4.195-3.77v-.022c0-2.162-1.523-3.704-4.154-3.704zm2.06 3.758c0 1.21-.81 1.896-2.03 1.896h-.83V6.093h.83c1.22 0 2.03.696 2.03 1.896v.02z\\\"/>\\n</svg>\";\n\nvar Config = Utils.Config,\n Fullscreen = Utils.Fullscreen,\n formatTime = Utils.formatTime,\n extend = Utils.extend,\n removeArrayItem = Utils.removeArrayItem;\n\nvar MediaControl = /*#__PURE__*/function (_UICorePlugin) {\n _inherits(MediaControl, _UICorePlugin);\n\n _createClass(MediaControl, [{\n key: \"name\",\n get: function get() {\n return 'media_control';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }, {\n key: \"disabled\",\n get: function get() {\n var playbackIsNOOP = this.container && this.container.getPlaybackType() === Playback.NO_OP;\n return this.userDisabled || playbackIsNOOP;\n }\n }, {\n key: \"container\",\n get: function get() {\n return this.core && this.core.activeContainer;\n }\n }, {\n key: \"playback\",\n get: function get() {\n return this.core && this.core.activePlayback;\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n 'class': 'media-control',\n 'data-media-control': ''\n };\n }\n }, {\n key: \"events\",\n get: function get() {\n return {\n 'click [data-play]': 'play',\n 'click [data-pause]': 'pause',\n 'click [data-playpause]': 'togglePlayPause',\n 'click [data-stop]': 'stop',\n 'click [data-playstop]': 'togglePlayStop',\n 'click [data-fullscreen]': 'toggleFullscreen',\n 'click .bar-container[data-seekbar]': 'seek',\n 'click .bar-container[data-volume]': 'onVolumeClick',\n 'click .drawer-icon[data-volume]': 'toggleMute',\n 'mouseenter .drawer-container[data-volume]': 'showVolumeBar',\n 'mouseleave .drawer-container[data-volume]': 'hideVolumeBar',\n 'mousedown .bar-container[data-volume]': 'startVolumeDrag',\n 'mousemove .bar-container[data-volume]': 'mousemoveOnVolumeBar',\n 'mousedown .bar-scrubber[data-seekbar]': 'startSeekDrag',\n 'mousemove .bar-container[data-seekbar]': 'mousemoveOnSeekBar',\n 'mouseleave .bar-container[data-seekbar]': 'mouseleaveOnSeekBar',\n 'mouseenter .media-control-layer[data-controls]': 'setUserKeepVisible',\n 'mouseleave .media-control-layer[data-controls]': 'resetUserKeepVisible'\n };\n }\n }, {\n key: \"template\",\n get: function get() {\n return template(mediaControlHTML);\n }\n }, {\n key: \"volume\",\n get: function get() {\n return this.container && this.container.isReady ? this.container.volume : this.intendedVolume;\n }\n }, {\n key: \"muted\",\n get: function get() {\n return this.volume === 0;\n }\n }]);\n\n function MediaControl(core) {\n var _this;\n\n _classCallCheck(this, MediaControl);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(MediaControl).call(this, core));\n _this.persistConfig = _this.options.persistConfig;\n _this.currentPositionValue = null;\n _this.currentDurationValue = null;\n _this.keepVisible = false;\n _this.fullScreenOnVideoTagSupported = null; // unknown\n\n _this.setInitialVolume();\n\n _this.settings = {\n left: ['play', 'stop', 'pause'],\n right: ['volume'],\n \"default\": ['position', 'seekbar', 'duration']\n };\n _this.kibo = new Kibo(_this.options.focusElement);\n\n _this.bindKeyEvents();\n\n if (_this.container) {\n if (!$.isEmptyObject(_this.container.settings)) _this.settings = $.extend({}, _this.container.settings);\n } else {\n _this.settings = {};\n }\n\n _this.userDisabled = false;\n if (_this.container && _this.container.mediaControlDisabled || _this.options.chromeless) _this.disable();\n\n _this.stopDragHandler = function (event) {\n return _this.stopDrag(event);\n };\n\n _this.updateDragHandler = function (event) {\n return _this.updateDrag(event);\n };\n\n $(document).bind('mouseup', _this.stopDragHandler);\n $(document).bind('mousemove', _this.updateDragHandler);\n return _this;\n }\n\n _createClass(MediaControl, [{\n key: \"getExternalInterface\",\n value: function getExternalInterface() {\n var _this2 = this;\n\n return {\n setVolume: this.setVolume,\n getVolume: function getVolume() {\n return _this2.volume;\n }\n };\n }\n }, {\n key: \"bindEvents\",\n value: function bindEvents() {\n var _this3 = this;\n\n this.stopListening();\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged);\n this.listenTo(this.core, Events.CORE_MOUSE_MOVE, this.show);\n this.listenTo(this.core, Events.CORE_MOUSE_LEAVE, function () {\n return _this3.hide(_this3.options.hideMediaControlDelay);\n });\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this.show);\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure);\n this.listenTo(this.core, Events.CORE_RESIZE, this.playerResize);\n this.bindContainerEvents();\n }\n }, {\n key: \"bindContainerEvents\",\n value: function bindContainerEvents() {\n if (!this.container) return;\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.changeTogglePlay);\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.changeTogglePlay);\n this.listenTo(this.container, Events.CONTAINER_STOP, this.changeTogglePlay);\n this.listenTo(this.container, Events.CONTAINER_DBLCLICK, this.toggleFullscreen);\n this.listenTo(this.container, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate);\n this.listenTo(this.container, Events.CONTAINER_PROGRESS, this.updateProgressBar);\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate);\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.settingsUpdate);\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate);\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_DISABLE, this.disable);\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_ENABLE, this.enable);\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.ended);\n this.listenTo(this.container, Events.CONTAINER_VOLUME, this.onVolumeChanged);\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume);\n\n if (this.container.playback.el.nodeName.toLowerCase() === 'video') {\n // wait until the metadata has loaded and then check if fullscreen on video tag is supported\n this.listenToOnce(this.container, Events.CONTAINER_LOADEDMETADATA, this.onLoadedMetadataOnVideoTag);\n }\n }\n }, {\n key: \"disable\",\n value: function disable() {\n this.userDisabled = true;\n this.hide();\n this.unbindKeyEvents();\n this.$el.hide();\n }\n }, {\n key: \"enable\",\n value: function enable() {\n if (this.options.chromeless) return;\n this.userDisabled = false;\n this.bindKeyEvents();\n this.show();\n }\n }, {\n key: \"play\",\n value: function play() {\n this.container && this.container.play();\n }\n }, {\n key: \"pause\",\n value: function pause() {\n this.container && this.container.pause();\n }\n }, {\n key: \"stop\",\n value: function stop() {\n this.container && this.container.stop();\n }\n }, {\n key: \"setInitialVolume\",\n value: function setInitialVolume() {\n var initialVolume = this.persistConfig ? Config.restore('volume') : 100;\n var options = this.container && this.container.options || this.options;\n this.setVolume(options.mute ? 0 : initialVolume, true);\n }\n }, {\n key: \"onVolumeChanged\",\n value: function onVolumeChanged() {\n this.updateVolumeUI();\n }\n }, {\n key: \"onLoadedMetadataOnVideoTag\",\n value: function onLoadedMetadataOnVideoTag() {\n var video = this.playback && this.playback.el; // video.webkitSupportsFullscreen is deprecated but iOS appears to only use this\n // see https://github.com/clappr/clappr/issues/1127\n\n if (!Fullscreen.fullscreenEnabled() && video.webkitSupportsFullscreen) {\n this.fullScreenOnVideoTagSupported = true;\n this.settingsUpdate();\n }\n }\n }, {\n key: \"updateVolumeUI\",\n value: function updateVolumeUI() {\n // this will be called after a render\n if (!this.rendered) return; // update volume bar scrubber/fill on bar mode\n\n this.$volumeBarContainer.find('.bar-fill-2').css({});\n var containerWidth = this.$volumeBarContainer.width();\n var barWidth = this.$volumeBarBackground.width();\n var offset = (containerWidth - barWidth) / 2.0;\n var pos = barWidth * this.volume / 100.0 + offset;\n this.$volumeBarFill.css({\n width: \"\".concat(this.volume, \"%\")\n });\n this.$volumeBarScrubber.css({\n left: pos\n }); // update volume bar segments on segmented bar mode\n\n this.$volumeBarContainer.find('.segmented-bar-element').removeClass('fill');\n var item = Math.ceil(this.volume / 10.0);\n this.$volumeBarContainer.find('.segmented-bar-element').slice(0, item).addClass('fill');\n this.$volumeIcon.html('');\n this.$volumeIcon.removeClass('muted');\n\n if (!this.muted) {\n this.$volumeIcon.append(volumeIcon);\n } else {\n this.$volumeIcon.append(volumeMuteIcon);\n this.$volumeIcon.addClass('muted');\n }\n\n this.applyButtonStyle(this.$volumeIcon);\n }\n }, {\n key: \"changeTogglePlay\",\n value: function changeTogglePlay() {\n this.$playPauseToggle.html('');\n this.$playStopToggle.html('');\n\n if (this.container && this.container.isPlaying()) {\n this.$playPauseToggle.append(pauseIcon);\n this.$playStopToggle.append(stopIcon);\n this.trigger(Events.MEDIACONTROL_PLAYING);\n } else {\n this.$playPauseToggle.append(playIcon);\n this.$playStopToggle.append(playIcon);\n this.trigger(Events.MEDIACONTROL_NOTPLAYING);\n Browser.isMobile && this.show();\n }\n\n this.applyButtonStyle(this.$playPauseToggle);\n this.applyButtonStyle(this.$playStopToggle);\n }\n }, {\n key: \"mousemoveOnSeekBar\",\n value: function mousemoveOnSeekBar(event) {\n if (this.settings.seekEnabled) {\n var offsetX = event.pageX - this.$seekBarContainer.offset().left - this.$seekBarHover.width() / 2;\n this.$seekBarHover.css({\n left: offsetX\n });\n }\n\n this.trigger(Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, event);\n }\n }, {\n key: \"mouseleaveOnSeekBar\",\n value: function mouseleaveOnSeekBar(event) {\n this.trigger(Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, event);\n }\n }, {\n key: \"onVolumeClick\",\n value: function onVolumeClick(event) {\n this.setVolume(this.getVolumeFromUIEvent(event));\n }\n }, {\n key: \"mousemoveOnVolumeBar\",\n value: function mousemoveOnVolumeBar(event) {\n this.draggingVolumeBar && this.setVolume(this.getVolumeFromUIEvent(event));\n }\n }, {\n key: \"playerResize\",\n value: function playerResize(size) {\n this.$fullscreenToggle.html('');\n var icon = this.core.isFullscreen() ? exitFullscreenIcon : fullscreenIcon;\n this.$fullscreenToggle.append(icon);\n this.applyButtonStyle(this.$fullscreenToggle);\n this.$el.find('.media-control').length !== 0 && this.$el.removeClass('w320');\n if (size.width <= 320 || this.options.hideVolumeBar) this.$el.addClass('w320');\n }\n }, {\n key: \"togglePlayPause\",\n value: function togglePlayPause() {\n this.container.isPlaying() ? this.container.pause() : this.container.play();\n return false;\n }\n }, {\n key: \"togglePlayStop\",\n value: function togglePlayStop() {\n this.container.isPlaying() ? this.container.stop() : this.container.play();\n }\n }, {\n key: \"startSeekDrag\",\n value: function startSeekDrag(event) {\n if (!this.settings.seekEnabled) return;\n this.draggingSeekBar = true;\n this.$el.addClass('dragging');\n this.$seekBarLoaded.addClass('media-control-notransition');\n this.$seekBarPosition.addClass('media-control-notransition');\n this.$seekBarScrubber.addClass('media-control-notransition');\n event && event.preventDefault();\n }\n }, {\n key: \"startVolumeDrag\",\n value: function startVolumeDrag(event) {\n this.draggingVolumeBar = true;\n this.$el.addClass('dragging');\n event && event.preventDefault();\n }\n }, {\n key: \"stopDrag\",\n value: function stopDrag(event) {\n this.draggingSeekBar && this.seek(event);\n this.$el.removeClass('dragging');\n this.$seekBarLoaded.removeClass('media-control-notransition');\n this.$seekBarPosition.removeClass('media-control-notransition');\n this.$seekBarScrubber.removeClass('media-control-notransition dragging');\n this.draggingSeekBar = false;\n this.draggingVolumeBar = false;\n }\n }, {\n key: \"updateDrag\",\n value: function updateDrag(event) {\n if (this.draggingSeekBar) {\n event.preventDefault();\n var offsetX = event.pageX - this.$seekBarContainer.offset().left;\n var pos = offsetX / this.$seekBarContainer.width() * 100;\n pos = Math.min(100, Math.max(pos, 0));\n this.setSeekPercentage(pos);\n } else if (this.draggingVolumeBar) {\n event.preventDefault();\n this.setVolume(this.getVolumeFromUIEvent(event));\n }\n }\n }, {\n key: \"getVolumeFromUIEvent\",\n value: function getVolumeFromUIEvent(event) {\n var offsetY = event.pageX - this.$volumeBarContainer.offset().left;\n var volumeFromUI = offsetY / this.$volumeBarContainer.width() * 100;\n return volumeFromUI;\n }\n }, {\n key: \"toggleMute\",\n value: function toggleMute() {\n this.setVolume(this.muted ? 100 : 0);\n }\n }, {\n key: \"setVolume\",\n value: function setVolume(value) {\n var _this4 = this;\n\n var isInitialVolume = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n value = Math.min(100, Math.max(value, 0)); // this will hold the intended volume\n // it may not actually get set to this straight away\n // if the container is not ready etc\n\n this.intendedVolume = value;\n this.persistConfig && !isInitialVolume && Config.persist('volume', value);\n\n var setWhenContainerReady = function setWhenContainerReady() {\n if (_this4.container && _this4.container.isReady) {\n _this4.container.setVolume(value);\n } else {\n _this4.listenToOnce(_this4.container, Events.CONTAINER_READY, function () {\n _this4.container.setVolume(value);\n });\n }\n };\n\n if (!this.container) this.listenToOnce(this, Events.MEDIACONTROL_CONTAINERCHANGED, function () {\n return setWhenContainerReady();\n });else setWhenContainerReady();\n }\n }, {\n key: \"toggleFullscreen\",\n value: function toggleFullscreen() {\n this.trigger(Events.MEDIACONTROL_FULLSCREEN, this.name);\n this.container.fullscreen();\n this.core.toggleFullscreen();\n this.resetUserKeepVisible();\n }\n }, {\n key: \"onActiveContainerChanged\",\n value: function onActiveContainerChanged() {\n this.fullScreenOnVideoTagSupported = null;\n this.bindEvents(); // set the new container to match the volume of the last one\n\n this.setInitialVolume();\n this.changeTogglePlay();\n this.bindContainerEvents();\n this.settingsUpdate();\n this.container && this.container.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.container.isDvrInUse());\n this.container && this.container.mediaControlDisabled && this.disable();\n this.trigger(Events.MEDIACONTROL_CONTAINERCHANGED);\n }\n }, {\n key: \"showVolumeBar\",\n value: function showVolumeBar() {\n this.hideVolumeId && clearTimeout(this.hideVolumeId);\n this.$volumeBarContainer.removeClass('volume-bar-hide');\n }\n }, {\n key: \"hideVolumeBar\",\n value: function hideVolumeBar() {\n var _this5 = this;\n\n var timeout = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 400;\n if (!this.$volumeBarContainer) return;\n\n if (this.draggingVolumeBar) {\n this.hideVolumeId = setTimeout(function () {\n return _this5.hideVolumeBar();\n }, timeout);\n } else {\n this.hideVolumeId && clearTimeout(this.hideVolumeId);\n this.hideVolumeId = setTimeout(function () {\n return _this5.$volumeBarContainer.addClass('volume-bar-hide');\n }, timeout);\n }\n }\n }, {\n key: \"ended\",\n value: function ended() {\n this.changeTogglePlay();\n }\n }, {\n key: \"updateProgressBar\",\n value: function updateProgressBar(progress) {\n var loadedStart = progress.start / progress.total * 100;\n var loadedEnd = progress.current / progress.total * 100;\n this.$seekBarLoaded.css({\n left: \"\".concat(loadedStart, \"%\"),\n width: \"\".concat(loadedEnd - loadedStart, \"%\")\n });\n }\n }, {\n key: \"onTimeUpdate\",\n value: function onTimeUpdate(timeProgress) {\n if (this.draggingSeekBar) return; // TODO why should current time ever be negative?\n\n var position = timeProgress.current < 0 ? timeProgress.total : timeProgress.current;\n this.currentPositionValue = position;\n this.currentDurationValue = timeProgress.total;\n this.renderSeekBar();\n }\n }, {\n key: \"renderSeekBar\",\n value: function renderSeekBar() {\n // this will be triggered as soon as these become available\n if (this.currentPositionValue === null || this.currentDurationValue === null) return; // default to 100%\n\n this.currentSeekBarPercentage = 100;\n if (this.container && (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrInUse())) this.currentSeekBarPercentage = this.currentPositionValue / this.currentDurationValue * 100;\n this.setSeekPercentage(this.currentSeekBarPercentage);\n var newPosition = formatTime(this.currentPositionValue);\n var newDuration = formatTime(this.currentDurationValue);\n\n if (newPosition !== this.displayedPosition) {\n this.$position.text(newPosition);\n this.displayedPosition = newPosition;\n }\n\n if (newDuration !== this.displayedDuration) {\n this.$duration.text(newDuration);\n this.displayedDuration = newDuration;\n }\n }\n }, {\n key: \"seek\",\n value: function seek(event) {\n if (!this.settings.seekEnabled) return;\n var offsetX = event.pageX - this.$seekBarContainer.offset().left;\n var pos = offsetX / this.$seekBarContainer.width() * 100;\n pos = Math.min(100, Math.max(pos, 0));\n this.container && this.container.seekPercentage(pos);\n this.setSeekPercentage(pos);\n return false;\n }\n }, {\n key: \"setKeepVisible\",\n value: function setKeepVisible() {\n this.keepVisible = true;\n }\n }, {\n key: \"resetKeepVisible\",\n value: function resetKeepVisible() {\n this.keepVisible = false;\n }\n }, {\n key: \"setUserKeepVisible\",\n value: function setUserKeepVisible() {\n this.userKeepVisible = true;\n }\n }, {\n key: \"resetUserKeepVisible\",\n value: function resetUserKeepVisible() {\n this.userKeepVisible = false;\n }\n }, {\n key: \"isVisible\",\n value: function isVisible() {\n return !this.$el.hasClass('media-control-hide');\n }\n }, {\n key: \"show\",\n value: function show(event) {\n var _this6 = this;\n\n if (this.disabled) return;\n var timeout = 2000;\n var mousePointerMoved = event && event.clientX !== this.lastMouseX && event.clientY !== this.lastMouseY;\n\n if (!event || mousePointerMoved || navigator.userAgent.match(/firefox/i)) {\n clearTimeout(this.hideId);\n this.$el.show();\n this.trigger(Events.MEDIACONTROL_SHOW, this.name);\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_SHOW, this.name);\n this.$el.removeClass('media-control-hide');\n this.hideId = setTimeout(function () {\n return _this6.hide();\n }, timeout);\n\n if (event) {\n this.lastMouseX = event.clientX;\n this.lastMouseY = event.clientY;\n }\n }\n\n var showing = true;\n this.updateCursorStyle(showing);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n var _this7 = this;\n\n var delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 0;\n if (!this.isVisible()) return;\n var timeout = delay || 2000;\n clearTimeout(this.hideId);\n if (!this.disabled && this.options.hideMediaControl === false) return;\n var hasKeepVisibleRequested = this.userKeepVisible || this.keepVisible;\n var hasDraggingAction = this.draggingSeekBar || this.draggingVolumeBar;\n\n if (!this.disabled && (delay || hasKeepVisibleRequested || hasDraggingAction)) {\n this.hideId = setTimeout(function () {\n return _this7.hide();\n }, timeout);\n } else {\n this.trigger(Events.MEDIACONTROL_HIDE, this.name);\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_HIDE, this.name);\n this.$el.addClass('media-control-hide');\n this.hideVolumeBar(0);\n var showing = false;\n this.updateCursorStyle(showing);\n }\n }\n }, {\n key: \"updateCursorStyle\",\n value: function updateCursorStyle(showing) {\n if (showing) this.core.$el.removeClass('nocursor');else if (this.core.isFullscreen()) this.core.$el.addClass('nocursor');\n }\n }, {\n key: \"settingsUpdate\",\n value: function settingsUpdate() {\n var newSettings = this.getSettings();\n\n if (newSettings && !this.fullScreenOnVideoTagSupported && !Fullscreen.fullscreenEnabled()) {\n // remove fullscreen from settings if it is present\n newSettings[\"default\"] && removeArrayItem(newSettings[\"default\"], 'fullscreen');\n newSettings.left && removeArrayItem(newSettings.left, 'fullscreen');\n newSettings.right && removeArrayItem(newSettings.right, 'fullscreen');\n }\n\n var settingsChanged = JSON.stringify(this.settings) !== JSON.stringify(newSettings);\n\n if (settingsChanged) {\n this.settings = newSettings;\n this.render();\n }\n }\n }, {\n key: \"getSettings\",\n value: function getSettings() {\n return $.extend(true, {}, this.container && this.container.settings);\n }\n }, {\n key: \"highDefinitionUpdate\",\n value: function highDefinitionUpdate(isHD) {\n this.isHD = isHD;\n var method = isHD ? 'addClass' : 'removeClass';\n this.$hdIndicator[method]('enabled');\n }\n }, {\n key: \"createCachedElements\",\n value: function createCachedElements() {\n var $layer = this.$el.find('.media-control-layer');\n this.$duration = $layer.find('.media-control-indicator[data-duration]');\n this.$fullscreenToggle = $layer.find('button.media-control-button[data-fullscreen]');\n this.$playPauseToggle = $layer.find('button.media-control-button[data-playpause]');\n this.$playStopToggle = $layer.find('button.media-control-button[data-playstop]');\n this.$position = $layer.find('.media-control-indicator[data-position]');\n this.$seekBarContainer = $layer.find('.bar-container[data-seekbar]');\n this.$seekBarHover = $layer.find('.bar-hover[data-seekbar]');\n this.$seekBarLoaded = $layer.find('.bar-fill-1[data-seekbar]');\n this.$seekBarPosition = $layer.find('.bar-fill-2[data-seekbar]');\n this.$seekBarScrubber = $layer.find('.bar-scrubber[data-seekbar]');\n this.$volumeBarContainer = $layer.find('.bar-container[data-volume]');\n this.$volumeContainer = $layer.find('.drawer-container[data-volume]');\n this.$volumeIcon = $layer.find('.drawer-icon[data-volume]');\n this.$volumeBarBackground = this.$el.find('.bar-background[data-volume]');\n this.$volumeBarFill = this.$el.find('.bar-fill-1[data-volume]');\n this.$volumeBarScrubber = this.$el.find('.bar-scrubber[data-volume]');\n this.$hdIndicator = this.$el.find('button.media-control-button[data-hd-indicator]');\n this.resetIndicators();\n this.initializeIcons();\n }\n }, {\n key: \"resetIndicators\",\n value: function resetIndicators() {\n this.displayedPosition = this.$position.text();\n this.displayedDuration = this.$duration.text();\n }\n }, {\n key: \"initializeIcons\",\n value: function initializeIcons() {\n var $layer = this.$el.find('.media-control-layer');\n $layer.find('button.media-control-button[data-play]').append(playIcon);\n $layer.find('button.media-control-button[data-pause]').append(pauseIcon);\n $layer.find('button.media-control-button[data-stop]').append(stopIcon);\n this.$playPauseToggle.append(playIcon);\n this.$playStopToggle.append(playIcon);\n this.$volumeIcon.append(volumeIcon);\n this.$fullscreenToggle.append(fullscreenIcon);\n this.$hdIndicator.append(hdIcon);\n }\n }, {\n key: \"setSeekPercentage\",\n value: function setSeekPercentage(value) {\n value = Math.max(Math.min(value, 100.0), 0); // not changed since last update\n\n if (this.displayedSeekBarPercentage === value) return;\n this.displayedSeekBarPercentage = value;\n this.$seekBarPosition.removeClass('media-control-notransition');\n this.$seekBarScrubber.removeClass('media-control-notransition');\n this.$seekBarPosition.css({\n width: \"\".concat(value, \"%\")\n });\n this.$seekBarScrubber.css({\n left: \"\".concat(value, \"%\")\n });\n }\n }, {\n key: \"seekRelative\",\n value: function seekRelative(delta) {\n if (!this.settings.seekEnabled) return;\n var currentTime = this.container.getCurrentTime();\n var duration = this.container.getDuration();\n var position = Math.min(Math.max(currentTime + delta, 0), duration);\n position = Math.min(position * 100 / duration, 100);\n this.container.seekPercentage(position);\n }\n }, {\n key: \"bindKeyAndShow\",\n value: function bindKeyAndShow(key, callback) {\n var _this8 = this;\n\n this.kibo.down(key, function () {\n _this8.show();\n\n return callback();\n });\n }\n }, {\n key: \"bindKeyEvents\",\n value: function bindKeyEvents() {\n var _this9 = this;\n\n if (Browser.isMobile || this.options.disableKeyboardShortcuts) return;\n this.unbindKeyEvents();\n this.kibo = new Kibo(this.options.focusElement || this.options.parentElement);\n this.bindKeyAndShow('space', function () {\n return _this9.togglePlayPause();\n });\n this.bindKeyAndShow('left', function () {\n return _this9.seekRelative(-5);\n });\n this.bindKeyAndShow('right', function () {\n return _this9.seekRelative(5);\n });\n this.bindKeyAndShow('shift left', function () {\n return _this9.seekRelative(-10);\n });\n this.bindKeyAndShow('shift right', function () {\n return _this9.seekRelative(10);\n });\n this.bindKeyAndShow('shift ctrl left', function () {\n return _this9.seekRelative(-15);\n });\n this.bindKeyAndShow('shift ctrl right', function () {\n return _this9.seekRelative(15);\n });\n var keys = ['1', '2', '3', '4', '5', '6', '7', '8', '9', '0'];\n keys.forEach(function (i) {\n _this9.bindKeyAndShow(i, function () {\n _this9.settings.seekEnabled && _this9.container && _this9.container.seekPercentage(i * 10);\n });\n });\n }\n }, {\n key: \"unbindKeyEvents\",\n value: function unbindKeyEvents() {\n if (this.kibo) {\n this.kibo.off('space');\n this.kibo.off('left');\n this.kibo.off('right');\n this.kibo.off('shift left');\n this.kibo.off('shift right');\n this.kibo.off('shift ctrl left');\n this.kibo.off('shift ctrl right');\n this.kibo.off(['1', '2', '3', '4', '5', '6', '7', '8', '9', '0']);\n }\n }\n }, {\n key: \"parseColors\",\n value: function parseColors() {\n if (this.options.mediacontrol) {\n this.buttonsColor = this.options.mediacontrol.buttons;\n var seekbarColor = this.options.mediacontrol.seekbar;\n this.$el.find('.bar-fill-2[data-seekbar]').css('background-color', seekbarColor);\n this.$el.find('.media-control-icon svg path').css('fill', this.buttonsColor);\n this.$el.find('.segmented-bar-element[data-volume]').css('boxShadow', 'inset 2px 0 0 ' + this.buttonsColor);\n }\n }\n }, {\n key: \"applyButtonStyle\",\n value: function applyButtonStyle(element) {\n this.buttonsColor && element && $(element).find('svg path').css('fill', this.buttonsColor);\n }\n }, {\n key: \"destroy\",\n value: function destroy() {\n $(document).unbind('mouseup', this.stopDragHandler);\n $(document).unbind('mousemove', this.updateDragHandler);\n this.unbindKeyEvents();\n this.stopListening();\n\n _get(_getPrototypeOf(MediaControl.prototype), \"destroy\", this).call(this);\n }\n /**\n * enables to configure the media control after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n\n }, {\n key: \"configure\",\n value: function configure(options) {\n // Check if chromeless mode or if configure is called with new source(s)\n if (this.options.chromeless || options.source || options.sources) this.disable();else this.enable();\n this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE);\n }\n }, {\n key: \"render\",\n value: function render() {\n var _this10 = this;\n\n var timeout = this.options.hideMediaControlDelay || 2000;\n this.settings && this.$el.html(this.template({\n settings: this.settings\n }));\n this.createCachedElements();\n this.$playPauseToggle.addClass('paused');\n this.$playStopToggle.addClass('stopped');\n this.changeTogglePlay();\n\n if (this.container) {\n this.hideId = setTimeout(function () {\n return _this10.hide();\n }, timeout);\n this.disabled && this.hide();\n } // Video volume cannot be changed with Safari on mobile devices\n // Display mute/unmute icon only if Safari version >= 10\n\n\n if (Browser.isSafari && Browser.isMobile) {\n if (Browser.version < 10) this.$volumeContainer.css('display', 'none');else this.$volumeBarContainer.css('display', 'none');\n }\n\n this.$seekBarPosition.addClass('media-control-notransition');\n this.$seekBarScrubber.addClass('media-control-notransition');\n var previousSeekPercentage = 0;\n if (this.displayedSeekBarPercentage) previousSeekPercentage = this.displayedSeekBarPercentage;\n this.displayedSeekBarPercentage = null;\n this.setSeekPercentage(previousSeekPercentage);\n nextTick(function () {\n !_this10.settings.seekEnabled && _this10.$seekBarContainer.addClass('seek-disabled');\n !Browser.isMobile && !_this10.options.disableKeyboardShortcuts && _this10.bindKeyEvents();\n\n _this10.playerResize({\n width: _this10.options.width,\n height: _this10.options.height\n });\n\n _this10.hideVolumeBar(0);\n });\n this.parseColors();\n this.highDefinitionUpdate(this.isHD);\n this.core.$el.append(this.el);\n this.rendered = true;\n this.updateVolumeUI();\n this.trigger(Events.MEDIACONTROL_RENDERED);\n return this;\n }\n }]);\n\n return MediaControl;\n}(UICorePlugin);\n\nMediaControl.extend = function (properties) {\n return extend(MediaControl, properties);\n};\n\nvar posterHTML = \"<div class=\\\"play-wrapper\\\" data-poster></div>\\n\";\n\nvar css$4 = \".player-poster[data-poster] {\\n display: flex;\\n justify-content: center;\\n align-items: center;\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n z-index: 998;\\n top: 0;\\n left: 0;\\n background-color: transparent;\\n background-size: cover;\\n background-repeat: no-repeat;\\n background-position: 50% 50%; }\\n .player-poster[data-poster].clickable {\\n cursor: pointer; }\\n .player-poster[data-poster]:hover .play-wrapper[data-poster] {\\n opacity: 1; }\\n .player-poster[data-poster] .play-wrapper[data-poster] {\\n width: 100%;\\n height: 25%;\\n margin: 0 auto;\\n opacity: 0.75;\\n transition: opacity 0.1s ease; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg {\\n height: 100%; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg path {\\n fill: #fff; }\\n\";\nstyleInject(css$4);\n\nvar PosterPlugin = /*#__PURE__*/function (_UIContainerPlugin) {\n _inherits(PosterPlugin, _UIContainerPlugin);\n\n _createClass(PosterPlugin, [{\n key: \"name\",\n get: function get() {\n return 'poster';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }, {\n key: \"template\",\n get: function get() {\n return template(posterHTML);\n }\n }, {\n key: \"shouldRender\",\n get: function get() {\n var showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp);\n return this.container.playback.name !== 'html_img' && (this.container.playback.getPlaybackType() !== Playback.NO_OP || showForNoOp);\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n 'class': 'player-poster',\n 'data-poster': ''\n };\n }\n }, {\n key: \"events\",\n get: function get() {\n return {\n 'click': 'clicked'\n };\n }\n }, {\n key: \"showOnVideoEnd\",\n get: function get() {\n return !this.options.poster || this.options.poster.showOnVideoEnd || this.options.poster.showOnVideoEnd === undefined;\n }\n }]);\n\n function PosterPlugin(container) {\n var _this;\n\n _classCallCheck(this, PosterPlugin);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(PosterPlugin).call(this, container));\n _this.hasStartedPlaying = false;\n _this.playRequested = false;\n\n _this.render();\n\n nextTick(function () {\n return _this.update();\n });\n return _this;\n }\n\n _createClass(PosterPlugin, [{\n key: \"bindEvents\",\n value: function bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop);\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay);\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.update);\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.update);\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.render);\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError);\n this.showOnVideoEnd && this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop);\n }\n }, {\n key: \"onError\",\n value: function onError(error) {\n this.hasFatalError = error.level === PlayerError.Levels.FATAL;\n\n if (this.hasFatalError) {\n this.hasStartedPlaying = false;\n this.playRequested = false;\n this.showPlayButton();\n }\n }\n }, {\n key: \"onPlay\",\n value: function onPlay() {\n this.hasStartedPlaying = true;\n this.update();\n }\n }, {\n key: \"onStop\",\n value: function onStop() {\n this.hasStartedPlaying = false;\n this.playRequested = false;\n this.update();\n }\n }, {\n key: \"updatePlayButton\",\n value: function updatePlayButton(show) {\n if (show && (!this.options.chromeless || this.options.allowUserInteraction)) this.showPlayButton();else this.hidePlayButton();\n }\n }, {\n key: \"showPlayButton\",\n value: function showPlayButton() {\n if (this.hasFatalError && !this.options.disableErrorScreen) return;\n this.$playButton.show();\n this.$el.addClass('clickable');\n }\n }, {\n key: \"hidePlayButton\",\n value: function hidePlayButton() {\n this.$playButton.hide();\n this.$el.removeClass('clickable');\n }\n }, {\n key: \"clicked\",\n value: function clicked() {\n // Let \"click_to_pause\" plugin handle click event if media has started playing\n if (!this.hasStartedPlaying) {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.playRequested = true;\n this.update();\n this.container.playback && this.container.playback.consent();\n this.container.play();\n }\n\n return false;\n }\n }\n }, {\n key: \"shouldHideOnPlay\",\n value: function shouldHideOnPlay() {\n // Audio broadcasts should keep the poster up; video should hide poster while playing.\n return !this.container.playback.isAudioOnly;\n }\n }, {\n key: \"update\",\n value: function update() {\n if (!this.shouldRender) return;\n var showPlayButton = !this.playRequested && !this.hasStartedPlaying && !this.container.buffering;\n this.updatePlayButton(showPlayButton);\n this.updatePoster();\n }\n }, {\n key: \"updatePoster\",\n value: function updatePoster() {\n if (!this.hasStartedPlaying) this.showPoster();else this.hidePoster();\n }\n }, {\n key: \"showPoster\",\n value: function showPoster() {\n this.container.disableMediaControl();\n this.$el.show();\n }\n }, {\n key: \"hidePoster\",\n value: function hidePoster() {\n this.container.enableMediaControl();\n if (this.shouldHideOnPlay()) this.$el.hide();\n }\n }, {\n key: \"render\",\n value: function render() {\n if (!this.shouldRender) return;\n this.$el.html(this.template());\n var isRegularPoster = this.options.poster && this.options.poster.custom === undefined;\n\n if (isRegularPoster) {\n var posterUrl = this.options.poster.url || this.options.poster;\n this.$el.css({\n 'background-image': 'url(' + posterUrl + ')'\n });\n } else if (this.options.poster) {\n this.$el.css({\n 'background': this.options.poster.custom\n });\n }\n\n this.container.$el.append(this.el);\n this.$playWrapper = this.$el.find('.play-wrapper');\n this.$playWrapper.append(playIcon);\n this.$playButton = this.$playWrapper.find('svg');\n this.$playButton.addClass('poster-icon');\n this.$playButton.attr('data-poster', '');\n var buttonsColor = this.options.mediacontrol && this.options.mediacontrol.buttons;\n if (buttonsColor) this.$el.find('svg path').css('fill', buttonsColor);\n\n if (this.options.mediacontrol && this.options.mediacontrol.buttons) {\n buttonsColor = this.options.mediacontrol.buttons;\n this.$playButton.css('color', buttonsColor);\n }\n\n this.update();\n return this;\n }\n }]);\n\n return PosterPlugin;\n}(UIContainerPlugin);\n\nvar seekTimeHTML = \"<span data-seek-time></span>\\n<span data-duration></span>\\n\";\n\nvar css$5 = \".seek-time[data-seek-time] {\\n position: absolute;\\n white-space: nowrap;\\n height: 20px;\\n line-height: 20px;\\n font-size: 0;\\n left: -100%;\\n bottom: 55px;\\n background-color: rgba(2, 2, 2, 0.5);\\n z-index: 9999;\\n transition: opacity 0.1s ease; }\\n .seek-time[data-seek-time].hidden[data-seek-time] {\\n opacity: 0; }\\n .seek-time[data-seek-time] [data-seek-time] {\\n display: inline-block;\\n color: white;\\n font-size: 10px;\\n padding-left: 7px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration] {\\n display: inline-block;\\n color: rgba(255, 255, 255, 0.5);\\n font-size: 10px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n\";\nstyleInject(css$5);\n\nvar formatTime$1 = Utils.formatTime;\n\nvar SeekTime = /*#__PURE__*/function (_UICorePlugin) {\n _inherits(SeekTime, _UICorePlugin);\n\n _createClass(SeekTime, [{\n key: \"name\",\n get: function get() {\n return 'seek_time';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }, {\n key: \"template\",\n get: function get() {\n return template(seekTimeHTML);\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n 'class': 'seek-time',\n 'data-seek-time': ''\n };\n }\n }, {\n key: \"mediaControl\",\n get: function get() {\n return this.core.mediaControl;\n }\n }, {\n key: \"mediaControlContainer\",\n get: function get() {\n return this.mediaControl.container;\n }\n }, {\n key: \"isLiveStreamWithDvr\",\n get: function get() {\n return this.mediaControlContainer && this.mediaControlContainer.getPlaybackType() === Playback.LIVE && this.mediaControlContainer.isDvrEnabled();\n }\n }, {\n key: \"durationShown\",\n get: function get() {\n return this.isLiveStreamWithDvr && !this.actualLiveTime;\n }\n }, {\n key: \"useActualLiveTime\",\n get: function get() {\n return this.actualLiveTime && this.isLiveStreamWithDvr;\n }\n }]);\n\n function SeekTime(core) {\n var _this;\n\n _classCallCheck(this, SeekTime);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SeekTime).call(this, core));\n _this.hoveringOverSeekBar = false;\n _this.hoverPosition = null;\n _this.duration = null;\n _this.firstFragDateTime = null;\n _this.actualLiveTime = !!_this.mediaControl.options.actualLiveTime;\n\n if (_this.actualLiveTime) {\n if (_this.mediaControl.options.actualLiveServerTime) _this.actualLiveServerTimeDiff = new Date().getTime() - new Date(_this.mediaControl.options.actualLiveServerTime).getTime();else _this.actualLiveServerTimeDiff = 0;\n }\n\n return _this;\n }\n\n _createClass(SeekTime, [{\n key: \"bindEvents\",\n value: function bindEvents() {\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_RENDERED, this.render);\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this.showTime);\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this.hideTime);\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged);\n\n if (this.mediaControlContainer) {\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update);\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_TIMEUPDATE, this.updateDuration);\n }\n }\n }, {\n key: \"onContainerChanged\",\n value: function onContainerChanged() {\n this.stopListening();\n this.bindEvents();\n }\n }, {\n key: \"updateDuration\",\n value: function updateDuration(timeProgress) {\n this.duration = timeProgress.total;\n this.firstFragDateTime = timeProgress.firstFragDateTime;\n this.update();\n }\n }, {\n key: \"showTime\",\n value: function showTime(event) {\n this.hoveringOverSeekBar = true;\n this.calculateHoverPosition(event);\n this.update();\n }\n }, {\n key: \"hideTime\",\n value: function hideTime() {\n this.hoveringOverSeekBar = false;\n this.update();\n }\n }, {\n key: \"calculateHoverPosition\",\n value: function calculateHoverPosition(event) {\n var offset = event.pageX - this.mediaControl.$seekBarContainer.offset().left; // proportion into the seek bar that the mouse is hovered over 0-1\n\n this.hoverPosition = Math.min(1, Math.max(offset / this.mediaControl.$seekBarContainer.width(), 0));\n }\n }, {\n key: \"getSeekTime\",\n value: function getSeekTime() {\n var seekTime, secondsSinceMidnight, d, e;\n\n if (this.useActualLiveTime) {\n if (this.firstFragDateTime) {\n e = new Date(this.firstFragDateTime);\n d = new Date(this.firstFragDateTime);\n d.setHours(0, 0, 0, 0);\n secondsSinceMidnight = (e.getTime() - d.getTime()) / 1000 + this.duration;\n } else {\n d = new Date(new Date().getTime() - this.actualLiveServerTimeDiff);\n e = new Date(d);\n secondsSinceMidnight = (e - d.setHours(0, 0, 0, 0)) / 1000;\n }\n\n seekTime = secondsSinceMidnight - this.duration + this.hoverPosition * this.duration;\n if (seekTime < 0) seekTime += 86400;\n } else {\n seekTime = this.hoverPosition * this.duration;\n }\n\n return {\n seekTime: seekTime,\n secondsSinceMidnight: secondsSinceMidnight\n };\n }\n }, {\n key: \"update\",\n value: function update() {\n if (!this.rendered) {\n // update() is always called after a render\n return;\n }\n\n if (!this.shouldBeVisible()) {\n this.$el.hide();\n this.$el.css('left', '-100%');\n } else {\n var seekTime = this.getSeekTime();\n var currentSeekTime = formatTime$1(seekTime.seekTime, this.useActualLiveTime); // only update dom if necessary, ie time actually changed\n\n if (currentSeekTime !== this.displayedSeekTime) {\n this.$seekTimeEl.text(currentSeekTime);\n this.displayedSeekTime = currentSeekTime;\n }\n\n if (this.durationShown) {\n this.$durationEl.show();\n var currentDuration = formatTime$1(this.actualLiveTime ? seekTime.secondsSinceMidnight : this.duration, this.actualLiveTime);\n\n if (currentDuration !== this.displayedDuration) {\n this.$durationEl.text(currentDuration);\n this.displayedDuration = currentDuration;\n }\n } else {\n this.$durationEl.hide();\n } // the element must be unhidden before its width is requested, otherwise it's width will be reported as 0\n\n\n this.$el.show();\n var containerWidth = this.mediaControl.$seekBarContainer.width();\n var elWidth = this.$el.width();\n var elLeftPos = this.hoverPosition * containerWidth;\n elLeftPos -= elWidth / 2;\n elLeftPos = Math.max(0, Math.min(elLeftPos, containerWidth - elWidth));\n this.$el.css('left', elLeftPos);\n }\n }\n }, {\n key: \"shouldBeVisible\",\n value: function shouldBeVisible() {\n return this.mediaControlContainer && this.mediaControlContainer.settings.seekEnabled && this.hoveringOverSeekBar && this.hoverPosition !== null && this.duration !== null;\n }\n }, {\n key: \"render\",\n value: function render() {\n this.rendered = true;\n this.displayedDuration = null;\n this.displayedSeekTime = null;\n this.$el.html(this.template());\n this.$el.hide();\n this.mediaControl.$el.append(this.el);\n this.$seekTimeEl = this.$el.find('[data-seek-time]');\n this.$durationEl = this.$el.find('[data-duration]');\n this.$durationEl.hide();\n this.update();\n }\n }]);\n\n return SeekTime;\n}(UICorePlugin);\n\nvar spinnerHTML = \"<div data-bounce1></div><div data-bounce2></div><div data-bounce3></div>\\n\";\n\nvar css$6 = \".spinner-three-bounce[data-spinner] {\\n position: absolute;\\n margin: 0 auto;\\n width: 70px;\\n text-align: center;\\n z-index: 999;\\n left: 0;\\n right: 0;\\n margin-left: auto;\\n margin-right: auto;\\n /* center vertically */\\n top: 50%;\\n transform: translateY(-50%); }\\n .spinner-three-bounce[data-spinner] > div {\\n width: 18px;\\n height: 18px;\\n background-color: #FFFFFF;\\n border-radius: 100%;\\n display: inline-block;\\n -webkit-animation: bouncedelay 1.4s infinite ease-in-out;\\n animation: bouncedelay 1.4s infinite ease-in-out;\\n /* Prevent first frame from flickering when animation starts */\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both; }\\n .spinner-three-bounce[data-spinner] [data-bounce1] {\\n -webkit-animation-delay: -0.32s;\\n animation-delay: -0.32s; }\\n .spinner-three-bounce[data-spinner] [data-bounce2] {\\n -webkit-animation-delay: -0.16s;\\n animation-delay: -0.16s; }\\n\\n@-webkit-keyframes bouncedelay {\\n 0%, 80%, 100% {\\n transform: scale(0); }\\n 40% {\\n transform: scale(1); } }\\n\\n@keyframes bouncedelay {\\n 0%, 80%, 100% {\\n transform: scale(0); }\\n 40% {\\n transform: scale(1); } }\\n\";\nstyleInject(css$6);\n\nvar SpinnerThreeBouncePlugin = /*#__PURE__*/function (_UIContainerPlugin) {\n _inherits(SpinnerThreeBouncePlugin, _UIContainerPlugin);\n\n _createClass(SpinnerThreeBouncePlugin, [{\n key: \"name\",\n get: function get() {\n return 'spinner';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }, {\n key: \"attributes\",\n get: function get() {\n return {\n 'data-spinner': '',\n 'class': 'spinner-three-bounce'\n };\n }\n }]);\n\n function SpinnerThreeBouncePlugin(container) {\n var _this;\n\n _classCallCheck(this, SpinnerThreeBouncePlugin);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(SpinnerThreeBouncePlugin).call(this, container));\n _this.template = template(spinnerHTML);\n _this.showTimeout = null;\n\n _this.listenTo(_this.container, Events.CONTAINER_STATE_BUFFERING, _this.onBuffering);\n\n _this.listenTo(_this.container, Events.CONTAINER_STATE_BUFFERFULL, _this.onBufferFull);\n\n _this.listenTo(_this.container, Events.CONTAINER_STOP, _this.onStop);\n\n _this.listenTo(_this.container, Events.CONTAINER_ENDED, _this.onStop);\n\n _this.listenTo(_this.container, Events.CONTAINER_ERROR, _this.onStop);\n\n _this.render();\n\n return _this;\n }\n\n _createClass(SpinnerThreeBouncePlugin, [{\n key: \"onBuffering\",\n value: function onBuffering() {\n this.show();\n }\n }, {\n key: \"onBufferFull\",\n value: function onBufferFull() {\n this.hide();\n }\n }, {\n key: \"onStop\",\n value: function onStop() {\n this.hide();\n }\n }, {\n key: \"show\",\n value: function show() {\n var _this2 = this;\n\n if (this.showTimeout === null) this.showTimeout = setTimeout(function () {\n return _this2.$el.show();\n }, 300);\n }\n }, {\n key: \"hide\",\n value: function hide() {\n if (this.showTimeout !== null) {\n clearTimeout(this.showTimeout);\n this.showTimeout = null;\n }\n\n this.$el.hide();\n }\n }, {\n key: \"render\",\n value: function render() {\n this.$el.html(this.template());\n this.container.$el.append(this.$el);\n this.$el.hide();\n if (this.container.buffering) this.onBuffering();\n return this;\n }\n }]);\n\n return SpinnerThreeBouncePlugin;\n}(UIContainerPlugin);\n\nvar StatsPlugin = /*#__PURE__*/function (_ContainerPlugin) {\n _inherits(StatsPlugin, _ContainerPlugin);\n\n _createClass(StatsPlugin, [{\n key: \"name\",\n get: function get() {\n return 'stats';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }]);\n\n function StatsPlugin(container) {\n var _this;\n\n _classCallCheck(this, StatsPlugin);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(StatsPlugin).call(this, container));\n\n _this.setInitialAttrs();\n\n _this.reportInterval = _this.options.reportInterval || 5000;\n _this.state = 'IDLE';\n return _this;\n }\n\n _createClass(StatsPlugin, [{\n key: \"bindEvents\",\n value: function bindEvents() {\n this.listenTo(this.container.playback, Events.PLAYBACK_PLAY, this.onPlay);\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop);\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop);\n this.listenTo(this.container, Events.CONTAINER_DESTROYED, this.onStop);\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering);\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull);\n this.listenTo(this.container, Events.CONTAINER_STATS_ADD, this.onStatsAdd);\n this.listenTo(this.container, Events.CONTAINER_BITRATE, this.onStatsAdd);\n this.listenTo(this.container.playback, Events.PLAYBACK_STATS_ADD, this.onStatsAdd);\n }\n }, {\n key: \"setInitialAttrs\",\n value: function setInitialAttrs() {\n this.firstPlay = true;\n this.startupTime = 0;\n this.rebufferingTime = 0;\n this.watchingTime = 0;\n this.rebuffers = 0;\n this.externalMetrics = {};\n }\n }, {\n key: \"onPlay\",\n value: function onPlay() {\n this.state = 'PLAYING';\n this.watchingTimeInit = Date.now();\n if (!this.intervalId) this.intervalId = setInterval(this.report.bind(this), this.reportInterval);\n }\n }, {\n key: \"onStop\",\n value: function onStop() {\n clearInterval(this.intervalId);\n this.report();\n this.intervalId = undefined;\n this.state = 'STOPPED';\n }\n }, {\n key: \"onBuffering\",\n value: function onBuffering() {\n if (this.firstPlay) this.startupTimeInit = Date.now();else this.rebufferingTimeInit = Date.now();\n this.state = 'BUFFERING';\n this.rebuffers++;\n }\n }, {\n key: \"onBufferFull\",\n value: function onBufferFull() {\n if (this.firstPlay && this.startupTimeInit) {\n this.firstPlay = false;\n this.startupTime = Date.now() - this.startupTimeInit;\n this.watchingTimeInit = Date.now();\n } else if (this.rebufferingTimeInit) {\n this.rebufferingTime += this.getRebufferingTime();\n }\n\n this.rebufferingTimeInit = undefined;\n this.state = 'PLAYING';\n }\n }, {\n key: \"getRebufferingTime\",\n value: function getRebufferingTime() {\n return Date.now() - this.rebufferingTimeInit;\n }\n }, {\n key: \"getWatchingTime\",\n value: function getWatchingTime() {\n var totalTime = Date.now() - this.watchingTimeInit;\n return totalTime - this.rebufferingTime;\n }\n }, {\n key: \"isRebuffering\",\n value: function isRebuffering() {\n return !!this.rebufferingTimeInit;\n }\n }, {\n key: \"onStatsAdd\",\n value: function onStatsAdd(metric) {\n $.extend(this.externalMetrics, metric);\n }\n }, {\n key: \"getStats\",\n value: function getStats() {\n var metrics = {\n startupTime: this.startupTime,\n rebuffers: this.rebuffers,\n rebufferingTime: this.isRebuffering() ? this.rebufferingTime + this.getRebufferingTime() : this.rebufferingTime,\n watchingTime: this.isRebuffering() ? this.getWatchingTime() - this.getRebufferingTime() : this.getWatchingTime()\n };\n $.extend(metrics, this.externalMetrics);\n return metrics;\n }\n }, {\n key: \"report\",\n value: function report() {\n this.container.statsReport(this.getStats());\n }\n }]);\n\n return StatsPlugin;\n}(ContainerPlugin);\n\nvar watermarkHTML = \"<div class=\\\"clappr-watermark\\\" data-watermark data-watermark-<%=position %>>\\n<% if(typeof imageLink !== 'undefined') { %>\\n<a target=\\\"_blank\\\" href=\\\"<%= imageLink %>\\\">\\n<% } %>\\n<img src=\\\"<%= imageUrl %>\\\">\\n<% if(typeof imageLink !== 'undefined') { %>\\n</a>\\n<% } %>\\n</div>\\n\";\n\nvar css$7 = \".clappr-watermark[data-watermark] {\\n position: absolute;\\n min-width: 70px;\\n max-width: 200px;\\n width: 12%;\\n text-align: center;\\n z-index: 10; }\\n\\n.clappr-watermark[data-watermark] a {\\n outline: none;\\n cursor: pointer; }\\n\\n.clappr-watermark[data-watermark] img {\\n max-width: 100%; }\\n\\n.clappr-watermark[data-watermark-bottom-left] {\\n bottom: 10px;\\n left: 10px; }\\n\\n.clappr-watermark[data-watermark-bottom-right] {\\n bottom: 10px;\\n right: 42px; }\\n\\n.clappr-watermark[data-watermark-top-left] {\\n top: 10px;\\n left: 10px; }\\n\\n.clappr-watermark[data-watermark-top-right] {\\n top: 10px;\\n right: 37px; }\\n\";\nstyleInject(css$7);\n\nvar WaterMarkPlugin = /*#__PURE__*/function (_UIContainerPlugin) {\n _inherits(WaterMarkPlugin, _UIContainerPlugin);\n\n _createClass(WaterMarkPlugin, [{\n key: \"name\",\n get: function get() {\n return 'watermark';\n }\n }, {\n key: \"supportedVersion\",\n get: function get() {\n return {\n min: \"0.4.9\"\n };\n }\n }, {\n key: \"template\",\n get: function get() {\n return template(watermarkHTML);\n }\n }]);\n\n function WaterMarkPlugin(container) {\n var _this;\n\n _classCallCheck(this, WaterMarkPlugin);\n\n _this = _possibleConstructorReturn(this, _getPrototypeOf(WaterMarkPlugin).call(this, container));\n\n _this.configure();\n\n return _this;\n }\n\n _createClass(WaterMarkPlugin, [{\n key: \"bindEvents\",\n value: function bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay);\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop);\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.configure);\n }\n }, {\n key: \"configure\",\n value: function configure() {\n this.position = this.options.position || 'bottom-right';\n\n if (this.options.watermark) {\n this.imageUrl = this.options.watermark;\n this.imageLink = this.options.watermarkLink;\n this.render();\n } else {\n this.$el.remove();\n }\n }\n }, {\n key: \"onPlay\",\n value: function onPlay() {\n if (!this.hidden) this.$el.show();\n }\n }, {\n key: \"onStop\",\n value: function onStop() {\n this.$el.hide();\n }\n }, {\n key: \"render\",\n value: function render() {\n this.$el.hide();\n var templateOptions = {\n position: this.position,\n imageUrl: this.imageUrl,\n imageLink: this.imageLink\n };\n this.$el.html(this.template(templateOptions));\n this.container.$el.append(this.$el);\n return this;\n }\n }]);\n\n return WaterMarkPlugin;\n}(UIContainerPlugin);\n\n// Copyright 2014 Globo.com Player authors. All rights reserved.\nvar version = \"0.4.9\";\nvar Plugins = {\n ClickToPause: ClickToPausePlugin,\n ClosedCaptions: ClosedCaptions,\n DVRControls: DVRControls,\n EndVideo: EndVideo,\n ErrorScreen: ErrorScreen,\n Favicon: Favicon,\n GoogleAnalytics: GoogleAnalytics,\n MediaControl: MediaControl,\n Poster: PosterPlugin,\n SeekTime: SeekTime,\n SpinnerThreeBounce: SpinnerThreeBouncePlugin,\n Stats: StatsPlugin,\n WaterMark: WaterMarkPlugin\n};\n\nexport { ClickToPausePlugin as ClickToPause, ClosedCaptions, DVRControls, EndVideo, ErrorScreen, Favicon, GoogleAnalytics, MediaControl, Plugins, PosterPlugin as Poster, SeekTime, SpinnerThreeBouncePlugin as SpinnerThreeBounce, StatsPlugin as Stats, index as Vendor, WaterMarkPlugin as WaterMark, version };\n","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ClapprCore, { Loader } from '@clappr/core'\nimport { Plugins, Vendor } from '@clappr/plugins'\n\nconst version = VERSION\n\nfor (let plugin of Object.values(Plugins))\n Loader.registerPlugin(plugin)\n\n// TODO: remove on 0.5.x (backward-compatibility only)\nconst {\n ClickToPause,\n ClosedCaptions,\n DVRControls,\n EndVideo,\n ErrorScreen,\n Favicon,\n GoogleAnalytics,\n MediaControl,\n Poster,\n SeekTime,\n SpinnerThreeBounce,\n Stats,\n WaterMark,\n} = Plugins\n\nexport default {\n ...ClapprCore,\n ClickToPause,\n ClosedCaptions,\n DVRControls,\n EndVideo,\n ErrorScreen,\n Favicon,\n GoogleAnalytics,\n MediaControl,\n Poster,\n SeekTime,\n SpinnerThreeBounce,\n Stats,\n WaterMark,\n Vendor,\n Plugins,\n version,\n}\n"],"names":["_defineProperty","ownKeys","_objectSpread2","_classCallCheck","_defineProperties","_createClass","_inherits","_setPrototypeOf","_getPrototypeOf","_assertThisInitialized","_possibleConstructorReturn","_superPropBase","_get","styleInject","template","$","performance","Config","Fullscreen","formatTime","extend","removeArrayItem","formatTime$1","version","Object","values","Plugins","plugin","Loader","registerPlugin","ClickToPause","ClosedCaptions","DVRControls","EndVideo","ErrorScreen","Favicon","GoogleAnalytics","MediaControl","Poster","SeekTime","SpinnerThreeBounce","Stats","WaterMark","ClapprCore","Vendor"],"mappings":"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C;EACpC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,KAAK,GAAG,OAAO,CAAC;EACvB;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,iBAAiB,GAAG,YAAY,CAAC;EACxC;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,mBAAmB,GAAG,cAAc,CAAC;EAC5C;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,yBAAyB,GAAG,mBAAmB,CAAC;AACvD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,iBAAiB,GAAG,mBAAmB,CAAC;EAC/C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;EACnD;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;EACzC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;EACjD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;EACnD;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,uBAAuB,GAAG,yBAAyB,CAAC;EAC3D;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,uBAAuB,GAAG,yBAAyB,CAAC;EAC3D;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,6BAA6B,GAAG,+BAA+B,CAAC;EACvE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,gBAAgB,GAAG,kBAAkB,CAAC;EAC7C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,yBAAyB,GAAG,2BAA2B,CAAC;EAC/D;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,2BAA2B,GAAG,8BAA8B,CAAC;EACpE;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,yBAAyB,GAAG,4BAA4B,CAAC;EAChE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,sBAAsB,GAAG,wBAAwB,CAAC;EACzD;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,YAAY,GAAG,cAAc,CAAC;AACrC;EACA,MAAM,CAAC,6BAA6B,GAAG,+BAA+B,CAAC;AACvE;EACA,MAAM,CAAC,4BAA4B,GAAG,8BAA8B,CAAC;EACrE;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;EACzC;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,oBAAoB,GAAG,sBAAsB,CAAC;EACrD;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,aAAa,GAAG,eAAe,CAAC;EACvC;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;EACzC;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,aAAa,GAAG,eAAe,CAAC;EACvC;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,eAAe,GAAG,iBAAiB,CAAC;EAC3C;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,aAAa,GAAG,eAAe,CAAC;EACvC;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,cAAc,GAAG,gBAAgB,CAAC;AACzC;EACA,MAAM,CAAC,kBAAkB,GAAG,oBAAoB,CAAC;AACjD;EACA,MAAM,CAAC,wBAAwB,GAAG,0BAA0B,CAAC;AAC7D;EACA,MAAM,CAAC,qBAAqB,GAAG,uBAAuB,CAAC;EACvD;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,2BAA2B,GAAG,6BAA6B,CAAC;EACnE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,yBAAyB,GAAG,2BAA2B,CAAC;AAC/D;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,uBAAuB,GAAG,yBAAyB,CAAC;EAC3D;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,6BAA6B,GAAG,+BAA+B,CAAC;EACvE;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,mBAAmB,GAAG,qBAAqB,CAAC;EACnD;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,UAAU,GAAG,YAAY,CAAC;EACjC;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,eAAe,GAAG,iBAAiB,CAAC;EAC3C;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,WAAW,GAAG,aAAa,CAAC;EACnC;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,+BAA+B,GAAG,iCAAiC,CAAC;EAC3E;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,eAAe,GAAG,gBAAgB,CAAC;EAC1C;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,gBAAgB,GAAG,iBAAiB,CAAC;AAC5C;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,uBAAuB,GAAG,yBAAyB,CAAC;EAC3D,MAAM,CAAC,iCAAiC,GAAG,eAAe,CAAC;EAC3D;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,MAAM,CAAC,iBAAiB,GAAG,mBAAmB,CAAC;EAC/C,MAAM,CAAC,sBAAsB,GAAG,wBAAwB,CAAC;EACzD,MAAM,CAAC,mBAAmB,GAAG,qBAAqB,C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C,QAAQ,OAAO,EAAE,MAAM,CAAC,YAAY;EACpC,QAAQ,MAAM,EAAE,MAAM,CAAC,WAAW;EAClC,QAAQ,OAAO,EAAE,MAAM,CAAC,YAAY;EACpC,QAAQ,MAAM,EAAE,MAAM,CAAC,WAAW;EAClC,QAAQ,OAAO,EAAE,MAAM,CAAC,YAAY;EACpC,QAAQ,YAAY,EAAE,MAAM,CAAC,iBAAiB;EAC9C,QAAQ,cAAc,EAAE,MAAM,CAAC,mBAAmB;EAClD,QAAQ,mBAAmB,EAAE,MAAM,CAAC,yBAAyB;EAC7D,OAAO,CAAC;EACR,KAAK;EACL;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;AACA;EACA,GAAG,CAAC,CAAC,CAAC;AACN;EACA,EAAE,SAAS,MAAM,CAAC,OAAO,EAAE;EAC3B,IAAI,IAAI,KAAK,CAAC;AACd;EACA,IAAI,eAAe,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;AAClC;EACA,IAAI,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;EACvC,IAAI,IAAI,sBAAsB,GAAG;EA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"}