From 24f02757c9966ddc05871e6bd49226b752f183e4 Mon Sep 17 00:00:00 2001 From: Anton Schubert Date: Mon, 13 Apr 2020 19:31:07 +0200 Subject: use voc-player for relive, update clappr plugins, remove old assets, clean up dash/relive player embeds --- .../clapprio/38861cba61c66739c1452c3a71e39852.ttf | Bin 32652 -> 0 bytes .../clapprio/4b76590b32dab62bc95c1b7951efae78.swf | Bin 3204 -> 0 bytes .../clapprio/8fa12a459188502b9f0d39b8a67d9e6c.swf | Bin 63532 -> 0 bytes .../clapprio/a8c874b93b3d848f39a71260c57e3863.cur | Bin 326 -> 0 bytes assets/clapprio/audio-selector.min.js | 19 - assets/clapprio/clappr-playback-rate-plugin.js | 108 - assets/clapprio/clappr-playback-rate-plugin.min.js | 16 - assets/clapprio/clappr-thumbnails-plugin.js | 1 - assets/clapprio/clappr.js | 33082 ------------------- assets/clapprio/clappr.min.js | 1 - assets/clapprio/dash-shaka-playback.min.js | 1 - assets/clapprio/level-selector.min.js | 19 - 12 files changed, 33247 deletions(-) delete mode 100644 assets/clapprio/38861cba61c66739c1452c3a71e39852.ttf delete mode 100644 assets/clapprio/4b76590b32dab62bc95c1b7951efae78.swf delete mode 100644 assets/clapprio/8fa12a459188502b9f0d39b8a67d9e6c.swf delete mode 100644 assets/clapprio/a8c874b93b3d848f39a71260c57e3863.cur delete mode 100644 assets/clapprio/audio-selector.min.js delete mode 100644 assets/clapprio/clappr-playback-rate-plugin.js delete mode 100644 assets/clapprio/clappr-playback-rate-plugin.min.js delete mode 100644 assets/clapprio/clappr-thumbnails-plugin.js delete mode 100644 assets/clapprio/clappr.js delete mode 100644 assets/clapprio/clappr.min.js delete mode 100644 assets/clapprio/dash-shaka-playback.min.js delete mode 100644 assets/clapprio/level-selector.min.js (limited to 'assets/clapprio') diff --git a/assets/clapprio/38861cba61c66739c1452c3a71e39852.ttf b/assets/clapprio/38861cba61c66739c1452c3a71e39852.ttf deleted file mode 100644 index 7b25f3c..0000000 Binary files a/assets/clapprio/38861cba61c66739c1452c3a71e39852.ttf and /dev/null differ diff --git a/assets/clapprio/4b76590b32dab62bc95c1b7951efae78.swf b/assets/clapprio/4b76590b32dab62bc95c1b7951efae78.swf deleted file mode 100644 index 30bdf3d..0000000 Binary files a/assets/clapprio/4b76590b32dab62bc95c1b7951efae78.swf and /dev/null differ diff --git a/assets/clapprio/8fa12a459188502b9f0d39b8a67d9e6c.swf b/assets/clapprio/8fa12a459188502b9f0d39b8a67d9e6c.swf deleted file mode 100644 index 1c40719..0000000 Binary files a/assets/clapprio/8fa12a459188502b9f0d39b8a67d9e6c.swf and /dev/null differ diff --git a/assets/clapprio/a8c874b93b3d848f39a71260c57e3863.cur b/assets/clapprio/a8c874b93b3d848f39a71260c57e3863.cur deleted file mode 100644 index 41aaa62..0000000 Binary files a/assets/clapprio/a8c874b93b3d848f39a71260c57e3863.cur and /dev/null differ diff --git a/assets/clapprio/audio-selector.min.js b/assets/clapprio/audio-selector.min.js deleted file mode 100644 index d79ebdf..0000000 --- a/assets/clapprio/audio-selector.min.js +++ /dev/null @@ -1,19 +0,0 @@ -!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t(require("Clappr")):"function"==typeof define&&define.amd?define(["Clappr"],t):"object"==typeof exports?exports.AudioSelector=t(require("Clappr")):e.AudioSelector=t(e.Clappr)}(this,function(e){return function(e){function t(o){if(n[o])return n[o].exports;var i=n[o]={exports:{},id:o,loaded:!1};return e[o].call(i.exports,i,i.exports,t),i.loaded=!0,i.exports}var n={};return t.m=e,t.c=n,t.p="<%=baseUrl%>/",t(0)}([/*!******************!*\ - !*** ./index.js ***! - \******************/ -function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=n(/*! ./src/main.js */1),e.exports=t.default},/*!*********************!*\ - !*** ./src/main.js ***! - \*********************/ -function(e,t,n){"use strict";function o(e){return e&&e.__esModule?e:{default:e}}function i(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function a(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var r=function(){function e(e,t){for(var n=0;n1);return t}},{key:"render",value:function(){if(this.shouldRender()){var e=s.Styler.getStyleFor(h.default,{baseUrl:this.core.options.baseUrl});this.$el.html(this.template({title:this._getTitle(),languages:this.languages})),this.$el.append(e),this.core.mediaControl.$(".media-control-right-panel").append(this.el),this._highlightCurrentElement()}return this}},{key:"_setLanguage",value:function(e){var t=this.core.getCurrentPlayback();this._startTrackSwitch(),t.selectAudioLanguage(e)}},{key:"_getAudioTrack",value:function(e){for(var t=0;tul{list-style-type:none;position:absolute;bottom:25px;border:1px solid #000;display:none;background-color:#e6e6e6}.audio_selector[data-audio-selector] li{font-size:12px}.audio_selector[data-audio-selector] li[data-title]{background-color:#c3c2c2;padding:5px}.audio_selector[data-audio-selector] li a{color:#444;padding:2px 12px;display:block;text-decoration:none}.audio_selector[data-audio-selector] li a:hover{background-color:#555;color:#fff}.audio_selector[data-audio-selector] li a:hover a{color:#fff;text-decoration:none}.audio_selector[data-audio-selector] li.current a{color:red}@-webkit-keyframes pulse{0%{color:#fff}50%{color:#ff0101}to{color:#b80000}}",""])},/*!**************************************!*\ - !*** ./~/css-loader/lib/css-base.js ***! - \**************************************/ -function(e,t){"use strict";e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t\"><%= playbackRates[i].label %>\n <% }; %>\n\n"; - -/***/ }, -/* 3 */ -/***/ function(module, exports, __webpack_require__) { - - exports = module.exports = __webpack_require__(4)(); - // imports - - - // module - exports.push([module.id, ".playback_rate[data-playback-rate-select] {\n float: right;\n margin-top: 5px;\n position: relative; }\n .playback_rate[data-playback-rate-select] button {\n background-color: transparent;\n color: #fff;\n font-family: Roboto,\"Open Sans\",Arial,sans-serif;\n -webkit-font-smoothing: antialiased;\n border: none;\n font-size: 10px;\n cursor: pointer; }\n .playback_rate[data-playback-rate-select] button:hover {\n color: #c9c9c9; }\n .playback_rate[data-playback-rate-select] button.changing {\n -webkit-animation: pulse 0.5s infinite alternate; }\n .playback_rate[data-playback-rate-select] > ul {\n display: none;\n list-style-type: none;\n position: absolute;\n bottom: 25px;\n border: 1px solid black;\n border-radius: 4px;\n background-color: rgba(0, 0, 0, 0.7); }\n .playback_rate[data-playback-rate-select] li {\n position: relative;\n font-size: 10px; }\n .playback_rate[data-playback-rate-select] li[data-title] {\n padding: 5px; }\n .playback_rate[data-playback-rate-select] li a {\n color: #aaa;\n padding: 2px 10px 2px 15px;\n display: block;\n text-decoration: none; }\n .playback_rate[data-playback-rate-select] li a.active {\n background-color: black;\n font-weight: bold;\n color: #fff; }\n .playback_rate[data-playback-rate-select] li a.active:before {\n content: '\\2713';\n position: absolute;\n top: 2px;\n left: 4px; }\n .playback_rate[data-playback-rate-select] li a:hover {\n color: #fff;\n text-decoration: none; }\n\n@-webkit-keyframes pulse {\n 0% {\n color: #fff; }\n 50% {\n color: #ff0101; }\n 100% {\n color: #B80000; } }\n", ""]); - - // exports - - -/***/ }, -/* 4 */ -/***/ function(module, exports) { - - /* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra - */ // css base code, injected by the css-loader - "use strict";module.exports = function(){var list=[]; // return the list of modules as css string - list.toString = function toString(){var result=[];for(var i=0;i < this.length;i++) {var item=this[i];if(item[2]){result.push("@media " + item[2] + "{" + item[1] + "}");}else {result.push(item[1]);}}return result.join("");}; // import a list of modules into the list - list.i = function(modules,mediaQuery){if(typeof modules === "string")modules = [[null,modules,""]];var alreadyImportedModules={};for(var i=0;i < this.length;i++) {var id=this[i][0];if(typeof id === "number")alreadyImportedModules[id] = true;}for(i = 0;i < modules.length;i++) {var item=modules[i]; // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]){if(mediaQuery && !item[2]){item[2] = mediaQuery;}else if(mediaQuery){item[2] = "(" + item[2] + ") and (" + mediaQuery + ")";}list.push(item);}}};return list;}; - -/***/ } -/******/ ]) -}); -; \ No newline at end of file diff --git a/assets/clapprio/clappr-playback-rate-plugin.min.js b/assets/clapprio/clappr-playback-rate-plugin.min.js deleted file mode 100644 index 152b6e2..0000000 --- a/assets/clapprio/clappr-playback-rate-plugin.min.js +++ /dev/null @@ -1,16 +0,0 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("Clappr")):"function"==typeof define&&define.amd?define(["Clappr"],e):"object"==typeof exports?exports.PlaybackRatePlugin=e(require("Clappr")):t.PlaybackRatePlugin=e(t.Clappr)}(this,function(t){return function(t){function e(n){if(a[n])return a[n].exports;var o=a[n]={exports:{},id:n,loaded:!1};return t[n].call(o.exports,o,o.exports,e),o.loaded=!0,o.exports}var a={};return e.m=t,e.c=a,e.p="<%=baseUrl%>/",e(0)}([/*!*********************!*\ - !*** ./src/main.js ***! - \*********************/ -function(t,e,a){"use strict";function n(t){return t&&t.__esModule?t:{"default":t}}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}Object.defineProperty(e,"__esModule",{value:!0});var i=function(){function t(t,e){for(var a=0;aul{display:none;list-style-type:none;position:absolute;bottom:25px;border:1px solid #000;border-radius:4px;background-color:rgba(0,0,0,.7)}.playback_rate[data-playback-rate-select] li{position:relative;font-size:10px}.playback_rate[data-playback-rate-select] li[data-title]{padding:5px}.playback_rate[data-playback-rate-select] li a{color:#aaa;padding:2px 10px 2px 15px;display:block;text-decoration:none}.playback_rate[data-playback-rate-select] li a.active{background-color:#000;font-weight:700;color:#fff}.playback_rate[data-playback-rate-select] li a.active:before{content:'\\2713';position:absolute;top:2px;left:4px}.playback_rate[data-playback-rate-select] li a:hover{color:#fff;text-decoration:none}@-webkit-keyframes pulse{0%{color:#fff}50%{color:#ff0101}to{color:#b80000}}",""])},/*!**************************************!*\ - !*** ./~/css-loader/lib/css-base.js ***! - \**************************************/ -function(t,e){"use strict";t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e0&&e._renderPlugin()})})}},{key:"removeThumbnail",value:function(t){var e=this,n=t.constructor===Array?t:[t];return this._onThumbsLoaded.then(function(){var t=!0,o=!1;return n.forEach(function(n){var i=e._thumbs.some(function(t,o){return t.src===n&&(e._thumbs.splice(o,1),e._getOptions().backdropHeight&&(e._$backdropCarouselImgs[o].remove(),e._$backdropCarouselImgs.splice(o,1)),!0)});i?o=!0:t=!1}),o&&e._renderPlugin(),c.Promise.resolve(t)})}},{key:"_init",value:function(){this._thumbsLoaded&&(this._$backdropCarouselImgs=[],this._createElements(),this._loadBackdrop(),this._renderPlugin())}},{key:"_getOptions",value:function(){if(!("scrubThumbnails"in this.core.options))throw"'scrubThumbnails property missing from options object.";return this.core.options.scrubThumbnails}},{key:"_appendElToMediaControl",value:function(){this.core.mediaControl.$el.find(".media-control-background").first().after(this.el)}},{key:"_onMouseMove",value:function(t){this._calculateHoverPosition(t),this._show=!0,this._renderPlugin()}},{key:"_onMouseLeave",value:function(){this._show=!1,this._renderPlugin()}},{key:"_calculateHoverPosition",value:function(t){var e=t.pageX-this.core.mediaControl.$seekBarContainer.offset().left;this._hoverPosition=Math.min(1,Math.max(e/this.core.mediaControl.$seekBarContainer.width(),0))}},{key:"_buildThumbsFromOptions",value:function(){var t=this,e=this._getOptions().thumbs,n=e.map(function(e){return t._addThumbFromSrc(e)});return c.Promise.all(n)}},{key:"_addThumbFromSrc",value:function(t){var e=this;return new c.Promise(function(e,n){var o=new Image;o.onload=function(){e(o)},o.onerror=n,o.src=t.url}).then(function(n){var o=t.time,i=null;e._thumbs.some(function(t,e){return o0?e._thumbs[i-1]:null;u&&(u.duration=o-u.time);var s=r?r.time-t.time:null,a=n.width,c=n.height,l={imageW:a,imageH:c,x:t.x||0,y:t.y||0,w:t.w||a,h:t.h||c,url:t.url,time:o,duration:s,src:t};return e._thumbs.splice(i,0,l),l})}},{key:"_buildImg",value:function(t,e){var n=e/t.h,o=(0,a.$)("").addClass("thumbnail-img").attr("src",t.url),i=(0,a.$)("
").addClass("thumbnail-container");return i.css("width",t.w*n),i.css("height",e),o.css({height:t.imageH*n,left:-1*t.x*n,top:-1*t.y*n}),i.append(o),i}},{key:"_loadBackdrop",value:function(){if(this._getOptions().backdropHeight)for(var t=this._$carousel,e=0;e=0;n--){var o=e[n];if(o.time<=t)return n}return 0}},{key:"_renderPlugin",value:function(){this._thumbsLoaded&&(this._show&&this._thumbs.length>0?(this.$el.removeClass("hidden"),this._updateCarousel(),this._updateSpotlightThumb()):this.$el.addClass("hidden"))}},{key:"_createElements",value:function(){this.$el.html(this.template({backdropHeight:this._getOptions().backdropHeight,spotlightHeight:this._getOptions().spotlightHeight})),this.$el.append(a.Styler.getStyleFor(d["default"])),this._$spotlight=this.$el.find(".spotlight"),this._$backdrop=this.$el.find(".backdrop"),this._$carousel=this._$backdrop.find(".carousel"),this.$el.addClass("hidden"),this._appendElToMediaControl()}}]),e}(a.UICorePlugin);e["default"]=p,t.exports=e["default"]},function(t,e,n){(function(t,o){"use strict";function i(t,e){this._id=t,this._clearFn=e}var r=n(4).nextTick,u=Function.prototype.apply,s=Array.prototype.slice,a={},c=0;e.setTimeout=function(){return new i(u.call(setTimeout,window,arguments),clearTimeout)},e.setInterval=function(){return new i(u.call(setInterval,window,arguments),clearInterval)},e.clearTimeout=e.clearInterval=function(t){t.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},e.enroll=function(t,e){clearTimeout(t._idleTimeoutId),t._idleTimeout=e},e.unenroll=function(t){clearTimeout(t._idleTimeoutId),t._idleTimeout=-1},e._unrefActive=e.active=function(t){clearTimeout(t._idleTimeoutId);var e=t._idleTimeout;e>=0&&(t._idleTimeoutId=setTimeout(function(){t._onTimeout&&t._onTimeout()},e))},e.setImmediate="function"==typeof t?t:function(t){var n=c++,o=!(arguments.length<2)&&s.call(arguments,1);return a[n]=!0,r(function(){a[n]&&(o?t.apply(null,o):t.call(null),e.clearImmediate(n))}),n},e.clearImmediate="function"==typeof o?o:function(t){delete a[t]}}).call(e,n(1).setImmediate,n(1).clearImmediate)},function(t,e){"use strict";t.exports=function(){var t=[];return t.toString=function(){for(var t=[],e=0;e1)for(var n=1;n 240, 1 => 480, 2 => 720) - */ -Events.PLAYBACK_BITRATE = 'playback:bitrate'; -/** - * Fired when the playback has its levels - * - * @event PLAYBACK_LEVELS_AVAILABLE - * @param {Array} levels - * the ordered levels, each one with the following format `{id: 1, label: '500kbps'}` ps: id should be a number >= 0 - * @param {Number} initial - * the initial level otherwise -1 (AUTO) - */ -Events.PLAYBACK_LEVELS_AVAILABLE = 'playback:levels:available'; -/** - * Fired when the playback starts to switch level - * - * @event PLAYBACK_LEVEL_SWITCH_START - * - */ -Events.PLAYBACK_LEVEL_SWITCH_START = 'playback:levels:switch:start'; -/** - * Fired when the playback ends the level switch - * - * @event PLAYBACK_LEVEL_SWITCH_END - * - */ -Events.PLAYBACK_LEVEL_SWITCH_END = 'playback:levels:switch:end'; - -/** - * Fired when playback internal state changes - * - * @event PLAYBACK_PLAYBACKSTATE - * @param {Object} state Data - * state object - * @param {String} [state.type] - * the playback type - */ -Events.PLAYBACK_PLAYBACKSTATE = 'playback:playbackstate'; -/** - * Fired when DVR becomes enabled/disabled. - * - * @event PLAYBACK_DVR - * @param {boolean} state true if dvr enabled - */ -Events.PLAYBACK_DVR = 'playback:dvr'; -// TODO doc -Events.PLAYBACK_MEDIACONTROL_DISABLE = 'playback:mediacontrol:disable'; -// TODO doc -Events.PLAYBACK_MEDIACONTROL_ENABLE = 'playback:mediacontrol:enable'; -/** - * Fired when the media for a playback ends. - * - * @event PLAYBACK_ENDED - * @param {String} name the name of the playback - */ -Events.PLAYBACK_ENDED = 'playback:ended'; -/** - * Fired when user requests `play()` - * - * @event PLAYBACK_PLAY_INTENT - */ -Events.PLAYBACK_PLAY_INTENT = 'playback:play:intent'; -/** - * Fired when the media for a playback starts playing. - * This is not necessarily when the user requests `play()` - * The media may have to buffer first. - * I.e. `isPlaying()` might return `true` before this event is fired, - * because `isPlaying()` represents the intended state. - * - * @event PLAYBACK_PLAY - */ -Events.PLAYBACK_PLAY = 'playback:play'; -/** - * Fired when the media for a playback pauses. - * - * @event PLAYBACK_PAUSE - */ -Events.PLAYBACK_PAUSE = 'playback:pause'; -/** - * Fired when the media for a playback is seeked. - * - * @event PLAYBACK_SEEKED - */ -Events.PLAYBACK_SEEKED = 'playback:seeked'; -/** - * Fired when the media for a playback is stopped. - * - * @event PLAYBACK_STOP - */ -Events.PLAYBACK_STOP = 'playback:stop'; -/** - * Fired if an error occurs in the playback. - * - * @event PLAYBACK_ERROR - * @param {Object} error An object containing the error details - * @param {String} name Playback name - */ -Events.PLAYBACK_ERROR = 'playback:error'; -// TODO doc -Events.PLAYBACK_STATS_ADD = 'playback:stats:add'; -// TODO doc -Events.PLAYBACK_FRAGMENT_LOADED = 'playback:fragment:loaded'; -// TODO doc -Events.PLAYBACK_LEVEL_SWITCH = 'playback:level:switch'; -/** - * Fired when subtitle is available on playback for display - * - * @event PLAYBACK_SUBTITLE_AVAILABLE - */ -Events.PLAYBACK_SUBTITLE_AVAILABLE = 'playback:subtitle:available'; -/** - * Fired when playback subtitle track has changed - * - * @event CONTAINER_SUBTITLE_CHANGED - * @param {Object} track Data - * track object - * @param {Number} [track.id] - * selected track id - */ -Events.PLAYBACK_SUBTITLE_CHANGED = 'playback:subtitle:changed'; - -// Core Events -/** - * Fired when the containers are created - * - * @event CORE_CONTAINERS_CREATED - */ -Events.CORE_CONTAINERS_CREATED = 'core:containers:created'; -/** - * Fired when the options were changed for the core - * - * @event CORE_OPTIONS_CHANGE - */ -Events.CORE_OPTIONS_CHANGE = 'core:options:change'; -/** - * Fired after creating containers, when the core is ready - * - * @event CORE_READY - */ -Events.CORE_READY = 'core:ready'; -/** - * Fired when the fullscreen state change - * - * @event CORE_FULLSCREEN - * @param {Boolean} whether or not the player is on fullscreen mode - */ -Events.CORE_FULLSCREEN = 'core:fullscreen'; -/** - * Fired when the screen orientation has changed. - * This event is trigger only for mobile devices. - * - * @event CORE_SCREEN_ORIENTATION_CHANGED - * @param {Object} screen An object with screen orientation - * screen object - * @param {Object} [screen.event] - * window resize event object - * @param {String} [screen.orientation] - * screen orientation (ie: 'landscape' or 'portrait') - */ -Events.CORE_SCREEN_ORIENTATION_CHANGED = 'core:screen:orientation:changed'; - -// Container Events -/** - * Fired when the container internal state changes - * - * @event CONTAINER_PLAYBACKSTATE - * @param {Object} state Data - * state object - * @param {String} [state.type] - * the playback type - */ -Events.CONTAINER_PLAYBACKSTATE = 'container:playbackstate'; -Events.CONTAINER_PLAYBACKDVRSTATECHANGED = 'container:dvr'; -/** - * Fired when the container updates its bitrate - * - * @event CONTAINER_BITRATE - * @param {Object} bitrate Data - * bitrate object - * @param {Number} [bitrate.bandwidth] - * bitrate bandwidth when it's available - * @param {Number} [bitrate.width] - * playback width (ex: 720, 640, 1080) - * @param {Number} [bitrate.height] - * playback height (ex: 240, 480, 720) - * @param {Number} [bitrate.level] - * playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720) - */ -Events.CONTAINER_BITRATE = 'container:bitrate'; -Events.CONTAINER_STATS_REPORT = 'container:stats:report'; -Events.CONTAINER_DESTROYED = 'container:destroyed'; -/** - * Fired when the container is ready - * - * @event CONTAINER_READY - */ -Events.CONTAINER_READY = 'container:ready'; -Events.CONTAINER_ERROR = 'container:error'; -/** - * Fired when the container loaded its metadata - * - * @event CONTAINER_LOADEDMETADATA - * @param {Object} metadata Data - * settings object - * @param {Number} [metadata.duration] - * the playback duration - * @param {Object} [metadata.data] - * extra meta data - */ -Events.CONTAINER_LOADEDMETADATA = 'container:loadedmetadata'; - -/** - * Fired when subtitle is available on container for display - * - * @event CONTAINER_SUBTITLE_AVAILABLE - */ -Events.CONTAINER_SUBTITLE_AVAILABLE = 'container:subtitle:available'; -/** - * Fired when subtitle track has changed - * - * @event CONTAINER_SUBTITLE_CHANGED - * @param {Object} track Data - * track object - * @param {Number} [track.id] - * selected track id - */ -Events.CONTAINER_SUBTITLE_CHANGED = 'container:subtitle:changed'; - -/** - * Fired when the time is updated on container - * - * @event CONTAINER_TIMEUPDATE - * @param {Object} progress Data - * progress object - * @param {Number} [progress.current] - * current time - * @param {Number} [progress.total] - * total time - */ -Events.CONTAINER_TIMEUPDATE = 'container:timeupdate'; -/** - * Fired when the container is downloading the media - * - * @event CONTAINER_PROGRESS - * @param {Object} progress Data - * progress object - * @param {Number} [progress.start] - * initial downloaded content - * @param {Number} [progress.current] - * current dowloaded content - * @param {Number} [progress.total] - * total content to be downloaded - */ -Events.CONTAINER_PROGRESS = 'container:progress'; -Events.CONTAINER_PLAY = 'container:play'; -Events.CONTAINER_STOP = 'container:stop'; -Events.CONTAINER_PAUSE = 'container:pause'; -Events.CONTAINER_ENDED = 'container:ended'; -Events.CONTAINER_CLICK = 'container:click'; -Events.CONTAINER_DBLCLICK = 'container:dblclick'; -Events.CONTAINER_CONTEXTMENU = 'container:contextmenu'; -Events.CONTAINER_MOUSE_ENTER = 'container:mouseenter'; -Events.CONTAINER_MOUSE_LEAVE = 'container:mouseleave'; -/** - * Fired when the container seeks the video - * - * @event CONTAINER_SEEK - * @param {Number} time the current time in seconds - */ -Events.CONTAINER_SEEK = 'container:seek'; -/** - * Fired when the container was finished the seek video - * - * @event CONTAINER_SEEKED - * @param {Number} time the current time in seconds - */ -Events.CONTAINER_SEEKED = 'container:seeked'; -Events.CONTAINER_VOLUME = 'container:volume'; -Events.CONTAINER_FULLSCREEN = 'container:fullscreen'; -/** - * Fired when container is buffering - * - * @event CONTAINER_STATE_BUFFERING - */ -Events.CONTAINER_STATE_BUFFERING = 'container:state:buffering'; -/** - * Fired when the container filled the buffer - * - * @event CONTAINER_STATE_BUFFERFULL - */ -Events.CONTAINER_STATE_BUFFERFULL = 'container:state:bufferfull'; -/** - * Fired when the container changes any settings (volume, seek and etc) - * - * @event CONTAINER_SETTINGSUPDATE - */ -Events.CONTAINER_SETTINGSUPDATE = 'container:settingsupdate'; -/** - * Fired when container updates its video quality - * - * @event CONTAINER_HIGHDEFINITIONUPDATE - * @param {Boolean} isHD - * true when is on HD, false otherwise - */ -Events.CONTAINER_HIGHDEFINITIONUPDATE = 'container:highdefinitionupdate'; - -/** - * Fired when the media control shows - * - * @event CONTAINER_MEDIACONTROL_SHOW - */ -Events.CONTAINER_MEDIACONTROL_SHOW = 'container:mediacontrol:show'; -/** - * Fired when the media control hides - * - * @event CONTAINER_MEDIACONTROL_HIDE - */ -Events.CONTAINER_MEDIACONTROL_HIDE = 'container:mediacontrol:hide'; - -Events.CONTAINER_MEDIACONTROL_DISABLE = 'container:mediacontrol:disable'; -Events.CONTAINER_MEDIACONTROL_ENABLE = 'container:mediacontrol:enable'; -Events.CONTAINER_STATS_ADD = 'container:stats:add'; -/** - * Fired when the options were changed for the container - * - * @event CONTAINER_OPTIONS_CHANGE - */ -Events.CONTAINER_OPTIONS_CHANGE = 'container:options:change'; - -// MediaControl Events -Events.MEDIACONTROL_RENDERED = 'mediacontrol:rendered'; -/** - * Fired when the player enters/exit on fullscreen - * - * @event MEDIACONTROL_FULLSCREEN - */ -Events.MEDIACONTROL_FULLSCREEN = 'mediacontrol:fullscreen'; -/** - * Fired when the media control shows - * - * @event MEDIACONTROL_SHOW - */ -Events.MEDIACONTROL_SHOW = 'mediacontrol:show'; -/** - * Fired when the media control hides - * - * @event MEDIACONTROL_HIDE - */ -Events.MEDIACONTROL_HIDE = 'mediacontrol:hide'; -/** - * Fired when mouse enters on the seekbar - * - * @event MEDIACONTROL_MOUSEMOVE_SEEKBAR - * @param {Object} event - * the javascript event - */ -Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR = 'mediacontrol:mousemove:seekbar'; -/** - * Fired when mouse leaves the seekbar - * - * @event MEDIACONTROL_MOUSELEAVE_SEEKBAR - * @param {Object} event - * the javascript event - */ -Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR = 'mediacontrol:mouseleave:seekbar'; -/** - * Fired when the media is being played - * - * @event MEDIACONTROL_PLAYING - */ -Events.MEDIACONTROL_PLAYING = 'mediacontrol:playing'; -/** - * Fired when the media is not being played - * - * @event MEDIACONTROL_NOTPLAYING - */ -Events.MEDIACONTROL_NOTPLAYING = 'mediacontrol:notplaying'; -/** - * Fired when the container was changed - * - * @event MEDIACONTROL_CONTAINERCHANGED - */ -Events.MEDIACONTROL_CONTAINERCHANGED = 'mediacontrol:containerchanged'; -module.exports = exports['default']; - -/***/ }), -/* 5 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -exports.DomRecycler = exports.cancelAnimationFrame = exports.requestAnimationFrame = exports.QueryString = exports.Config = exports.Fullscreen = undefined; - -var _createClass2 = __webpack_require__(3); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _classCallCheck2 = __webpack_require__(0); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _possibleConstructorReturn2 = __webpack_require__(1); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _inherits2 = __webpack_require__(2); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _defineProperty = __webpack_require__(70); - -var _defineProperty2 = _interopRequireDefault(_defineProperty); - -var _getOwnPropertyDescriptor = __webpack_require__(126); - -var _getOwnPropertyDescriptor2 = _interopRequireDefault(_getOwnPropertyDescriptor); - -exports.extend = extend; -exports.formatTime = formatTime; -exports.seekStringToSeconds = seekStringToSeconds; -exports.uniqueId = uniqueId; -exports.isNumber = isNumber; -exports.currentScriptUrl = currentScriptUrl; -exports.getBrowserLanguage = getBrowserLanguage; -exports.now = now; -exports.removeArrayItem = removeArrayItem; - -__webpack_require__(129); - -var _browser = __webpack_require__(13); - -var _browser2 = _interopRequireDefault(_browser); - -var _clapprZepto = __webpack_require__(6); - -var _clapprZepto2 = _interopRequireDefault(_clapprZepto); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -function assign(obj, source) { - if (source) { - for (var prop in source) { - var propDescriptor = (0, _getOwnPropertyDescriptor2.default)(source, prop); - propDescriptor ? (0, _defineProperty2.default)(obj, prop, propDescriptor) : obj[prop] = source[prop]; - } - } - return obj; -} // Copyright 2014 Globo.com Player authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. -/*jshint -W079 */ - -function extend(parent, properties) { - var Surrogate = function (_parent) { - (0, _inherits3.default)(Surrogate, _parent); - - function Surrogate() { - (0, _classCallCheck3.default)(this, Surrogate); - - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - var _this = (0, _possibleConstructorReturn3.default)(this, _parent.call.apply(_parent, [this].concat(args))); - - if (properties.initialize) properties.initialize.apply(_this, args); - - return _this; - } - - return Surrogate; - }(parent); - - assign(Surrogate.prototype, properties); - return Surrogate; -} - -function formatTime(time, paddedHours) { - if (!isFinite(time)) return '--:--'; - - time = time * 1000; - time = parseInt(time / 1000); - var seconds = time % 60; - time = parseInt(time / 60); - var minutes = time % 60; - time = parseInt(time / 60); - var hours = time % 24; - var days = parseInt(time / 24); - var out = ''; - if (days && days > 0) { - out += days + ':'; - if (hours < 1) out += '00:'; - } - if (hours && hours > 0 || paddedHours) out += ('0' + hours).slice(-2) + ':'; - out += ('0' + minutes).slice(-2) + ':'; - out += ('0' + seconds).slice(-2); - return out.trim(); -} - -var Fullscreen = exports.Fullscreen = { - isFullscreen: function isFullscreen() { - return !!(document.webkitFullscreenElement || document.webkitIsFullScreen || document.mozFullScreen || document.msFullscreenElement); - }, - requestFullscreen: function requestFullscreen(el) { - if (el.requestFullscreen) el.requestFullscreen();else if (el.webkitRequestFullscreen) el.webkitRequestFullscreen();else if (el.mozRequestFullScreen) el.mozRequestFullScreen();else if (el.msRequestFullscreen) el.msRequestFullscreen();else if (el.querySelector && el.querySelector('video') && el.querySelector('video').webkitEnterFullScreen) el.querySelector('video').webkitEnterFullScreen();else if (el.webkitEnterFullScreen) el.webkitEnterFullScreen(); - }, - cancelFullscreen: function cancelFullscreen() { - var el = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : document; - - 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(); - }, - fullscreenEnabled: function fullscreenEnabled() { - return !!(document.fullscreenEnabled || document.webkitFullscreenEnabled || document.mozFullScreenEnabled || document.msFullscreenEnabled); - } -}; - -var Config = exports.Config = function () { - function Config() { - (0, _classCallCheck3.default)(this, Config); - } - - Config._defaultConfig = function _defaultConfig() { - return { - volume: { - value: 100, - parse: parseInt - } - }; - }; - - Config._defaultValueFor = function _defaultValueFor(key) { - try { - return this._defaultConfig()[key].parse(this._defaultConfig()[key].value); - } catch (e) { - return undefined; - } - }; - - Config._createKeyspace = function _createKeyspace(key) { - return 'clappr.' + document.domain + '.' + key; - }; - - Config.restore = function restore(key) { - if (_browser2.default.hasLocalstorage && localStorage[this._createKeyspace(key)]) return this._defaultConfig()[key].parse(localStorage[this._createKeyspace(key)]); - - return this._defaultValueFor(key); - }; - - Config.persist = function persist(key, value) { - if (_browser2.default.hasLocalstorage) { - try { - localStorage[this._createKeyspace(key)] = value; - return true; - } catch (e) { - return false; - } - } - }; - - return Config; -}(); - -var QueryString = exports.QueryString = function () { - function QueryString() { - (0, _classCallCheck3.default)(this, QueryString); - } - - QueryString.parse = function parse(paramsString) { - var match = void 0; - var pl = /\+/g, - // Regex for replacing addition symbol with a space - search = /([^&=]+)=?([^&]*)/g, - decode = function decode(s) { - return decodeURIComponent(s.replace(pl, ' ')); - }, - params = {}; - while (match = search.exec(paramsString)) { - // eslint-disable-line no-cond-assign - params[decode(match[1]).toLowerCase()] = decode(match[2]); - } - return params; - }; - - (0, _createClass3.default)(QueryString, null, [{ - key: 'params', - get: function get() { - var query = window.location.search.substring(1); - if (query !== this.query) { - this._urlParams = this.parse(query); - this.query = query; - } - return this._urlParams; - } - }, { - key: 'hashParams', - get: function get() { - var hash = window.location.hash.substring(1); - if (hash !== this.hash) { - this._hashParams = this.parse(hash); - this.hash = hash; - } - return this._hashParams; - } - }]); - return QueryString; -}(); - -function seekStringToSeconds() { - var paramName = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 't'; - - var seconds = 0; - var seekString = QueryString.params[paramName] || QueryString.hashParams[paramName] || ''; - var parts = seekString.match(/[0-9]+[hms]+/g) || []; - if (parts.length > 0) { - (function () { - var factor = { 'h': 3600, 'm': 60, 's': 1 }; - parts.forEach(function (el) { - if (el) { - var suffix = el[el.length - 1]; - var time = parseInt(el.slice(0, el.length - 1), 10); - seconds += time * factor[suffix]; - } - }); - })(); - } else if (seekString) { - seconds = parseInt(seekString, 10); - } - - return seconds; -} - -var idsCounter = {}; - -function uniqueId(prefix) { - idsCounter[prefix] || (idsCounter[prefix] = 0); - var id = ++idsCounter[prefix]; - return prefix + id; -} - -function isNumber(value) { - return value - parseFloat(value) + 1 >= 0; -} - -function currentScriptUrl() { - var scripts = document.getElementsByTagName('script'); - return scripts.length ? scripts[scripts.length - 1].src : ''; -} - -var requestAnimationFrame = exports.requestAnimationFrame = (window.requestAnimationFrame || window.mozRequestAnimationFrame || window.webkitRequestAnimationFrame || function (fn) { - window.setTimeout(fn, 1000 / 60); -}).bind(window); - -var cancelAnimationFrame = exports.cancelAnimationFrame = (window.cancelAnimationFrame || window.mozCancelAnimationFrame || window.webkitCancelAnimationFrame || window.clearTimeout).bind(window); - -function getBrowserLanguage() { - return window.navigator && window.navigator.language; -} - -function now() { - if (window.performance && window.performance.now) return performance.now(); - - return Date.now(); -} - -// remove the item from the array if it exists in the array -function removeArrayItem(arr, item) { - var i = arr.indexOf(item); - if (i >= 0) arr.splice(i, 1); -} - -// Simple Zepto element factory with video recycle feature. -var videoStack = []; - -var DomRecycler = exports.DomRecycler = function () { - function DomRecycler() { - (0, _classCallCheck3.default)(this, DomRecycler); - } - - DomRecycler.configure = function configure(options) { - this.options = _clapprZepto2.default.extend(this.options, options); - }; - - DomRecycler.create = function create(name) { - if (this.options.recycleVideo && name === 'video' && videoStack.length > 0) return videoStack.shift(); - - return (0, _clapprZepto2.default)('<' + name + '>'); - }; - - DomRecycler.garbage = function garbage($el) { - // Expect Zepto collection with single element (does not iterate!) - if (!this.options.recycleVideo || $el[0].tagName.toUpperCase() !== 'VIDEO') return; - $el.children().remove(); - videoStack.push($el); - }; - - return DomRecycler; -}(); - -DomRecycler.options = { recycleVideo: false }; - -exports.default = { - Config: Config, - Fullscreen: Fullscreen, - QueryString: QueryString, - DomRecycler: DomRecycler, - extend: extend, - formatTime: formatTime, - seekStringToSeconds: seekStringToSeconds, - uniqueId: uniqueId, - currentScriptUrl: currentScriptUrl, - isNumber: isNumber, - requestAnimationFrame: requestAnimationFrame, - cancelAnimationFrame: cancelAnimationFrame, - getBrowserLanguage: getBrowserLanguage, - now: now, - removeArrayItem: removeArrayItem -}; - -/***/ }), -/* 6 */ -/***/ (function(module, exports) { - -/* Zepto v1.2.0 - zepto ajax callbacks deferred event ie selector - zeptojs.com/license */ - - -var Zepto = (function() { - var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice, - document = window.document, - elementDisplay = {}, classCache = {}, - cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 }, - fragmentRE = /^\s*<(\w+|!)[^>]*>/, - singleTagRE = /^<(\w+)\s*\/?>(?:<\/\1>|)$/, - tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\w:]+)[^>]*)\/>/ig, - rootNodeRE = /^(?:body|html)$/i, - capitalRE = /([A-Z])/g, - - // special attributes that should be get/set via method calls - methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'], - - adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ], - table = document.createElement('table'), - tableRow = document.createElement('tr'), - containers = { - 'tr': document.createElement('tbody'), - 'tbody': table, 'thead': table, 'tfoot': table, - 'td': tableRow, 'th': tableRow, - '*': document.createElement('div') - }, - readyRE = /complete|loaded|interactive/, - simpleSelectorRE = /^[\w-]*$/, - class2type = {}, - toString = class2type.toString, - zepto = {}, - camelize, uniq, - tempParent = document.createElement('div'), - propMap = { - 'tabindex': 'tabIndex', - 'readonly': 'readOnly', - 'for': 'htmlFor', - 'class': 'className', - 'maxlength': 'maxLength', - 'cellspacing': 'cellSpacing', - 'cellpadding': 'cellPadding', - 'rowspan': 'rowSpan', - 'colspan': 'colSpan', - 'usemap': 'useMap', - 'frameborder': 'frameBorder', - 'contenteditable': 'contentEditable' - }, - isArray = Array.isArray || - function(object){ return object instanceof Array } - - zepto.matches = function(element, selector) { - if (!selector || !element || element.nodeType !== 1) return false - var matchesSelector = element.matches || element.webkitMatchesSelector || - element.mozMatchesSelector || element.oMatchesSelector || - element.matchesSelector - if (matchesSelector) return matchesSelector.call(element, selector) - // fall back to performing a selector: - var match, parent = element.parentNode, temp = !parent - if (temp) (parent = tempParent).appendChild(element) - match = ~zepto.qsa(parent, selector).indexOf(element) - temp && tempParent.removeChild(element) - return match - } - - function type(obj) { - return obj == null ? String(obj) : - class2type[toString.call(obj)] || "object" - } - - function isFunction(value) { return type(value) == "function" } - function isWindow(obj) { return obj != null && obj == obj.window } - function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE } - function isObject(obj) { return type(obj) == "object" } - function isPlainObject(obj) { - return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype - } - - function likeArray(obj) { - var length = !!obj && 'length' in obj && obj.length, - type = $.type(obj) - - return 'function' != type && !isWindow(obj) && ( - 'array' == type || length === 0 || - (typeof length == 'number' && length > 0 && (length - 1) in obj) - ) - } - - function compact(array) { return filter.call(array, function(item){ return item != null }) } - function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array } - camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) } - function dasherize(str) { - 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() - } - uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) } - - function classRE(name) { - return name in classCache ? - classCache[name] : (classCache[name] = new RegExp('(^|\\s)' + name + '(\\s|$)')) - } - - function maybeAddPx(name, value) { - return (typeof value == "number" && !cssNumber[dasherize(name)]) ? value + "px" : value - } - - function defaultDisplay(nodeName) { - var element, display - if (!elementDisplay[nodeName]) { - element = document.createElement(nodeName) - document.body.appendChild(element) - display = getComputedStyle(element, '').getPropertyValue("display") - element.parentNode.removeChild(element) - display == "none" && (display = "block") - elementDisplay[nodeName] = display - } - return elementDisplay[nodeName] - } - - function children(element) { - return 'children' in element ? - slice.call(element.children) : - $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node }) - } - - function Z(dom, selector) { - var i, len = dom ? dom.length : 0 - for (i = 0; i < len; i++) this[i] = dom[i] - this.length = len - this.selector = selector || '' - } - - // `$.zepto.fragment` takes a html string and an optional tag name - // to generate DOM nodes from the given html string. - // The generated DOM nodes are returned as an array. - // This function can be overridden in plugins for example to make - // it compatible with browsers that don't support the DOM fully. - zepto.fragment = function(html, name, properties) { - var dom, nodes, container - - // A special case optimization for a single tag - if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1)) - - if (!dom) { - if (html.replace) html = html.replace(tagExpanderRE, "<$1>") - if (name === undefined) name = fragmentRE.test(html) && RegExp.$1 - if (!(name in containers)) name = '*' - - container = containers[name] - container.innerHTML = '' + html - dom = $.each(slice.call(container.childNodes), function(){ - container.removeChild(this) - }) - } - - if (isPlainObject(properties)) { - nodes = $(dom) - $.each(properties, function(key, value) { - if (methodAttributes.indexOf(key) > -1) nodes[key](value) - else nodes.attr(key, value) - }) - } - - return dom - } - - // `$.zepto.Z` swaps out the prototype of the given `dom` array - // of nodes with `$.fn` and thus supplying all the Zepto functions - // to the array. This method can be overridden in plugins. - zepto.Z = function(dom, selector) { - return new Z(dom, selector) - } - - // `$.zepto.isZ` should return `true` if the given object is a Zepto - // collection. This method can be overridden in plugins. - zepto.isZ = function(object) { - return object instanceof zepto.Z - } - - // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and - // takes a CSS selector and an optional context (and handles various - // special cases). - // This method can be overridden in plugins. - zepto.init = function(selector, context) { - var dom - // If nothing given, return an empty Zepto collection - if (!selector) return zepto.Z() - // Optimize for string selectors - else if (typeof selector == 'string') { - selector = selector.trim() - // If it's a html fragment, create nodes from it - // Note: In both Chrome 21 and Firefox 15, DOM error 12 - // is thrown if the fragment doesn't begin with < - 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 - // nodes from there - else if (context !== undefined) return $(context).find(selector) - // If it's a CSS selector, use it to select nodes. - else dom = zepto.qsa(document, selector) - } - // If a function is given, call it when the DOM is ready - else if (isFunction(selector)) return $(document).ready(selector) - // If a Zepto collection is given, just return it - else if (zepto.isZ(selector)) return selector - else { - // normalize array if an array of nodes is given - if (isArray(selector)) dom = compact(selector) - // Wrap DOM nodes. - else if (isObject(selector)) - dom = [selector], selector = null - // If it's a html fragment, create nodes from it - 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 - // nodes from there - else if (context !== undefined) return $(context).find(selector) - // And last but no least, if it's a CSS selector, use it to select nodes. - else dom = zepto.qsa(document, selector) - } - // create a new Zepto collection from the nodes found - return zepto.Z(dom, selector) - } - - // `$` will be the base `Zepto` object. When calling this - // function just call `$.zepto.init, which makes the implementation - // details of selecting nodes and creating Zepto collections - // patchable in plugins. - $ = function(selector, context){ - return zepto.init(selector, context) - } - - function extend(target, source, deep) { - for (key in source) - if (deep && (isPlainObject(source[key]) || isArray(source[key]))) { - if (isPlainObject(source[key]) && !isPlainObject(target[key])) - target[key] = {} - if (isArray(source[key]) && !isArray(target[key])) - target[key] = [] - extend(target[key], source[key], deep) - } - else if (source[key] !== undefined) target[key] = source[key] - } - - // Copy all but undefined properties from one or more - // objects to the `target` object. - $.extend = function(target){ - var deep, args = slice.call(arguments, 1) - if (typeof target == 'boolean') { - deep = target - target = args.shift() - } - args.forEach(function(arg){ extend(target, arg, deep) }) - return target - } - - // `$.zepto.qsa` is Zepto's CSS selector implementation which - // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`. - // This method can be overridden in plugins. - zepto.qsa = function(element, selector){ - var found, - maybeID = selector[0] == '#', - maybeClass = !maybeID && selector[0] == '.', - nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked - isSimple = simpleSelectorRE.test(nameOnly) - return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById - ( (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 - maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class - element.getElementsByTagName(selector) : // Or a tag - element.querySelectorAll(selector) // Or it's not simple, and we need to query all - ) - } - - function filtered(nodes, selector) { - return selector == null ? $(nodes) : $(nodes).filter(selector) - } - - $.contains = document.documentElement.contains ? - function(parent, node) { - return parent !== node && parent.contains(node) - } : - function(parent, node) { - while (node && (node = node.parentNode)) - if (node === parent) return true - return false - } - - function funcArg(context, arg, idx, payload) { - return isFunction(arg) ? arg.call(context, idx, payload) : arg - } - - function setAttribute(node, name, value) { - value == null ? node.removeAttribute(name) : node.setAttribute(name, value) - } - - // access className property while respecting SVGAnimatedString - function className(node, value){ - var klass = node.className || '', - svg = klass && klass.baseVal !== undefined - - if (value === undefined) return svg ? klass.baseVal : klass - svg ? (klass.baseVal = value) : (node.className = value) - } - - // "true" => true - // "false" => false - // "null" => null - // "42" => 42 - // "42.5" => 42.5 - // "08" => "08" - // JSON => parse if valid - // String => self - function deserializeValue(value) { - try { - return value ? - value == "true" || - ( value == "false" ? false : - value == "null" ? null : - +value + "" == value ? +value : - /^[\[\{]/.test(value) ? $.parseJSON(value) : - value ) - : value - } catch(e) { - return value - } - } - - $.type = type - $.isFunction = isFunction - $.isWindow = isWindow - $.isArray = isArray - $.isPlainObject = isPlainObject - - $.isEmptyObject = function(obj) { - var name - for (name in obj) return false - return true - } - - $.isNumeric = function(val) { - var num = Number(val), type = typeof val - return val != null && type != 'boolean' && - (type != 'string' || val.length) && - !isNaN(num) && isFinite(num) || false - } - - $.inArray = function(elem, array, i){ - return emptyArray.indexOf.call(array, elem, i) - } - - $.camelCase = camelize - $.trim = function(str) { - return str == null ? "" : String.prototype.trim.call(str) - } - - // plugin compatibility - $.uuid = 0 - $.support = { } - $.expr = { } - $.noop = function() {} - - $.map = function(elements, callback){ - var value, values = [], i, key - if (likeArray(elements)) - for (i = 0; i < elements.length; i++) { - value = callback(elements[i], i) - if (value != null) values.push(value) - } - else - for (key in elements) { - value = callback(elements[key], key) - if (value != null) values.push(value) - } - return flatten(values) - } - - $.each = function(elements, callback){ - var i, key - if (likeArray(elements)) { - for (i = 0; i < elements.length; i++) - if (callback.call(elements[i], i, elements[i]) === false) return elements - } else { - for (key in elements) - if (callback.call(elements[key], key, elements[key]) === false) return elements - } - - return elements - } - - $.grep = function(elements, callback){ - return filter.call(elements, callback) - } - - if (window.JSON) $.parseJSON = JSON.parse - - // Populate the class2type map - $.each("Boolean Number String Function Array Date RegExp Object Error".split(" "), function(i, name) { - class2type[ "[object " + name + "]" ] = name.toLowerCase() - }) - - // Define methods that will be available on all - // Zepto collections - $.fn = { - constructor: zepto.Z, - length: 0, - - // Because a collection acts like an array - // copy over these useful array functions. - forEach: emptyArray.forEach, - reduce: emptyArray.reduce, - push: emptyArray.push, - sort: emptyArray.sort, - splice: emptyArray.splice, - indexOf: emptyArray.indexOf, - concat: function(){ - var i, value, args = [] - for (i = 0; i < arguments.length; i++) { - value = arguments[i] - args[i] = zepto.isZ(value) ? value.toArray() : value - } - return concat.apply(zepto.isZ(this) ? this.toArray() : this, args) - }, - - // `map` and `slice` in the jQuery API work differently - // from their array counterparts - map: function(fn){ - return $($.map(this, function(el, i){ return fn.call(el, i, el) })) - }, - slice: function(){ - return $(slice.apply(this, arguments)) - }, - - ready: function(callback){ - // need to check if document.body exists for IE as that browser reports - // document ready when it hasn't yet created the body element - if (readyRE.test(document.readyState) && document.body) callback($) - else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false) - return this - }, - get: function(idx){ - return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length] - }, - toArray: function(){ return this.get() }, - size: function(){ - return this.length - }, - remove: function(){ - return this.each(function(){ - if (this.parentNode != null) - this.parentNode.removeChild(this) - }) - }, - each: function(callback){ - emptyArray.every.call(this, function(el, idx){ - return callback.call(el, idx, el) !== false - }) - return this - }, - filter: function(selector){ - if (isFunction(selector)) return this.not(this.not(selector)) - return $(filter.call(this, function(element){ - return zepto.matches(element, selector) - })) - }, - add: function(selector,context){ - return $(uniq(this.concat($(selector,context)))) - }, - is: function(selector){ - return this.length > 0 && zepto.matches(this[0], selector) - }, - not: function(selector){ - var nodes=[] - if (isFunction(selector) && selector.call !== undefined) - this.each(function(idx){ - if (!selector.call(this,idx)) nodes.push(this) - }) - else { - var excludes = typeof selector == 'string' ? this.filter(selector) : - (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector) - this.forEach(function(el){ - if (excludes.indexOf(el) < 0) nodes.push(el) - }) - } - return $(nodes) - }, - has: function(selector){ - return this.filter(function(){ - return isObject(selector) ? - $.contains(this, selector) : - $(this).find(selector).size() - }) - }, - eq: function(idx){ - return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1) - }, - first: function(){ - var el = this[0] - return el && !isObject(el) ? el : $(el) - }, - last: function(){ - var el = this[this.length - 1] - return el && !isObject(el) ? el : $(el) - }, - find: function(selector){ - var result, $this = this - if (!selector) result = $() - else if (typeof selector == 'object') - result = $(selector).filter(function(){ - var node = this - return emptyArray.some.call($this, function(parent){ - return $.contains(parent, node) - }) - }) - else if (this.length == 1) result = $(zepto.qsa(this[0], selector)) - else result = this.map(function(){ return zepto.qsa(this, selector) }) - return result - }, - closest: function(selector, context){ - var nodes = [], collection = typeof selector == 'object' && $(selector) - this.each(function(_, node){ - while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector))) - node = node !== context && !isDocument(node) && node.parentNode - if (node && nodes.indexOf(node) < 0) nodes.push(node) - }) - return $(nodes) - }, - parents: function(selector){ - var ancestors = [], nodes = this - while (nodes.length > 0) - nodes = $.map(nodes, function(node){ - if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) { - ancestors.push(node) - return node - } - }) - return filtered(ancestors, selector) - }, - parent: function(selector){ - return filtered(uniq(this.pluck('parentNode')), selector) - }, - children: function(selector){ - return filtered(this.map(function(){ return children(this) }), selector) - }, - contents: function() { - return this.map(function() { return this.contentDocument || slice.call(this.childNodes) }) - }, - siblings: function(selector){ - return filtered(this.map(function(i, el){ - return filter.call(children(el.parentNode), function(child){ return child!==el }) - }), selector) - }, - empty: function(){ - return this.each(function(){ this.innerHTML = '' }) - }, - // `pluck` is borrowed from Prototype.js - pluck: function(property){ - return $.map(this, function(el){ return el[property] }) - }, - show: function(){ - return this.each(function(){ - this.style.display == "none" && (this.style.display = '') - if (getComputedStyle(this, '').getPropertyValue("display") == "none") - this.style.display = defaultDisplay(this.nodeName) - }) - }, - replaceWith: function(newContent){ - return this.before(newContent).remove() - }, - wrap: function(structure){ - var func = isFunction(structure) - if (this[0] && !func) - var dom = $(structure).get(0), - clone = dom.parentNode || this.length > 1 - - return this.each(function(index){ - $(this).wrapAll( - func ? structure.call(this, index) : - clone ? dom.cloneNode(true) : dom - ) - }) - }, - wrapAll: function(structure){ - if (this[0]) { - $(this[0]).before(structure = $(structure)) - var children - // drill down to the inmost element - while ((children = structure.children()).length) structure = children.first() - $(structure).append(this) - } - return this - }, - wrapInner: function(structure){ - var func = isFunction(structure) - return this.each(function(index){ - var self = $(this), contents = self.contents(), - dom = func ? structure.call(this, index) : structure - contents.length ? contents.wrapAll(dom) : self.append(dom) - }) - }, - unwrap: function(){ - this.parent().each(function(){ - $(this).replaceWith($(this).children()) - }) - return this - }, - clone: function(){ - return this.map(function(){ return this.cloneNode(true) }) - }, - hide: function(){ - return this.css("display", "none") - }, - toggle: function(setting){ - return this.each(function(){ - var el = $(this) - ;(setting === undefined ? el.css("display") == "none" : setting) ? el.show() : el.hide() - }) - }, - prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') }, - next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') }, - html: function(html){ - return 0 in arguments ? - this.each(function(idx){ - var originHtml = this.innerHTML - $(this).empty().append( funcArg(this, html, idx, originHtml) ) - }) : - (0 in this ? this[0].innerHTML : null) - }, - text: function(text){ - return 0 in arguments ? - this.each(function(idx){ - var newText = funcArg(this, text, idx, this.textContent) - this.textContent = newText == null ? '' : ''+newText - }) : - (0 in this ? this.pluck('textContent').join("") : null) - }, - attr: function(name, value){ - var result - return (typeof name == 'string' && !(1 in arguments)) ? - (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) : - this.each(function(idx){ - if (this.nodeType !== 1) return - if (isObject(name)) for (key in name) setAttribute(this, key, name[key]) - else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name))) - }) - }, - removeAttr: function(name){ - return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){ - setAttribute(this, attribute) - }, this)}) - }, - prop: function(name, value){ - name = propMap[name] || name - return (1 in arguments) ? - this.each(function(idx){ - this[name] = funcArg(this, value, idx, this[name]) - }) : - (this[0] && this[0][name]) - }, - removeProp: function(name){ - name = propMap[name] || name - return this.each(function(){ delete this[name] }) - }, - data: function(name, value){ - var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase() - - var data = (1 in arguments) ? - this.attr(attrName, value) : - this.attr(attrName) - - return data !== null ? deserializeValue(data) : undefined - }, - val: function(value){ - if (0 in arguments) { - if (value == null) value = "" - return this.each(function(idx){ - this.value = funcArg(this, value, idx, this.value) - }) - } else { - return this[0] && (this[0].multiple ? - $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') : - this[0].value) - } - }, - offset: function(coordinates){ - if (coordinates) return this.each(function(index){ - var $this = $(this), - coords = funcArg(this, coordinates, index, $this.offset()), - parentOffset = $this.offsetParent().offset(), - props = { - top: coords.top - parentOffset.top, - left: coords.left - parentOffset.left - } - - if ($this.css('position') == 'static') props['position'] = 'relative' - $this.css(props) - }) - if (!this.length) return null - if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0])) - return {top: 0, left: 0} - var obj = this[0].getBoundingClientRect() - return { - left: obj.left + window.pageXOffset, - top: obj.top + window.pageYOffset, - width: Math.round(obj.width), - height: Math.round(obj.height) - } - }, - css: function(property, value){ - if (arguments.length < 2) { - var element = this[0] - if (typeof property == 'string') { - if (!element) return - return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property) - } else if (isArray(property)) { - if (!element) return - var props = {} - var computedStyle = getComputedStyle(element, '') - $.each(property, function(_, prop){ - props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop)) - }) - return props - } - } - - var css = '' - if (type(property) == 'string') { - if (!value && value !== 0) - this.each(function(){ this.style.removeProperty(dasherize(property)) }) - else - css = dasherize(property) + ":" + maybeAddPx(property, value) - } else { - for (key in property) - if (!property[key] && property[key] !== 0) - this.each(function(){ this.style.removeProperty(dasherize(key)) }) - else - css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';' - } - - return this.each(function(){ this.style.cssText += ';' + css }) - }, - index: function(element){ - return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0]) - }, - hasClass: function(name){ - if (!name) return false - return emptyArray.some.call(this, function(el){ - return this.test(className(el)) - }, classRE(name)) - }, - addClass: function(name){ - if (!name) return this - return this.each(function(idx){ - if (!('className' in this)) return - classList = [] - var cls = className(this), newName = funcArg(this, name, idx, cls) - newName.split(/\s+/g).forEach(function(klass){ - if (!$(this).hasClass(klass)) classList.push(klass) - }, this) - classList.length && className(this, cls + (cls ? " " : "") + classList.join(" ")) - }) - }, - removeClass: function(name){ - return this.each(function(idx){ - if (!('className' in this)) return - if (name === undefined) return className(this, '') - classList = className(this) - funcArg(this, name, idx, classList).split(/\s+/g).forEach(function(klass){ - classList = classList.replace(classRE(klass), " ") - }) - className(this, classList.trim()) - }) - }, - toggleClass: function(name, when){ - if (!name) return this - return this.each(function(idx){ - var $this = $(this), names = funcArg(this, name, idx, className(this)) - names.split(/\s+/g).forEach(function(klass){ - (when === undefined ? !$this.hasClass(klass) : when) ? - $this.addClass(klass) : $this.removeClass(klass) - }) - }) - }, - scrollTop: function(value){ - if (!this.length) return - var hasScrollTop = 'scrollTop' in this[0] - if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset - return this.each(hasScrollTop ? - function(){ this.scrollTop = value } : - function(){ this.scrollTo(this.scrollX, value) }) - }, - scrollLeft: function(value){ - if (!this.length) return - var hasScrollLeft = 'scrollLeft' in this[0] - if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset - return this.each(hasScrollLeft ? - function(){ this.scrollLeft = value } : - function(){ this.scrollTo(value, this.scrollY) }) - }, - position: function() { - if (!this.length) return - - var elem = this[0], - // Get *real* offsetParent - offsetParent = this.offsetParent(), - // Get correct offsets - offset = this.offset(), - parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset() - - // Subtract element margins - // note: when an element has margin: auto the offsetLeft and marginLeft - // are the same in Safari causing offset.left to incorrectly be 0 - offset.top -= parseFloat( $(elem).css('margin-top') ) || 0 - offset.left -= parseFloat( $(elem).css('margin-left') ) || 0 - - // Add offsetParent borders - parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0 - parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0 - - // Subtract the two offsets - return { - top: offset.top - parentOffset.top, - left: offset.left - parentOffset.left - } - }, - offsetParent: function() { - return this.map(function(){ - var parent = this.offsetParent || document.body - while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css("position") == "static") - parent = parent.offsetParent - return parent - }) - } - } - - // for now - $.fn.detach = $.fn.remove - - // Generate the `width` and `height` functions - ;['width', 'height'].forEach(function(dimension){ - var dimensionProperty = - dimension.replace(/./, function(m){ return m[0].toUpperCase() }) - - $.fn[dimension] = function(value){ - var offset, el = this[0] - if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] : - isDocument(el) ? el.documentElement['scroll' + dimensionProperty] : - (offset = this.offset()) && offset[dimension] - else return this.each(function(idx){ - el = $(this) - el.css(dimension, funcArg(this, value, idx, el[dimension]())) - }) - } - }) - - function traverseNode(node, fun) { - fun(node) - for (var i = 0, len = node.childNodes.length; i < len; i++) - traverseNode(node.childNodes[i], fun) - } - - // Generate the `after`, `prepend`, `before`, `append`, - // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods. - adjacencyOperators.forEach(function(operator, operatorIndex) { - var inside = operatorIndex % 2 //=> prepend, append - - $.fn[operator] = function(){ - // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings - var argType, nodes = $.map(arguments, function(arg) { - var arr = [] - argType = type(arg) - if (argType == "array") { - arg.forEach(function(el) { - if (el.nodeType !== undefined) return arr.push(el) - else if ($.zepto.isZ(el)) return arr = arr.concat(el.get()) - arr = arr.concat(zepto.fragment(el)) - }) - return arr - } - return argType == "object" || arg == null ? - arg : zepto.fragment(arg) - }), - parent, copyByClone = this.length > 1 - if (nodes.length < 1) return this - - return this.each(function(_, target){ - parent = inside ? target : target.parentNode - - // convert all methods to a "before" operation - target = operatorIndex == 0 ? target.nextSibling : - operatorIndex == 1 ? target.firstChild : - operatorIndex == 2 ? target : - null - - var parentInDocument = $.contains(document.documentElement, parent) - - nodes.forEach(function(node){ - if (copyByClone) node = node.cloneNode(true) - else if (!parent) return $(node).remove() - - parent.insertBefore(node, target) - if (parentInDocument) traverseNode(node, function(el){ - if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' && - (!el.type || el.type === 'text/javascript') && !el.src){ - var target = el.ownerDocument ? el.ownerDocument.defaultView : window - target['eval'].call(target, el.innerHTML) - } - }) - }) - }) - } - - // after => insertAfter - // prepend => prependTo - // before => insertBefore - // append => appendTo - $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){ - $(html)[operator](this) - return this - } - }) - - zepto.Z.prototype = Z.prototype = $.fn - - // Export internal API functions in the `$.zepto` namespace - zepto.uniq = uniq - zepto.deserializeValue = deserializeValue - $.zepto = zepto - - return $ -})() - -window.Zepto = Zepto -window.$ === undefined && (window.$ = Zepto) - -;(function($){ - var jsonpID = +new Date(), - document = window.document, - key, - name, - rscript = /)<[^<]*)*<\/script>/gi, - scriptTypeRE = /^(?:text|application)\/javascript/i, - xmlTypeRE = /^(?:text|application)\/xml/i, - jsonType = 'application/json', - htmlType = 'text/html', - blankRE = /^\s*$/, - originAnchor = document.createElement('a') - - originAnchor.href = window.location.href - - // trigger a custom event and return false if it was cancelled - function triggerAndReturn(context, eventName, data) { - var event = $.Event(eventName) - $(context).trigger(event, data) - return !event.isDefaultPrevented() - } - - // trigger an Ajax "global" event - function triggerGlobal(settings, context, eventName, data) { - if (settings.global) return triggerAndReturn(context || document, eventName, data) - } - - // Number of active Ajax requests - $.active = 0 - - function ajaxStart(settings) { - if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart') - } - function ajaxStop(settings) { - if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop') - } - - // triggers an extra global event "ajaxBeforeSend" that's like "ajaxSend" but cancelable - function ajaxBeforeSend(xhr, settings) { - var context = settings.context - if (settings.beforeSend.call(context, xhr, settings) === false || - triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false) - return false - - triggerGlobal(settings, context, 'ajaxSend', [xhr, settings]) - } - function ajaxSuccess(data, xhr, settings, deferred) { - var context = settings.context, status = 'success' - settings.success.call(context, data, status, xhr) - if (deferred) deferred.resolveWith(context, [data, status, xhr]) - triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data]) - ajaxComplete(status, xhr, settings) - } - // type: "timeout", "error", "abort", "parsererror" - function ajaxError(error, type, xhr, settings, deferred) { - var context = settings.context - settings.error.call(context, xhr, type, error) - if (deferred) deferred.rejectWith(context, [xhr, type, error]) - triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type]) - ajaxComplete(type, xhr, settings) - } - // status: "success", "notmodified", "error", "timeout", "abort", "parsererror" - function ajaxComplete(status, xhr, settings) { - var context = settings.context - settings.complete.call(context, xhr, status) - triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings]) - ajaxStop(settings) - } - - function ajaxDataFilter(data, type, settings) { - if (settings.dataFilter == empty) return data - var context = settings.context - return settings.dataFilter.call(context, data, type) - } - - // Empty function, used as default callback - function empty() {} - - $.ajaxJSONP = function(options, deferred){ - if (!('type' in options)) return $.ajax(options) - - var _callbackName = options.jsonpCallback, - callbackName = ($.isFunction(_callbackName) ? - _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)), - script = document.createElement('script'), - originalCallback = window[callbackName], - responseData, - abort = function(errorType) { - $(script).triggerHandler('error', errorType || 'abort') - }, - xhr = { abort: abort }, abortTimeout - - if (deferred) deferred.promise(xhr) - - $(script).on('load error', function(e, errorType){ - clearTimeout(abortTimeout) - $(script).off().remove() - - if (e.type == 'error' || !responseData) { - ajaxError(null, errorType || 'error', xhr, options, deferred) - } else { - ajaxSuccess(responseData[0], xhr, options, deferred) - } - - window[callbackName] = originalCallback - if (responseData && $.isFunction(originalCallback)) - originalCallback(responseData[0]) - - originalCallback = responseData = undefined - }) - - if (ajaxBeforeSend(xhr, options) === false) { - abort('abort') - return xhr - } - - window[callbackName] = function(){ - responseData = arguments - } - - script.src = options.url.replace(/\?(.+)=\?/, '?$1=' + callbackName) - document.head.appendChild(script) - - if (options.timeout > 0) abortTimeout = setTimeout(function(){ - abort('timeout') - }, options.timeout) - - return xhr - } - - $.ajaxSettings = { - // Default type of request - type: 'GET', - // Callback that is executed before request - beforeSend: empty, - // Callback that is executed if the request succeeds - success: empty, - // Callback that is executed the the server drops error - error: empty, - // Callback that is executed on request complete (both: error and success) - complete: empty, - // The context for the callbacks - context: null, - // Whether to trigger "global" Ajax events - global: true, - // Transport - xhr: function () { - return new window.XMLHttpRequest() - }, - // MIME types mapping - // IIS returns Javascript as "application/x-javascript" - accepts: { - script: 'text/javascript, application/javascript, application/x-javascript', - json: jsonType, - xml: 'application/xml, text/xml', - html: htmlType, - text: 'text/plain' - }, - // Whether the request is to another domain - crossDomain: false, - // Default timeout - timeout: 0, - // Whether data should be serialized to string - processData: true, - // Whether the browser should be allowed to cache GET responses - cache: true, - //Used to handle the raw response data of XMLHttpRequest. - //This is a pre-filtering function to sanitize the response. - //The sanitized response should be returned - dataFilter: empty - } - - function mimeToDataType(mime) { - if (mime) mime = mime.split(';', 2)[0] - return mime && ( mime == htmlType ? 'html' : - mime == jsonType ? 'json' : - scriptTypeRE.test(mime) ? 'script' : - xmlTypeRE.test(mime) && 'xml' ) || 'text' - } - - function appendQuery(url, query) { - if (query == '') return url - return (url + '&' + query).replace(/[&?]{1,2}/, '?') - } - - // serialize payload and append it to the URL for GET requests - function serializeData(options) { - if (options.processData && options.data && $.type(options.data) != "string") - options.data = $.param(options.data, options.traditional) - if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType)) - options.url = appendQuery(options.url, options.data), options.data = undefined - } - - $.ajax = function(options){ - var settings = $.extend({}, options || {}), - deferred = $.Deferred && $.Deferred(), - urlAnchor, hashIndex - for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key] - - ajaxStart(settings) - - if (!settings.crossDomain) { - urlAnchor = document.createElement('a') - urlAnchor.href = settings.url - // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049 - urlAnchor.href = urlAnchor.href - settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host) - } - - if (!settings.url) settings.url = window.location.toString() - if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex) - serializeData(settings) - - var dataType = settings.dataType, hasPlaceholder = /\?.+=\?/.test(settings.url) - if (hasPlaceholder) dataType = 'jsonp' - - if (settings.cache === false || ( - (!options || options.cache !== true) && - ('script' == dataType || 'jsonp' == dataType) - )) - settings.url = appendQuery(settings.url, '_=' + Date.now()) - - if ('jsonp' == dataType) { - if (!hasPlaceholder) - settings.url = appendQuery(settings.url, - settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?') - return $.ajaxJSONP(settings, deferred) - } - - var mime = settings.accepts[dataType], - headers = { }, - setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] }, - protocol = /^([\w-]+:)\/\//.test(settings.url) ? RegExp.$1 : window.location.protocol, - xhr = settings.xhr(), - nativeSetHeader = xhr.setRequestHeader, - abortTimeout - - if (deferred) deferred.promise(xhr) - - if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest') - setHeader('Accept', mime || '*/*') - if (mime = settings.mimeType || mime) { - if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0] - xhr.overrideMimeType && xhr.overrideMimeType(mime) - } - if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET')) - setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded') - - if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name]) - xhr.setRequestHeader = setHeader - - xhr.onreadystatechange = function(){ - if (xhr.readyState == 4) { - xhr.onreadystatechange = empty - clearTimeout(abortTimeout) - var result, error = false - if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) { - dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type')) - - if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob') - result = xhr.response - else { - result = xhr.responseText - - try { - // http://perfectionkills.com/global-eval-what-are-the-options/ - // sanitize response accordingly if data filter callback provided - result = ajaxDataFilter(result, dataType, settings) - if (dataType == 'script') (1,eval)(result) - else if (dataType == 'xml') result = xhr.responseXML - else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result) - } catch (e) { error = e } - - if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred) - } - - ajaxSuccess(result, xhr, settings, deferred) - } else { - ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred) - } - } - } - - if (ajaxBeforeSend(xhr, settings) === false) { - xhr.abort() - ajaxError(null, 'abort', xhr, settings, deferred) - return xhr - } - - var async = 'async' in settings ? settings.async : true - xhr.open(settings.type, settings.url, async, settings.username, settings.password) - - if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name] - - for (name in headers) nativeSetHeader.apply(xhr, headers[name]) - - if (settings.timeout > 0) abortTimeout = setTimeout(function(){ - xhr.onreadystatechange = empty - xhr.abort() - ajaxError(null, 'timeout', xhr, settings, deferred) - }, settings.timeout) - - // avoid sending empty string (#319) - xhr.send(settings.data ? settings.data : null) - return xhr - } - - // handle optional data/success arguments - function parseArguments(url, data, success, dataType) { - if ($.isFunction(data)) dataType = success, success = data, data = undefined - if (!$.isFunction(success)) dataType = success, success = undefined - return { - url: url - , data: data - , success: success - , dataType: dataType - } - } - - $.get = function(/* url, data, success, dataType */){ - return $.ajax(parseArguments.apply(null, arguments)) - } - - $.post = function(/* url, data, success, dataType */){ - var options = parseArguments.apply(null, arguments) - options.type = 'POST' - return $.ajax(options) - } - - $.getJSON = function(/* url, data, success */){ - var options = parseArguments.apply(null, arguments) - options.dataType = 'json' - return $.ajax(options) - } - - $.fn.load = function(url, data, success){ - if (!this.length) return this - var self = this, parts = url.split(/\s/), selector, - options = parseArguments(url, data, success), - callback = options.success - if (parts.length > 1) options.url = parts[0], selector = parts[1] - options.success = function(response){ - self.html(selector ? - $('
').html(response.replace(rscript, "")).find(selector) - : response) - callback && callback.apply(self, arguments) - } - $.ajax(options) - return this - } - - var escape = encodeURIComponent - - function serialize(params, obj, traditional, scope){ - var type, array = $.isArray(obj), hash = $.isPlainObject(obj) - $.each(obj, function(key, value) { - type = $.type(value) - if (scope) key = traditional ? scope : - scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']' - // handle data in serializeArray() format - if (!scope && array) params.add(value.name, value.value) - // recurse into nested objects - else if (type == "array" || (!traditional && type == "object")) - serialize(params, value, traditional, key) - else params.add(key, value) - }) - } - - $.param = function(obj, traditional){ - var params = [] - params.add = function(key, value) { - if ($.isFunction(value)) value = value() - if (value == null) value = "" - this.push(escape(key) + '=' + escape(value)) - } - serialize(params, obj, traditional) - return params.join('&').replace(/%20/g, '+') - } -})(Zepto) - -;(function($){ - // Create a collection of callbacks to be fired in a sequence, with configurable behaviour - // Option flags: - // - once: Callbacks fired at most one time. - // - memory: Remember the most recent context and arguments - // - stopOnFalse: Cease iterating over callback list - // - unique: Permit adding at most one instance of the same callback - $.Callbacks = function(options) { - options = $.extend({}, options) - - var memory, // Last fire value (for non-forgettable lists) - fired, // Flag to know if list was already fired - firing, // Flag to know if list is currently firing - firingStart, // First callback to fire (used internally by add and fireWith) - firingLength, // End of the loop when firing - firingIndex, // Index of currently firing callback (modified by remove if needed) - list = [], // Actual callback list - stack = !options.once && [], // Stack of fire calls for repeatable lists - fire = function(data) { - memory = options.memory && data - fired = true - firingIndex = firingStart || 0 - firingStart = 0 - firingLength = list.length - firing = true - for ( ; list && firingIndex < firingLength ; ++firingIndex ) { - if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) { - memory = false - break - } - } - firing = false - if (list) { - if (stack) stack.length && fire(stack.shift()) - else if (memory) list.length = 0 - else Callbacks.disable() - } - }, - - Callbacks = { - add: function() { - if (list) { - var start = list.length, - add = function(args) { - $.each(args, function(_, arg){ - if (typeof arg === "function") { - if (!options.unique || !Callbacks.has(arg)) list.push(arg) - } - else if (arg && arg.length && typeof arg !== 'string') add(arg) - }) - } - add(arguments) - if (firing) firingLength = list.length - else if (memory) { - firingStart = start - fire(memory) - } - } - return this - }, - remove: function() { - if (list) { - $.each(arguments, function(_, arg){ - var index - while ((index = $.inArray(arg, list, index)) > -1) { - list.splice(index, 1) - // Handle firing indexes - if (firing) { - if (index <= firingLength) --firingLength - if (index <= firingIndex) --firingIndex - } - } - }) - } - return this - }, - has: function(fn) { - return !!(list && (fn ? $.inArray(fn, list) > -1 : list.length)) - }, - empty: function() { - firingLength = list.length = 0 - return this - }, - disable: function() { - list = stack = memory = undefined - return this - }, - disabled: function() { - return !list - }, - lock: function() { - stack = undefined - if (!memory) Callbacks.disable() - return this - }, - locked: function() { - return !stack - }, - fireWith: function(context, args) { - if (list && (!fired || stack)) { - args = args || [] - args = [context, args.slice ? args.slice() : args] - if (firing) stack.push(args) - else fire(args) - } - return this - }, - fire: function() { - return Callbacks.fireWith(this, arguments) - }, - fired: function() { - return !!fired - } - } - - return Callbacks - } -})(Zepto) - -;(function($){ - var slice = Array.prototype.slice - - function Deferred(func) { - var tuples = [ - // action, add listener, listener list, final state - [ "resolve", "done", $.Callbacks({once:1, memory:1}), "resolved" ], - [ "reject", "fail", $.Callbacks({once:1, memory:1}), "rejected" ], - [ "notify", "progress", $.Callbacks({memory:1}) ] - ], - state = "pending", - promise = { - state: function() { - return state - }, - always: function() { - deferred.done(arguments).fail(arguments) - return this - }, - then: function(/* fnDone [, fnFailed [, fnProgress]] */) { - var fns = arguments - return Deferred(function(defer){ - $.each(tuples, function(i, tuple){ - var fn = $.isFunction(fns[i]) && fns[i] - deferred[tuple[1]](function(){ - var returned = fn && fn.apply(this, arguments) - if (returned && $.isFunction(returned.promise)) { - returned.promise() - .done(defer.resolve) - .fail(defer.reject) - .progress(defer.notify) - } else { - var context = this === promise ? defer.promise() : this, - values = fn ? [returned] : arguments - defer[tuple[0] + "With"](context, values) - } - }) - }) - fns = null - }).promise() - }, - - promise: function(obj) { - return obj != null ? $.extend( obj, promise ) : promise - } - }, - deferred = {} - - $.each(tuples, function(i, tuple){ - var list = tuple[2], - stateString = tuple[3] - - promise[tuple[1]] = list.add - - if (stateString) { - list.add(function(){ - state = stateString - }, tuples[i^1][2].disable, tuples[2][2].lock) - } - - deferred[tuple[0]] = function(){ - deferred[tuple[0] + "With"](this === deferred ? promise : this, arguments) - return this - } - deferred[tuple[0] + "With"] = list.fireWith - }) - - promise.promise(deferred) - if (func) func.call(deferred, deferred) - return deferred - } - - $.when = function(sub) { - var resolveValues = slice.call(arguments), - len = resolveValues.length, - i = 0, - remain = len !== 1 || (sub && $.isFunction(sub.promise)) ? len : 0, - deferred = remain === 1 ? sub : Deferred(), - progressValues, progressContexts, resolveContexts, - updateFn = function(i, ctx, val){ - return function(value){ - ctx[i] = this - val[i] = arguments.length > 1 ? slice.call(arguments) : value - if (val === progressValues) { - deferred.notifyWith(ctx, val) - } else if (!(--remain)) { - deferred.resolveWith(ctx, val) - } - } - } - - if (len > 1) { - progressValues = new Array(len) - progressContexts = new Array(len) - resolveContexts = new Array(len) - for ( ; i < len; ++i ) { - if (resolveValues[i] && $.isFunction(resolveValues[i].promise)) { - resolveValues[i].promise() - .done(updateFn(i, resolveContexts, resolveValues)) - .fail(deferred.reject) - .progress(updateFn(i, progressContexts, progressValues)) - } else { - --remain - } - } - } - if (!remain) deferred.resolveWith(resolveContexts, resolveValues) - return deferred.promise() - } - - $.Deferred = Deferred -})(Zepto) - -;(function($){ - var _zid = 1, undefined, - slice = Array.prototype.slice, - isFunction = $.isFunction, - isString = function(obj){ return typeof obj == 'string' }, - handlers = {}, - specialEvents={}, - focusinSupported = 'onfocusin' in window, - focus = { focus: 'focusin', blur: 'focusout' }, - hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' } - - specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents' - - function zid(element) { - return element._zid || (element._zid = _zid++) - } - function findHandlers(element, event, fn, selector) { - event = parse(event) - if (event.ns) var matcher = matcherFor(event.ns) - return (handlers[zid(element)] || []).filter(function(handler) { - return handler - && (!event.e || handler.e == event.e) - && (!event.ns || matcher.test(handler.ns)) - && (!fn || zid(handler.fn) === zid(fn)) - && (!selector || handler.sel == selector) - }) - } - function parse(event) { - var parts = ('' + event).split('.') - return {e: parts[0], ns: parts.slice(1).sort().join(' ')} - } - function matcherFor(ns) { - return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)') - } - - function eventCapture(handler, captureSetting) { - return handler.del && - (!focusinSupported && (handler.e in focus)) || - !!captureSetting - } - - function realEvent(type) { - return hover[type] || (focusinSupported && focus[type]) || type - } - - function add(element, events, fn, data, selector, delegator, capture){ - var id = zid(element), set = (handlers[id] || (handlers[id] = [])) - events.split(/\s/).forEach(function(event){ - if (event == 'ready') return $(document).ready(fn) - var handler = parse(event) - handler.fn = fn - handler.sel = selector - // emulate mouseenter, mouseleave - if (handler.e in hover) fn = function(e){ - var related = e.relatedTarget - if (!related || (related !== this && !$.contains(this, related))) - return handler.fn.apply(this, arguments) - } - handler.del = delegator - var callback = delegator || fn - handler.proxy = function(e){ - e = compatible(e) - if (e.isImmediatePropagationStopped()) return - e.data = data - var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args)) - if (result === false) e.preventDefault(), e.stopPropagation() - return result - } - handler.i = set.length - set.push(handler) - if ('addEventListener' in element) - element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) - }) - } - function remove(element, events, fn, selector, capture){ - var id = zid(element) - ;(events || '').split(/\s/).forEach(function(event){ - findHandlers(element, event, fn, selector).forEach(function(handler){ - delete handlers[id][handler.i] - if ('removeEventListener' in element) - element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture)) - }) - }) - } - - $.event = { add: add, remove: remove } - - $.proxy = function(fn, context) { - var args = (2 in arguments) && slice.call(arguments, 2) - if (isFunction(fn)) { - var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) } - proxyFn._zid = zid(fn) - return proxyFn - } else if (isString(context)) { - if (args) { - args.unshift(fn[context], fn) - return $.proxy.apply(null, args) - } else { - return $.proxy(fn[context], fn) - } - } else { - throw new TypeError("expected function") - } - } - - $.fn.bind = function(event, data, callback){ - return this.on(event, data, callback) - } - $.fn.unbind = function(event, callback){ - return this.off(event, callback) - } - $.fn.one = function(event, selector, data, callback){ - return this.on(event, selector, data, callback, 1) - } - - var returnTrue = function(){return true}, - returnFalse = function(){return false}, - ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/, - eventMethods = { - preventDefault: 'isDefaultPrevented', - stopImmediatePropagation: 'isImmediatePropagationStopped', - stopPropagation: 'isPropagationStopped' - } - - function compatible(event, source) { - if (source || !event.isDefaultPrevented) { - source || (source = event) - - $.each(eventMethods, function(name, predicate) { - var sourceMethod = source[name] - event[name] = function(){ - this[predicate] = returnTrue - return sourceMethod && sourceMethod.apply(source, arguments) - } - event[predicate] = returnFalse - }) - - event.timeStamp || (event.timeStamp = Date.now()) - - if (source.defaultPrevented !== undefined ? source.defaultPrevented : - 'returnValue' in source ? source.returnValue === false : - source.getPreventDefault && source.getPreventDefault()) - event.isDefaultPrevented = returnTrue - } - return event - } - - function createProxy(event) { - var key, proxy = { originalEvent: event } - for (key in event) - if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key] - - return compatible(proxy, event) - } - - $.fn.delegate = function(selector, event, callback){ - return this.on(event, selector, callback) - } - $.fn.undelegate = function(selector, event, callback){ - return this.off(event, selector, callback) - } - - $.fn.live = function(event, callback){ - $(document.body).delegate(this.selector, event, callback) - return this - } - $.fn.die = function(event, callback){ - $(document.body).undelegate(this.selector, event, callback) - return this - } - - $.fn.on = function(event, selector, data, callback, one){ - var autoRemove, delegator, $this = this - if (event && !isString(event)) { - $.each(event, function(type, fn){ - $this.on(type, selector, data, fn, one) - }) - return $this - } - - if (!isString(selector) && !isFunction(callback) && callback !== false) - callback = data, data = selector, selector = undefined - if (callback === undefined || data === false) - callback = data, data = undefined - - if (callback === false) callback = returnFalse - - return $this.each(function(_, element){ - if (one) autoRemove = function(e){ - remove(element, e.type, callback) - return callback.apply(this, arguments) - } - - if (selector) delegator = function(e){ - var evt, match = $(e.target).closest(selector, element).get(0) - if (match && match !== element) { - evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element}) - return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1))) - } - } - - add(element, event, callback, data, selector, delegator || autoRemove) - }) - } - $.fn.off = function(event, selector, callback){ - var $this = this - if (event && !isString(event)) { - $.each(event, function(type, fn){ - $this.off(type, selector, fn) - }) - return $this - } - - if (!isString(selector) && !isFunction(callback) && callback !== false) - callback = selector, selector = undefined - - if (callback === false) callback = returnFalse - - return $this.each(function(){ - remove(this, event, callback, selector) - }) - } - - $.fn.trigger = function(event, args){ - event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event) - event._args = args - return this.each(function(){ - // handle focus(), blur() by calling them directly - if (event.type in focus && typeof this[event.type] == "function") this[event.type]() - // items in the collection might not be DOM elements - else if ('dispatchEvent' in this) this.dispatchEvent(event) - else $(this).triggerHandler(event, args) - }) - } - - // triggers event handlers on current element just as if an event occurred, - // doesn't trigger an actual event, doesn't bubble - $.fn.triggerHandler = function(event, args){ - var e, result - this.each(function(i, element){ - e = createProxy(isString(event) ? $.Event(event) : event) - e._args = args - e.target = element - $.each(findHandlers(element, event.type || event), function(i, handler){ - result = handler.proxy(e) - if (e.isImmediatePropagationStopped()) return false - }) - }) - return result - } - - // shortcut methods for `.bind(event, fn)` for each event type - ;('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) { - $.fn[event] = function(callback) { - return (0 in arguments) ? - this.bind(event, callback) : - this.trigger(event) - } - }) - - $.Event = function(type, props) { - if (!isString(type)) props = type, type = props.type - var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true - if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name]) - event.initEvent(type, bubbles, true) - return compatible(event) - } - -})(Zepto) - -;(function(){ - // getComputedStyle shouldn't freak out when called - // without a valid element as argument - try { - getComputedStyle(undefined) - } catch(e) { - var nativeGetComputedStyle = getComputedStyle - window.getComputedStyle = function(element, pseudoElement){ - try { - return nativeGetComputedStyle(element, pseudoElement) - } catch(e) { - return null - } - } - } -})() - -;(function($){ - var zepto = $.zepto, oldQsa = zepto.qsa, oldMatches = zepto.matches - - function visible(elem){ - elem = $(elem) - return !!(elem.width() || elem.height()) && elem.css("display") !== "none" - } - - // Implements a subset from: - // http://api.jquery.com/category/selectors/jquery-selector-extensions/ - // - // Each filter function receives the current index, all nodes in the - // considered set, and a value if there were parentheses. The value - // of `this` is the node currently being considered. The function returns the - // resulting node(s), null, or undefined. - // - // Complex selectors are not supported: - // li:has(label:contains("foo")) + li:has(label:contains("bar")) - // ul.inner:first > li - var filters = $.expr[':'] = { - visible: function(){ if (visible(this)) return this }, - hidden: function(){ if (!visible(this)) return this }, - selected: function(){ if (this.selected) return this }, - checked: function(){ if (this.checked) return this }, - parent: function(){ return this.parentNode }, - first: function(idx){ if (idx === 0) return this }, - last: function(idx, nodes){ if (idx === nodes.length - 1) return this }, - eq: function(idx, _, value){ if (idx === value) return this }, - contains: function(idx, _, text){ if ($(this).text().indexOf(text) > -1) return this }, - has: function(idx, _, sel){ if (zepto.qsa(this, sel).length) return this } - } - - var filterRe = new RegExp('(.*):(\\w+)(?:\\(([^)]+)\\))?$\\s*'), - childRe = /^\s*>/, - classTag = 'Zepto' + (+new Date()) - - function process(sel, fn) { - // quote the hash in `a[href^=#]` expression - sel = sel.replace(/=#\]/g, '="#"]') - var filter, arg, match = filterRe.exec(sel) - if (match && match[2] in filters) { - filter = filters[match[2]], arg = match[3] - sel = match[1] - if (arg) { - var num = Number(arg) - if (isNaN(num)) arg = arg.replace(/^["']|["']$/g, '') - else arg = num - } - } - return fn(sel, filter, arg) - } - - zepto.qsa = function(node, selector) { - return process(selector, function(sel, filter, arg){ - try { - var taggedParent - if (!sel && filter) sel = '*' - else if (childRe.test(sel)) - // support "> *" child queries by tagging the parent node with a - // unique class and prepending that classname onto the selector - taggedParent = $(node).addClass(classTag), sel = '.'+classTag+' '+sel - - var nodes = oldQsa(node, sel) - } catch(e) { - console.error('error performing selector: %o', selector) - throw e - } finally { - if (taggedParent) taggedParent.removeClass(classTag) - } - return !filter ? nodes : - zepto.uniq($.map(nodes, function(n, i){ return filter.call(n, i, nodes, arg) })) - }) - } - - zepto.matches = function(node, selector){ - return process(selector, function(sel, filter, arg){ - return (!sel || oldMatches(node, sel)) && - (!filter || filter.call(node, null, arg) === node) - }) - } -})(Zepto) -module.exports = Zepto - - -/***/ }), -/* 7 */ -/***/ (function(module, exports) { - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ -// css base code, injected by the css-loader -module.exports = function(useSourceMap) { - var list = []; - - // return the list of modules as css string - list.toString = function toString() { - return this.map(function (item) { - var content = cssWithMappingToString(item, useSourceMap); - if(item[2]) { - return "@media " + item[2] + "{" + content + "}"; - } else { - return content; - } - }).join(""); - }; - - // import a list of modules into the list - list.i = function(modules, mediaQuery) { - if(typeof modules === "string") - modules = [[null, modules, ""]]; - var alreadyImportedModules = {}; - for(var i = 0; i < this.length; i++) { - var id = this[i][0]; - if(typeof id === "number") - alreadyImportedModules[id] = true; - } - for(i = 0; i < modules.length; i++) { - var item = modules[i]; - // skip already imported module - // this implementation is not 100% perfect for weird media query combinations - // when a module is imported multiple times with different media queries. - // I hope this will never occur (Hey this way we have smaller bundles) - if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { - if(mediaQuery && !item[2]) { - item[2] = mediaQuery; - } else if(mediaQuery) { - item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; - } - list.push(item); - } - } - }; - return list; -}; - -function cssWithMappingToString(item, useSourceMap) { - var content = item[1] || ''; - var cssMapping = item[3]; - if (!cssMapping) { - return content; - } - - if (useSourceMap && typeof btoa === 'function') { - var sourceMapping = toComment(cssMapping); - var sourceURLs = cssMapping.sources.map(function (source) { - return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' - }); - - return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); - } - - return [content].join('\n'); -} - -// Adapted from convert-source-map (MIT) -function toComment(sourceMap) { - // eslint-disable-next-line no-undef - var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); - var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; - - return '/*# ' + data + ' */'; -} - - -/***/ }), -/* 8 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -/* eslint-disable no-var */ -// Simple JavaScript Templating -// Paul Miller (http://paulmillr.com) -// http://underscorejs.org -// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors - -// By default, Underscore uses ERB-style template delimiters, change the -// following template settings to use alternative delimiters. -var settings = { - evaluate: /<%([\s\S]+?)%>/g, - interpolate: /<%=([\s\S]+?)%>/g, - escape: /<%-([\s\S]+?)%>/g -}; - -// When customizing `templateSettings`, if you don't want to define an -// interpolation, evaluation or escaping regex, we need one that is -// guaranteed not to match. -var noMatch = /(.)^/; - -// Certain characters need to be escaped so that they can be put into a -// string literal. -var escapes = { - '\'': '\'', - '\\': '\\', - '\r': 'r', - '\n': 'n', - '\t': 't', - '\u2028': 'u2028', - '\u2029': 'u2029' -}; - -var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g; - -// List of HTML entities for escaping. -var htmlEntities = { - '&': '&', - '<': '<', - '>': '>', - '"': '"', - '\'': ''' -}; - -var entityRe = new RegExp('[&<>"\']', 'g'); - -var escapeExpr = function escapeExpr(string) { - if (string === null) return ''; - return ('' + string).replace(entityRe, function (match) { - return htmlEntities[match]; - }); -}; - -var counter = 0; - -// JavaScript micro-templating, similar to John Resig's implementation. -// Underscore templating handles arbitrary delimiters, preserves whitespace, -// and correctly escapes quotes within interpolated code. -var tmpl = function tmpl(text, data) { - var render; - - // Combine delimiters into one regular expression via alternation. - 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. - var index = 0; - var source = '__p+=\''; - text.replace(matcher, function (match, escape, interpolate, evaluate, offset) { - source += text.slice(index, offset).replace(escaper, function (match) { - return '\\' + escapes[match]; - }); - - if (escape) source += '\'+\n((__t=(' + escape + '))==null?\'\':escapeExpr(__t))+\n\''; - - if (interpolate) source += '\'+\n((__t=(' + interpolate + '))==null?\'\':__t)+\n\''; - - if (evaluate) source += '\';\n' + evaluate + '\n__p+=\''; - - index = offset + match.length; - return match; - }); - source += '\';\n'; - - // If a variable is not specified, place data values in local scope. - if (!settings.variable) source = 'with(obj||{}){\n' + source + '}\n'; - - source = 'var __t,__p=\'\',__j=Array.prototype.join,' + 'print=function(){__p+=__j.call(arguments,\'\');};\n' + source + 'return __p;\n//# sourceURL=/microtemplates/source[' + counter++ + ']'; - - try { - /*jshint -W054 */ - // TODO: find a way to avoid eval - render = new Function(settings.variable || 'obj', 'escapeExpr', source); - } catch (e) { - e.source = source; - throw e; - } - - if (data) return render(data, escapeExpr); - var template = function template(data) { - return render.call(this, data, escapeExpr); - }; - - // Provide the compiled function source as a convenience for precompilation. - template.source = 'function(' + (settings.variable || 'obj') + '){\n' + source + '}'; - - return template; -}; -tmpl.settings = settings; - -exports.default = tmpl; -module.exports = exports['default']; - -/***/ }), -/* 9 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _classCallCheck2 = __webpack_require__(0); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _possibleConstructorReturn2 = __webpack_require__(1); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _createClass2 = __webpack_require__(3); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _inherits2 = __webpack_require__(2); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _utils = __webpack_require__(5); - -var _ui_object = __webpack_require__(21); - -var _ui_object2 = _interopRequireDefault(_ui_object); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * An abstraction to represent a generic playback, it's like an interface to be implemented by subclasses. - * @class Playback - * @constructor - * @extends UIObject - * @module base - */ -var Playback = function (_UIObject) { - (0, _inherits3.default)(Playback, _UIObject); - (0, _createClass3.default)(Playback, [{ - key: 'isAudioOnly', - - /** - * Determine if the playback does not contain video/has video but video should be ignored. - * @property isAudioOnly - * @type Boolean - */ - get: function get() { - return false; - } - - /** - * Determine if the playback has ended. - * @property ended - * @type Boolean - */ - - }, { - key: 'ended', - get: function get() { - return false; - } - - /** - * The internationalization plugin. - * @property i18n - * @type {Strings} - */ - - }, { - key: 'i18n', - get: function get() { - return this._i18n; - } - - /** - * Determine if the playback is having to buffer in order for - * playback to be smooth. - * (i.e if a live stream is playing smoothly, this will be false) - * @property buffering - * @type Boolean - */ - - }, { - key: 'buffering', - get: function get() { - return false; - } - - /** - * @method constructor - * @param {Object} options the options object - * @param {Strings} i18n the internationalization component - */ - - }]); - - function Playback(options, i18n) { - (0, _classCallCheck3.default)(this, Playback); - - var _this = (0, _possibleConstructorReturn3.default)(this, _UIObject.call(this, options)); - - _this.settings = {}; - _this._i18n = i18n; - return _this; - } - - /** - * Gives user consent to playback (mobile devices). - * @method consent - */ - - - Playback.prototype.consent = function consent() {}; - - /** - * plays the playback. - * @method play - */ - - - Playback.prototype.play = function play() {}; - - /** - * pauses the playback. - * @method pause - */ - - - Playback.prototype.pause = function pause() {}; - - /** - * stops the playback. - * @method stop - */ - - - Playback.prototype.stop = function stop() {}; - - /** - * seeks the playback to a given `time` in seconds - * @method seek - * @param {Number} time should be a number between 0 and the video duration - */ - - - Playback.prototype.seek = function seek(time) {}; // eslint-disable-line no-unused-vars - - /** - * seeks the playback to a given `percentage` in percentage - * @method seekPercentage - * @param {Number} time should be a number between 0 and 100 - */ - - - Playback.prototype.seekPercentage = function seekPercentage(percentage) {}; // eslint-disable-line no-unused-vars - - - /** - * The time that "0" now represents relative to when playback started. - * For a stream with a sliding window this will increase as content is - * removed from the beginning. - * @method getStartTimeOffset - * @return {Number} time (in seconds) that time "0" represents. - */ - - - Playback.prototype.getStartTimeOffset = function getStartTimeOffset() { - return 0; - }; - - /** - * gets the duration in seconds - * @method getDuration - * @return {Number} duration (in seconds) of the current source - */ - - - Playback.prototype.getDuration = function getDuration() { - return 0; - }; - - /** - * checks if the playback is playing. - * @method isPlaying - * @return {Boolean} `true` if the current playback is playing, otherwise `false` - */ - - - Playback.prototype.isPlaying = function isPlaying() { - return false; - }; - - /** - * checks if the playback is ready. - * @property isReady - * @type {Boolean} `true` if the current playback is ready, otherwise `false` - */ - - - // eslint-disable-line no-unused-vars - - /** - * gets the playback type (`'vod', 'live', 'aod'`) - * @method getPlaybackType - * @return {String} you should write the playback type otherwise it'll assume `'no_op'` - * @example - * ```javascript - * html5VideoPlayback.getPlaybackType() //vod - * html5AudioPlayback.getPlaybackType() //aod - * html5VideoPlayback.getPlaybackType() //live - * flashHlsPlayback.getPlaybackType() //live - * ``` - */ - Playback.prototype.getPlaybackType = function getPlaybackType() { - return Playback.NO_OP; - }; - - /** - * checks if the playback is in HD. - * @method isHighDefinitionInUse - * @return {Boolean} `true` if the playback is playing in HD, otherwise `false` - */ - - - Playback.prototype.isHighDefinitionInUse = function isHighDefinitionInUse() { - return false; - }; - - /** - * sets the volume for the playback - * @method volume - * @param {Number} value a number between 0 (`muted`) to 100 (`max`) - */ - - - Playback.prototype.volume = function volume(value) {}; // eslint-disable-line no-unused-vars - - /** - * destroys the playback, removing it from DOM - * @method destroy - */ - - - Playback.prototype.destroy = function destroy() { - this.$el.remove(); - }; - - (0, _createClass3.default)(Playback, [{ - key: 'isReady', - get: function get() { - return false; - } - - /** - * checks if the playback has closed caption tracks. - * @property hasClosedCaptionsTracks - * @type {Boolean} - */ - - }, { - key: 'hasClosedCaptionsTracks', - get: function get() { - return this.closedCaptionsTracks.length > 0; - } - - /** - * gets the playback available closed caption tracks. - * @property closedCaptionsTracks - * @type {Array} an array of objects with at least 'id' and 'name' properties - */ - - }, { - key: 'closedCaptionsTracks', - get: function get() { - return []; - } - - /** - * gets the selected closed caption track index. (-1 is disabled) - * @property closedCaptionsTrackId - * @type {Number} - */ - - }, { - key: 'closedCaptionsTrackId', - get: function get() { - return -1; - } - - /** - * sets the selected closed caption track index. (-1 is disabled) - * @property closedCaptionsTrackId - * @type {Number} - */ - , - set: function set(trackId) {} - }]); - return Playback; -}(_ui_object2.default); - -exports.default = Playback; - - -Playback.extend = function (properties) { - return (0, _utils.extend)(Playback, properties); -}; - -/** - * checks if the playback can play a given `source` - * If a mimeType is provided then this will be used instead of inferring the mimetype - * from the source extension. - * @method canPlay - * @static - * @param {String} source the given source ex: `http://example.com/play.mp4` - * @param {String} [mimeType] the given mime type, ex: `'application/vnd.apple.mpegurl'` - * @return {Boolean} `true` if the playback is playable, otherwise `false` - */ -Playback.canPlay = function (source, mimeType) { - // eslint-disable-line no-unused-vars - return false; -}; - -/** - * a playback type for video on demand - * - * @property VOD - * @static - * @type String - */ -Playback.VOD = 'vod'; -/** - * a playback type for audio on demand - * - * @property AOD - * @static - * @type String - */ -Playback.AOD = 'aod'; -/** - * a playback type for live video - * - * @property LIVE - * @static - * @type String - */ -Playback.LIVE = 'live'; -/** - * a default playback type - * - * @property NO_OP - * @static - * @type String - */ -Playback.NO_OP = 'no_op'; -/** - * the plugin type - * - * @property type - * @static - * @type String - */ -Playback.type = 'playback'; -module.exports = exports['default']; - -/***/ }), -/* 10 */ -/***/ (function(module, exports, __webpack_require__) { - -/* - MIT License http://www.opensource.org/licenses/mit-license.php - Author Tobias Koppers @sokra -*/ - -var stylesInDom = {}; - -var memoize = function (fn) { - var memo; - - return function () { - if (typeof memo === "undefined") memo = fn.apply(this, arguments); - return memo; - }; -}; - -var isOldIE = memoize(function () { - // Test for IE <= 9 as proposed by Browserhacks - // @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805 - // Tests for existence of standard globals is to allow style-loader - // to operate correctly into non-standard environments - // @see https://github.com/webpack-contrib/style-loader/issues/177 - return window && document && document.all && !window.atob; -}); - -var getElement = (function (fn) { - var memo = {}; - - return function(selector) { - if (typeof memo[selector] === "undefined") { - var styleTarget = fn.call(this, selector); - // Special case to return head of iframe instead of iframe itself - if (styleTarget instanceof window.HTMLIFrameElement) { - try { - // This will throw an exception if access to iframe is blocked - // due to cross-origin restrictions - styleTarget = styleTarget.contentDocument.head; - } catch(e) { - styleTarget = null; - } - } - memo[selector] = styleTarget; - } - return memo[selector] - }; -})(function (target) { - return document.querySelector(target) -}); - -var singleton = null; -var singletonCounter = 0; -var stylesInsertedAtTop = []; - -var fixUrls = __webpack_require__(140); - -module.exports = function(list, options) { - if (typeof DEBUG !== "undefined" && DEBUG) { - if (typeof document !== "object") throw new Error("The style-loader cannot be used in a non-browser environment"); - } - - options = options || {}; - - options.attrs = typeof options.attrs === "object" ? options.attrs : {}; - - // Force single-tag solution on IE6-9, which has a hard limit on the # of ').html((0, _template2.default)(style.toString())(options)); - } -}; - -exports.default = Styler; -module.exports = exports['default']; - -/***/ }), -/* 78 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _loader = __webpack_require__(157); - -var _loader2 = _interopRequireDefault(_loader); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _loader2.default; -module.exports = exports['default']; - -/***/ }), -/* 79 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(159), __esModule: true }; - -/***/ }), -/* 80 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -exports.__esModule = true; - -var _from = __webpack_require__(79); - -var _from2 = _interopRequireDefault(_from); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = function (arr) { - if (Array.isArray(arr)) { - for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { - arr2[i] = arr[i]; - } - - return arr2; - } else { - return (0, _from2.default)(arr); - } -}; - -/***/ }), -/* 81 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _flash = __webpack_require__(170); - -var _flash2 = _interopRequireDefault(_flash); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _flash2.default; -module.exports = exports['default']; - -/***/ }), -/* 82 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _html5_audio = __webpack_require__(176); - -var _html5_audio2 = _interopRequireDefault(_html5_audio); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _html5_audio2.default; -module.exports = exports['default']; - -/***/ }), -/* 83 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _flashls = __webpack_require__(177); - -var _flashls2 = _interopRequireDefault(_flashls); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _flashls2.default; -module.exports = exports['default']; - -/***/ }), -/* 84 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _hls = __webpack_require__(180); - -var _hls2 = _interopRequireDefault(_hls); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _hls2.default; -module.exports = exports['default']; - -/***/ }), -/* 85 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _html_img = __webpack_require__(182); - -var _html_img2 = _interopRequireDefault(_html_img); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _html_img2.default; -module.exports = exports['default']; - -/***/ }), -/* 86 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _no_op = __webpack_require__(185); - -var _no_op2 = _interopRequireDefault(_no_op); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _no_op2.default; -module.exports = exports['default']; - -/***/ }), -/* 87 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _poster = __webpack_require__(201); - -var _poster2 = _interopRequireDefault(_poster); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _poster2.default; -module.exports = exports['default']; - -/***/ }), -/* 88 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _player = __webpack_require__(89); - -var _player2 = _interopRequireDefault(_player); - -var _utils = __webpack_require__(5); - -var _utils2 = _interopRequireDefault(_utils); - -var _events = __webpack_require__(4); - -var _events2 = _interopRequireDefault(_events); - -var _playback = __webpack_require__(9); - -var _playback2 = _interopRequireDefault(_playback); - -var _container_plugin = __webpack_require__(37); - -var _container_plugin2 = _interopRequireDefault(_container_plugin); - -var _core_plugin = __webpack_require__(30); - -var _core_plugin2 = _interopRequireDefault(_core_plugin); - -var _ui_core_plugin = __webpack_require__(38); - -var _ui_core_plugin2 = _interopRequireDefault(_ui_core_plugin); - -var _ui_container_plugin = __webpack_require__(36); - -var _ui_container_plugin2 = _interopRequireDefault(_ui_container_plugin); - -var _base_object = __webpack_require__(17); - -var _base_object2 = _interopRequireDefault(_base_object); - -var _ui_object = __webpack_require__(21); - -var _ui_object2 = _interopRequireDefault(_ui_object); - -var _browser = __webpack_require__(13); - -var _browser2 = _interopRequireDefault(_browser); - -var _container = __webpack_require__(73); - -var _container2 = _interopRequireDefault(_container); - -var _core = __webpack_require__(72); - -var _core2 = _interopRequireDefault(_core); - -var _loader = __webpack_require__(78); - -var _loader2 = _interopRequireDefault(_loader); - -var _mediator = __webpack_require__(24); - -var _mediator2 = _interopRequireDefault(_mediator); - -var _media_control = __webpack_require__(74); - -var _media_control2 = _interopRequireDefault(_media_control); - -var _player_info = __webpack_require__(34); - -var _player_info2 = _interopRequireDefault(_player_info); - -var _base_flash_playback = __webpack_require__(59); - -var _base_flash_playback2 = _interopRequireDefault(_base_flash_playback); - -var _flash = __webpack_require__(81); - -var _flash2 = _interopRequireDefault(_flash); - -var _flashls = __webpack_require__(83); - -var _flashls2 = _interopRequireDefault(_flashls); - -var _hls = __webpack_require__(84); - -var _hls2 = _interopRequireDefault(_hls); - -var _html5_audio = __webpack_require__(82); - -var _html5_audio2 = _interopRequireDefault(_html5_audio); - -var _html5_video = __webpack_require__(35); - -var _html5_video2 = _interopRequireDefault(_html5_video); - -var _html_img = __webpack_require__(85); - -var _html_img2 = _interopRequireDefault(_html_img); - -var _no_op = __webpack_require__(86); - -var _no_op2 = _interopRequireDefault(_no_op); - -var _poster = __webpack_require__(87); - -var _poster2 = _interopRequireDefault(_poster); - -var _log = __webpack_require__(55); - -var _log2 = _interopRequireDefault(_log); - -var _styler = __webpack_require__(77); - -var _styler2 = _interopRequireDefault(_styler); - -var _vendor = __webpack_require__(56); - -var _vendor2 = _interopRequireDefault(_vendor); - -var _template = __webpack_require__(8); - -var _template2 = _interopRequireDefault(_template); - -var _clapprZepto = __webpack_require__(6); - -var _clapprZepto2 = _interopRequireDefault(_clapprZepto); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var version = "0.2.80"; // Copyright 2014 Globo.com Player authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -exports.default = { - Player: _player2.default, - Mediator: _mediator2.default, - Events: _events2.default, - Browser: _browser2.default, - PlayerInfo: _player_info2.default, - MediaControl: _media_control2.default, - ContainerPlugin: _container_plugin2.default, - UIContainerPlugin: _ui_container_plugin2.default, - CorePlugin: _core_plugin2.default, - UICorePlugin: _ui_core_plugin2.default, - Playback: _playback2.default, - Container: _container2.default, - Core: _core2.default, - Loader: _loader2.default, - BaseObject: _base_object2.default, - UIObject: _ui_object2.default, - Utils: _utils2.default, - BaseFlashPlayback: _base_flash_playback2.default, - Flash: _flash2.default, - FlasHLS: _flashls2.default, - HLS: _hls2.default, - HTML5Audio: _html5_audio2.default, - HTML5Video: _html5_video2.default, - HTMLImg: _html_img2.default, - NoOp: _no_op2.default, - Poster: _poster2.default, - Log: _log2.default, - Styler: _styler2.default, - Vendor: _vendor2.default, - version: version, - template: _template2.default, - $: _clapprZepto2.default -}; -module.exports = exports['default']; - -/***/ }), -/* 89 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _keys = __webpack_require__(31); - -var _keys2 = _interopRequireDefault(_keys); - -var _classCallCheck2 = __webpack_require__(0); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _possibleConstructorReturn2 = __webpack_require__(1); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _createClass2 = __webpack_require__(3); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _inherits2 = __webpack_require__(2); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _utils = __webpack_require__(5); - -var _base_object = __webpack_require__(17); - -var _base_object2 = _interopRequireDefault(_base_object); - -var _events = __webpack_require__(4); - -var _events2 = _interopRequireDefault(_events); - -var _browser = __webpack_require__(13); - -var _browser2 = _interopRequireDefault(_browser); - -var _core_factory = __webpack_require__(132); - -var _core_factory2 = _interopRequireDefault(_core_factory); - -var _loader = __webpack_require__(78); - -var _loader2 = _interopRequireDefault(_loader); - -var _player_info = __webpack_require__(34); - -var _player_info2 = _interopRequireDefault(_player_info); - -var _clapprZepto = __webpack_require__(6); - -var _clapprZepto2 = _interopRequireDefault(_clapprZepto); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Copyright 2014 Globo.com Player authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -var baseUrl = (0, _utils.currentScriptUrl)().replace(/\/[^/]+$/, ''); - -/** - * @class Player - * @constructor - * @extends BaseObject - * @module components - * @example - * ### Using the Player - * - * Add the following script on your HTML: - * ```html - * - * - * - * ``` - * Now, create the player: - * ```html - * - *
- * - * - * ``` - */ - -var Player = function (_BaseObject) { - (0, _inherits3.default)(Player, _BaseObject); - (0, _createClass3.default)(Player, [{ - key: 'loader', - set: function set(loader) { - this._loader = loader; - }, - get: function get() { - if (!this._loader) this._loader = new _loader2.default(this.options.plugins || {}, this.options.playerId); - - return this._loader; - } - - /** - * Determine if the playback has ended. - * @property ended - * @type Boolean - */ - - }, { - key: 'ended', - get: function get() { - return this.core.mediaControl.container.ended; - } - - /** - * Determine if the playback is having to buffer in order for - * playback to be smooth. - * (i.e if a live stream is playing smoothly, this will be false) - * @property buffering - * @type Boolean - */ - - }, { - key: 'buffering', - get: function get() { - return this.core.mediaControl.container.buffering; - } - - /* - * determine if the player is ready. - * @property isReady - * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired - */ - - }, { - key: 'isReady', - get: function get() { - return !!this._ready; - } - - /** - * An events map that allows the user to add custom callbacks in player's options. - * @property eventsMapping - * @type {Object} - */ - - }, { - key: 'eventsMapping', - get: function get() { - return { - onReady: _events2.default.PLAYER_READY, - onResize: _events2.default.PLAYER_RESIZE, - onPlay: _events2.default.PLAYER_PLAY, - onPause: _events2.default.PLAYER_PAUSE, - onStop: _events2.default.PLAYER_STOP, - onEnded: _events2.default.PLAYER_ENDED, - onSeek: _events2.default.PLAYER_SEEK, - onError: _events2.default.PLAYER_ERROR, - onTimeUpdate: _events2.default.PLAYER_TIMEUPDATE, - onVolumeUpdate: _events2.default.PLAYER_VOLUMEUPDATE, - onSubtitleAvailable: _events2.default.PLAYER_SUBTITLE_AVAILABLE - }; - } - - /** - * ## Player's constructor - * - * You might pass the options object to build the player. - * ```javascript - * var options = {source: "http://example.com/video.mp4", param1: "val1"}; - * var player = new Clappr.Player(options); - * ``` - * - * @method constructor - * @param {Object} options Data - * options to build a player instance - * @param {Number} [options.width] - * player's width **default**: `640` - * @param {Number} [options.height] - * player's height **default**: `360` - * @param {String} [options.parentId] - * the id of the element on the page that the player should be inserted into - * @param {Object} [options.parent] - * a reference to a dom element that the player should be inserted into - * @param {String} [options.source] - * The media source URL, or {source: <>, mimeType: <>} - * @param {Object} [options.sources] - * An array of media source URL's, or an array of {source: <>, mimeType: <>} - * @param {Boolean} [options.autoPlay] - * automatically play after page load **default**: `false` - * @param {Boolean} [options.loop] - * automatically replay after it ends **default**: `false` - * @param {Boolean} [options.chromeless] - * player acts in chromeless mode **default**: `false` - * @param {Boolean} [options.allowUserInteraction] - * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile. - * @param {Boolean} [options.disableKeyboardShortcuts] - * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`. - * @param {Boolean} [options.mute] - * start the video muted **default**: `false` - * @param {String} [options.mimeType] - * add `mimeType: "application/vnd.apple.mpegurl"` if you need to use a url without extension. - * @param {String} [options.actualLiveTime] - * show duration and seek time relative to actual time. - * @param {String} [options.actualLiveServerTime] - * specify server time as a string, format: "2015/11/26 06:01:03". This option is meant to be used with actualLiveTime. - * @param {Boolean} [options.persistConfig] - * persist player's settings (volume) through the same domain **default**: `true` - * @param {String} [options.preload] - * video will be preloaded according to `preload` attribute options **default**: `'metadata'` - * @param {Number} [options.maxBufferLength] - * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD. - * 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. - * To change this behavior use `maxBufferLength` where **value is in seconds**. - * @param {String} [options.gaAccount] - * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount` - * @param {String} [options.gaTrackerName] - * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName` - * @param {Object} [options.mediacontrol] - * customize control bar colors, example: `mediacontrol: {seekbar: "#E113D3", buttons: "#66B2FF"}` - * @param {Boolean} [options.hideMediaControl] - * control media control auto hide **default**: `true` - * @param {Boolean} [options.hideVolumeBar] - * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false` - * @param {String} [options.watermark] - * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video. - * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`. - * @param {String} [options.watermarkLink] - * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable. - * @param {Boolean} [options.disableVideoTagContextMenu] - * disables the context menu (right click) on the video element if a HTML5Video playback is used. - * @param {Boolean} [options.autoSeekFromUrl] - * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true` - * @param {Boolean} [options.exitFullscreenOnEnd] - * Automatically exit full screen when the media finishes. **default**: `true` - * @param {String} [options.poster] - * 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. - * @param {String} [options.playbackNotSupportedMessage] - * define a custom message to be displayed when a playback is not supported. - * @param {Object} [options.events] - * Specify listeners which will be registered with their corresponding player events. - * E.g. onReady -> "PLAYER_READY", onTimeUpdate -> "PLAYER_TIMEUPDATE" - */ - - }]); - - function Player(options) { - (0, _classCallCheck3.default)(this, Player); - - var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this, options)); - - var defaultOptions = { playerId: (0, _utils.uniqueId)(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: _browser2.default.isMobile }; - _this._options = _clapprZepto2.default.extend(defaultOptions, options); - _this.options.sources = _this._normalizeSources(options); - if (!_this.options.chromeless) { - // "allowUserInteraction" cannot be false if not in chromeless mode. - _this.options.allowUserInteraction = true; - } - if (!_this.options.allowUserInteraction) { - // if user iteraction is not allowed ensure keyboard shortcuts are disabled - _this.options.disableKeyboardShortcuts = true; - } - _this._registerOptionEventListeners(); - _this._coreFactory = new _core_factory2.default(_this); - _this.playerInfo = _player_info2.default.getInstance(_this.options.playerId); - _this.playerInfo.currentSize = { width: options.width, height: options.height }; - _this.playerInfo.options = _this.options; - if (_this.options.parentId) _this.setParentId(_this.options.parentId);else if (_this.options.parent) _this.attachTo(_this.options.parent); - - return _this; - } - - /** - * Specify a `parentId` to the player. - * @method setParentId - * @param {String} parentId the element parent id. - * @return {Player} itself - */ - - - Player.prototype.setParentId = function setParentId(parentId) { - var el = document.querySelector(parentId); - if (el) this.attachTo(el); - - return this; - }; - - /** - * 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. - * @method attachTo - * @param {Object} element a given element. - * @return {Player} itself - */ - - - Player.prototype.attachTo = function attachTo(element) { - this.options.parentElement = element; - this.core = this._coreFactory.create(); - this._addEventListeners(); - return this; - }; - - Player.prototype._addEventListeners = function _addEventListeners() { - if (!this.core.isReady) this.listenToOnce(this.core, _events2.default.CORE_READY, this._onReady);else this._onReady(); - - this.listenTo(this.core.mediaControl, _events2.default.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged); - this.listenTo(this.core, _events2.default.CORE_FULLSCREEN, this._onFullscreenChange); - return this; - }; - - Player.prototype._addContainerEventListeners = function _addContainerEventListeners() { - var container = this.core.mediaControl.container; - if (container) { - this.listenTo(container, _events2.default.CONTAINER_PLAY, this._onPlay); - this.listenTo(container, _events2.default.CONTAINER_PAUSE, this._onPause); - this.listenTo(container, _events2.default.CONTAINER_STOP, this._onStop); - this.listenTo(container, _events2.default.CONTAINER_ENDED, this._onEnded); - this.listenTo(container, _events2.default.CONTAINER_SEEK, this._onSeek); - this.listenTo(container, _events2.default.CONTAINER_ERROR, this._onError); - this.listenTo(container, _events2.default.CONTAINER_TIMEUPDATE, this._onTimeUpdate); - this.listenTo(container, _events2.default.CONTAINER_VOLUME, this._onVolumeUpdate); - this.listenTo(container, _events2.default.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable); - } - return this; - }; - - Player.prototype._registerOptionEventListeners = function _registerOptionEventListeners() { - var _this2 = this; - - var userEvents = this.options.events || {}; - (0, _keys2.default)(userEvents).forEach(function (userEvent) { - var eventType = _this2.eventsMapping[userEvent]; - if (eventType) { - var eventFunction = userEvents[userEvent]; - eventFunction = typeof eventFunction === 'function' && eventFunction; - eventFunction && _this2.on(eventType, eventFunction); - } - }); - return this; - }; - - Player.prototype._containerChanged = function _containerChanged() { - this.stopListening(); - this._addEventListeners(); - }; - - Player.prototype._onReady = function _onReady() { - this._ready = true; - this._addContainerEventListeners(); - this.trigger(_events2.default.PLAYER_READY); - }; - - Player.prototype._onFullscreenChange = function _onFullscreenChange(fullscreen) { - this.trigger(_events2.default.PLAYER_FULLSCREEN, fullscreen); - }; - - Player.prototype._onVolumeUpdate = function _onVolumeUpdate(volume) { - this.trigger(_events2.default.PLAYER_VOLUMEUPDATE, volume); - }; - - Player.prototype._onSubtitleAvailable = function _onSubtitleAvailable() { - this.trigger(_events2.default.PLAYER_SUBTITLE_AVAILABLE); - }; - - Player.prototype._onPlay = function _onPlay() { - this.trigger(_events2.default.PLAYER_PLAY); - }; - - Player.prototype._onPause = function _onPause() { - this.trigger(_events2.default.PLAYER_PAUSE); - }; - - Player.prototype._onStop = function _onStop() { - this.trigger(_events2.default.PLAYER_STOP, this.getCurrentTime()); - }; - - Player.prototype._onEnded = function _onEnded() { - this.trigger(_events2.default.PLAYER_ENDED); - }; - - Player.prototype._onSeek = function _onSeek(time) { - this.trigger(_events2.default.PLAYER_SEEK, time); - }; - - Player.prototype._onTimeUpdate = function _onTimeUpdate(timeProgress) { - this.trigger(_events2.default.PLAYER_TIMEUPDATE, timeProgress); - }; - - Player.prototype._onError = function _onError(error) { - this.trigger(_events2.default.PLAYER_ERROR, error); - }; - - Player.prototype._normalizeSources = function _normalizeSources(options) { - var sources = options.sources || (options.source !== undefined ? [options.source] : []); - return sources.length === 0 ? [{ source: '', mimeType: '' }] : sources; - }; - - /** - * resizes the current player canvas. - * @method resize - * @param {Object} size should be a literal object with `height` and `width`. - * @return {Player} itself - * @example - * ```javascript - * player.resize({height: 360, width: 640}) - * ``` - */ - - - Player.prototype.resize = function resize(size) { - this.core.resize(size); - return this; - }; - - /** - * loads a new source. - * @method load - * @param {Array|String} sources source or sources of video. - * An array item can be a string or {source: <>, mimeType: <>} - * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'` - * @param {Boolean} [autoPlay=false] whether playing should be started immediately - * @return {Player} itself - */ - - - Player.prototype.load = function load(sources, mimeType, autoPlay) { - if (autoPlay !== undefined) this.configure({ autoPlay: !!autoPlay }); - - this.core.load(sources, mimeType); - return this; - }; - - /** - * destroys the current player and removes it from the DOM. - * @method destroy - * @return {Player} itself - */ - - - Player.prototype.destroy = function destroy() { - this.core.destroy(); - return this; - }; - - /** - * Gives user consent to playback. Required by mobile device after a click event before Player.load(). - * @method consent - * @return {Player} itself - */ - - - Player.prototype.consent = function consent() { - this.core.getCurrentPlayback().consent(); - return this; - }; - - /** - * plays the current video (`source`). - * @method play - * @return {Player} itself - */ - - - Player.prototype.play = function play() { - this.core.mediaControl.container.play(); - return this; - }; - - /** - * pauses the current video (`source`). - * @method pause - * @return {Player} itself - */ - - - Player.prototype.pause = function pause() { - this.core.mediaControl.container.pause(); - return this; - }; - - /** - * stops the current video (`source`). - * @method stop - * @return {Player} itself - */ - - - Player.prototype.stop = function stop() { - this.core.mediaControl.container.stop(); - return this; - }; - - /** - * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video. - * @method seek - * @param {Number} time should be a number between 0 and the video duration. - * @return {Player} itself - */ - - - Player.prototype.seek = function seek(time) { - this.core.mediaControl.container.seek(time); - return this; - }; - - /** - * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video. - * @method seekPercentage - * @param {Number} time should be a number between 0 and 100. - * @return {Player} itself - */ - - - Player.prototype.seekPercentage = function seekPercentage(percentage) { - this.core.mediaControl.container.seekPercentage(percentage); - return this; - }; - - /** - * Set the volume for the current video (`source`). - * @method setVolume - * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume. - * @return {Player} itself - */ - - - Player.prototype.setVolume = function setVolume(volume) { - if (this.core && this.core.mediaControl) this.core.mediaControl.setVolume(volume); - - return this; - }; - - /** - * Get the volume for the current video - * @method getVolume - * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume. - */ - - - Player.prototype.getVolume = function getVolume() { - return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0; - }; - - /** - * mutes the current video (`source`). - * @method mute - * @return {Player} itself - */ - - - Player.prototype.mute = function mute() { - this._mutedVolume = this.getVolume(); - this.setVolume(0); - return this; - }; - - /** - * unmutes the current video (`source`). - * @method unmute - * @return {Player} itself - */ - - - Player.prototype.unmute = function unmute() { - this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100); - this._mutedVolume = null; - return this; - }; - - /** - * checks if the player is playing. - * @method isPlaying - * @return {Boolean} `true` if the current source is playing, otherwise `false` - */ - - - Player.prototype.isPlaying = function isPlaying() { - return this.core.mediaControl.container.isPlaying(); - }; - - /** - * returns `true` if DVR is enable otherwise `false`. - * @method isDvrEnabled - * @return {Boolean} - */ - - - Player.prototype.isDvrEnabled = function isDvrEnabled() { - return this.core.mediaControl.container.isDvrEnabled(); - }; - - /** - * returns `true` if DVR is in use otherwise `false`. - * @method isDvrInUse - * @return {Boolean} - */ - - - Player.prototype.isDvrInUse = function isDvrInUse() { - return this.core.mediaControl.container.isDvrInUse(); - }; - - /** - * enables to configure a player after its creation - * @method configure - * @param {Object} options all the options to change in form of a javascript object - * @return {Player} itself - */ - - - Player.prototype.configure = function configure(options) { - this.core.configure(options); - return this; - }; - - /** - * get a plugin by its name. - * @method getPlugin - * @param {String} name of the plugin. - * @return {Object} the plugin instance - * @example - * ```javascript - * var poster = player.getPlugin('poster'); - * poster.hidePlayButton(); - * ``` - */ - - - Player.prototype.getPlugin = function getPlugin(name) { - var plugins = this.core.plugins.concat(this.core.mediaControl.container.plugins); - return plugins.filter(function (plugin) { - return plugin.name === name; - })[0]; - }; - - /** - * the current time in seconds. - * @method getCurrentTime - * @return {Number} current time (in seconds) of the current source - */ - - - Player.prototype.getCurrentTime = function getCurrentTime() { - return this.core.mediaControl.container.getCurrentTime(); - }; - - /** - * The time that "0" now represents relative to when playback started. - * For a stream with a sliding window this will increase as content is - * removed from the beginning. - * @method getStartTimeOffset - * @return {Number} time (in seconds) that time "0" represents. - */ - - - Player.prototype.getStartTimeOffset = function getStartTimeOffset() { - return this.core.mediaControl.container.getStartTimeOffset(); - }; - - /** - * the duration time in seconds. - * @method getDuration - * @return {Number} duration time (in seconds) of the current source - */ - - - Player.prototype.getDuration = function getDuration() { - return this.core.mediaControl.container.getDuration(); - }; - - return Player; -}(_base_object2.default); - -exports.default = Player; -module.exports = exports['default']; - -/***/ }), -/* 90 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(91); -module.exports = __webpack_require__(11).Object.keys; - -/***/ }), -/* 91 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.14 Object.keys(O) -var toObject = __webpack_require__(39) - , $keys = __webpack_require__(25); - -__webpack_require__(62)('keys', function(){ - return function keys(it){ - return $keys(toObject(it)); - }; -}); - -/***/ }), -/* 92 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for non-array-like ES3 and non-enumerable old V8 strings -var cof = __webpack_require__(41); -module.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){ - return cof(it) == 'String' ? it.split('') : Object(it); -}; - -/***/ }), -/* 93 */ -/***/ (function(module, exports, __webpack_require__) { - -// false -> Array#indexOf -// true -> Array#includes -var toIObject = __webpack_require__(14) - , toLength = __webpack_require__(61) - , toIndex = __webpack_require__(94); -module.exports = function(IS_INCLUDES){ - return function($this, el, fromIndex){ - var O = toIObject($this) - , length = toLength(O.length) - , index = toIndex(fromIndex, length) - , value; - // Array#includes uses SameValueZero equality algorithm - if(IS_INCLUDES && el != el)while(length > index){ - value = O[index++]; - if(value != value)return true; - // Array#toIndex ignores holes, Array#includes - not - } else for(;length > index; index++)if(IS_INCLUDES || index in O){ - if(O[index] === el)return IS_INCLUDES || index || 0; - } return !IS_INCLUDES && -1; - }; -}; - -/***/ }), -/* 94 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(42) - , max = Math.max - , min = Math.min; -module.exports = function(index, length){ - index = toInteger(index); - return index < 0 ? max(index + length, 0) : min(index, length); -}; - -/***/ }), -/* 95 */ -/***/ (function(module, exports) { - -module.exports = function(it){ - if(typeof it != 'function')throw TypeError(it + ' is not a function!'); - return it; -}; - -/***/ }), -/* 96 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(97), __esModule: true }; - -/***/ }), -/* 97 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(65); -__webpack_require__(103); -module.exports = __webpack_require__(51).f('iterator'); - -/***/ }), -/* 98 */ -/***/ (function(module, exports, __webpack_require__) { - -var toInteger = __webpack_require__(42) - , defined = __webpack_require__(40); -// true -> String#at -// false -> String#codePointAt -module.exports = function(TO_STRING){ - return function(that, pos){ - var s = String(defined(that)) - , i = toInteger(pos) - , l = s.length - , a, b; - if(i < 0 || i >= l)return TO_STRING ? '' : undefined; - a = s.charCodeAt(i); - return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff - ? TO_STRING ? s.charAt(i) : a - : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; - }; -}; - -/***/ }), -/* 99 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var create = __webpack_require__(49) - , descriptor = __webpack_require__(28) - , setToStringTag = __webpack_require__(50) - , IteratorPrototype = {}; - -// 25.1.2.1.1 %IteratorPrototype%[@@iterator]() -__webpack_require__(22)(IteratorPrototype, __webpack_require__(12)('iterator'), function(){ return this; }); - -module.exports = function(Constructor, NAME, next){ - Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)}); - setToStringTag(Constructor, NAME + ' Iterator'); -}; - -/***/ }), -/* 100 */ -/***/ (function(module, exports, __webpack_require__) { - -var dP = __webpack_require__(16) - , anObject = __webpack_require__(23) - , getKeys = __webpack_require__(25); - -module.exports = __webpack_require__(20) ? Object.defineProperties : function defineProperties(O, Properties){ - anObject(O); - var keys = getKeys(Properties) - , length = keys.length - , i = 0 - , P; - while(length > i)dP.f(O, P = keys[i++], Properties[P]); - return O; -}; - -/***/ }), -/* 101 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = __webpack_require__(15).document && document.documentElement; - -/***/ }), -/* 102 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O) -var has = __webpack_require__(18) - , toObject = __webpack_require__(39) - , IE_PROTO = __webpack_require__(43)('IE_PROTO') - , ObjectProto = Object.prototype; - -module.exports = Object.getPrototypeOf || function(O){ - O = toObject(O); - if(has(O, IE_PROTO))return O[IE_PROTO]; - if(typeof O.constructor == 'function' && O instanceof O.constructor){ - return O.constructor.prototype; - } return O instanceof Object ? ObjectProto : null; -}; - -/***/ }), -/* 103 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(104); -var global = __webpack_require__(15) - , hide = __webpack_require__(22) - , Iterators = __webpack_require__(29) - , TO_STRING_TAG = __webpack_require__(12)('toStringTag'); - -for(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){ - var NAME = collections[i] - , Collection = global[NAME] - , proto = Collection && Collection.prototype; - if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME); - Iterators[NAME] = Iterators.Array; -} - -/***/ }), -/* 104 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -var addToUnscopables = __webpack_require__(105) - , step = __webpack_require__(106) - , Iterators = __webpack_require__(29) - , toIObject = __webpack_require__(14); - -// 22.1.3.4 Array.prototype.entries() -// 22.1.3.13 Array.prototype.keys() -// 22.1.3.29 Array.prototype.values() -// 22.1.3.30 Array.prototype[@@iterator]() -module.exports = __webpack_require__(66)(Array, 'Array', function(iterated, kind){ - this._t = toIObject(iterated); // target - this._i = 0; // next index - this._k = kind; // kind -// 22.1.5.2.1 %ArrayIteratorPrototype%.next() -}, function(){ - var O = this._t - , kind = this._k - , index = this._i++; - if(!O || index >= O.length){ - this._t = undefined; - return step(1); - } - if(kind == 'keys' )return step(0, index); - if(kind == 'values')return step(0, O[index]); - return step(0, [index, O[index]]); -}, 'values'); - -// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7) -Iterators.Arguments = Iterators.Array; - -addToUnscopables('keys'); -addToUnscopables('values'); -addToUnscopables('entries'); - -/***/ }), -/* 105 */ -/***/ (function(module, exports) { - -module.exports = function(){ /* empty */ }; - -/***/ }), -/* 106 */ -/***/ (function(module, exports) { - -module.exports = function(done, value){ - return {value: value, done: !!done}; -}; - -/***/ }), -/* 107 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(108), __esModule: true }; - -/***/ }), -/* 108 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(109); -__webpack_require__(115); -__webpack_require__(116); -__webpack_require__(117); -module.exports = __webpack_require__(11).Symbol; - -/***/ }), -/* 109 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - -// ECMAScript 6 symbols shim -var global = __webpack_require__(15) - , has = __webpack_require__(18) - , DESCRIPTORS = __webpack_require__(20) - , $export = __webpack_require__(19) - , redefine = __webpack_require__(67) - , META = __webpack_require__(110).KEY - , $fails = __webpack_require__(27) - , shared = __webpack_require__(44) - , setToStringTag = __webpack_require__(50) - , uid = __webpack_require__(32) - , wks = __webpack_require__(12) - , wksExt = __webpack_require__(51) - , wksDefine = __webpack_require__(52) - , keyOf = __webpack_require__(111) - , enumKeys = __webpack_require__(112) - , isArray = __webpack_require__(113) - , anObject = __webpack_require__(23) - , toIObject = __webpack_require__(14) - , toPrimitive = __webpack_require__(47) - , createDesc = __webpack_require__(28) - , _create = __webpack_require__(49) - , gOPNExt = __webpack_require__(114) - , $GOPD = __webpack_require__(54) - , $DP = __webpack_require__(16) - , $keys = __webpack_require__(25) - , gOPD = $GOPD.f - , dP = $DP.f - , gOPN = gOPNExt.f - , $Symbol = global.Symbol - , $JSON = global.JSON - , _stringify = $JSON && $JSON.stringify - , PROTOTYPE = 'prototype' - , HIDDEN = wks('_hidden') - , TO_PRIMITIVE = wks('toPrimitive') - , isEnum = {}.propertyIsEnumerable - , SymbolRegistry = shared('symbol-registry') - , AllSymbols = shared('symbols') - , OPSymbols = shared('op-symbols') - , ObjectProto = Object[PROTOTYPE] - , USE_NATIVE = typeof $Symbol == 'function' - , QObject = global.QObject; -// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173 -var setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild; - -// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687 -var setSymbolDesc = DESCRIPTORS && $fails(function(){ - return _create(dP({}, 'a', { - get: function(){ return dP(this, 'a', {value: 7}).a; } - })).a != 7; -}) ? function(it, key, D){ - var protoDesc = gOPD(ObjectProto, key); - if(protoDesc)delete ObjectProto[key]; - dP(it, key, D); - if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc); -} : dP; - -var wrap = function(tag){ - var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]); - sym._k = tag; - return sym; -}; - -var isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){ - return typeof it == 'symbol'; -} : function(it){ - return it instanceof $Symbol; -}; - -var $defineProperty = function defineProperty(it, key, D){ - if(it === ObjectProto)$defineProperty(OPSymbols, key, D); - anObject(it); - key = toPrimitive(key, true); - anObject(D); - if(has(AllSymbols, key)){ - if(!D.enumerable){ - if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {})); - it[HIDDEN][key] = true; - } else { - if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false; - D = _create(D, {enumerable: createDesc(0, false)}); - } return setSymbolDesc(it, key, D); - } return dP(it, key, D); -}; -var $defineProperties = function defineProperties(it, P){ - anObject(it); - var keys = enumKeys(P = toIObject(P)) - , i = 0 - , l = keys.length - , key; - while(l > i)$defineProperty(it, key = keys[i++], P[key]); - return it; -}; -var $create = function create(it, P){ - return P === undefined ? _create(it) : $defineProperties(_create(it), P); -}; -var $propertyIsEnumerable = function propertyIsEnumerable(key){ - var E = isEnum.call(this, key = toPrimitive(key, true)); - if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false; - return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true; -}; -var $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){ - it = toIObject(it); - key = toPrimitive(key, true); - if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return; - var D = gOPD(it, key); - if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true; - return D; -}; -var $getOwnPropertyNames = function getOwnPropertyNames(it){ - var names = gOPN(toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key); - } return result; -}; -var $getOwnPropertySymbols = function getOwnPropertySymbols(it){ - var IS_OP = it === ObjectProto - , names = gOPN(IS_OP ? OPSymbols : toIObject(it)) - , result = [] - , i = 0 - , key; - while(names.length > i){ - if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]); - } return result; -}; - -// 19.4.1.1 Symbol([description]) -if(!USE_NATIVE){ - $Symbol = function Symbol(){ - if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!'); - var tag = uid(arguments.length > 0 ? arguments[0] : undefined); - var $set = function(value){ - if(this === ObjectProto)$set.call(OPSymbols, value); - if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false; - setSymbolDesc(this, tag, createDesc(1, value)); - }; - if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set}); - return wrap(tag); - }; - redefine($Symbol[PROTOTYPE], 'toString', function toString(){ - return this._k; - }); - - $GOPD.f = $getOwnPropertyDescriptor; - $DP.f = $defineProperty; - __webpack_require__(69).f = gOPNExt.f = $getOwnPropertyNames; - __webpack_require__(53).f = $propertyIsEnumerable; - __webpack_require__(68).f = $getOwnPropertySymbols; - - if(DESCRIPTORS && !__webpack_require__(48)){ - redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true); - } - - wksExt.f = function(name){ - return wrap(wks(name)); - } -} - -$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol}); - -for(var symbols = ( - // 19.4.2.2, 19.4.2.3, 19.4.2.4, 19.4.2.6, 19.4.2.8, 19.4.2.9, 19.4.2.10, 19.4.2.11, 19.4.2.12, 19.4.2.13, 19.4.2.14 - 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables' -).split(','), i = 0; symbols.length > i; )wks(symbols[i++]); - -for(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]); - -$export($export.S + $export.F * !USE_NATIVE, 'Symbol', { - // 19.4.2.1 Symbol.for(key) - 'for': function(key){ - return has(SymbolRegistry, key += '') - ? SymbolRegistry[key] - : SymbolRegistry[key] = $Symbol(key); - }, - // 19.4.2.5 Symbol.keyFor(sym) - keyFor: function keyFor(key){ - if(isSymbol(key))return keyOf(SymbolRegistry, key); - throw TypeError(key + ' is not a symbol!'); - }, - useSetter: function(){ setter = true; }, - useSimple: function(){ setter = false; } -}); - -$export($export.S + $export.F * !USE_NATIVE, 'Object', { - // 19.1.2.2 Object.create(O [, Properties]) - create: $create, - // 19.1.2.4 Object.defineProperty(O, P, Attributes) - defineProperty: $defineProperty, - // 19.1.2.3 Object.defineProperties(O, Properties) - defineProperties: $defineProperties, - // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) - getOwnPropertyDescriptor: $getOwnPropertyDescriptor, - // 19.1.2.7 Object.getOwnPropertyNames(O) - getOwnPropertyNames: $getOwnPropertyNames, - // 19.1.2.8 Object.getOwnPropertySymbols(O) - getOwnPropertySymbols: $getOwnPropertySymbols -}); - -// 24.3.2 JSON.stringify(value [, replacer [, space]]) -$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){ - var S = $Symbol(); - // MS Edge converts symbol values to JSON as {} - // WebKit converts symbol values to JSON as null - // V8 throws on boxed symbols - return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}'; -})), 'JSON', { - stringify: function stringify(it){ - if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined - var args = [it] - , i = 1 - , replacer, $replacer; - while(arguments.length > i)args.push(arguments[i++]); - replacer = args[1]; - if(typeof replacer == 'function')$replacer = replacer; - if($replacer || !isArray(replacer))replacer = function(key, value){ - if($replacer)value = $replacer.call(this, key, value); - if(!isSymbol(value))return value; - }; - args[1] = replacer; - return _stringify.apply($JSON, args); - } -}); - -// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint) -$Symbol[PROTOTYPE][TO_PRIMITIVE] || __webpack_require__(22)($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf); -// 19.4.3.5 Symbol.prototype[@@toStringTag] -setToStringTag($Symbol, 'Symbol'); -// 20.2.1.9 Math[@@toStringTag] -setToStringTag(Math, 'Math', true); -// 24.3.3 JSON[@@toStringTag] -setToStringTag(global.JSON, 'JSON', true); - -/***/ }), -/* 110 */ -/***/ (function(module, exports, __webpack_require__) { - -var META = __webpack_require__(32)('meta') - , isObject = __webpack_require__(26) - , has = __webpack_require__(18) - , setDesc = __webpack_require__(16).f - , id = 0; -var isExtensible = Object.isExtensible || function(){ - return true; -}; -var FREEZE = !__webpack_require__(27)(function(){ - return isExtensible(Object.preventExtensions({})); -}); -var setMeta = function(it){ - setDesc(it, META, {value: { - i: 'O' + ++id, // object ID - w: {} // weak collections IDs - }}); -}; -var fastKey = function(it, create){ - // return primitive with prefix - if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it; - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return 'F'; - // not necessary to add metadata - if(!create)return 'E'; - // add missing metadata - setMeta(it); - // return object ID - } return it[META].i; -}; -var getWeak = function(it, create){ - if(!has(it, META)){ - // can't set metadata to uncaught frozen object - if(!isExtensible(it))return true; - // not necessary to add metadata - if(!create)return false; - // add missing metadata - setMeta(it); - // return hash weak collections IDs - } return it[META].w; -}; -// add metadata on freeze-family methods calling -var onFreeze = function(it){ - if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it); - return it; -}; -var meta = module.exports = { - KEY: META, - NEED: false, - fastKey: fastKey, - getWeak: getWeak, - onFreeze: onFreeze -}; - -/***/ }), -/* 111 */ -/***/ (function(module, exports, __webpack_require__) { - -var getKeys = __webpack_require__(25) - , toIObject = __webpack_require__(14); -module.exports = function(object, el){ - var O = toIObject(object) - , keys = getKeys(O) - , length = keys.length - , index = 0 - , key; - while(length > index)if(O[key = keys[index++]] === el)return key; -}; - -/***/ }), -/* 112 */ -/***/ (function(module, exports, __webpack_require__) { - -// all enumerable object keys, includes symbols -var getKeys = __webpack_require__(25) - , gOPS = __webpack_require__(68) - , pIE = __webpack_require__(53); -module.exports = function(it){ - var result = getKeys(it) - , getSymbols = gOPS.f; - if(getSymbols){ - var symbols = getSymbols(it) - , isEnum = pIE.f - , i = 0 - , key; - while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key); - } return result; -}; - -/***/ }), -/* 113 */ -/***/ (function(module, exports, __webpack_require__) { - -// 7.2.2 IsArray(argument) -var cof = __webpack_require__(41); -module.exports = Array.isArray || function isArray(arg){ - return cof(arg) == 'Array'; -}; - -/***/ }), -/* 114 */ -/***/ (function(module, exports, __webpack_require__) { - -// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window -var toIObject = __webpack_require__(14) - , gOPN = __webpack_require__(69).f - , toString = {}.toString; - -var windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames - ? Object.getOwnPropertyNames(window) : []; - -var getWindowNames = function(it){ - try { - return gOPN(it); - } catch(e){ - return windowNames.slice(); - } -}; - -module.exports.f = function getOwnPropertyNames(it){ - return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it)); -}; - - -/***/ }), -/* 115 */ -/***/ (function(module, exports) { - - - -/***/ }), -/* 116 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(52)('asyncIterator'); - -/***/ }), -/* 117 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(52)('observable'); - -/***/ }), -/* 118 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(119); -var $Object = __webpack_require__(11).Object; -module.exports = function defineProperty(it, key, desc){ - return $Object.defineProperty(it, key, desc); -}; - -/***/ }), -/* 119 */ -/***/ (function(module, exports, __webpack_require__) { - -var $export = __webpack_require__(19); -// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes) -$export($export.S + $export.F * !__webpack_require__(20), 'Object', {defineProperty: __webpack_require__(16).f}); - -/***/ }), -/* 120 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(121), __esModule: true }; - -/***/ }), -/* 121 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(122); -module.exports = __webpack_require__(11).Object.setPrototypeOf; - -/***/ }), -/* 122 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.3.19 Object.setPrototypeOf(O, proto) -var $export = __webpack_require__(19); -$export($export.S, 'Object', {setPrototypeOf: __webpack_require__(123).set}); - -/***/ }), -/* 123 */ -/***/ (function(module, exports, __webpack_require__) { - -// Works with __proto__ only. Old v8 can't work with null proto objects. -/* eslint-disable no-proto */ -var isObject = __webpack_require__(26) - , anObject = __webpack_require__(23); -var check = function(O, proto){ - anObject(O); - if(!isObject(proto) && proto !== null)throw TypeError(proto + ": can't set as prototype!"); -}; -module.exports = { - set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line - function(test, buggy, set){ - try { - set = __webpack_require__(46)(Function.call, __webpack_require__(54).f(Object.prototype, '__proto__').set, 2); - set(test, []); - buggy = !(test instanceof Array); - } catch(e){ buggy = true; } - return function setPrototypeOf(O, proto){ - check(O, proto); - if(buggy)O.__proto__ = proto; - else set(O, proto); - return O; - }; - }({}, false) : undefined), - check: check -}; - -/***/ }), -/* 124 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(125); -var $Object = __webpack_require__(11).Object; -module.exports = function create(P, D){ - return $Object.create(P, D); -}; - -/***/ }), -/* 125 */ -/***/ (function(module, exports, __webpack_require__) { - -var $export = __webpack_require__(19) -// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) -$export($export.S, 'Object', {create: __webpack_require__(49)}); - -/***/ }), -/* 126 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = { "default": __webpack_require__(127), __esModule: true }; - -/***/ }), -/* 127 */ -/***/ (function(module, exports, __webpack_require__) { - -__webpack_require__(128); -var $Object = __webpack_require__(11).Object; -module.exports = function getOwnPropertyDescriptor(it, key){ - return $Object.getOwnPropertyDescriptor(it, key); -}; - -/***/ }), -/* 128 */ -/***/ (function(module, exports, __webpack_require__) { - -// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P) -var toIObject = __webpack_require__(14) - , $getOwnPropertyDescriptor = __webpack_require__(54).f; - -__webpack_require__(62)('getOwnPropertyDescriptor', function(){ - return function getOwnPropertyDescriptor(it, key){ - return $getOwnPropertyDescriptor(toIObject(it), key); - }; -}); - -/***/ }), -/* 129 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -// Copyright 2014 Globo.com Player authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/** - * Array.prototype.find - * - * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find - * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find - */ -if (!Array.prototype.find) { - // eslint-disable-next-line - Object.defineProperty(Array.prototype, 'find', { - // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined - value: function value(predicate) { - // 1. Let O be ? ToObject(this value). - if (this == null) throw new TypeError('"this" is null or not defined'); - - var o = Object(this); - - // 2. Let len be ? ToLength(? Get(O, "length")). - var len = o.length >>> 0; - - // 3. If IsCallable(predicate) is false, throw a TypeError exception. - 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. - var thisArg = arguments[1]; - - // 5. Let k be 0. - var k = 0; - - // 6. Repeat, while k < len - while (k < len) { - // a. Let Pk be ! ToString(k). - // b. Let kValue be ? Get(O, Pk). - // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)). - // d. If testResult is true, return kValue. - var kValue = o[k]; - if (predicate.call(thisArg, kValue, k, o)) return kValue; - - // e. Increase k by 1. - k++; - } - - // 7. Return undefined. - return undefined; - } - }); -} - -/***/ }), -/* 130 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _classCallCheck2 = __webpack_require__(0); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _vendor = __webpack_require__(56); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -var BOLD = 'font-weight: bold; font-size: 13px;'; -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -var INFO = 'color: #006600;' + BOLD; -var DEBUG = 'color: #0000ff;' + BOLD; -var WARN = 'color: #ff8000;' + BOLD; -var ERROR = 'color: #ff0000;' + BOLD; - -var LEVEL_DEBUG = 0; -var LEVEL_INFO = 1; -var LEVEL_WARN = 2; -var LEVEL_ERROR = 3; -var LEVEL_DISABLED = LEVEL_ERROR; - -var COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]; -var DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']; - -var Log = function () { - function Log() { - var _this = this; - - var level = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : LEVEL_INFO; - var offLevel = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : LEVEL_DISABLED; - (0, _classCallCheck3.default)(this, Log); - - this.kibo = new _vendor.Kibo(); - this.kibo.down(['ctrl shift d'], function () { - return _this.onOff(); - }); - this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']; - this.level = level; - this.offLevel = offLevel; - } - - Log.prototype.debug = function debug(klass) { - this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)); - }; - - Log.prototype.info = function info(klass) { - this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)); - }; - - Log.prototype.warn = function warn(klass) { - this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)); - }; - - Log.prototype.error = function error(klass) { - this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)); - }; - - Log.prototype.onOff = function onOff() { - if (this.level === this.offLevel) { - this.level = this.previousLevel; - } else { - this.previousLevel = this.level; - this.level = this.offLevel; - } - // handle instances where console.log is unavailable - if (window.console && window.console.log) window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN); - }; - - Log.prototype.level = function level(newLevel) { - this.level = newLevel; - }; - - Log.prototype.log = function log(klass, level, message) { - if (this.BLACKLIST.indexOf(message[0]) >= 0) return; - if (level < this.level) return; - - if (!message) { - message = klass; - klass = null; - } - var color = COLORS[level]; - var klassDescription = ''; - if (klass) klassDescription = '[' + klass + ']'; - - if (window.console && window.console.log) window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message)); - }; - - return Log; -}(); - -exports.default = Log; - - -Log.LEVEL_DEBUG = LEVEL_DEBUG; -Log.LEVEL_INFO = LEVEL_INFO; -Log.LEVEL_WARN = LEVEL_WARN; -Log.LEVEL_ERROR = LEVEL_ERROR; - -Log.getInstance = function () { - if (this._instance === undefined) { - this._instance = new this(); - this._instance.previousLevel = this._instance.level; - this._instance.level = this._instance.offLevel; - } - return this._instance; -}; - -Log.setLevel = function (level) { - this.getInstance().level = level; -}; - -Log.debug = function () { - this.getInstance().debug.apply(this.getInstance(), arguments); -}; -Log.info = function () { - this.getInstance().info.apply(this.getInstance(), arguments); -}; -Log.warn = function () { - this.getInstance().warn.apply(this.getInstance(), arguments); -}; -Log.error = function () { - this.getInstance().error.apply(this.getInstance(), arguments); -}; -module.exports = exports['default']; - -/***/ }), -/* 131 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); -/* eslint-disable */ -// Kibo is released under the MIT License. Copyright (c) 2013 marquete. -// see https://github.com/marquete/kibo - -var Kibo = function Kibo(element) { - this.element = element || window.document; - this.initialize(); -}; - -Kibo.KEY_NAMES_BY_CODE = { - 8: 'backspace', 9: 'tab', 13: 'enter', - 16: 'shift', 17: 'ctrl', 18: 'alt', - 20: 'caps_lock', - 27: 'esc', - 32: 'space', - 37: 'left', 38: 'up', 39: 'right', 40: 'down', - 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9', - 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j', - 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't', - 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3', - 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12' -}; - -Kibo.KEY_CODES_BY_NAME = {}; -(function () { - for (var key in Kibo.KEY_NAMES_BY_CODE) { - if (Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) { - Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key; - } - } -})(); - -Kibo.MODIFIERS = ['shift', 'ctrl', 'alt']; - -Kibo.registerEvent = function () { - if (document.addEventListener) { - return function (element, eventName, func) { - element.addEventListener(eventName, func, false); - }; - } else if (document.attachEvent) { - return function (element, eventName, func) { - element.attachEvent('on' + eventName, func); - }; - } -}(); - -Kibo.unregisterEvent = function () { - if (document.removeEventListener) { - return function (element, eventName, func) { - element.removeEventListener(eventName, func, false); - }; - } else if (document.detachEvent) { - return function (element, eventName, func) { - element.detachEvent('on' + eventName, func); - }; - } -}(); - -Kibo.stringContains = function (string, substring) { - return string.indexOf(substring) !== -1; -}; - -Kibo.neatString = function (string) { - return string.replace(/^\s+|\s+$/g, '').replace(/\s+/g, ' '); -}; - -Kibo.capitalize = function (string) { - return string.toLowerCase().replace(/^./, function (match) { - return match.toUpperCase(); - }); -}; - -Kibo.isString = function (what) { - return Kibo.stringContains(Object.prototype.toString.call(what), 'String'); -}; - -Kibo.arrayIncludes = function () { - if (Array.prototype.indexOf) { - return function (haystack, needle) { - return haystack.indexOf(needle) !== -1; - }; - } else { - return function (haystack, needle) { - for (var i = 0; i < haystack.length; i++) { - if (haystack[i] === needle) { - return true; - } - } - return false; - }; - } -}(); - -Kibo.extractModifiers = function (keyCombination) { - var modifiers, i; - modifiers = []; - for (i = 0; i < Kibo.MODIFIERS.length; i++) { - if (Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) { - modifiers.push(Kibo.MODIFIERS[i]); - } - } - return modifiers; -}; - -Kibo.extractKey = function (keyCombination) { - var keys, i; - keys = Kibo.neatString(keyCombination).split(' '); - for (i = 0; i < keys.length; i++) { - if (!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) { - return keys[i]; - } - } -}; - -Kibo.modifiersAndKey = function (keyCombination) { - var result, key; - - if (Kibo.stringContains(keyCombination, 'any')) { - return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' '); - } - - result = Kibo.extractModifiers(keyCombination); - - key = Kibo.extractKey(keyCombination); - if (key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) { - result.push(key); - } - - return result.join(' '); -}; - -Kibo.keyName = function (keyCode) { - return Kibo.KEY_NAMES_BY_CODE[keyCode + '']; -}; - -Kibo.keyCode = function (keyName) { - return +Kibo.KEY_CODES_BY_NAME[keyName]; -}; - -Kibo.prototype.initialize = function () { - var i, - that = this; - - this.lastKeyCode = -1; - this.lastModifiers = {}; - for (i = 0; i < Kibo.MODIFIERS.length; i++) { - this.lastModifiers[Kibo.MODIFIERS[i]] = false; - } - - this.keysDown = { any: [] }; - this.keysUp = { any: [] }; - this.downHandler = this.handler('down'); - this.upHandler = this.handler('up'); - - Kibo.registerEvent(this.element, 'keydown', this.downHandler); - Kibo.registerEvent(this.element, 'keyup', this.upHandler); - Kibo.registerEvent(window, 'unload', function unloader() { - Kibo.unregisterEvent(that.element, 'keydown', that.downHandler); - Kibo.unregisterEvent(that.element, 'keyup', that.upHandler); - Kibo.unregisterEvent(window, 'unload', unloader); - }); -}; - -Kibo.prototype.handler = function (upOrDown) { - var that = this; - return function (e) { - var i, registeredKeys, lastModifiersAndKey; - - e = e || window.event; - - that.lastKeyCode = e.keyCode; - for (i = 0; i < Kibo.MODIFIERS.length; i++) { - that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key']; - } - if (Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) { - that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true; - } - - registeredKeys = that['keys' + Kibo.capitalize(upOrDown)]; - - for (i = 0; i < registeredKeys.any.length; i++) { - if (registeredKeys.any[i](e) === false && e.preventDefault) { - e.preventDefault(); - } - } - - lastModifiersAndKey = that.lastModifiersAndKey(); - if (registeredKeys[lastModifiersAndKey]) { - for (i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) { - if (registeredKeys[lastModifiersAndKey][i](e) === false && e.preventDefault) { - e.preventDefault(); - } - } - } - }; -}; - -Kibo.prototype.registerKeys = function (upOrDown, newKeys, func) { - var i, - keys, - registeredKeys = this['keys' + Kibo.capitalize(upOrDown)]; - - if (Kibo.isString(newKeys)) { - newKeys = [newKeys]; - } - - for (i = 0; i < newKeys.length; i++) { - keys = newKeys[i]; - keys = Kibo.modifiersAndKey(keys + ''); - - if (registeredKeys[keys]) { - registeredKeys[keys].push(func); - } else { - registeredKeys[keys] = [func]; - } - } - - return this; -}; - -// jshint maxdepth:5 -Kibo.prototype.unregisterKeys = function (upOrDown, newKeys, func) { - var i, - j, - keys, - registeredKeys = this['keys' + Kibo.capitalize(upOrDown)]; - - if (Kibo.isString(newKeys)) { - newKeys = [newKeys]; - } - - for (i = 0; i < newKeys.length; i++) { - keys = newKeys[i]; - keys = Kibo.modifiersAndKey(keys + ''); - - if (func === null) { - delete registeredKeys[keys]; - } else { - if (registeredKeys[keys]) { - for (j = 0; j < registeredKeys[keys].length; j++) { - if (String(registeredKeys[keys][j]) === String(func)) { - registeredKeys[keys].splice(j, 1); - break; - } - } - } - } - } - - return this; -}; - -Kibo.prototype.off = function (keys) { - return this.unregisterKeys('down', keys, null); -}; - -Kibo.prototype.delegate = function (upOrDown, keys, func) { - return func !== null || func !== undefined ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func); -}; - -Kibo.prototype.down = function (keys, func) { - return this.delegate('down', keys, func); -}; - -Kibo.prototype.up = function (keys, func) { - return this.delegate('up', keys, func); -}; - -Kibo.prototype.lastKey = function (modifier) { - if (!modifier) { - return Kibo.keyName(this.lastKeyCode); - } - - return this.lastModifiers[modifier]; -}; - -Kibo.prototype.lastModifiersAndKey = function () { - var result, i; - - result = []; - for (i = 0; i < Kibo.MODIFIERS.length; i++) { - if (this.lastKey(Kibo.MODIFIERS[i])) { - result.push(Kibo.MODIFIERS[i]); - } - } - - if (!Kibo.arrayIncludes(result, this.lastKey())) { - result.push(this.lastKey()); - } - - return result.join(' '); -}; - -exports.default = Kibo; -module.exports = exports['default']; - -/***/ }), -/* 132 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _core_factory = __webpack_require__(133); - -var _core_factory2 = _interopRequireDefault(_core_factory); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _core_factory2.default; -module.exports = exports['default']; - -/***/ }), -/* 133 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _classCallCheck2 = __webpack_require__(0); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _possibleConstructorReturn2 = __webpack_require__(1); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _createClass2 = __webpack_require__(3); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _inherits2 = __webpack_require__(2); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _base_object = __webpack_require__(17); - -var _base_object2 = _interopRequireDefault(_base_object); - -var _core = __webpack_require__(72); - -var _core2 = _interopRequireDefault(_core); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * The Core Factory is responsible for instantiate the core and it's plugins. - * @class CoreFactory - * @constructor - * @extends BaseObject - * @module components - */ -// Copyright 2014 Globo.com Player authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -var CoreFactory = function (_BaseObject) { - (0, _inherits3.default)(CoreFactory, _BaseObject); - (0, _createClass3.default)(CoreFactory, [{ - key: 'loader', - get: function get() { - return this.player.loader; - } - - /** - * it builds the core factory - * @method constructor - * @param {Player} player the player object - */ - - }]); - - function CoreFactory(player) { - (0, _classCallCheck3.default)(this, CoreFactory); - - var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this)); - - _this.player = player; - _this._options = player.options; - return _this; - } - - /** - * creates a core and its plugins - * @method create - * @return {Core} created core - */ - - - CoreFactory.prototype.create = function create() { - this.options.loader = this.loader; - this.core = new _core2.default(this.options); - this.addCorePlugins(); - this.core.createContainers(this.options); - return this.core; - }; - - /** - * given the core plugins (`loader.corePlugins`) it builds each one - * @method addCorePlugins - * @return {Core} the core with all plugins - */ - - - CoreFactory.prototype.addCorePlugins = function addCorePlugins() { - var _this2 = this; - - this.loader.corePlugins.forEach(function (Plugin) { - var plugin = new Plugin(_this2.core); - _this2.core.addPlugin(plugin); - _this2.setupExternalInterface(plugin); - }); - return this.core; - }; - - CoreFactory.prototype.setupExternalInterface = function setupExternalInterface(plugin) { - var externalFunctions = plugin.getExternalInterface(); - for (var key in externalFunctions) { - this.player[key] = externalFunctions[key].bind(plugin); - } - }; - - return CoreFactory; -}(_base_object2.default); - -exports.default = CoreFactory; -module.exports = exports['default']; - -/***/ }), -/* 134 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _classCallCheck2 = __webpack_require__(0); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _possibleConstructorReturn2 = __webpack_require__(1); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _createClass2 = __webpack_require__(3); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _inherits2 = __webpack_require__(2); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _utils = __webpack_require__(5); - -var _events = __webpack_require__(4); - -var _events2 = _interopRequireDefault(_events); - -var _ui_object = __webpack_require__(21); - -var _ui_object2 = _interopRequireDefault(_ui_object); - -var _browser = __webpack_require__(13); - -var _browser2 = _interopRequireDefault(_browser); - -var _container_factory = __webpack_require__(135); - -var _container_factory2 = _interopRequireDefault(_container_factory); - -var _media_control = __webpack_require__(74); - -var _media_control2 = _interopRequireDefault(_media_control); - -var _mediator = __webpack_require__(24); - -var _mediator2 = _interopRequireDefault(_mediator); - -var _player_info = __webpack_require__(34); - -var _player_info2 = _interopRequireDefault(_player_info); - -var _styler = __webpack_require__(77); - -var _styler2 = _interopRequireDefault(_styler); - -var _clapprZepto = __webpack_require__(6); - -var _clapprZepto2 = _interopRequireDefault(_clapprZepto); - -__webpack_require__(153); - -var _fonts = __webpack_require__(155); - -var _fonts2 = _interopRequireDefault(_fonts); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Copyright 2014 Globo.com Player authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -var style = void 0; - -/** - * The Core is responsible to manage Containers, the mediator, MediaControl - * and the player state. - * @class Core - * @constructor - * @extends UIObject - * @module components - */ - -var Core = function (_UIObject) { - (0, _inherits3.default)(Core, _UIObject); - (0, _createClass3.default)(Core, [{ - key: 'events', - get: function get() { - return { - 'webkitfullscreenchange': 'handleFullscreenChange', - 'mousemove': 'showMediaControl', - 'mouseleave': 'hideMediaControl' - }; - } - }, { - key: 'attributes', - get: function get() { - return { - 'data-player': '', - tabindex: 9999 - }; - } - - /** - * checks if the core is ready. - * @property isReady - * @type {Boolean} `true` if the core is ready, otherwise `false` - */ - - }, { - key: 'isReady', - get: function get() { - return !!this.ready; - } - - /** - * The internationalization plugin. - * @property i18n - * @type {Strings} - */ - - }, { - key: 'i18n', - get: function get() { - return this.getPlugin('strings') || { t: function t(key) { - return key; - } }; - } - }]); - - function Core(options) { - (0, _classCallCheck3.default)(this, Core); - - var _this = (0, _possibleConstructorReturn3.default)(this, _UIObject.call(this, options)); - - _this.configureDomRecycler(); - _this.playerInfo = _player_info2.default.getInstance(options.playerId); - _this.firstResize = true; - _this.plugins = []; - _this.containers = []; - _this.setupMediaControl(null); - //FIXME fullscreen api sucks - _this._boundFullscreenHandler = function () { - return _this.handleFullscreenChange(); - }; - (0, _clapprZepto2.default)(document).bind('fullscreenchange', _this._boundFullscreenHandler); - (0, _clapprZepto2.default)(document).bind('MSFullscreenChange', _this._boundFullscreenHandler); - (0, _clapprZepto2.default)(document).bind('mozfullscreenchange', _this._boundFullscreenHandler); - _browser2.default.isMobile && (0, _clapprZepto2.default)(window).bind('resize', function (o) { - _this.handleWindowResize(o); - }); - return _this; - } - - Core.prototype.configureDomRecycler = function configureDomRecycler() { - var recycleVideo = this.options && this.options.playback && this.options.playback.recycleVideo ? true : false; - _utils.DomRecycler.configure({ - recycleVideo: recycleVideo - }); - }; - - Core.prototype.createContainers = function createContainers(options) { - var _this2 = this; - - this.defer = _clapprZepto2.default.Deferred(); - this.defer.promise(this); - this.containerFactory = new _container_factory2.default(options, options.loader, this.i18n); - this.containerFactory.createContainers().then(function (containers) { - return _this2.setupContainers(containers); - }).then(function (containers) { - return _this2.resolveOnContainersReady(containers); - }); - }; - - Core.prototype.updateSize = function updateSize() { - if (_utils.Fullscreen.isFullscreen()) this.setFullscreen();else this.setPlayerSize(); - }; - - Core.prototype.setFullscreen = function setFullscreen() { - if (!_browser2.default.isiOS) { - this.$el.addClass('fullscreen'); - this.$el.removeAttr('style'); - this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }; - this.playerInfo.currentSize = { width: (0, _clapprZepto2.default)(window).width(), height: (0, _clapprZepto2.default)(window).height() }; - } - }; - - Core.prototype.setPlayerSize = function setPlayerSize() { - this.$el.removeClass('fullscreen'); - this.playerInfo.currentSize = this.playerInfo.previousSize; - this.playerInfo.previousSize = { width: (0, _clapprZepto2.default)(window).width(), height: (0, _clapprZepto2.default)(window).height() }; - this.resize(this.playerInfo.currentSize); - }; - - Core.prototype.resize = function resize(options) { - if (!(0, _utils.isNumber)(options.height) && !(0, _utils.isNumber)(options.width)) { - this.el.style.height = '' + options.height; - this.el.style.width = '' + options.width; - } else { - this.el.style.height = options.height + 'px'; - this.el.style.width = options.width + 'px'; - } - this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }; - this.options.width = options.width; - this.options.height = options.height; - this.playerInfo.currentSize = options; - this.triggerResize(this.playerInfo.currentSize); - }; - - Core.prototype.enableResizeObserver = function enableResizeObserver() { - var _this3 = this; - - var checkSizeCallback = function checkSizeCallback() { - if (_this3.playerInfo.computedSize.width !== _this3.el.clientWidth || _this3.playerInfo.computedSize.height !== _this3.el.clientHeight) { - _this3.playerInfo.computedSize = { width: _this3.el.clientWidth, height: _this3.el.clientHeight }; - _this3.triggerResize(_this3.playerInfo.computedSize); - } - }; - this.resizeObserverInterval = setInterval(checkSizeCallback, 500); - }; - - Core.prototype.triggerResize = function triggerResize(newSize) { - var thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width; - if (thereWasChange) { - _mediator2.default.trigger(this.options.playerId + ':' + _events2.default.PLAYER_RESIZE, newSize); - this.oldHeight = newSize.height; - this.oldWidth = newSize.width; - this.firstResize = false; - } - }; - - Core.prototype.disableResizeObserver = function disableResizeObserver() { - if (this.resizeObserverInterval) clearInterval(this.resizeObserverInterval); - }; - - Core.prototype.resolveOnContainersReady = function resolveOnContainersReady(containers) { - var _this4 = this; - - _clapprZepto2.default.when.apply(_clapprZepto2.default, containers).done(function () { - _this4.defer.resolve(_this4); - _this4.ready = true; - _this4.trigger(_events2.default.CORE_READY); - }); - }; - - Core.prototype.addPlugin = function addPlugin(plugin) { - this.plugins.push(plugin); - }; - - Core.prototype.hasPlugin = function hasPlugin(name) { - return !!this.getPlugin(name); - }; - - Core.prototype.getPlugin = function getPlugin(name) { - return this.plugins.filter(function (plugin) { - return plugin.name === name; - })[0]; - }; - - Core.prototype.load = function load(sources, mimeType) { - var _this5 = this; - - this.options.mimeType = mimeType; - sources = sources && sources.constructor === Array ? sources : [sources]; - this.containers.forEach(function (container) { - return container.destroy(); - }); - this.mediaControl.container = null; - this.containerFactory.options = _clapprZepto2.default.extend(this.options, { sources: sources }); - this.containerFactory.createContainers().then(function (containers) { - _this5.setupContainers(containers); - }); - }; - - Core.prototype.destroy = function destroy() { - this.disableResizeObserver(); - this.containers.forEach(function (container) { - return container.destroy(); - }); - this.plugins.forEach(function (plugin) { - return plugin.destroy(); - }); - this.$el.remove(); - this.mediaControl.destroy(); - (0, _clapprZepto2.default)(document).unbind('fullscreenchange', this._boundFullscreenHandler); - (0, _clapprZepto2.default)(document).unbind('MSFullscreenChange', this._boundFullscreenHandler); - (0, _clapprZepto2.default)(document).unbind('mozfullscreenchange', this._boundFullscreenHandler); - }; - - Core.prototype.handleFullscreenChange = function handleFullscreenChange() { - this.trigger(_events2.default.CORE_FULLSCREEN, _utils.Fullscreen.isFullscreen()); - this.updateSize(); - this.mediaControl.show(); - }; - - Core.prototype.handleWindowResize = function handleWindowResize(event) { - var orientation = (0, _clapprZepto2.default)(window).width() > (0, _clapprZepto2.default)(window).height() ? 'landscape' : 'portrait'; - if (this._screenOrientation === orientation) return; - this._screenOrientation = orientation; - - this.trigger(_events2.default.CORE_SCREEN_ORIENTATION_CHANGED, { - event: event, - orientation: this._screenOrientation - }); - }; - - Core.prototype.setMediaControlContainer = function setMediaControlContainer(container) { - this.mediaControl.setContainer(container); - this.mediaControl.render(); - }; - - Core.prototype.disableMediaControl = function disableMediaControl() { - this.mediaControl.disable(); - this.$el.removeClass('nocursor'); - }; - - Core.prototype.enableMediaControl = function enableMediaControl() { - this.mediaControl.enable(); - }; - - Core.prototype.removeContainer = function removeContainer(container) { - this.stopListening(container); - this.containers = this.containers.filter(function (c) { - return c !== container; - }); - }; - - Core.prototype.appendContainer = function appendContainer(container) { - this.listenTo(container, _events2.default.CONTAINER_DESTROYED, this.removeContainer); - this.containers.push(container); - }; - - Core.prototype.setupContainers = function setupContainers(containers) { - containers.map(this.appendContainer.bind(this)); - this.trigger(_events2.default.CORE_CONTAINERS_CREATED); - this.renderContainers(); - this.setupMediaControl(this.getCurrentContainer()); - this.render(); - this.appendToParent(); - return this.containers; - }; - - Core.prototype.renderContainers = function renderContainers() { - var _this6 = this; - - this.containers.map(function (container) { - return _this6.el.appendChild(container.render().el); - }); - }; - - Core.prototype.createContainer = function createContainer(source, options) { - var container = this.containerFactory.createContainer(source, options); - this.appendContainer(container); - this.el.appendChild(container.render().el); - return container; - }; - - Core.prototype.setupMediaControl = function setupMediaControl(container) { - if (this.mediaControl) { - this.mediaControl.setContainer(container); - } else { - this.mediaControl = this.createMediaControl(_clapprZepto2.default.extend({ container: container, focusElement: this.el }, this.options)); - this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen); - this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true)); - this.listenTo(this.mediaControl, _events2.default.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false)); - } - }; - - Core.prototype.createMediaControl = function createMediaControl(options) { - if (options.mediacontrol && options.mediacontrol.external) return new options.mediacontrol.external(options).render();else return new _media_control2.default(options).render(); - }; - - Core.prototype.getCurrentContainer = function getCurrentContainer() { - if (!this.mediaControl || !this.mediaControl.container) return this.containers[0]; - - return this.mediaControl.container; - }; - - Core.prototype.getCurrentPlayback = function getCurrentPlayback() { - var container = this.getCurrentContainer(); - return container && container.playback; - }; - - Core.prototype.getPlaybackType = function getPlaybackType() { - var container = this.getCurrentContainer(); - return container && container.getPlaybackType(); - }; - - Core.prototype.toggleFullscreen = function toggleFullscreen() { - if (!_utils.Fullscreen.isFullscreen()) { - _utils.Fullscreen.requestFullscreen(this.el); - if (!_browser2.default.isiOS) this.$el.addClass('fullscreen'); - } else { - _utils.Fullscreen.cancelFullscreen(); - if (!_browser2.default.isiOS) this.$el.removeClass('fullscreen nocursor'); - } - this.mediaControl.show(); - }; - - Core.prototype.showMediaControl = function showMediaControl(event) { - this.mediaControl.show(event); - }; - - Core.prototype.hideMediaControl = function hideMediaControl() { - this.mediaControl.hide(this.options.hideMediaControlDelay); - }; - - Core.prototype.onMediaControlShow = function onMediaControlShow(showing) { - this.getCurrentContainer().trigger(showing ? _events2.default.CONTAINER_MEDIACONTROL_SHOW : _events2.default.CONTAINER_MEDIACONTROL_HIDE); - - if (showing) this.$el.removeClass('nocursor');else if (_utils.Fullscreen.isFullscreen()) this.$el.addClass('nocursor'); - }; - - /** - * enables to configure the container after its creation - * @method configure - * @param {Object} options all the options to change in form of a javascript object - */ - - - Core.prototype.configure = function configure(options) { - var _this7 = this; - - this._options = _clapprZepto2.default.extend(this._options, options); - this.configureDomRecycler(); - var sources = options.source || options.sources; - - if (sources) { - this.load(sources, options.mimeType || this.options.mimeType); - } else { - this.trigger(_events2.default.CORE_OPTIONS_CHANGE); - - this.containers.forEach(function (container) { - container.configure(_this7.options); - }); - } - }; - - Core.prototype.appendToParent = function appendToParent() { - var hasCoreParent = this.$el.parent() && this.$el.parent().length; - !hasCoreParent && this.$el.appendTo(this.options.parentElement); - }; - - Core.prototype.render = function render() { - this.$el.append(this.mediaControl.render().el); - - if (!style) style = _styler2.default.getStyleFor(_fonts2.default, { baseUrl: this.options.baseUrl }); - - (0, _clapprZepto2.default)('head').append(style); - - this.options.width = this.options.width || this.$el.width(); - this.options.height = this.options.height || this.$el.height(); - var size = { width: this.options.width, height: this.options.height }; - this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size; - this.updateSize(); - - this.previousSize = { width: this.$el.width(), height: this.$el.height() }; - - this.enableResizeObserver(); - - return this; - }; - - return Core; -}(_ui_object2.default); - -exports.default = Core; -module.exports = exports['default']; - -/***/ }), -/* 135 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _container_factory = __webpack_require__(136); - -var _container_factory2 = _interopRequireDefault(_container_factory); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -exports.default = _container_factory2.default; -module.exports = exports['default']; - -/***/ }), -/* 136 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _typeof2 = __webpack_require__(33); - -var _typeof3 = _interopRequireDefault(_typeof2); - -var _classCallCheck2 = __webpack_require__(0); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _possibleConstructorReturn2 = __webpack_require__(1); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _createClass2 = __webpack_require__(3); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _inherits2 = __webpack_require__(2); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _base_object = __webpack_require__(17); - -var _base_object2 = _interopRequireDefault(_base_object); - -var _events = __webpack_require__(4); - -var _events2 = _interopRequireDefault(_events); - -var _container = __webpack_require__(73); - -var _container2 = _interopRequireDefault(_container); - -var _clapprZepto = __webpack_require__(6); - -var _clapprZepto2 = _interopRequireDefault(_clapprZepto); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -// Copyright 2014 Globo.com Player authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/** - * The ContainerFactory is responsible for manage playback bootstrap and create containers. - */ - -var ContainerFactory = function (_BaseObject) { - (0, _inherits3.default)(ContainerFactory, _BaseObject); - (0, _createClass3.default)(ContainerFactory, [{ - key: 'options', - get: function get() { - return this._options; - }, - set: function set(options) { - this._options = options; - } - }]); - - function ContainerFactory(options, loader, i18n) { - (0, _classCallCheck3.default)(this, ContainerFactory); - - var _this = (0, _possibleConstructorReturn3.default)(this, _BaseObject.call(this, options)); - - _this._i18n = i18n; - _this.loader = loader; - return _this; - } - - ContainerFactory.prototype.createContainers = function createContainers() { - var _this2 = this; - - return _clapprZepto2.default.Deferred(function (promise) { - promise.resolve(_this2.options.sources.map(function (source) { - return _this2.createContainer(source); - })); - }); - }; - - ContainerFactory.prototype.findPlaybackPlugin = function findPlaybackPlugin(source, mimeType) { - return this.loader.playbackPlugins.filter(function (p) { - return p.canPlay(source, mimeType); - })[0]; - }; - - ContainerFactory.prototype.createContainer = function createContainer(source) { - var resolvedSource = null, - mimeType = this.options.mimeType; - if ((typeof source === 'undefined' ? 'undefined' : (0, _typeof3.default)(source)) === 'object') { - resolvedSource = source.source.toString(); - if (source.mimeType) mimeType = source.mimeType; - } else { - resolvedSource = source.toString(); - } - - if (resolvedSource.match(/^\/\//)) resolvedSource = window.location.protocol + resolvedSource; - - var options = _clapprZepto2.default.extend({}, this.options, { - src: resolvedSource, - mimeType: mimeType - }); - var playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType); - var playback = new playbackPlugin(options, this._i18n); - - options = _clapprZepto2.default.extend({}, options, { playback: playback }); - - var container = new _container2.default(options, this._i18n); - var defer = _clapprZepto2.default.Deferred(); - defer.promise(container); - this.addContainerPlugins(container); - this.listenToOnce(container, _events2.default.CONTAINER_READY, function () { - return defer.resolve(container); - }); - return container; - }; - - ContainerFactory.prototype.addContainerPlugins = function addContainerPlugins(container) { - this.loader.containerPlugins.forEach(function (Plugin) { - container.addPlugin(new Plugin(container)); - }); - }; - - return ContainerFactory; -}(_base_object2.default); - -exports.default = ContainerFactory; -module.exports = exports['default']; - -/***/ }), -/* 137 */ -/***/ (function(module, exports, __webpack_require__) { - -"use strict"; - - -Object.defineProperty(exports, "__esModule", { - value: true -}); - -var _classCallCheck2 = __webpack_require__(0); - -var _classCallCheck3 = _interopRequireDefault(_classCallCheck2); - -var _possibleConstructorReturn2 = __webpack_require__(1); - -var _possibleConstructorReturn3 = _interopRequireDefault(_possibleConstructorReturn2); - -var _createClass2 = __webpack_require__(3); - -var _createClass3 = _interopRequireDefault(_createClass2); - -var _inherits2 = __webpack_require__(2); - -var _inherits3 = _interopRequireDefault(_inherits2); - -var _events = __webpack_require__(4); - -var _events2 = _interopRequireDefault(_events); - -var _ui_object = __webpack_require__(21); - -var _ui_object2 = _interopRequireDefault(_ui_object); - -__webpack_require__(138); - -var _clapprZepto = __webpack_require__(6); - -var _clapprZepto2 = _interopRequireDefault(_clapprZepto); - -function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; } - -/** - * An abstraction to represent a container for a given playback - * TODO: describe its responsabilities - * @class Container - * @constructor - * @extends UIObject - * @module base - */ -// Copyright 2014 Globo.com Player authors. All rights reserved. -// Use of this source code is governed by a BSD-style -// license that can be found in the LICENSE file. - -/** - * Container is responsible for the video rendering and state - */ - -var Container = function (_UIObject) { - (0, _inherits3.default)(Container, _UIObject); - (0, _createClass3.default)(Container, [{ - key: 'name', - - /** - * container's name - * @method name - * @default Container - * @return {String} container's name - */ - get: function get() { - return 'Container'; - } - }, { - key: 'attributes', - get: function get() { - return { class: 'container', 'data-container': '' }; - } - }, { - key: 'events', - get: function get() { - return { - 'click': 'clicked', - 'dblclick': 'dblClicked', - 'doubleTap': 'dblClicked', - 'contextmenu': 'onContextMenu', - 'mouseenter': 'mouseEnter', - 'mouseleave': 'mouseLeave' - }; - } - - /** - * Determine if the playback has ended. - * @property ended - * @type Boolean - */ - - }, { - key: 'ended', - get: function get() { - return this.playback.ended; - } - - /** - * Determine if the playback is having to buffer in order for - * playback to be smooth. - * (i.e if a live stream is playing smoothly, this will be false) - * @property buffering - * @type Boolean - */ - - }, { - key: 'buffering', - get: function get() { - return this.playback.buffering; - } - - /** - * The internationalization plugin. - * @property i18n - * @type {Strings} - */ - - }, { - key: 'i18n', - get: function get() { - return this._i18n; - } - - /** - * checks if has closed caption tracks. - * @property hasClosedCaptionsTracks - * @type {Boolean} - */ - - }, { - key: 'hasClosedCaptionsTracks', - get: function get() { - return this.playback.hasClosedCaptionsTracks; - } - - /** - * gets the available closed caption tracks. - * @property closedCaptionsTracks - * @type {Array} an array of objects with at least 'id' and 'name' properties - */ - - }, { - key: 'closedCaptionsTracks', - get: function get() { - return this.playback.closedCaptionsTracks; - } - - /** - * gets the selected closed caption track index. (-1 is disabled) - * @property closedCaptionsTrackId - * @type {Number} - */ - - }, { - key: 'closedCaptionsTrackId', - get: function get() { - return this.playback.closedCaptionsTrackId; - } - - /** - * sets the selected closed caption track index. (-1 is disabled) - * @property closedCaptionsTrackId - * @type {Number} - */ - , - set: function set(trackId) { - this.playback.closedCaptionsTrackId = trackId; - } - - /** - * it builds a container - * @method constructor - * @param {Object} options the options object - * @param {Strings} i18n the internationalization component - */ - - }]); - - function Container(options, i18n) { - (0, _classCallCheck3.default)(this, Container); - - var _this = (0, _possibleConstructorReturn3.default)(this, _UIObject.call(this, options)); - - _this._i18n = i18n; - _this.currentTime = 0; - _this.volume = 100; - _this.playback = options.playback; - _this.settings = _clapprZepto2.default.extend({}, _this.playback.settings); - _this.isReady = false; - _this.mediaControlDisabled = false; - _this.plugins = [_this.playback]; - _this.bindEvents(); - return _this; - } - - /** - * binds playback events to the methods of the container. - * it listens to playback's events and triggers them as container events. - * - * | Playback | - * |----------| - * | progress | - * | timeupdate | - * | ready | - * | buffering | - * | bufferfull | - * | settingsupdate | - * | loadedmetadata | - * | highdefinitionupdate | - * | bitrate | - * | playbackstate | - * | dvr | - * | mediacontrol_disable | - * | mediacontrol_enable | - * | ended | - * | play | - * | pause | - * | error | - * - * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class. - * - * @method bindEvents - */ - - - Container.prototype.bindEvents = function bindEvents() { - this.listenTo(this.playback, _events2.default.PLAYBACK_PROGRESS, this.progress); - this.listenTo(this.playback, _events2.default.PLAYBACK_TIMEUPDATE, this.timeUpdated); - this.listenTo(this.playback, _events2.default.PLAYBACK_READY, this.ready); - this.listenTo(this.playback, _events2.default.PLAYBACK_BUFFERING, this.onBuffering); - this.listenTo(this.playback, _events2.default.PLAYBACK_BUFFERFULL, this.bufferfull); - this.listenTo(this.playback, _events2.default.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate); - this.listenTo(this.playback, _events2.default.PLAYBACK_LOADEDMETADATA, this.loadedMetadata); - this.listenTo(this.playback, _events2.default.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate); - this.listenTo(this.playback, _events2.default.PLAYBACK_BITRATE, this.updateBitrate); - this.listenTo(this.playback, _events2.default.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged); - this.listenTo(this.playback, _events2.default.PLAYBACK_DVR, this.playbackDvrStateChanged); - this.listenTo(this.playback, _events2.default.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl); - this.listenTo(this.playback, _events2.default.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl); - this.listenTo(this.playback, _events2.default.PLAYBACK_SEEKED, this.onSeeked); - this.listenTo(this.playback, _events2.default.PLAYBACK_ENDED, this.onEnded); - this.listenTo(this.playback, _events2.default.PLAYBACK_PLAY, this.playing); - this.listenTo(this.playback, _events2.default.PLAYBACK_PAUSE, this.paused); - this.listenTo(this.playback, _events2.default.PLAYBACK_STOP, this.stopped); - this.listenTo(this.playback, _events2.default.PLAYBACK_ERROR, this.error); - this.listenTo(this.playback, _events2.default.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable); - this.listenTo(this.playback, _events2.default.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged); - }; - - Container.prototype.subtitleAvailable = function subtitleAvailable() { - this.trigger(_events2.default.CONTAINER_SUBTITLE_AVAILABLE); - }; - - Container.prototype.subtitleChanged = function subtitleChanged(track) { - this.trigger(_events2.default.CONTAINER_SUBTITLE_CHANGED, track); - }; - - Container.prototype.playbackStateChanged = function playbackStateChanged(state) { - this.trigger(_events2.default.CONTAINER_PLAYBACKSTATE, state); - }; - - Container.prototype.playbackDvrStateChanged = function playbackDvrStateChanged(dvrInUse) { - this.settings = this.playback.settings; - this.dvrInUse = dvrInUse; - this.trigger(_events2.default.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse); - }; - - Container.prototype.updateBitrate = function updateBitrate(newBitrate) { - this.trigger(_events2.default.CONTAINER_BITRATE, newBitrate); - }; - - Container.prototype.statsReport = function statsReport(metrics) { - this.trigger(_events2.default.CONTAINER_STATS_REPORT, metrics); - }; - - Container.prototype.getPlaybackType = function getPlaybackType() { - return this.playback.getPlaybackType(); - }; - - /** - * returns `true` if DVR is enable otherwise `false`. - * @method isDvrEnabled - * @return {Boolean} - */ - - - Container.prototype.isDvrEnabled = function isDvrEnabled() { - return !!this.playback.dvrEnabled; - }; - - /** - * returns `true` if DVR is in use otherwise `false`. - * @method isDvrInUse - * @return {Boolean} - */ - - - Container.prototype.isDvrInUse = function isDvrInUse() { - return !!this.dvrInUse; - }; - - /** - * destroys the container - * @method destroy - */ - - - Container.prototype.destroy = function destroy() { - this.trigger(_events2.default.CONTAINER_DESTROYED, this, this.name); - this.stopListening(); - this.plugins.forEach(function (plugin) { - return plugin.destroy(); - }); - this.$el.remove(); - }; - - Container.prototype.setStyle = function setStyle(style) { - this.$el.css(style); - }; - - Container.prototype.animate = function animate(style, duration) { - return this.$el.animate(style, duration).promise(); - }; - - Container.prototype.ready = function ready() { - this.isReady = true; - this.trigger(_events2.default.CONTAINER_READY, this.name); - }; - - Container.prototype.isPlaying = function isPlaying() { - return this.playback.isPlaying(); - }; - - Container.prototype.getStartTimeOffset = function getStartTimeOffset() { - return this.playback.getStartTimeOffset(); - }; - - Container.prototype.getCurrentTime = function getCurrentTime() { - return this.currentTime; - }; - - Container.prototype.getDuration = function getDuration() { - return this.playback.getDuration(); - }; - - Container.prototype.error = function error(errorObj) { - if (!this.isReady) this.ready(); - - this.trigger(_events2.default.CONTAINER_ERROR, { error: errorObj, container: this }, this.name); - }; - - Container.prototype.loadedMetadata = function loadedMetadata(metadata) { - this.trigger(_events2.default.CONTAINER_LOADEDMETADATA, metadata); - }; - - Container.prototype.timeUpdated = function timeUpdated(timeProgress) { - this.currentTime = timeProgress.current; - this.trigger(_events2.default.CONTAINER_TIMEUPDATE, timeProgress, this.name); - }; - - Container.prototype.progress = function progress() { - for (var _len = arguments.length, args = Array(_len), _key = 0; _key < _len; _key++) { - args[_key] = arguments[_key]; - } - - this.trigger.apply(this, [_events2.default.CONTAINER_PROGRESS].concat(args, [this.name])); - }; - - Container.prototype.playing = function playing() { - this.trigger(_events2.default.CONTAINER_PLAY, this.name); - }; - - Container.prototype.paused = function paused() { - this.trigger(_events2.default.CONTAINER_PAUSE, this.name); - }; - - /** - * plays the playback - * @method play - */ - - - Container.prototype.play = function play() { - this.playback.play(); - }; - - /** - * stops the playback - * @method stop - */ - - - Container.prototype.stop = function stop() { - this.playback.stop(); - this.currentTime = 0; - }; - - /** - * pauses the playback - * @method pause - */ - - - Container.prototype.pause = function pause() { - this.playback.pause(); - }; - - Container.prototype.onEnded = function onEnded() { - this.trigger(_events2.default.CONTAINER_ENDED, this, this.name); - this.currentTime = 0; - }; - - Container.prototype.stopped = function stopped() { - this.trigger(_events2.default.CONTAINER_STOP); - }; - - Container.prototype.clicked = function clicked() { - if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_CLICK, this, this.name); - }; - - Container.prototype.dblClicked = function dblClicked() { - if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_DBLCLICK, this, this.name); - }; - - Container.prototype.onContextMenu = function onContextMenu(event) { - if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_CONTEXTMENU, event, this.name); - }; - - Container.prototype.seek = function seek(time) { - this.trigger(_events2.default.CONTAINER_SEEK, time, this.name); - this.playback.seek(time); - }; - - Container.prototype.onSeeked = function onSeeked() { - this.trigger(_events2.default.CONTAINER_SEEKED, this.name); - }; - - Container.prototype.seekPercentage = function seekPercentage(percentage) { - var duration = this.getDuration(); - if (percentage >= 0 && percentage <= 100) { - var time = duration * (percentage / 100); - this.seek(time); - } - }; - - Container.prototype.setVolume = function setVolume(value) { - this.volume = parseInt(value, 10); - this.trigger(_events2.default.CONTAINER_VOLUME, value, this.name); - this.playback.volume(value); - }; - - Container.prototype.fullscreen = function fullscreen() { - this.trigger(_events2.default.CONTAINER_FULLSCREEN, this.name); - }; - - Container.prototype.onBuffering = function onBuffering() { - this.trigger(_events2.default.CONTAINER_STATE_BUFFERING, this.name); - }; - - Container.prototype.bufferfull = function bufferfull() { - this.trigger(_events2.default.CONTAINER_STATE_BUFFERFULL, this.name); - }; - - /** - * adds plugin to the container - * @method addPlugin - * @param {Object} plugin - */ - - - Container.prototype.addPlugin = function addPlugin(plugin) { - this.plugins.push(plugin); - }; - - /** - * checks if a plugin, given its name, exist - * @method hasPlugin - * @param {String} name - * @return {Boolean} - */ - - - Container.prototype.hasPlugin = function hasPlugin(name) { - return !!this.getPlugin(name); - }; - - /** - * get the plugin given its name - * @method getPlugin - * @param {String} name - */ - - - Container.prototype.getPlugin = function getPlugin(name) { - return this.plugins.filter(function (plugin) { - return plugin.name === name; - })[0]; - }; - - Container.prototype.mouseEnter = function mouseEnter() { - if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_MOUSE_ENTER); - }; - - Container.prototype.mouseLeave = function mouseLeave() { - if (!this.options.chromeless || this.options.allowUserInteraction) this.trigger(_events2.default.CONTAINER_MOUSE_LEAVE); - }; - - Container.prototype.settingsUpdate = function settingsUpdate() { - this.settings = this.playback.settings; - this.trigger(_events2.default.CONTAINER_SETTINGSUPDATE); - }; - - Container.prototype.highDefinitionUpdate = function highDefinitionUpdate(isHD) { - this.trigger(_events2.default.CONTAINER_HIGHDEFINITIONUPDATE, isHD); - }; - - Container.prototype.isHighDefinitionInUse = function isHighDefinitionInUse() { - return this.playback.isHighDefinitionInUse(); - }; - - Container.prototype.disableMediaControl = function disableMediaControl() { - if (!this.mediaControlDisabled) { - this.mediaControlDisabled = true; - this.trigger(_events2.default.CONTAINER_MEDIACONTROL_DISABLE); - } - }; - - Container.prototype.enableMediaControl = function enableMediaControl() { - if (this.mediaControlDisabled) { - this.mediaControlDisabled = false; - this.trigger(_events2.default.CONTAINER_MEDIACONTROL_ENABLE); - } - }; - - Container.prototype.updateStyle = function updateStyle() { - if (!this.options.chromeless || this.options.allowUserInteraction) this.$el.removeClass('chromeless');else this.$el.addClass('chromeless'); - }; - - /** - * enables to configure the container after its creation - * @method configure - * @param {Object} options all the options to change in form of a javascript object - */ - - - Container.prototype.configure = function configure(options) { - this._options = _clapprZepto2.default.extend(this._options, options); - this.updateStyle(); - this.trigger(_events2.default.CONTAINER_OPTIONS_CHANGE); - }; - - Container.prototype.render = function render() { - this.$el.append(this.playback.render().el); - this.updateStyle(); - return this; - }; - - return Container; -}(_ui_object2.default); - -exports.default = Container; -module.exports = exports['default']; - -/***/ }), -/* 138 */ -/***/ (function(module, exports, __webpack_require__) { - -// style-loader: Adds some css to the DOM by adding a ').html((0,s.default)(t.toString())(e))}};e.default=l,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(157),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){t.exports={default:i(159),__esModule:!0}},function(t,e,i){"use strict";e.__esModule=!0;var n=i(79),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=function(t){if(Array.isArray(t)){for(var e=0,i=Array(t.length);ec;)if((s=l[c++])!=s)return!0}else for(;u>c;c++)if((t||c in l)&&l[c]===i)return t||c||0;return!t&&-1}}},function(t,e,i){var n=i(42),r=Math.max,a=Math.min;t.exports=function(t,e){return t=n(t),t<0?r(t+e,0):a(t,e)}},function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},function(t,e,i){t.exports={default:i(97),__esModule:!0}},function(t,e,i){i(65),i(103),t.exports=i(51).f("iterator")},function(t,e,i){var n=i(42),r=i(40);t.exports=function(t){return function(e,i){var a,o,s=String(r(e)),l=n(i),u=s.length;return l<0||l>=u?t?"":void 0:(a=s.charCodeAt(l),a<55296||a>56319||l+1===u||(o=s.charCodeAt(l+1))<56320||o>57343?t?s.charAt(l):a:t?s.slice(l,l+2):o-56320+(a-55296<<10)+65536)}}},function(t,e,i){"use strict";var n=i(49),r=i(28),a=i(50),o={};i(22)(o,i(12)("iterator"),function(){return this}),t.exports=function(t,e,i){t.prototype=n(o,{next:r(1,i)}),a(t,e+" Iterator")}},function(t,e,i){var n=i(16),r=i(23),a=i(25);t.exports=i(20)?Object.defineProperties:function(t,e){r(t);for(var i,o=a(e),s=o.length,l=0;s>l;)n.f(t,i=o[l++],e[i]);return t}},function(t,e,i){t.exports=i(15).document&&document.documentElement},function(t,e,i){var n=i(18),r=i(39),a=i(43)("IE_PROTO"),o=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=r(t),n(t,a)?t[a]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?o:null}},function(t,e,i){i(104);for(var n=i(15),r=i(22),a=i(29),o=i(12)("toStringTag"),s=["NodeList","DOMTokenList","MediaList","StyleSheetList","CSSRuleList"],l=0;l<5;l++){var u=s[l],c=n[u],d=c&&c.prototype;d&&!d[o]&&r(d,o,u),a[u]=a.Array}},function(t,e,i){"use strict";var n=i(105),r=i(106),a=i(29),o=i(14);t.exports=i(66)(Array,"Array",function(t,e){this._t=o(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,i=this._i++;return!t||i>=t.length?(this._t=void 0,r(1)):"keys"==e?r(0,i):"values"==e?r(0,t[i]):r(0,[i,t[i]])},"values"),a.Arguments=a.Array,n("keys"),n("values"),n("entries")},function(t,e){t.exports=function(){}},function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},function(t,e,i){t.exports={default:i(108),__esModule:!0}},function(t,e,i){i(109),i(115),i(116),i(117),t.exports=i(11).Symbol},function(t,e,i){"use strict";var n=i(15),r=i(18),a=i(20),o=i(19),s=i(67),l=i(110).KEY,u=i(27),c=i(44),d=i(50),h=i(32),f=i(12),p=i(51),g=i(52),y=i(111),m=i(112),v=i(113),b=i(23),_=i(14),E=i(47),T=i(28),A=i(49),S=i(114),L=i(54),R=i(16),k=i(25),w=L.f,C=R.f,I=S.f,D=n.Symbol,O=n.JSON,P=O&&O.stringify,x=f("_hidden"),N=f("toPrimitive"),M={}.propertyIsEnumerable,F=c("symbol-registry"),B=c("symbols"),U=c("op-symbols"),G=Object.prototype,K="function"==typeof D,V=n.QObject,j=!V||!V.prototype||!V.prototype.findChild,Y=a&&u(function(){return 7!=A(C({},"a",{get:function(){return C(this,"a",{value:7}).a}})).a})?function(t,e,i){var n=w(G,e);n&&delete G[e],C(t,e,i),n&&t!==G&&C(G,e,n)}:C,H=function(t){var e=B[t]=A(D.prototype);return e._k=t,e},$=K&&"symbol"==typeof D.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof D},z=function(t,e,i){return t===G&&z(U,e,i),b(t),e=E(e,!0),b(i),r(B,e)?(i.enumerable?(r(t,x)&&t[x][e]&&(t[x][e]=!1),i=A(i,{enumerable:T(0,!1)})):(r(t,x)||C(t,x,T(1,{})),t[x][e]=!0),Y(t,e,i)):C(t,e,i)},W=function(t,e){b(t);for(var i,n=m(e=_(e)),r=0,a=n.length;a>r;)z(t,i=n[r++],e[i]);return t},q=function(t,e){return void 0===e?A(t):W(A(t),e)},X=function(t){var e=M.call(this,t=E(t,!0));return!(this===G&&r(B,t)&&!r(U,t))&&(!(e||!r(this,t)||!r(B,t)||r(this,x)&&this[x][t])||e)},Z=function(t,e){if(t=_(t),e=E(e,!0),t!==G||!r(B,e)||r(U,e)){var i=w(t,e);return!i||!r(B,e)||r(t,x)&&t[x][e]||(i.enumerable=!0),i}},J=function(t){for(var e,i=I(_(t)),n=[],a=0;i.length>a;)r(B,e=i[a++])||e==x||e==l||n.push(e);return n},Q=function(t){for(var e,i=t===G,n=I(i?U:_(t)),a=[],o=0;n.length>o;)!r(B,e=n[o++])||i&&!r(G,e)||a.push(B[e]);return a};K||(D=function(){if(this instanceof D)throw TypeError("Symbol is not a constructor!");var t=h(arguments.length>0?arguments[0]:void 0),e=function(i){this===G&&e.call(U,i),r(this,x)&&r(this[x],t)&&(this[x][t]=!1),Y(this,t,T(1,i))};return a&&j&&Y(G,t,{configurable:!0,set:e}),H(t)},s(D.prototype,"toString",function(){return this._k}),L.f=Z,R.f=z,i(69).f=S.f=J,i(53).f=X,i(68).f=Q,a&&!i(48)&&s(G,"propertyIsEnumerable",X,!0),p.f=function(t){return H(f(t))}),o(o.G+o.W+o.F*!K,{Symbol:D});for(var tt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),et=0;tt.length>et;)f(tt[et++]);for(var tt=k(f.store),et=0;tt.length>et;)g(tt[et++]);o(o.S+o.F*!K,"Symbol",{for:function(t){return r(F,t+="")?F[t]:F[t]=D(t)},keyFor:function(t){if($(t))return y(F,t);throw TypeError(t+" is not a symbol!")},useSetter:function(){j=!0},useSimple:function(){j=!1}}),o(o.S+o.F*!K,"Object",{create:q,defineProperty:z,defineProperties:W,getOwnPropertyDescriptor:Z,getOwnPropertyNames:J,getOwnPropertySymbols:Q}),O&&o(o.S+o.F*(!K||u(function(){var t=D();return"[null]"!=P([t])||"{}"!=P({a:t})||"{}"!=P(Object(t))})),"JSON",{stringify:function(t){if(void 0!==t&&!$(t)){for(var e,i,n=[t],r=1;arguments.length>r;)n.push(arguments[r++]);return e=n[1],"function"==typeof e&&(i=e),!i&&v(e)||(e=function(t,e){if(i&&(e=i.call(this,t,e)),!$(e))return e}),n[1]=e,P.apply(O,n)}}}),D.prototype[N]||i(22)(D.prototype,N,D.prototype.valueOf),d(D,"Symbol"),d(Math,"Math",!0),d(n.JSON,"JSON",!0)},function(t,e,i){var n=i(32)("meta"),r=i(26),a=i(18),o=i(16).f,s=0,l=Object.isExtensible||function(){return!0},u=!i(27)(function(){return l(Object.preventExtensions({}))}),c=function(t){o(t,n,{value:{i:"O"+ ++s,w:{}}})},d=function(t,e){if(!r(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!a(t,n)){if(!l(t))return"F";if(!e)return"E";c(t)}return t[n].i},h=function(t,e){if(!a(t,n)){if(!l(t))return!0;if(!e)return!1;c(t)}return t[n].w},f=function(t){return u&&p.NEED&&l(t)&&!a(t,n)&&c(t),t},p=t.exports={KEY:n,NEED:!1,fastKey:d,getWeak:h,onFreeze:f}},function(t,e,i){var n=i(25),r=i(14);t.exports=function(t,e){for(var i,a=r(t),o=n(a),s=o.length,l=0;s>l;)if(a[i=o[l++]]===e)return i}},function(t,e,i){var n=i(25),r=i(68),a=i(53);t.exports=function(t){var e=n(t),i=r.f;if(i)for(var o,s=i(t),l=a.f,u=0;s.length>u;)l.call(t,o=s[u++])&&e.push(o);return e}},function(t,e,i){var n=i(41);t.exports=Array.isArray||function(t){return"Array"==n(t)}},function(t,e,i){var n=i(14),r=i(69).f,a={}.toString,o="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],s=function(t){try{return r(t)}catch(t){return o.slice()}};t.exports.f=function(t){return o&&"[object Window]"==a.call(t)?s(t):r(n(t))}},function(t,e){},function(t,e,i){i(52)("asyncIterator")},function(t,e,i){i(52)("observable")},function(t,e,i){i(119);var n=i(11).Object;t.exports=function(t,e,i){return n.defineProperty(t,e,i)}},function(t,e,i){var n=i(19);n(n.S+n.F*!i(20),"Object",{defineProperty:i(16).f})},function(t,e,i){t.exports={default:i(121),__esModule:!0}},function(t,e,i){i(122),t.exports=i(11).Object.setPrototypeOf},function(t,e,i){var n=i(19);n(n.S,"Object",{setPrototypeOf:i(123).set})},function(t,e,i){var n=i(26),r=i(23),a=function(t,e){if(r(t),!n(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,n){try{n=i(46)(Function.call,i(54).f(Object.prototype,"__proto__").set,2),n(t,[]),e=!(t instanceof Array)}catch(t){e=!0}return function(t,i){return a(t,i),e?t.__proto__=i:n(t,i),t}}({},!1):void 0),check:a}},function(t,e,i){i(125);var n=i(11).Object;t.exports=function(t,e){return n.create(t,e)}},function(t,e,i){var n=i(19);n(n.S,"Object",{create:i(49)})},function(t,e,i){t.exports={default:i(127),__esModule:!0}},function(t,e,i){i(128);var n=i(11).Object;t.exports=function(t,e){return n.getOwnPropertyDescriptor(t,e)}},function(t,e,i){var n=i(14),r=i(54).f;i(62)("getOwnPropertyDescriptor",function(){return function(t,e){return r(n(t),e)}})},function(t,e,i){"use strict";Array.prototype.find||Object.defineProperty(Array.prototype,"find",{value:function(t){if(null==this)throw new TypeError('"this" is null or not defined');var e=Object(this),i=e.length>>>0;if("function"!=typeof t)throw new TypeError("predicate must be a function");for(var n=arguments[1],r=0;r0&&void 0!==arguments[0]?arguments[0]:u,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:c;(0,r.default)(this,t),this.kibo=new a.Kibo,this.kibo.down(["ctrl shift d"],function(){return e.onOff()}),this.BLACKLIST=["timeupdate","playback:timeupdate","playback:progress","container:hover","container:timeupdate","container:progress"],this.level=i,this.offLevel=n}return t.prototype.debug=function(t){this.log(t,0,Array.prototype.slice.call(arguments,1))},t.prototype.info=function(t){this.log(t,u,Array.prototype.slice.call(arguments,1))},t.prototype.warn=function(t){this.log(t,2,Array.prototype.slice.call(arguments,1))},t.prototype.error=function(t){this.log(t,3,Array.prototype.slice.call(arguments,1))},t.prototype.onOff=function(){this.level===this.offLevel?this.level=this.previousLevel:(this.previousLevel=this.level,this.level=this.offLevel),window.console&&window.console.log&&window.console.log("%c[Clappr.Log] set log level to "+h[this.level],s)},t.prototype.level=function(t){this.level=t},t.prototype.log=function(t,e,i){if(!(this.BLACKLIST.indexOf(i[0])>=0||e(0,I.default)(window).height()?"landscape":"portrait";this._screenOrientation!==e&&(this._screenOrientation=e,this.trigger(p.default.CORE_SCREEN_ORIENTATION_CHANGED,{event:t,orientation:this._screenOrientation}))},e.prototype.setMediaControlContainer=function(t){this.mediaControl.setContainer(t),this.mediaControl.render()},e.prototype.disableMediaControl=function(){this.mediaControl.disable(),this.$el.removeClass("nocursor")},e.prototype.enableMediaControl=function(){this.mediaControl.enable()},e.prototype.removeContainer=function(t){this.stopListening(t),this.containers=this.containers.filter(function(e){return e!==t})},e.prototype.appendContainer=function(t){this.listenTo(t,p.default.CONTAINER_DESTROYED,this.removeContainer),this.containers.push(t)},e.prototype.setupContainers=function(t){return t.map(this.appendContainer.bind(this)),this.trigger(p.default.CORE_CONTAINERS_CREATED),this.renderContainers(),this.setupMediaControl(this.getCurrentContainer()),this.render(),this.appendToParent(),this.containers},e.prototype.renderContainers=function(){var t=this;this.containers.map(function(e){return t.el.appendChild(e.render().el)})},e.prototype.createContainer=function(t,e){var i=this.containerFactory.createContainer(t,e);return this.appendContainer(i),this.el.appendChild(i.render().el),i},e.prototype.setupMediaControl=function(t){this.mediaControl?this.mediaControl.setContainer(t):(this.mediaControl=this.createMediaControl(I.default.extend({container:t,focusElement:this.el},this.options)),this.listenTo(this.mediaControl,p.default.MEDIACONTROL_FULLSCREEN,this.toggleFullscreen),this.listenTo(this.mediaControl,p.default.MEDIACONTROL_SHOW,this.onMediaControlShow.bind(this,!0)),this.listenTo(this.mediaControl,p.default.MEDIACONTROL_HIDE,this.onMediaControlShow.bind(this,!1)))},e.prototype.createMediaControl=function(t){return t.mediacontrol&&t.mediacontrol.external?new t.mediacontrol.external(t).render():new T.default(t).render()},e.prototype.getCurrentContainer=function(){return this.mediaControl&&this.mediaControl.container?this.mediaControl.container:this.containers[0]},e.prototype.getCurrentPlayback=function(){var t=this.getCurrentContainer();return t&&t.playback},e.prototype.getPlaybackType=function(){var t=this.getCurrentContainer();return t&&t.getPlaybackType()},e.prototype.toggleFullscreen=function(){h.Fullscreen.isFullscreen()?(h.Fullscreen.cancelFullscreen(),v.default.isiOS||this.$el.removeClass("fullscreen nocursor")):(h.Fullscreen.requestFullscreen(this.el),v.default.isiOS||this.$el.addClass("fullscreen")),this.mediaControl.show()},e.prototype.showMediaControl=function(t){this.mediaControl.show(t)},e.prototype.hideMediaControl=function(){this.mediaControl.hide(this.options.hideMediaControlDelay)},e.prototype.onMediaControlShow=function(t){this.getCurrentContainer().trigger(t?p.default.CONTAINER_MEDIACONTROL_SHOW:p.default.CONTAINER_MEDIACONTROL_HIDE),t?this.$el.removeClass("nocursor"):h.Fullscreen.isFullscreen()&&this.$el.addClass("nocursor")},e.prototype.configure=function(t){var e=this;this._options=I.default.extend(this._options,t),this.configureDomRecycler();var i=t.source||t.sources;i?this.load(i,t.mimeType||this.options.mimeType):(this.trigger(p.default.CORE_OPTIONS_CHANGE),this.containers.forEach(function(t){t.configure(e.options)}))},e.prototype.appendToParent=function(){!(this.$el.parent()&&this.$el.parent().length)&&this.$el.appendTo(this.options.parentElement)},e.prototype.render=function(){this.$el.append(this.mediaControl.render().el),P||(P=w.default.getStyleFor(O.default,{baseUrl:this.options.baseUrl})),(0,I.default)("head").append(P),this.options.width=this.options.width||this.$el.width(),this.options.height=this.options.height||this.$el.height();var t={width:this.options.width,height:this.options.height};return this.playerInfo.previousSize=this.playerInfo.currentSize=this.playerInfo.computedSize=t,this.updateSize(),this.previousSize={width:this.$el.width(),height:this.$el.height()},this.enableResizeObserver(),this},e}(y.default);e.default=x,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(136),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(33),a=n(r),o=i(0),s=n(o),l=i(1),u=n(l),c=i(3),d=n(c),h=i(2),f=n(h),p=i(17),g=n(p),y=i(4),m=n(y),v=i(73),b=n(v),_=i(6),E=n(_),T=function(t){function e(i,n,r){(0,s.default)(this,e);var a=(0,u.default)(this,t.call(this,i));return a._i18n=r,a.loader=n,a}return(0,f.default)(e,t),(0,d.default)(e,[{key:"options",get:function(){return this._options},set:function(t){this._options=t}}]),e.prototype.createContainers=function(){var t=this;return E.default.Deferred(function(e){e.resolve(t.options.sources.map(function(e){return t.createContainer(e)}))})},e.prototype.findPlaybackPlugin=function(t,e){return this.loader.playbackPlugins.filter(function(i){return i.canPlay(t,e)})[0]},e.prototype.createContainer=function(t){var e=null,i=this.options.mimeType;"object"===(void 0===t?"undefined":(0,a.default)(t))?(e=t.source.toString(),t.mimeType&&(i=t.mimeType)):e=t.toString(),e.match(/^\/\//)&&(e=window.location.protocol+e);var n=E.default.extend({},this.options,{src:e,mimeType:i}),r=this.findPlaybackPlugin(e,i),o=new r(n,this._i18n);n=E.default.extend({},n,{playback:o});var s=new b.default(n,this._i18n),l=E.default.Deferred();return l.promise(s),this.addContainerPlugins(s),this.listenToOnce(s,m.default.CONTAINER_READY,function(){return l.resolve(s)}),s},e.prototype.addContainerPlugins=function(t){this.loader.containerPlugins.forEach(function(e){t.addPlugin(new e(t))})},e}(g.default);e.default=T,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(4),f=n(h),p=i(21),g=n(p);i(138);var y=i(6),m=n(y),v=function(t){function e(i,n){(0,a.default)(this,e);var r=(0,s.default)(this,t.call(this,i));return r._i18n=n,r.currentTime=0,r.volume=100,r.playback=i.playback,r.settings=m.default.extend({},r.playback.settings),r.isReady=!1,r.mediaControlDisabled=!1,r.plugins=[r.playback],r.bindEvents(),r}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"Container"}},{key:"attributes",get:function(){return{class:"container","data-container":""}}},{key:"events",get:function(){return{click:"clicked",dblclick:"dblClicked",doubleTap:"dblClicked",contextmenu:"onContextMenu",mouseenter:"mouseEnter",mouseleave:"mouseLeave"}}},{key:"ended",get:function(){return this.playback.ended}},{key:"buffering",get:function(){return this.playback.buffering}},{key:"i18n",get:function(){return this._i18n}},{key:"hasClosedCaptionsTracks",get:function(){return this.playback.hasClosedCaptionsTracks}},{key:"closedCaptionsTracks",get:function(){return this.playback.closedCaptionsTracks}},{key:"closedCaptionsTrackId",get:function(){return this.playback.closedCaptionsTrackId},set:function(t){this.playback.closedCaptionsTrackId=t}}]),e.prototype.bindEvents=function(){this.listenTo(this.playback,f.default.PLAYBACK_PROGRESS,this.progress),this.listenTo(this.playback,f.default.PLAYBACK_TIMEUPDATE,this.timeUpdated),this.listenTo(this.playback,f.default.PLAYBACK_READY,this.ready),this.listenTo(this.playback,f.default.PLAYBACK_BUFFERING,this.onBuffering),this.listenTo(this.playback,f.default.PLAYBACK_BUFFERFULL,this.bufferfull),this.listenTo(this.playback,f.default.PLAYBACK_SETTINGSUPDATE,this.settingsUpdate),this.listenTo(this.playback,f.default.PLAYBACK_LOADEDMETADATA,this.loadedMetadata),this.listenTo(this.playback,f.default.PLAYBACK_HIGHDEFINITIONUPDATE,this.highDefinitionUpdate),this.listenTo(this.playback,f.default.PLAYBACK_BITRATE,this.updateBitrate),this.listenTo(this.playback,f.default.PLAYBACK_PLAYBACKSTATE,this.playbackStateChanged),this.listenTo(this.playback,f.default.PLAYBACK_DVR,this.playbackDvrStateChanged),this.listenTo(this.playback,f.default.PLAYBACK_MEDIACONTROL_DISABLE,this.disableMediaControl),this.listenTo(this.playback,f.default.PLAYBACK_MEDIACONTROL_ENABLE,this.enableMediaControl),this.listenTo(this.playback,f.default.PLAYBACK_SEEKED,this.onSeeked),this.listenTo(this.playback,f.default.PLAYBACK_ENDED,this.onEnded),this.listenTo(this.playback,f.default.PLAYBACK_PLAY,this.playing),this.listenTo(this.playback,f.default.PLAYBACK_PAUSE,this.paused),this.listenTo(this.playback,f.default.PLAYBACK_STOP,this.stopped),this.listenTo(this.playback,f.default.PLAYBACK_ERROR,this.error),this.listenTo(this.playback,f.default.PLAYBACK_SUBTITLE_AVAILABLE,this.subtitleAvailable),this.listenTo(this.playback,f.default.PLAYBACK_SUBTITLE_CHANGED,this.subtitleChanged)},e.prototype.subtitleAvailable=function(){this.trigger(f.default.CONTAINER_SUBTITLE_AVAILABLE)},e.prototype.subtitleChanged=function(t){this.trigger(f.default.CONTAINER_SUBTITLE_CHANGED,t)},e.prototype.playbackStateChanged=function(t){this.trigger(f.default.CONTAINER_PLAYBACKSTATE,t)},e.prototype.playbackDvrStateChanged=function(t){this.settings=this.playback.settings,this.dvrInUse=t,this.trigger(f.default.CONTAINER_PLAYBACKDVRSTATECHANGED,t)},e.prototype.updateBitrate=function(t){this.trigger(f.default.CONTAINER_BITRATE,t)},e.prototype.statsReport=function(t){this.trigger(f.default.CONTAINER_STATS_REPORT,t)},e.prototype.getPlaybackType=function(){return this.playback.getPlaybackType()},e.prototype.isDvrEnabled=function(){return!!this.playback.dvrEnabled},e.prototype.isDvrInUse=function(){return!!this.dvrInUse},e.prototype.destroy=function(){this.trigger(f.default.CONTAINER_DESTROYED,this,this.name),this.stopListening(),this.plugins.forEach(function(t){return t.destroy()}),this.$el.remove()},e.prototype.setStyle=function(t){this.$el.css(t)},e.prototype.animate=function(t,e){return this.$el.animate(t,e).promise()},e.prototype.ready=function(){this.isReady=!0,this.trigger(f.default.CONTAINER_READY,this.name)},e.prototype.isPlaying=function(){return this.playback.isPlaying()},e.prototype.getStartTimeOffset=function(){return this.playback.getStartTimeOffset()},e.prototype.getCurrentTime=function(){return this.currentTime},e.prototype.getDuration=function(){return this.playback.getDuration()},e.prototype.error=function(t){this.isReady||this.ready(),this.trigger(f.default.CONTAINER_ERROR,{error:t,container:this},this.name)},e.prototype.loadedMetadata=function(t){this.trigger(f.default.CONTAINER_LOADEDMETADATA,t)},e.prototype.timeUpdated=function(t){this.currentTime=t.current,this.trigger(f.default.CONTAINER_TIMEUPDATE,t,this.name)},e.prototype.progress=function(){for(var t=arguments.length,e=Array(t),i=0;i=0&&t<=100){var i=e*(t/100);this.seek(i)}},e.prototype.setVolume=function(t){this.volume=parseInt(t,10),this.trigger(f.default.CONTAINER_VOLUME,t,this.name),this.playback.volume(t)},e.prototype.fullscreen=function(){this.trigger(f.default.CONTAINER_FULLSCREEN,this.name)},e.prototype.onBuffering=function(){this.trigger(f.default.CONTAINER_STATE_BUFFERING,this.name)},e.prototype.bufferfull=function(){this.trigger(f.default.CONTAINER_STATE_BUFFERFULL,this.name)},e.prototype.addPlugin=function(t){this.plugins.push(t)},e.prototype.hasPlugin=function(t){return!!this.getPlugin(t)},e.prototype.getPlugin=function(t){return this.plugins.filter(function(e){return e.name===t})[0]},e.prototype.mouseEnter=function(){this.options.chromeless&&!this.options.allowUserInteraction||this.trigger(f.default.CONTAINER_MOUSE_ENTER)},e.prototype.mouseLeave=function(){this.options.chromeless&&!this.options.allowUserInteraction||this.trigger(f.default.CONTAINER_MOUSE_LEAVE)},e.prototype.settingsUpdate=function(){this.settings=this.playback.settings,this.trigger(f.default.CONTAINER_SETTINGSUPDATE)},e.prototype.highDefinitionUpdate=function(t){this.trigger(f.default.CONTAINER_HIGHDEFINITIONUPDATE,t)},e.prototype.isHighDefinitionInUse=function(){return this.playback.isHighDefinitionInUse()},e.prototype.disableMediaControl=function(){this.mediaControlDisabled||(this.mediaControlDisabled=!0,this.trigger(f.default.CONTAINER_MEDIACONTROL_DISABLE))},e.prototype.enableMediaControl=function(){this.mediaControlDisabled&&(this.mediaControlDisabled=!1,this.trigger(f.default.CONTAINER_MEDIACONTROL_ENABLE))},e.prototype.updateStyle=function(){!this.options.chromeless||this.options.allowUserInteraction?this.$el.removeClass("chromeless"):this.$el.addClass("chromeless")},e.prototype.configure=function(t){this._options=m.default.extend(this._options,t),this.updateStyle(),this.trigger(f.default.CONTAINER_OPTIONS_CHANGE)},e.prototype.render=function(){return this.$el.append(this.playback.render().el),this.updateStyle(),this},e}(g.default);e.default=v,t.exports=e.default},function(t,e,i){var n=i(139);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".container[data-container]{position:absolute;background-color:#000;height:100%;width:100%}.container[data-container] .chromeless{cursor:default}[data-player]:not(.nocursor) .container[data-container]:not(.chromeless).pointer-enabled{cursor:pointer}",""])},function(t,e){t.exports=function(t){var e="undefined"!=typeof window&&window.location;if(!e)throw new Error("fixUrls requires window.location");if(!t||"string"!=typeof t)return t;var i=e.protocol+"//"+e.host,n=i+e.pathname.replace(/\/[^\/]*$/,"/");return t.replace(/url\s*\(((?:[^)(]|\((?:[^)(]+|\([^)(]*\))*\))*)\)/gi,function(t,e){var r=e.trim().replace(/^"(.*)"$/,function(t,e){return e}).replace(/^'(.*)'$/,function(t,e){return e});if(/^(#|data:|http:\/\/|https:\/\/|file:\/\/\/)/i.test(r))return t;var a;return a=0===r.indexOf("//")?r:0===r.indexOf("/")?i+r:n+r.replace(/^\.\//,""),"url("+JSON.stringify(a)+")"})}},function(t,e,i){"use strict";(function(n){function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=i(142),o=r(a),s=i(0),l=r(s),u=i(1),c=r(u),d=i(3),h=r(d),f=i(2),p=r(f),g=i(5),y=i(56),m=i(4),v=r(m),b=i(21),_=r(b),E=i(13),T=r(E),A=i(24),S=r(A),L=i(8),R=r(L),k=i(9),w=r(k),C=i(6),I=r(C);i(144);var D=i(146),O=r(D),P=i(58),x=r(P),N=i(76),M=r(N),F=i(147),B=r(F),U=i(148),G=r(U),K=i(149),V=r(K),j=i(150),Y=r(j),H=i(151),$=r(H),z=i(152),W=r(z),q=function(t){function e(i){(0,l.default)(this,e);var n=(0,c.default)(this,t.call(this,i));n.persistConfig=n.options.persistConfig,n.container=i.container,n.currentPositionValue=null,n.currentDurationValue=null;var r=n.persistConfig?g.Config.restore("volume"):100;return n.setVolume(n.options.mute?0:r),n.keepVisible=!1,n.fullScreenOnVideoTagSupported=null,n.addEventListeners(),n.settings={left:["play","stop","pause"],right:["volume"],default:["position","seekbar","duration"]},n.container?I.default.isEmptyObject(n.container.settings)||(n.settings=I.default.extend({},n.container.settings)):n.settings={},n.userDisabled=!1,(n.container&&n.container.mediaControlDisabled||n.options.chromeless)&&n.disable(),n.stopDragHandler=function(t){return n.stopDrag(t)},n.updateDragHandler=function(t){return n.updateDrag(t)},(0,I.default)(document).bind("mouseup",n.stopDragHandler),(0,I.default)(document).bind("mousemove",n.updateDragHandler),n}return(0,p.default)(e,t),(0,h.default)(e,[{key:"name",get:function(){return"MediaControl"}},{key:"disabled",get:function(){return this.userDisabled||this.container&&this.container.getPlaybackType()===w.default.NO_OP}},{key:"attributes",get:function(){return{class:"media-control","data-media-control":""}}},{key:"events",get:function(){return{"click [data-play]":"play","click [data-pause]":"pause","click [data-playpause]":"togglePlayPause","click [data-stop]":"stop","click [data-playstop]":"togglePlayStop","click [data-fullscreen]":"toggleFullscreen","click .bar-container[data-seekbar]":"seek","click .bar-container[data-volume]":"onVolumeClick","click .drawer-icon[data-volume]":"toggleMute","mouseenter .drawer-container[data-volume]":"showVolumeBar","mouseleave .drawer-container[data-volume]":"hideVolumeBar","mousedown .bar-container[data-volume]":"startVolumeDrag","mousemove .bar-container[data-volume]":"mousemoveOnVolumeBar","mousedown .bar-scrubber[data-seekbar]":"startSeekDrag","mousemove .bar-container[data-seekbar]":"mousemoveOnSeekBar","mouseleave .bar-container[data-seekbar]":"mouseleaveOnSeekBar","mouseenter .media-control-layer[data-controls]":"setUserKeepVisible","mouseleave .media-control-layer[data-controls]":"resetUserKeepVisible"}}},{key:"template",get:function(){return(0,R.default)(O.default)}},{key:"volume",get:function(){return this.container&&this.container.isReady?this.container.volume:this.intendedVolume}},{key:"muted",get:function(){return 0===this.volume}}]),e.prototype.addEventListeners=function(){this.container&&(S.default.on(this.options.playerId+":"+v.default.PLAYER_RESIZE,this.playerResize,this),this.listenTo(this.container,v.default.CONTAINER_PLAY,this.changeTogglePlay),this.listenTo(this.container,v.default.CONTAINER_PAUSE,this.changeTogglePlay),this.listenTo(this.container,v.default.CONTAINER_STOP,this.changeTogglePlay),this.listenTo(this.container,v.default.CONTAINER_DBLCLICK,this.toggleFullscreen),this.listenTo(this.container,v.default.CONTAINER_TIMEUPDATE,this.onTimeUpdate),this.listenTo(this.container,v.default.CONTAINER_PROGRESS,this.updateProgressBar),this.listenTo(this.container,v.default.CONTAINER_SETTINGSUPDATE,this.settingsUpdate),this.listenTo(this.container,v.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.settingsUpdate),this.listenTo(this.container,v.default.CONTAINER_HIGHDEFINITIONUPDATE,this.highDefinitionUpdate),this.listenTo(this.container,v.default.CONTAINER_MEDIACONTROL_DISABLE,this.disable),this.listenTo(this.container,v.default.CONTAINER_MEDIACONTROL_ENABLE,this.enable),this.listenTo(this.container,v.default.CONTAINER_ENDED,this.ended),this.listenTo(this.container,v.default.CONTAINER_VOLUME,this.onVolumeChanged),"video"===this.container.playback.el.nodeName.toLowerCase()&&this.listenToOnce(this.container,v.default.CONTAINER_LOADEDMETADATA,this.onLoadedMetadataOnVideoTag))},e.prototype.disable=function(){this.userDisabled=!0,this.hide(),this.$el.hide()},e.prototype.enable=function(){this.options.chromeless||(this.userDisabled=!1,this.show())},e.prototype.play=function(){this.container.play()},e.prototype.pause=function(){this.container.pause()},e.prototype.stop=function(){this.container.stop()},e.prototype.onVolumeChanged=function(){this.updateVolumeUI()},e.prototype.onLoadedMetadataOnVideoTag=function(){var t=this.container.playback.el;!g.Fullscreen.fullscreenEnabled()&&t.webkitSupportsFullscreen&&(this.fullScreenOnVideoTagSupported=!0,this.settingsUpdate())},e.prototype.updateVolumeUI=function(){if(this.rendered){this.$volumeBarContainer.find(".bar-fill-2").css({});var t=this.$volumeBarContainer.width(),e=this.$volumeBarBackground.width(),i=(t-e)/2,n=e*this.volume/100+i;this.$volumeBarFill.css({width:this.volume+"%"}),this.$volumeBarScrubber.css({left:n}),this.$volumeBarContainer.find(".segmented-bar-element").removeClass("fill");var r=Math.ceil(this.volume/10);this.$volumeBarContainer.find(".segmented-bar-element").slice(0,r).addClass("fill"),this.$volumeIcon.html(""),this.$volumeIcon.removeClass("muted"),this.muted?(this.$volumeIcon.append(V.default),this.$volumeIcon.addClass("muted")):this.$volumeIcon.append(G.default),this.applyButtonStyle(this.$volumeIcon)}},e.prototype.changeTogglePlay=function(){this.$playPauseToggle.html(""),this.$playStopToggle.html(""),this.container&&this.container.isPlaying()?(this.$playPauseToggle.append(M.default),this.$playStopToggle.append(B.default),this.trigger(v.default.MEDIACONTROL_PLAYING)):(this.$playPauseToggle.append(x.default),this.$playStopToggle.append(x.default),this.trigger(v.default.MEDIACONTROL_NOTPLAYING),T.default.isMobile&&this.show()),this.applyButtonStyle(this.$playPauseToggle),this.applyButtonStyle(this.$playStopToggle)},e.prototype.mousemoveOnSeekBar=function(t){if(this.settings.seekEnabled){var e=t.pageX-this.$seekBarContainer.offset().left-this.$seekBarHover.width()/2;this.$seekBarHover.css({left:e})}this.trigger(v.default.MEDIACONTROL_MOUSEMOVE_SEEKBAR,t)},e.prototype.mouseleaveOnSeekBar=function(t){this.trigger(v.default.MEDIACONTROL_MOUSELEAVE_SEEKBAR,t)},e.prototype.onVolumeClick=function(t){this.setVolume(this.getVolumeFromUIEvent(t))},e.prototype.mousemoveOnVolumeBar=function(t){this.draggingVolumeBar&&this.setVolume(this.getVolumeFromUIEvent(t))},e.prototype.playerResize=function(t){this.$fullscreenToggle.html(""),g.Fullscreen.isFullscreen()?this.$fullscreenToggle.append($.default):this.$fullscreenToggle.append(Y.default),this.applyButtonStyle(this.$fullscreenToggle),this.$el.removeClass("w320"),(t.width<=320||this.options.hideVolumeBar)&&this.$el.addClass("w320")},e.prototype.togglePlayPause=function(){return this.container.isPlaying()?this.container.pause():this.container.play(),!1},e.prototype.togglePlayStop=function(){this.container.isPlaying()?this.container.stop():this.container.play()},e.prototype.startSeekDrag=function(t){this.settings.seekEnabled&&(this.draggingSeekBar=!0,this.$el.addClass("dragging"),this.$seekBarLoaded.addClass("media-control-notransition"),this.$seekBarPosition.addClass("media-control-notransition"),this.$seekBarScrubber.addClass("media-control-notransition"),t&&t.preventDefault())},e.prototype.startVolumeDrag=function(t){this.draggingVolumeBar=!0,this.$el.addClass("dragging"),t&&t.preventDefault()},e.prototype.stopDrag=function(t){this.draggingSeekBar&&this.seek(t),this.$el.removeClass("dragging"),this.$seekBarLoaded.removeClass("media-control-notransition"),this.$seekBarPosition.removeClass("media-control-notransition"),this.$seekBarScrubber.removeClass("media-control-notransition dragging"),this.draggingSeekBar=!1,this.draggingVolumeBar=!1},e.prototype.updateDrag=function(t){if(this.draggingSeekBar){t.preventDefault();var e=t.pageX-this.$seekBarContainer.offset().left,i=e/this.$seekBarContainer.width()*100;i=Math.min(100,Math.max(i,0)),this.setSeekPercentage(i)}else this.draggingVolumeBar&&(t.preventDefault(),this.setVolume(this.getVolumeFromUIEvent(t)))},e.prototype.getVolumeFromUIEvent=function(t){return(t.pageX-this.$volumeBarContainer.offset().left)/this.$volumeBarContainer.width()*100},e.prototype.toggleMute=function(){this.setVolume(this.muted?100:0)},e.prototype.setVolume=function(t){var e=this;t=Math.min(100,Math.max(t,0)),this.intendedVolume=t,this.persistConfig&&g.Config.persist("volume",t);var i=function(){e.container.isReady?e.container.setVolume(t):e.listenToOnce(e.container,v.default.CONTAINER_READY,function(){e.container.setVolume(t)})};this.container?i():this.listenToOnce(this,v.default.MEDIACONTROL_CONTAINERCHANGED,function(){i()})},e.prototype.toggleFullscreen=function(){this.trigger(v.default.MEDIACONTROL_FULLSCREEN,this.name),this.container.fullscreen(),this.resetUserKeepVisible()},e.prototype.setContainer=function(t){this.container&&(this.stopListening(this.container),this.fullScreenOnVideoTagSupported=null),S.default.off(this.options.playerId+":"+v.default.PLAYER_RESIZE,this.playerResize,this),this.container=t,this.setVolume(this.intendedVolume),this.changeTogglePlay(),this.addEventListeners(),this.settingsUpdate(),this.container.trigger(v.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.container.isDvrInUse()),this.container.mediaControlDisabled&&this.disable(),this.trigger(v.default.MEDIACONTROL_CONTAINERCHANGED)},e.prototype.showVolumeBar=function(){this.hideVolumeId&&clearTimeout(this.hideVolumeId),this.$volumeBarContainer.removeClass("volume-bar-hide")},e.prototype.hideVolumeBar=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:400;this.$volumeBarContainer&&(this.draggingVolumeBar?this.hideVolumeId=setTimeout(function(){return t.hideVolumeBar()},e):(this.hideVolumeId&&clearTimeout(this.hideVolumeId),this.hideVolumeId=setTimeout(function(){return t.$volumeBarContainer.addClass("volume-bar-hide")},e)))},e.prototype.ended=function(){this.changeTogglePlay()},e.prototype.updateProgressBar=function(t){var e=t.start/t.total*100,i=t.current/t.total*100;this.$seekBarLoaded.css({left:e+"%",width:i-e+"%"})},e.prototype.onTimeUpdate=function(t){if(!this.draggingSeekBar){var e=t.current<0?t.total:t.current;this.currentPositionValue=e,this.currentDurationValue=t.total,this.renderSeekBar()}},e.prototype.renderSeekBar=function(){if(null!==this.currentPositionValue&&null!==this.currentDurationValue){this.currentSeekBarPercentage=100,(this.container.getPlaybackType()!==w.default.LIVE||this.container.isDvrInUse())&&(this.currentSeekBarPercentage=this.currentPositionValue/this.currentDurationValue*100),this.setSeekPercentage(this.currentSeekBarPercentage);var t=(0,g.formatTime)(this.currentPositionValue),e=(0,g.formatTime)(this.currentDurationValue);t!==this.displayedPosition&&(this.$position.text(t),this.displayedPosition=t),e!==this.displayedDuration&&(this.$duration.text(e),this.displayedDuration=e)}},e.prototype.seek=function(t){if(this.settings.seekEnabled){var e=t.pageX-this.$seekBarContainer.offset().left,i=e/this.$seekBarContainer.width()*100;return i=Math.min(100,Math.max(i,0)),this.container.seekPercentage(i),this.setSeekPercentage(i),!1}},e.prototype.setKeepVisible=function(){this.keepVisible=!0},e.prototype.resetKeepVisible=function(){this.keepVisible=!1},e.prototype.setUserKeepVisible=function(){this.userKeepVisible=!0},e.prototype.resetUserKeepVisible=function(){this.userKeepVisible=!1},e.prototype.isVisible=function(){return!this.$el.hasClass("media-control-hide")},e.prototype.show=function(t){var e=this;if(!this.disabled){(!t||t.clientX!==this.lastMouseX&&t.clientY!==this.lastMouseY||navigator.userAgent.match(/firefox/i))&&(clearTimeout(this.hideId),this.$el.show(),this.trigger(v.default.MEDIACONTROL_SHOW,this.name),this.$el.removeClass("media-control-hide"),this.hideId=setTimeout(function(){return e.hide()},2e3),t&&(this.lastMouseX=t.clientX,this.lastMouseY=t.clientY))}},e.prototype.hide=function(){var t=this,e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0;if(this.isVisible()&&(!T.default.isMobile||this.container.isPlaying())){var i=e||2e3;clearTimeout(this.hideId),(this.disabled||!1!==this.options.hideMediaControl)&&(!this.disabled&&(e||this.userKeepVisible||this.keepVisible||this.draggingSeekBar||this.draggingVolumeBar)?this.hideId=setTimeout(function(){return t.hide()},i):(this.trigger(v.default.MEDIACONTROL_HIDE,this.name),this.$el.addClass("media-control-hide"),this.hideVolumeBar(0)))}},e.prototype.settingsUpdate=function(){var t=this.getSettings();!t||this.fullScreenOnVideoTagSupported||g.Fullscreen.fullscreenEnabled()||(t.default&&(0,g.removeArrayItem)(t.default,"fullscreen"),t.left&&(0,g.removeArrayItem)(t.left,"fullscreen"),t.right&&(0,g.removeArrayItem)(t.right,"fullscreen")),(0,o.default)(this.settings)!==(0,o.default)(t)&&(this.settings=t,this.render())},e.prototype.getSettings=function(){return I.default.extend(!0,{},this.container.settings)},e.prototype.highDefinitionUpdate=function(t){var e=t?"addClass":"removeClass";this.$hdIndicator[e]("enabled")},e.prototype.createCachedElements=function(){var t=this.$el.find(".media-control-layer");this.$duration=t.find(".media-control-indicator[data-duration]"),this.$fullscreenToggle=t.find("button.media-control-button[data-fullscreen]"),this.$playPauseToggle=t.find("button.media-control-button[data-playpause]"),this.$playStopToggle=t.find("button.media-control-button[data-playstop]"),this.$position=t.find(".media-control-indicator[data-position]"),this.$seekBarContainer=t.find(".bar-container[data-seekbar]"),this.$seekBarHover=t.find(".bar-hover[data-seekbar]"),this.$seekBarLoaded=t.find(".bar-fill-1[data-seekbar]"),this.$seekBarPosition=t.find(".bar-fill-2[data-seekbar]"),this.$seekBarScrubber=t.find(".bar-scrubber[data-seekbar]"),this.$volumeBarContainer=t.find(".bar-container[data-volume]"),this.$volumeContainer=t.find(".drawer-container[data-volume]"),this.$volumeIcon=t.find(".drawer-icon[data-volume]"),this.$volumeBarBackground=this.$el.find(".bar-background[data-volume]"),this.$volumeBarFill=this.$el.find(".bar-fill-1[data-volume]"),this.$volumeBarScrubber=this.$el.find(".bar-scrubber[data-volume]"),this.$hdIndicator=this.$el.find("button.media-control-button[data-hd-indicator]"),this.resetIndicators(),this.initializeIcons()},e.prototype.resetIndicators=function(){this.displayedPosition=this.$position.text(),this.displayedDuration=this.$duration.text()},e.prototype.initializeIcons=function(){var t=this.$el.find(".media-control-layer");t.find("button.media-control-button[data-play]").append(x.default),t.find("button.media-control-button[data-pause]").append(M.default),t.find("button.media-control-button[data-stop]").append(B.default),this.$playPauseToggle.append(x.default),this.$playStopToggle.append(x.default),this.$volumeIcon.append(G.default),this.$fullscreenToggle.append(Y.default),this.$hdIndicator.append(W.default)},e.prototype.setSeekPercentage=function(t){t=Math.max(Math.min(t,100),0),this.displayedSeekBarPercentage!==t&&(this.displayedSeekBarPercentage=t,this.$seekBarPosition.removeClass("media-control-notransition"),this.$seekBarScrubber.removeClass("media-control-notransition"),this.$seekBarPosition.css({width:t+"%"}),this.$seekBarScrubber.css({left:t+"%"}))},e.prototype.seekRelative=function(t){if(this.settings.seekEnabled){var e=this.container.getCurrentTime(),i=this.container.getDuration(),n=Math.min(Math.max(e+t,0),i);n=Math.min(100*n/i,100),this.container.seekPercentage(n)}},e.prototype.bindKeyAndShow=function(t,e){var i=this;this.kibo.down(t,function(){return i.show(),e()})},e.prototype.bindKeyEvents=function(){var t=this;this.unbindKeyEvents(),this.kibo=new y.Kibo(this.options.focusElement),this.bindKeyAndShow("space",function(){return t.togglePlayPause()}),this.bindKeyAndShow("left",function(){return t.seekRelative(-5)}),this.bindKeyAndShow("right",function(){return t.seekRelative(5)}),this.bindKeyAndShow("shift left",function(){return t.seekRelative(-10)}),this.bindKeyAndShow("shift right",function(){return t.seekRelative(10)}),this.bindKeyAndShow("shift ctrl left",function(){return t.seekRelative(-15)}),this.bindKeyAndShow("shift ctrl right",function(){return t.seekRelative(15)}),["1","2","3","4","5","6","7","8","9","0"].forEach(function(e){t.bindKeyAndShow(e,function(){return t.settings.seekEnabled&&t.container.seekPercentage(10*e)})})},e.prototype.unbindKeyEvents=function(){this.kibo&&(this.kibo.off("space"),this.kibo.off("left"),this.kibo.off("right"),this.kibo.off("shift left"),this.kibo.off("shift right"),this.kibo.off("shift ctrl left"),this.kibo.off("shift ctrl right"),this.kibo.off(["1","2","3","4","5","6","7","8","9","0"]))},e.prototype.parseColors=function(){if(this.options.mediacontrol){this.buttonsColor=this.options.mediacontrol.buttons;var t=this.options.mediacontrol.seekbar;this.$el.find(".bar-fill-2[data-seekbar]").css("background-color",t),this.$el.find(".media-control-icon svg path").css("fill",this.buttonsColor),this.$el.find(".segmented-bar-element[data-volume]").css("boxShadow","inset 2px 0 0 "+this.buttonsColor)}},e.prototype.applyButtonStyle=function(t){this.buttonsColor&&t&&(0,I.default)(t).find("svg path").css("fill",this.buttonsColor)},e.prototype.destroy=function(){this.remove(),(0,I.default)(document).unbind("mouseup",this.stopDragHandler),(0,I.default)(document).unbind("mousemove",this.updateDragHandler),this.unbindKeyEvents()},e.prototype.render=function(){var t=this;this.$el.html(this.template({settings:this.settings})),this.createCachedElements(),this.$playPauseToggle.addClass("paused"),this.$playStopToggle.addClass("stopped"),this.changeTogglePlay(),this.hideId=setTimeout(function(){return t.hide()},1e3),this.disabled&&this.hide(),T.default.isSafari&&T.default.isMobile&&(T.default.version<10?this.$volumeContainer.css("display","none"):this.$volumeBarContainer.css("display","none")),this.$seekBarPosition.addClass("media-control-notransition"),this.$seekBarScrubber.addClass("media-control-notransition");var e=0;return this.displayedSeekBarPercentage&&(e=this.displayedSeekBarPercentage),this.displayedSeekBarPercentage=null,this.setSeekPercentage(e),n.nextTick(function(){t.settings.seekEnabled||t.$seekBarContainer.addClass("seek-disabled"),T.default.isMobile||t.options.disableKeyboardShortcuts||t.bindKeyEvents(),t.playerResize({width:t.options.width,height:t.options.height}),t.hideVolumeBar(0)}),this.parseColors(),this.highDefinitionUpdate(),this.rendered=!0,this.updateVolumeUI(),this.trigger(v.default.MEDIACONTROL_RENDERED),this},e}(_.default);e.default=q,q.extend=function(t){return(0,g.extend)(q,t)},t.exports=e.default}).call(e,i(57))},function(t,e,i){t.exports={default:i(143),__esModule:!0}},function(t,e,i){var n=i(11),r=n.JSON||(n.JSON={stringify:JSON.stringify});t.exports=function(t){return r.stringify.apply(r,arguments)}},function(t,e,i){var n=i(145);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".media-control-notransition{transition:none!important}.media-control[data-media-control]{position:absolute;width:100%;height:100%;z-index:9999;pointer-events:none}.media-control[data-media-control].dragging{pointer-events:auto;cursor:-webkit-grabbing!important;cursor:grabbing!important;cursor:url("+i(75)+"),move}.media-control[data-media-control].dragging *{cursor:-webkit-grabbing!important;cursor:grabbing!important;cursor:url("+i(75)+'),move}.media-control[data-media-control] .media-control-background[data-background]{position:absolute;height:40%;width:100%;bottom:0;background:linear-gradient(transparent,rgba(0,0,0,.9));transition:opacity .6s ease-out}.media-control[data-media-control] .media-control-icon{line-height:0;letter-spacing:0;speak:none;color:#fff;opacity:.5;vertical-align:middle;text-align:left;transition:all .1s ease}.media-control[data-media-control] .media-control-icon:hover{color:#fff;opacity:.75;text-shadow:hsla(0,0%,100%,.8) 0 0 5px}.media-control[data-media-control].media-control-hide .media-control-background[data-background]{opacity:0}.media-control[data-media-control].media-control-hide .media-control-layer[data-controls]{bottom:-50px}.media-control[data-media-control].media-control-hide .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar]{opacity:0}.media-control[data-media-control] .media-control-layer[data-controls]{position:absolute;bottom:7px;width:100%;height:32px;font-size:0;vertical-align:middle;pointer-events:auto;transition:bottom .4s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-left-panel[data-media-control]{position:absolute;top:0;left:4px;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-center-panel[data-media-control]{height:100%;text-align:center;line-height:32px}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-right-panel[data-media-control]{position:absolute;top:0;right:4px;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button{background-color:transparent;border:0;margin:0 6px;padding:0;cursor:pointer;display:inline-block;width:32px;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg{width:100%;height:22px}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg path{fill:#fff}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button:focus{outline:none}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-pause],.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-play],.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-stop]{float:left;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-fullscreen]{float:right;background-color:transparent;border:0;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator]{background-color:transparent;border:0;cursor:default;display:none;float:right;height:100%}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled{display:block;opacity:1}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled:hover{opacity:1;text-shadow:none}.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playpause],.media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playstop]{float:left}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration],.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position]{display:inline-block;font-size:10px;color:#fff;cursor:default;line-height:32px;position:relative}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position]{margin:0 6px 0 7px}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]{color:hsla(0,0%,100%,.5);margin-right:6px}.media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]:before{content:"|";margin-right:7px}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]{position:absolute;top:-20px;left:0;display:inline-block;vertical-align:middle;width:100%;height:25px;cursor:pointer}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar]{width:100%;height:1px;position:relative;top:12px;background-color:#666}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-1[data-seekbar]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#c2c2c2;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#005aff;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-hover[data-seekbar]{opacity:0;position:absolute;top:-3px;width:5px;height:7px;background-color:hsla(0,0%,100%,.5);transition:opacity .1s ease}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]:hover .bar-background[data-seekbar] .bar-hover[data-seekbar]{opacity:1}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled{cursor:default}.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]{opacity:0}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar]{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);top:2px;left:0;width:20px;height:20px;opacity:1;transition:all .1s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] .bar-scrubber-icon[data-seekbar]{position:absolute;left:6px;top:6px;width:8px;height:8px;border-radius:10px;box-shadow:0 0 0 6px hsla(0,0%,100%,.2);background-color:#fff}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume]{float:right;display:inline-block;height:32px;cursor:pointer;margin:0 6px;box-sizing:border-box}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume]{float:left;bottom:0}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]{background-color:transparent;border:0;box-sizing:content-box;width:32px;height:32px;opacity:.5}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]:hover{opacity:.75}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg{height:24px;position:relative;top:3px}.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{fill:#fff}.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{margin-left:2px}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume]{float:left;position:relative;overflow:hidden;top:6px;width:42px;height:18px;padding:3px 0;transition:width .2s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume]{height:1px;position:relative;top:7px;margin:0 3px;background-color:#666}.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]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#c2c2c2;transition:all .1s ease-out}.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]{position:absolute;top:0;left:0;width:0;height:100%;background-color:#005aff;transition:all .1s ease-out}.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]{opacity:0;position:absolute;top:-3px;width:5px;height:7px;background-color:hsla(0,0%,100%,.5);transition:opacity .1s ease}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume]{position:absolute;-webkit-transform:translateX(-50%);transform:translateX(-50%);top:0;left:0;width:20px;height:20px;opacity:1;transition:all .1s ease-out}.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]{position:absolute;left:6px;top:6px;width:8px;height:8px;border-radius:10px;box-shadow:0 0 0 6px hsla(0,0%,100%,.2);background-color:#fff}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]{float:left;width:4px;padding-left:2px;height:12px;opacity:.5;box-shadow:inset 2px 0 0 #fff;transition:-webkit-transform .2s ease-out;transition:transform .2s ease-out;transition:transform .2s ease-out,-webkit-transform .2s ease-out}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume].fill{box-shadow:inset 2px 0 0 #fff;opacity:1}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:first-of-type{padding-left:0}.media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:hover{-webkit-transform:scaleY(1.5);transform:scaleY(1.5)}.media-control[data-media-control].w320 .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume].volume-bar-hide{width:0;height:12px;top:9px;padding:0}',""])},function(t,e){t.exports='
\n
\n <% var renderBar = function(name) { %>\n
>\n
>\n
>
\n
>
\n
>
\n
\n
>\n
>
\n
\n
\n <% }; %>\n <% var renderSegmentedBar = function(name, segments) {\n segments = segments || 10; %>\n
>\n <% for (var i = 0; i < segments; i++) { %>\n
>
\n <% } %>\n
\n <% }; %>\n <% var renderDrawer = function(name, renderContent) { %>\n
>\n
>\n
>
\n >\n
\n <% renderContent(name); %>\n
\n <% }; %>\n <% var renderIndicator = function(name) { %>\n
>
\n <% }; %>\n <% var renderButton = function(name) { %>\n \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
\n <% render(settings.default); %>\n
\n <% } %>\n <% if (settings.left && settings.left.length) { %>\n
\n <% render(settings.left); %>\n
\n <% } %>\n <% if (settings.right && settings.right.length) { %>\n
\n <% render(settings.right); %>\n
\n <% } %>\n
\n'},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e){t.exports=''},function(t,e,i){var n=i(154);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,'[data-player]{-webkit-touch-callout:none;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;-o-user-select:none;user-select:none;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;-webkit-transform:translateZ(0);transform:translateZ(0);position:relative;margin:0;padding:0;border:0;font-style:normal;font-weight:400;text-align:center;overflow:hidden;font-size:100%;font-family:Roboto,Open Sans,Arial,sans-serif;text-shadow:0 0 0;box-sizing:border-box}[data-player] a,[data-player] abbr,[data-player] acronym,[data-player] address,[data-player] applet,[data-player] article,[data-player] aside,[data-player] audio,[data-player] b,[data-player] big,[data-player] blockquote,[data-player] canvas,[data-player] caption,[data-player] center,[data-player] cite,[data-player] code,[data-player] dd,[data-player] del,[data-player] details,[data-player] dfn,[data-player] div,[data-player] dl,[data-player] dt,[data-player] em,[data-player] embed,[data-player] fieldset,[data-player] figcaption,[data-player] figure,[data-player] footer,[data-player] form,[data-player] h1,[data-player] h2,[data-player] h3,[data-player] h4,[data-player] h5,[data-player] h6,[data-player] header,[data-player] hgroup,[data-player] i,[data-player] iframe,[data-player] img,[data-player] ins,[data-player] kbd,[data-player] label,[data-player] legend,[data-player] li,[data-player] mark,[data-player] menu,[data-player] nav,[data-player] object,[data-player] ol,[data-player] output,[data-player] p,[data-player] pre,[data-player] q,[data-player] ruby,[data-player] s,[data-player] samp,[data-player] section,[data-player] small,[data-player] span,[data-player] strike,[data-player] strong,[data-player] sub,[data-player] summary,[data-player] sup,[data-player] table,[data-player] tbody,[data-player] td,[data-player] tfoot,[data-player] th,[data-player] thead,[data-player] time,[data-player] tr,[data-player] tt,[data-player] u,[data-player] ul,[data-player] var,[data-player] video{margin:0;padding:0;border:0;font:inherit;font-size:100%;vertical-align:baseline}[data-player] table{border-collapse:collapse;border-spacing:0}[data-player] caption,[data-player] td,[data-player] th{text-align:left;font-weight:400;vertical-align:middle}[data-player] blockquote,[data-player] q{quotes:none}[data-player] blockquote:after,[data-player] blockquote:before,[data-player] q:after,[data-player] q:before{content:"";content:none}[data-player] a img{border:none}[data-player]:focus{outline:0}[data-player] *{max-width:none;box-sizing:inherit;float:none}[data-player] div{display:block}[data-player].fullscreen{width:100%!important;height:100%!important;top:0;left:0}[data-player].nocursor{cursor:none}.clappr-style{display:none!important}',""])},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,'@font-face{font-family:Roboto;font-style:normal;font-weight:400;src:local("Roboto"),local("Roboto-Regular"),url('+i(156)+') format("truetype")}',""])},function(t,e){t.exports="<%=baseUrl%>/38861cba61c66739c1452c3a71e39852.ttf"},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(71),a=n(r),o=i(0),s=n(o),l=i(1),u=n(l),c=i(2),d=n(c),h=i(17),f=n(h),p=i(34),g=n(p),y=i(35),m=n(y),v=i(81),b=n(v),_=i(82),E=n(_),T=i(83),A=n(T),S=i(84),L=n(S),R=i(85),k=n(R),w=i(86),C=n(w),I=i(189),D=n(I),O=i(194),P=n(O),x=i(196),N=n(x),M=i(87),F=n(M),B=i(205),U=n(B),G=i(207),K=n(G),V=i(209),j=n(V),Y=i(214),H=n(Y),$=i(220),z=n($),W=i(222),q=n(W),X=i(227),Z=n(X),J=i(228),Q=n(J),tt=i(229),et=n(tt),it=function(t){function e(i,n){(0,s.default)(this,e);var r=(0,u.default)(this,t.call(this));return r.playerId=n,r.playbackPlugins=[L.default,m.default,E.default,b.default,A.default,k.default,C.default],r.containerPlugins=[D.default,N.default,F.default,P.default,U.default,K.default],r.corePlugins=[j.default,H.default,z.default,q.default,Z.default,Q.default,et.default],i&&(Array.isArray(i)||r.validateExternalPluginsType(i),r.addExternalPlugins(i)),r}return(0,d.default)(e,t),e.prototype.groupPluginsByType=function(t){return Array.isArray(t)&&(t=t.reduce(function(t,e){return t[e.type]||(t[e.type]=[]),t[e.type].push(e),t},{})),t},e.prototype.removeDups=function(t){var e=function(t,e){return t[e.prototype.name]&&delete t[e.prototype.name],t[e.prototype.name]=e,t},i=t.reduceRight(e,(0,a.default)(null)),n=[];for(var r in i)n.unshift(i[r]);return n},e.prototype.addExternalPlugins=function(t){t=this.groupPluginsByType(t),t.playback&&(this.playbackPlugins=this.removeDups(t.playback.concat(this.playbackPlugins))),t.container&&(this.containerPlugins=this.removeDups(t.container.concat(this.containerPlugins))),t.core&&(this.corePlugins=this.removeDups(t.core.concat(this.corePlugins))),g.default.getInstance(this.playerId).playbackPlugins=this.playbackPlugins},e.prototype.validateExternalPluginsType=function(t){["playback","container","core"].forEach(function(e){(t[e]||[]).forEach(function(t){var i="external "+t.type+" plugin on "+e+" array";if(t.type!==e)throw new ReferenceError(i)})})},e}(f.default);e.default=it,t.exports=e.default},function(t,e,i){"use strict";(function(n){function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=i(79),o=r(a),s=i(0),l=r(s),u=i(1),c=r(u),d=i(3),h=r(d),f=i(2),p=r(f),g=i(80),y=r(g),m=i(31),v=r(m),b=i(5),_=i(9),E=r(_),T=i(13),A=r(T),S=i(4),L=r(S),R=i(6),k=r(R),w=i(8),C=r(w),I=i(167),D=r(I);i(168);var O={mp4:["avc1.42E01E","avc1.58A01E","avc1.4D401E","avc1.64001E","mp4v.20.8","mp4v.20.240","mp4a.40.2"].map(function(t){return'video/mp4; codecs="'+t+', mp4a.40.2"'}),ogg:['video/ogg; codecs="theora, vorbis"','video/ogg; codecs="dirac"','video/ogg; codecs="theora, speex"'],"3gpp":['video/3gpp; codecs="mp4v.20.8, samr"'],webm:['video/webm; codecs="vp8, vorbis"'],mkv:['video/x-matroska; codecs="theora, vorbis"'],m3u8:["application/x-mpegurl"]};O.ogv=O.ogg,O["3gp"]=O["3gpp"];var P={wav:["audio/wav"],mp3:["audio/mp3",'audio/mpeg;codecs="mp3"'],aac:['audio/mp4;codecs="mp4a.40.5"'],oga:["audio/ogg"]},x=(0,v.default)(P).reduce(function(t,e){return[].concat((0,y.default)(t),(0,y.default)(P[e]))},[]),N=function(t){function e(){(0,l.default)(this,e);for(var i=arguments.length,r=Array(i),a=0;a=0}},{key:"attributes",get:function(){return{"data-html5-video":""}}},{key:"events",get:function(){return{canplay:"_onCanPlay",canplaythrough:"_handleBufferingEvents",durationchange:"_onDurationChange",ended:"_onEnded",error:"_onError",loadeddata:"_onLoadedData",loadedmetadata:"_onLoadedMetadata",pause:"_onPause",playing:"_onPlaying",progress:"_onProgress",seeking:"_handleBufferingEvents",seeked:"_onSeeked",stalled:"_handleBufferingEvents",timeupdate:"_onTimeUpdate",waiting:"_onWaiting"}}},{key:"ended",get:function(){return this.el.ended}},{key:"buffering",get:function(){return this._isBuffering}}]),e.prototype._setupExternalTracks=function(t){this._externalTracks=t.map(function(t){return{kind:t.kind||"subtitles",label:t.label,lang:t.lang,src:t.src}})},e.prototype._setupSrc=function(t){this.el.src!==t&&(this._ccIsSetup=!1,this.el.src=t,this._src=this.el.src)},e.prototype._onLoadedMetadata=function(t){this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_LOADEDMETADATA,{duration:t.target.duration,data:t}),this._updateSettings();var e=void 0===this._options.autoSeekFromUrl||this._options.autoSeekFromUrl;this.getPlaybackType()!==E.default.LIVE&&e&&this._checkInitialSeek()},e.prototype._onDurationChange=function(){this._updateSettings(),this._onTimeUpdate(),this._onProgress()},e.prototype._updateSettings=function(){this.getPlaybackType()===E.default.VOD||this.getPlaybackType()===E.default.AOD?this.settings.left=["playpause","position","duration"]:this.settings.left=["playstop"],this.settings.seekEnabled=this.isSeekEnabled(),this.trigger(L.default.PLAYBACK_SETTINGSUPDATE)},e.prototype.isSeekEnabled=function(){return isFinite(this.getDuration())},e.prototype.getPlaybackType=function(){var t="audio"===this.tagName?E.default.AOD:E.default.VOD;return[0,void 0,1/0].indexOf(this.el.duration)>=0?E.default.LIVE:t},e.prototype.isHighDefinitionInUse=function(){return!1},e.prototype.consent=function(){!this.isPlaying()&&this.el.load()},e.prototype.play=function(){this.trigger(L.default.PLAYBACK_PLAY_INTENT),this._stopped=!1,this._setupSrc(this._src),this._handleBufferingEvents();var t=this.el.play();t&&t.catch&&t.catch(function(){})},e.prototype.pause=function(){this.el.pause()},e.prototype.stop=function(){this.pause(),this._stopped=!0,this.el.removeAttribute("src"),this._stopPlayheadMovingChecks(),this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_STOP)},e.prototype.volume=function(t){0===t?(this.$el.attr({muted:"true"}),this.el.muted=!0):(this.$el.attr({muted:null}),this.el.muted=!1),this.el.volume=t/100},e.prototype.mute=function(){this.el.muted=!0},e.prototype.unmute=function(){this.el.muted=!1},e.prototype.isMuted=function(){return!!this.el.volume},e.prototype.isPlaying=function(){return!this.el.paused&&!this.el.ended},e.prototype._startPlayheadMovingChecks=function(){null===this._playheadMovingTimer&&(this._playheadMovingTimeOnCheck=null,this._determineIfPlayheadMoving(),this._playheadMovingTimer=setInterval(this._determineIfPlayheadMoving.bind(this),500))},e.prototype._stopPlayheadMovingChecks=function(){null!==this._playheadMovingTimer&&(clearInterval(this._playheadMovingTimer),this._playheadMovingTimer=null,this._playheadMoving=!1)},e.prototype._determineIfPlayheadMoving=function(){var t=this._playheadMovingTimeOnCheck,e=this.el.currentTime;this._playheadMoving=t!==e,this._playheadMovingTimeOnCheck=e,this._handleBufferingEvents()},e.prototype._onWaiting=function(){this._loadStarted=!0,this._handleBufferingEvents()},e.prototype._onLoadedData=function(){this._loadStarted=!0,this._handleBufferingEvents()},e.prototype._onCanPlay=function(){this._handleBufferingEvents()},e.prototype._onPlaying=function(){this._checkForClosedCaptions(),this._startPlayheadMovingChecks(),this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_PLAY)},e.prototype._onPause=function(){this._stopPlayheadMovingChecks(),this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_PAUSE)},e.prototype._onSeeked=function(){this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_SEEKED)},e.prototype._onEnded=function(){this._handleBufferingEvents(),this.trigger(L.default.PLAYBACK_ENDED,this.name)},e.prototype._handleBufferingEvents=function(){var t=!this.el.ended&&!this.el.paused,e=this._loadStarted&&!this.el.ended&&!this._stopped&&(t&&!this._playheadMoving||this.el.readyState=t[i].start&&this.el.currentTime<=t[i].end&&(e=i);var n={start:t[e].start,current:t[e].end,total:this.el.duration};this.trigger(L.default.PLAYBACK_PROGRESS,n,t)}},e.prototype._typeFor=function(t){var i=e._mimeTypesForUrl(t,O,this.options.mimeType);return 0===i.length&&(i=e._mimeTypesForUrl(t,P,this.options.mimeType)),(i[0]||"").split(";")[0]},e.prototype._ready=function(){this._isReadyState||(this._isReadyState=!0,this.trigger(L.default.PLAYBACK_READY,this.name))},e.prototype._checkForClosedCaptions=function(){if(this.isHTML5Video&&!this._ccIsSetup){if(this.hasClosedCaptionsTracks){this.trigger(L.default.PLAYBACK_SUBTITLE_AVAILABLE);var t=this.closedCaptionsTrackId;this.closedCaptionsTrackId=t,this.handleTextTrackChange=this._handleTextTrackChange.bind(this),this.el.textTracks.addEventListener("change",this.handleTextTrackChange)}this._ccIsSetup=!0}},e.prototype._handleTextTrackChange=function(){var t=this.closedCaptionsTracks,e=t.find(function(t){return"showing"===t.track.mode})||{id:-1};this._ccTrackId!==e.id&&(this._ccTrackId=e.id,this.trigger(L.default.PLAYBACK_SUBTITLE_CHANGED,{id:e.id}))},e.prototype.render=function(){return this.options.playback.disableContextMenu&&this.$el.on("contextmenu",function(){return!1}),this._externalTracks&&this._externalTracks.length>0&&this.$el.html(this.template({tracks:this._externalTracks})),this._ready(),this},(0,h.default)(e,[{key:"isReady",get:function(){return this._isReadyState}},{key:"isHTML5Video",get:function(){return this.name===e.prototype.name}},{key:"closedCaptionsTracks",get:function(){var t=0,e=function(){return t++};return(this.el.textTracks?(0,o.default)(this.el.textTracks):[]).filter(function(t){return"subtitles"===t.kind||"captions"===t.kind}).map(function(t){return{id:e(),name:t.label,track:t}})}},{key:"closedCaptionsTrackId",get:function(){return this._ccTrackId},set:function(t){if((0,b.isNumber)(t)){var e=this.closedCaptionsTracks,i=void 0;if(-1!==t){if(!(i=e.find(function(e){return e.id===t})))return;if("showing"===i.track.mode)return}e.filter(function(t){return"hidden"!==t.track.mode}).forEach(function(t){return t.track.mode="hidden"}),i&&(i.track.mode="showing"),this._ccTrackId=t,this.trigger(L.default.PLAYBACK_SUBTITLE_CHANGED,{id:t})}}},{key:"template",get:function(){return(0,C.default)(D.default)}}]),e}(E.default);e.default=N,N._mimeTypesForUrl=function(t,e,i){var n=(t.split("?")[0].match(/.*\.(.*)$/)||[])[1],r=i||n&&e[n.toLowerCase()]||[];return r.constructor===Array?r:[r]},N._canPlay=function(t,e,i,n){var r=N._mimeTypesForUrl(i,e,n),a=document.createElement(t);return!!r.filter(function(t){return!!a.canPlayType(t).replace(/no/,"")})[0]},N.canPlay=function(t,e){return N._canPlay("audio",P,t,e)||N._canPlay("video",O,t,e)},t.exports=e.default}).call(e,i(57))},function(t,e,i){i(65),i(160),t.exports=i(11).Array.from},function(t,e,i){"use strict";var n=i(46),r=i(19),a=i(39),o=i(161),s=i(162),l=i(61),u=i(163),c=i(164);r(r.S+r.F*!i(166)(function(t){Array.from(t)}),"Array",{from:function(t){var e,i,r,d,h=a(t),f="function"==typeof this?this:Array,p=arguments.length,g=p>1?arguments[1]:void 0,y=void 0!==g,m=0,v=c(h);if(y&&(g=n(g,p>2?arguments[2]:void 0,2)),void 0==v||f==Array&&s(v))for(e=l(h.length),i=new f(e);e>m;m++)u(i,m,y?g(h[m],m):h[m]);else for(d=v.call(h),i=new f;!(r=d.next()).done;m++)u(i,m,y?o(d,g,[r.value,m],!0):r.value);return i.length=m,i}})},function(t,e,i){var n=i(23);t.exports=function(t,e,i,r){try{return r?e(n(i)[0],i[1]):e(i)}catch(e){var a=t.return;throw void 0!==a&&n(a.call(t)),e}}},function(t,e,i){var n=i(29),r=i(12)("iterator"),a=Array.prototype;t.exports=function(t){return void 0!==t&&(n.Array===t||a[r]===t)}},function(t,e,i){"use strict";var n=i(16),r=i(28);t.exports=function(t,e,i){e in t?n.f(t,e,r(0,i)):t[e]=i}},function(t,e,i){var n=i(165),r=i(12)("iterator"),a=i(29);t.exports=i(11).getIteratorMethod=function(t){if(void 0!=t)return t[r]||t["@@iterator"]||a[n(t)]}},function(t,e,i){var n=i(41),r=i(12)("toStringTag"),a="Arguments"==n(function(){return arguments}()),o=function(t,e){try{return t[e]}catch(t){}};t.exports=function(t){var e,i,s;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(i=o(e=Object(t),r))?i:a?n(e):"Object"==(s=n(e))&&"function"==typeof e.callee?"Arguments":s}},function(t,e,i){var n=i(12)("iterator"),r=!1;try{var a=[7][n]();a.return=function(){r=!0},Array.from(a,function(){throw 2})}catch(t){}t.exports=function(t,e){if(!e&&!r)return!1;var i=!1;try{var a=[7],o=a[n]();o.next=function(){return{done:i=!0}},a[n]=function(){return o},t(a)}catch(t){}return i}},function(t,e){t.exports='<% for (var i = 0; i < tracks.length; i++) { %>\n \n<% }; %>\n'},function(t,e,i){var n=i(169);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,"[data-html5-video]{position:absolute;height:100%;width:100%;display:block}",""])},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(5),f=i(59),p=n(f),g=i(13),y=n(g),m=i(24),v=n(m),b=i(8),_=n(b),E=i(6),T=n(E),A=i(4),S=n(A),L=i(9),R=n(L),k=i(175),w=n(k),C=function(t){function e(){(0,a.default)(this,e);for(var i=arguments.length,n=Array(i),r=0;r').insertAfter(this.$el),this.getDuration()>0?this._metadataLoaded():v.default.once(this.uniqueId+":timeupdate",this._metadataLoaded,this)):(this._attempts=this._attempts||0,++this._attempts<=60?setTimeout(function(){return t._bootstrap()},50):this.trigger(S.default.PLAYBACK_ERROR,{message:"Max number of attempts reached"},this.name))},e.prototype._metadataLoaded=function(){this._isReadyState=!0,this.trigger(S.default.PLAYBACK_READY,this.name),this.trigger(S.default.PLAYBACK_SETTINGSUPDATE,this.name)},e.prototype.getPlaybackType=function(){return R.default.VOD},e.prototype.isHighDefinitionInUse=function(){return!1},e.prototype._updateTime=function(){this.trigger(S.default.PLAYBACK_TIMEUPDATE,{current:this.el.getPosition(),total:this.el.getDuration()},this.name)},e.prototype._addListeners=function(){v.default.on(this.uniqueId+":progress",this._progress,this),v.default.on(this.uniqueId+":timeupdate",this._updateTime,this),v.default.on(this.uniqueId+":statechanged",this._checkState,this),v.default.on(this.uniqueId+":flashready",this._bootstrap,this)},e.prototype.stopListening=function(){t.prototype.stopListening.call(this),v.default.off(this.uniqueId+":progress"),v.default.off(this.uniqueId+":timeupdate"),v.default.off(this.uniqueId+":statechanged"),v.default.off(this.uniqueId+":flashready")},e.prototype._checkState=function(){this._isIdle||"PAUSED"===this._currentState||("PLAYING_BUFFERING"!==this._currentState&&"PLAYING_BUFFERING"===this.el.getState()?(this._bufferingState=!0,this.trigger(S.default.PLAYBACK_BUFFERING,this.name),this._currentState="PLAYING_BUFFERING"):"PLAYING"===this.el.getState()?(this._bufferingState=!1,this.trigger(S.default.PLAYBACK_BUFFERFULL,this.name),this._currentState="PLAYING"):"IDLE"===this.el.getState()?this._currentState="IDLE":"ENDED"===this.el.getState()&&(this.trigger(S.default.PLAYBACK_ENDED,this.name),this.trigger(S.default.PLAYBACK_TIMEUPDATE,{current:0,total:this.el.getDuration()},this.name),this._currentState="ENDED",this._isIdle=!0))},e.prototype._progress=function(){"IDLE"!==this._currentState&&"ENDED"!==this._currentState&&this.trigger(S.default.PLAYBACK_PROGRESS,{start:0,current:this.el.getBytesLoaded(),total:this.el.getBytesTotal()})},e.prototype._firstPlay=function(){var t=this;this.el.playerPlay?(this._isIdle=!1,this.el.playerPlay(this._src),this.listenToOnce(this,S.default.PLAYBACK_BUFFERFULL,function(){return t._checkInitialSeek()}),this._currentState="PLAYING"):this.listenToOnce(this,S.default.PLAYBACK_READY,this._firstPlay)},e.prototype._checkInitialSeek=function(){var t=(0,h.seekStringToSeconds)(window.location.href);0!==t&&this.seekSeconds(t)},e.prototype.play=function(){this.trigger(S.default.PLAYBACK_PLAY_INTENT),"PAUSED"===this._currentState||"PLAYING_BUFFERING"===this._currentState?(this._currentState="PLAYING",this.el.playerResume(),this.trigger(S.default.PLAYBACK_PLAY,this.name)):"PLAYING"!==this._currentState&&(this._firstPlay(),this.trigger(S.default.PLAYBACK_PLAY,this.name))},e.prototype.volume=function(t){var e=this;this.isReady?this.el.playerVolume(t):this.listenToOnce(this,S.default.PLAYBACK_BUFFERFULL,function(){return e.volume(t)})},e.prototype.pause=function(){this._currentState="PAUSED",this.el.playerPause(),this.trigger(S.default.PLAYBACK_PAUSE,this.name)},e.prototype.stop=function(){this.el.playerStop(),this.trigger(S.default.PLAYBACK_STOP),this.trigger(S.default.PLAYBACK_TIMEUPDATE,{current:0,total:0},this.name)},e.prototype.isPlaying=function(){return!!(this.isReady&&this._currentState.indexOf("PLAYING")>-1)},e.prototype.getDuration=function(){return this.el.getDuration()},e.prototype.seekPercentage=function(t){var e=this;if(this.el.getDuration()>0){var i=this.el.getDuration()*(t/100);this.seek(i)}else this.listenToOnce(this,S.default.PLAYBACK_BUFFERFULL,function(){return e.seekPercentage(t)})},e.prototype.seek=function(t){var e=this;this.isReady&&this.el.playerSeek?(this.el.playerSeek(t),this.trigger(S.default.PLAYBACK_TIMEUPDATE,{current:t,total:this.el.getDuration()},this.name),"PAUSED"===this._currentState&&this.el.playerPause()):this.listenToOnce(this,S.default.PLAYBACK_BUFFERFULL,function(){return e.seek(t)})},e.prototype.destroy=function(){clearInterval(this.bootstrapId),t.prototype.stopListening.call(this),this.$el.remove()},(0,u.default)(e,[{key:"isReady",get:function(){return this._isReadyState}}]),e}(p.default);e.default=C,C.canPlay=function(t){if(y.default.hasFlash&&t&&t.constructor===String){var e=t.split("?")[0].match(/.*\.(.*)$/)||[];return e.length>1&&!y.default.isMobile&&e[1].toLowerCase().match(/^(mp4|mov|f4v|3gpp|3gp)$/)}return!1},t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(3),s=n(o),l=i(1),u=n(l),c=i(2),d=n(c),h=i(9),f=n(h),p=i(8),g=n(p),y=i(13),m=n(y),v=i(172),b=n(v);i(173);var _=function(t){function e(){return(0,a.default)(this,e),(0,u.default)(this,t.apply(this,arguments))}return(0,d.default)(e,t),e.prototype.setElement=function(t){this.$el=t,this.el=t[0]},e.prototype.render=function(){return this.$el.attr("data",this.swfPath),this.$el.html(this.template({cid:this.cid,swfPath:this.swfPath,baseUrl:this.baseUrl,playbackId:this.uniqueId,wmode:this.wmode,callbackName:"window.Clappr.flashlsCallbacks."+this.cid})),m.default.isIE&&(this.$("embed").remove(),m.default.isLegacyIE&&this.$el.attr("classid","clsid:d27cdb6e-ae6d-11cf-96b8-444553540000")),this.el.id=this.cid,this},(0,s.default)(e,[{key:"tagName",get:function(){return"object"}},{key:"swfPath",get:function(){return""}},{key:"wmode",get:function(){return"transparent"}},{key:"template",get:function(){return(0,g.default)(b.default)}},{key:"attributes",get:function(){var t="application/x-shockwave-flash";return m.default.isLegacyIE&&(t=""),{class:"clappr-flash-playback",type:t,width:"100%",height:"100%",data:this.swfPath,"data-flash-playback":this.name}}}]),e}(f.default);e.default=_,t.exports=e.default},function(t,e){t.exports='\n\n\n\n\n\n\n\n\n\n\n'},function(t,e,i){var n=i(174);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".clappr-flash-playback[data-flash-playback]{display:block;position:absolute;top:0;left:0;height:100%;width:100%;pointer-events:none}",""])},function(t,e){t.exports="<%=baseUrl%>/4b76590b32dab62bc95c1b7951efae78.swf"},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(3),s=n(o),l=i(1),u=n(l),c=i(2),d=n(c),h=i(4),f=n(h),p=i(9),g=n(p),y=i(35),m=n(y),v=function(t){function e(){return(0,a.default)(this,e),(0,u.default)(this,t.apply(this,arguments))}return(0,d.default)(e,t),e.prototype.updateSettings=function(){this.settings.left=["playpause","position","duration"],this.settings.seekEnabled=this.isSeekEnabled(),this.trigger(f.default.PLAYBACK_SETTINGSUPDATE)},e.prototype.getPlaybackType=function(){return g.default.AOD},(0,s.default)(e,[{key:"name",get:function(){return"html5_audio"}},{key:"tagName",get:function(){return"audio"}},{key:"isAudioOnly",get:function(){return!0}}]),e}(m.default);e.default=v,v.canPlay=function(t,e){var i={wav:["audio/wav"],mp3:["audio/mp3",'audio/mpeg;codecs="mp3"'],aac:['audio/mp4;codecs="mp4a.40.5"'],oga:["audio/ogg"]};return m.default._canPlay("audio",i,t,e)},t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(59),f=n(h),p=i(4),g=n(p),y=i(8),m=n(y),v=i(9),b=n(v),_=i(24),E=n(_),T=i(13),A=n(T),S=i(178),L=n(S),R=i(179),k=n(R),w=i(6),C=n(w),I=function(t){function e(){(0,a.default)(this,e);for(var i=arguments.length,n=Array(i),r=0;r=720||e.bitrate/1e3>=2e3,this.trigger(g.default.PLAYBACK_HIGHDEFINITIONUPDATE,this.highDefinition),this._levels&&0!==this._levels.length||this._fillLevels(),this.trigger(g.default.PLAYBACK_BITRATE,{height:e.height,width:e.width,bandwidth:e.bitrate,bitrate:e.bitrate,level:t}),this.trigger(g.default.PLAYBACK_LEVEL_SWITCH_END))},e.prototype._updateTime=function(t){if("IDLE"!==this._currentState){var e=this._normalizeDuration(t.duration),i=Math.min(Math.max(t.position,0),e),n=this._dvrEnabled,r=this._playbackType===b.default.LIVE;this._dvrEnabled=r&&e>this._hlsMinimumDvrSize,100!==e&&void 0!==r&&(this._dvrEnabled!==n&&(this._updateSettings(),this.trigger(g.default.PLAYBACK_SETTINGSUPDATE,this.name)),!r||this._dvrEnabled&&this._dvrInUse||(i=e),this.trigger(g.default.PLAYBACK_TIMEUPDATE,{current:i,total:e},this.name))}},e.prototype.play=function(){this.trigger(g.default.PLAYBACK_PLAY_INTENT),"PAUSED"===this._currentState?this.el.playerResume():this._srcLoaded||"PLAYING"===this._currentState?this.el.playerPlay():this._firstPlay()},e.prototype.getPlaybackType=function(){return this._playbackType?this._playbackType:null},e.prototype.getCurrentTime=function(){return this.el.getPosition()},e.prototype.getCurrentLevelIndex=function(){return this._currentLevel},e.prototype.getCurrentLevel=function(){return this.levels[this.currentLevel]},e.prototype.getCurrentBitrate=function(){return this.levels[this.currentLevel].bitrate},e.prototype.setCurrentLevel=function(t){this.currentLevel=t},e.prototype.isHighDefinitionInUse=function(){return this.highDefinition},e.prototype.getLevels=function(){return this.levels},e.prototype._setPlaybackState=function(t){["PLAYING_BUFFERING","PAUSED_BUFFERING"].indexOf(t)>=0?(this._bufferingState=!0,this.trigger(g.default.PLAYBACK_BUFFERING,this.name),this._updateCurrentState(t)):["PLAYING","PAUSED"].indexOf(t)>=0?(["PLAYING_BUFFERING","PAUSED_BUFFERING","IDLE"].indexOf(this._currentState)>=0&&(this._bufferingState=!1,this.trigger(g.default.PLAYBACK_BUFFERFULL,this.name)),this._updateCurrentState(t)):"IDLE"===t&&(this._srcLoaded=!1,this._loop&&["PLAYING_BUFFERING","PLAYING"].indexOf(this._currentState)>=0?(this.play(),this.seek(0)):(this._updateCurrentState(t),this._hasEnded=!0,this.trigger(g.default.PLAYBACK_TIMEUPDATE,{current:0,total:this.getDuration()},this.name),this.trigger(g.default.PLAYBACK_ENDED,this.name)))},e.prototype._updateCurrentState=function(t){this._currentState=t,"IDLE"!==t&&(this._hasEnded=!1),this._updatePlaybackType(),"PLAYING"===t?this.trigger(g.default.PLAYBACK_PLAY,this.name):"PAUSED"===t&&this.trigger(g.default.PLAYBACK_PAUSE,this.name)},e.prototype._updatePlaybackType=function(){this._playbackType=this.el.getType(),this._playbackType&&(this._playbackType=this._playbackType.toLowerCase(),this._playbackType===b.default.VOD?this._startReportingProgress():this._stopReportingProgress()),this.trigger(g.default.PLAYBACK_PLAYBACKSTATE,{type:this._playbackType})},e.prototype._startReportingProgress=function(){this._reportingProgress||(this._reportingProgress=!0)},e.prototype._stopReportingProgress=function(){this._reportingProgress=!1},e.prototype._onFragmentLoaded=function(t){if(this.trigger(g.default.PLAYBACK_FRAGMENT_LOADED,t),this._reportingProgress&&this.getCurrentTime()){var e=this.getCurrentTime()+this.el.getbufferLength();this.trigger(g.default.PLAYBACK_PROGRESS,{start:this.getCurrentTime(),current:e,total:this.el.getDuration()})}},e.prototype._onLevelEndlist=function(){this._updatePlaybackType()},e.prototype._firstPlay=function(){var t=this;this._shouldPlayOnManifestLoaded=!0,this.el.playerLoad&&(E.default.once(this.cid+":manifestloaded",function(e,i){return t._manifestLoaded(e,i)}),this._setFlashSettings(),this.el.playerLoad(this._src),this._srcLoaded=!0)},e.prototype.volume=function(t){var e=this;this.isReady?this.el.playerVolume(t):this.listenToOnce(this,g.default.PLAYBACK_BUFFERFULL,function(){return e.volume(t)})},e.prototype.pause=function(){(this._playbackType!==b.default.LIVE||this._dvrEnabled)&&(this.el.playerPause(),this._playbackType===b.default.LIVE&&this._dvrEnabled&&this._updateDvr(!0))},e.prototype.stop=function(){this._srcLoaded=!1,this.el.playerStop(),this.trigger(g.default.PLAYBACK_STOP),this.trigger(g.default.PLAYBACK_TIMEUPDATE,{current:0,total:0},this.name)},e.prototype.isPlaying=function(){return!!this._currentState&&!!this._currentState.match(/playing/i)},e.prototype.getDuration=function(){return this._normalizeDuration(this.el.getDuration())},e.prototype._normalizeDuration=function(t){return this._playbackType===b.default.LIVE&&(t=Math.max(0,t-10)),t},e.prototype.seekPercentage=function(t){var e=this.el.getDuration(),i=0;t>0&&(i=e*t/100),this.seek(i)},e.prototype.seek=function(t){var e=this.getDuration();if(this._playbackType===b.default.LIVE){var i=e-t>3;this._updateDvr(i)}this.el.playerSeek(t),this.trigger(g.default.PLAYBACK_TIMEUPDATE,{current:t,total:e},this.name)},e.prototype._updateDvr=function(t){var e=!!this._dvrInUse;this._dvrInUse=t,this._dvrInUse!==e&&(this._updateSettings(),this.trigger(g.default.PLAYBACK_DVR,this._dvrInUse),this.trigger(g.default.PLAYBACK_STATS_ADD,{dvr:this._dvrInUse}))},e.prototype._flashPlaybackError=function(t,e,i){this.trigger(g.default.PLAYBACK_ERROR,{code:t,url:e,message:i}),this.trigger(g.default.PLAYBACK_STOP)},e.prototype._manifestLoaded=function(t,e){this._shouldPlayOnManifestLoaded&&(this._shouldPlayOnManifestLoaded=!1,this.el.playerPlay()),this._fillLevels(),this.trigger(g.default.PLAYBACK_LOADEDMETADATA,{duration:t,data:e})},e.prototype._fillLevels=function(){var t=this.el.getLevels(),e=t.length;this._levels=[];for(var i=0;i1&&"m3u8"===i[1].toLowerCase()||"application/x-mpegURL"===e||"application/vnd.apple.mpegurl"===e)},t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(24),s=n(o),l=function(){function t(e){(0,a.default)(this,t),this.instanceId=e}return t.prototype.ready=function(){s.default.trigger(this.instanceId+":flashready")},t.prototype.videoSize=function(t,e){s.default.trigger(this.instanceId+":videosizechanged",t,e)},t.prototype.complete=function(){s.default.trigger(this.instanceId+":complete")},t.prototype.error=function(t,e,i){s.default.trigger(this.instanceId+":error",t,e,i)},t.prototype.manifest=function(t,e){s.default.trigger(this.instanceId+":manifestloaded",t,e)},t.prototype.audioLevelLoaded=function(t){s.default.trigger(this.instanceId+":audiolevelloaded",t)},t.prototype.levelLoaded=function(t){s.default.trigger(this.instanceId+":levelloaded",t)},t.prototype.levelEndlist=function(t){s.default.trigger(this.instanceId+":levelendlist",t)},t.prototype.fragmentLoaded=function(t){s.default.trigger(this.instanceId+":fragmentloaded",t)},t.prototype.fragmentPlaying=function(t){s.default.trigger(this.instanceId+":fragmentplaying",t)},t.prototype.position=function(t){s.default.trigger(this.instanceId+":timeupdate",t)},t.prototype.state=function(t){s.default.trigger(this.instanceId+":playbackstate",t)},t.prototype.seekState=function(t){s.default.trigger(this.instanceId+":seekstate",t)},t.prototype.switch=function(t){s.default.trigger(this.instanceId+":levelchanged",t)},t.prototype.audioTracksListChange=function(t){s.default.trigger(this.instanceId+":audiotracklistchanged",t)},t.prototype.audioTrackChange=function(t){s.default.trigger(this.instanceId+":audiotrackchanged",t)},t}();e.default=l,t.exports=e.default},function(t,e){t.exports="<%=baseUrl%>/8fa12a459188502b9f0d39b8a67d9e6c.swf"},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(80),a=n(r),o=i(0),s=n(o),l=i(1),u=n(l),c=i(3),d=n(c),h=i(2),f=n(h),p=i(35),g=n(p),y=i(181),m=n(y),v=i(4),b=n(v),_=i(9),E=n(_),T=i(5),A=i(55),S=n(A),L=function(t){function e(){(0,s.default)(this,e);for(var i=arguments.length,n=Array(i),r=0;r0&&(e=this._duration*(t/100)),this.seek(e)},e.prototype.seek=function(e){e<0&&(S.default.warn("Attempt to seek to a negative time. Resetting to live point. Use seekToLivePoint() to seek to the live point."),e=this.getDuration()),this.dvrEnabled&&this._updateDvr(e0)switch(this._recoverAttemptsRemaining-=1,e.type){case m.default.ErrorTypes.NETWORK_ERROR:switch(e.details){case m.default.ErrorDetails.MANIFEST_LOAD_ERROR:case m.default.ErrorDetails.MANIFEST_LOAD_TIMEOUT:case m.default.ErrorDetails.MANIFEST_PARSING_ERROR:case m.default.ErrorDetails.LEVEL_LOAD_ERROR:case m.default.ErrorDetails.LEVEL_LOAD_TIMEOUT:S.default.error("hlsjs: unrecoverable network fatal error, evt "+t+", data "+e+" "),this.trigger(b.default.PLAYBACK_ERROR,{evt:t,data:e},this.name);break;default:S.default.warn("hlsjs: trying to recover from network error, evt "+t+", data "+e+" "),this._hls.startLoad()}break;case m.default.ErrorTypes.MEDIA_ERROR:S.default.warn("hlsjs: trying to recover from media error, evt "+t+", data "+e+" "),this._recover(t,e);break;default:S.default.error("hlsjs: trying to recover from error, evt "+t+", data "+e+" "),this.trigger(b.default.PLAYBACK_ERROR,"hlsjs: could not recover from error, evt "+t+", data "+e+" ",this.name)}else S.default.error("hlsjs: could not recover from error after maximum number of attempts, evt "+t+", data "+e+" "),this.trigger(b.default.PLAYBACK_ERROR,{evt:t,data:e},this.name);else S.default.warn("hlsjs: non-fatal error occurred, evt "+t+", data "+e+" ")},e.prototype._onTimeUpdate=function(){var t={current:this.getCurrentTime(),total:this.getDuration()};this._lastTimeUpdate&&t.current===this._lastTimeUpdate.current&&t.total===this._lastTimeUpdate.total||(this._lastTimeUpdate=t,this.trigger(b.default.PLAYBACK_TIMEUPDATE,t,this.name))},e.prototype._onDurationChange=function(){var e=this.getDuration();this._lastDuration!==e&&(this._lastDuration=e,t.prototype._onDurationChange.call(this))},e.prototype._onProgress=function(){if(this.el.buffered.length){for(var t=[],e=0,i=0;i=t[i].start&&this.el.currentTime<=t[i].end&&(e=i);var n={start:t[e].start,current:t[e].end,total:this.getDuration()};this.trigger(b.default.PLAYBACK_PROGRESS,n,t)}},e.prototype.play=function(){this._hls||this._setup(),t.prototype.play.call(this)},e.prototype.pause=function(){this._hls&&(t.prototype.pause.call(this),this.dvrEnabled&&this._updateDvr(!0))},e.prototype.stop=function(){this._hls&&(t.prototype.stop.call(this),this._hls.destroy(),delete this._hls)},e.prototype.destroy=function(){this._stopTimeUpdateTimer(),this._hls&&(this._hls.destroy(),delete this._hls),t.prototype.destroy.call(this)},e.prototype._updatePlaybackType=function(t,e){this._playbackType=e.details.live?E.default.LIVE:E.default.VOD,this._fillLevels(),this._onLevelUpdated(t,e),this._ccTracksUpdated&&this._playbackType===E.default.LIVE&&this.hasClosedCaptionsTracks&&this._onSubtitleLoaded()},e.prototype._fillLevels=function(){this._levels=this._hls.levels.map(function(t,e){return{id:e,level:t,label:t.bitrate/1e3+"Kbps"}}),this.trigger(b.default.PLAYBACK_LEVELS_AVAILABLE,this._levels)},e.prototype._onLevelUpdated=function(t,e){this._segmentTargetDuration=e.details.targetduration,this._playlistType=e.details.type||null;var i=!1,n=!1,r=e.details.fragments,a=this._playableRegionStartTime,o=this._playableRegionDuration;if(0!==r.length){if(this._playableRegionStartTime!==r[0].start&&(i=!0,this._playableRegionStartTime=r[0].start),i)if(this._localStartTimeCorrelation){var s=this._localStartTimeCorrelation,l=this._now-s.local,u=(s.remote+l)/1e3;ua+this._extrapolatedWindowDuration&&(this._localStartTimeCorrelation={local:this._now,remote:1e3*Math.max(r[0].start,a+this._extrapolatedWindowDuration)})}else this._localStartTimeCorrelation={local:this._now,remote:1e3*(r[0].start+this._extrapolatedWindowDuration/2)};var c=e.details.totalduration;if(this._playbackType===E.default.LIVE){var d=e.details.targetduration,h=this.options.playback.hlsjsConfig||{},f=h.liveSyncDurationCount||m.default.DefaultConfig.liveSyncDurationCount,p=d*f;p<=c?(c-=p,this._durationExcludesAfterLiveSyncPoint=!0):this._durationExcludesAfterLiveSyncPoint=!1}c!==this._playableRegionDuration&&(n=!0,this._playableRegionDuration=c);var g=r[0].start+c,y=a+o;if(g!==y)if(this._localEndTimeCorrelation){var v=this._localEndTimeCorrelation,b=this._now-v.local,_=(v.remote+b)/1e3;_>g?this._localEndTimeCorrelation={local:this._now,remote:1e3*g}:_y&&(this._localEndTimeCorrelation={local:this._now,remote:1e3*y})}else this._localEndTimeCorrelation={local:this._now,remote:1e3*g};n&&this._onDurationChange(),i&&this._onProgress()}},e.prototype._onFragmentLoaded=function(t,e){this.trigger(b.default.PLAYBACK_FRAGMENT_LOADED,e)},e.prototype._onSubtitleLoaded=function(){if(!this._ccIsSetup){this.trigger(b.default.PLAYBACK_SUBTITLE_AVAILABLE);var t=this._playbackType===E.default.LIVE?-1:this.closedCaptionsTrackId;this.closedCaptionsTrackId=t,this._ccIsSetup=!0}},e.prototype._onLevelSwitch=function(t,e){this.levels.length||this._fillLevels(),this.trigger(b.default.PLAYBACK_LEVEL_SWITCH_END),this.trigger(b.default.PLAYBACK_LEVEL_SWITCH,e);var i=this._hls.levels[e.level];i&&(this.highDefinition=i.height>=720||i.bitrate/1e3>=2e3,this.trigger(b.default.PLAYBACK_HIGHDEFINITIONUPDATE,this.highDefinition),this.trigger(b.default.PLAYBACK_BITRATE,{height:i.height,width:i.width,bandwidth:i.bitrate,bitrate:i.bitrate,level:e.level}))},e.prototype.getPlaybackType=function(){return this._playbackType},e.prototype.isSeekEnabled=function(){return this._playbackType===E.default.VOD||this.dvrEnabled},(0,d.default)(e,[{key:"dvrEnabled",get:function(){return this._durationExcludesAfterLiveSyncPoint&&this._duration>=this._minDvrSize&&this.getPlaybackType()===E.default.LIVE}}]),e}(g.default);e.default=L,L.canPlay=function(t,e){var i=t.split("?")[0].match(/.*\.(.*)$/)||[],n=i.length>1&&"m3u8"===i[1].toLowerCase()||"application/x-mpegURL"===e||"application/vnd.apple.mpegurl"===e;return!(!m.default.isSupported()||!n)},t.exports=e.default},function(t,e,i){!function(e,i){t.exports=i()}(0,function(){return function(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var i={};return e.m=t,e.c=i,e.d=function(t,i,n){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/dist/",e(e.s=8)}([function(t,e,i){"use strict";function n(){}function r(t,e){return e="["+t+"] > "+e}function a(t){var e=self.console[t];return e?function(){for(var i=arguments.length,n=Array(i),a=0;a1?e-1:0),n=1;n0)return e.subarray(n,n+r)},t._readSize=function(t,e){var i=0;return i=(127&t[e])<<21,i|=(127&t[e+1])<<14,i|=(127&t[e+2])<<7,i|=127&t[e+3]},t.getTimeStamp=function(e){for(var i=t.getID3Frames(e),n=0;n1&&void 0!==arguments[1]&&arguments[1],i=t.length,n=void 0,r=void 0,a=void 0,o="",s=0;s>4){case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:o+=String.fromCharCode(n);break;case 12:case 13:r=t[s++],o+=String.fromCharCode((31&n)<<6|63&r);break;case 14:r=t[s++],a=t[s++],o+=String.fromCharCode((15&n)<<12|(63&r)<<6|(63&a)<<0)}}return o},t}(),a=r._utf8ArrayToStr;e.a=r},function(t,e,i){"use strict";function n(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function r(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function a(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var s=function(){function t(e,i){n(this,t),this.subtle=e,this.aesIV=i}return t.prototype.decrypt=function(t,e){return this.subtle.decrypt({name:"AES-CBC",iv:this.aesIV},e,t)},t}(),l=s,u=function(){function t(e,i){r(this,t),this.subtle=e,this.key=i}return t.prototype.expandKey=function(){return this.subtle.importKey("raw",this.key,{name:"AES-CBC"},!1,["encrypt","decrypt"])},t}(),c=u,d=function(){function t(){a(this,t),this.rcon=[0,1,2,4,8,16,32,64,128,27,54],this.subMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.invSubMix=[new Uint32Array(256),new Uint32Array(256),new Uint32Array(256),new Uint32Array(256)],this.sBox=new Uint32Array(256),this.invSBox=new Uint32Array(256),this.key=new Uint32Array(0),this.initTable()}return t.prototype.uint8ArrayToUint32Array_=function(t){for(var e=new DataView(t),i=new Uint32Array(4),n=0;n<4;n++)i[n]=e.getUint32(4*n);return i},t.prototype.initTable=function(){var t=this.sBox,e=this.invSBox,i=this.subMix,n=i[0],r=i[1],a=i[2],o=i[3],s=this.invSubMix,l=s[0],u=s[1],c=s[2],d=s[3],h=new Uint32Array(256),f=0,p=0,g=0;for(g=0;g<256;g++)h[g]=g<128?g<<1:g<<1^283;for(g=0;g<256;g++){var y=p^p<<1^p<<2^p<<3^p<<4;y=y>>>8^255&y^99,t[f]=y,e[y]=f;var m=h[f],v=h[m],b=h[v],_=257*h[y]^16843008*y;n[f]=_<<24|_>>>8,r[f]=_<<16|_>>>16,a[f]=_<<8|_>>>24,o[f]=_,_=16843009*b^65537*v^257*m^16843008*f,l[y]=_<<24|_>>>8,u[y]=_<<16|_>>>16,c[y]=_<<8|_>>>24,d[y]=_,f?(f=m^h[h[h[b^m]]],p^=h[h[p]]):f=p=1}},t.prototype.expandKey=function(t){for(var e=this.uint8ArrayToUint32Array_(t),i=!0,n=0;n0&&this._events[t].length>r&&(this._events[t].warned=!0,console.error("(node) warning: possible EventEmitter memory leak detected. %d listeners added. Use emitter.setMaxListeners() to increase limit.",this._events[t].length),"function"==typeof console.trace&&console.trace()),this},i.prototype.on=i.prototype.addListener,i.prototype.once=function(t,e){function i(){this.removeListener(t,i),r||(r=!0,e.apply(this,arguments))}if(!n(e))throw TypeError("listener must be a function");var r=!1;return i.listener=e,this.on(t,i),this},i.prototype.removeListener=function(t,e){var i,r,o,s;if(!n(e))throw TypeError("listener must be a function");if(!this._events||!this._events[t])return this;if(i=this._events[t],o=i.length,r=-1,i===e||n(i.listener)&&i.listener===e)delete this._events[t],this._events.removeListener&&this.emit("removeListener",t,e);else if(a(i)){for(s=o;s-- >0;)if(i[s]===e||i[s].listener&&i[s].listener===e){r=s;break}if(r<0)return this;1===i.length?(i.length=0,delete this._events[t]):i.splice(r,1),this._events.removeListener&&this.emit("removeListener",t,e)}return this},i.prototype.removeAllListeners=function(t){var e,i;if(!this._events)return this;if(!this._events.removeListener)return 0===arguments.length?this._events={}:this._events[t]&&delete this._events[t],this;if(0===arguments.length){for(e in this._events)"removeListener"!==e&&this.removeAllListeners(e);return this.removeAllListeners("removeListener"),this._events={},this}if(i=this._events[t],n(i))this.removeListener(t,i);else if(i)for(;i.length;)this.removeListener(t,i[i.length-1]);return delete this._events[t],this},i.prototype.listeners=function(t){return this._events&&this._events[t]?n(this._events[t])?[this._events[t]]:this._events[t].slice():[]},i.prototype.listenerCount=function(t){if(this._events){var e=this._events[t];if(n(e))return 1;if(e)return e.length}return 0},i.listenerCount=function(t,e){return t.listenerCount(e)}},function(t,e,i){!function(e){var i=/^((?:[^\/;?#]+:)?)(\/\/[^\/\;?#]*)?(.*?)??(;.*?)?(\?.*?)?(#.*?)?$/,n=/^([^\/;?#]*)(.*)$/,r=/(?:\/|^)\.(?=\/)/g,a=/(?:\/|^)\.\.\/(?!\.\.\/).*?(?=\/)/g,o={buildAbsoluteURL:function(t,e,i){if(i=i||{},t=t.trim(),!(e=e.trim())){if(!i.alwaysNormalize)return t;var r=this.parseURL(t);if(!s)throw new Error("Error trying to parse base URL.");return r.path=o.normalizePath(r.path),o.buildURLFromParts(r)}var a=this.parseURL(e);if(!a)throw new Error("Error trying to parse relative URL.");if(a.scheme)return i.alwaysNormalize?(a.path=o.normalizePath(a.path),o.buildURLFromParts(a)):e;var s=this.parseURL(t);if(!s)throw new Error("Error trying to parse base URL.");if(!s.netLoc&&s.path&&"/"!==s.path[0]){var l=n.exec(s.path);s.netLoc=l[1],s.path=l[2]}s.netLoc&&!s.path&&(s.path="/");var u={scheme:s.scheme,netLoc:a.netLoc,path:null,params:a.params,query:a.query,fragment:a.fragment};if(!a.netLoc&&(u.netLoc=s.netLoc,"/"!==a.path[0]))if(a.path){var c=s.path,d=c.substring(0,c.lastIndexOf("/")+1)+a.path;u.path=o.normalizePath(d)}else u.path=s.path,a.params||(u.params=s.params,a.query||(u.query=s.query));return null===u.path&&(u.path=i.alwaysNormalize?o.normalizePath(a.path):a.path),o.buildURLFromParts(u)},parseURL:function(t){var e=i.exec(t);return e?{scheme:e[1]||"",netLoc:e[2]||"",path:e[3]||"",params:e[4]||"",query:e[5]||"",fragment:e[6]||""}:null},normalizePath:function(t){for(t=t.split("").reverse().join("").replace(r,"");t.length!==(t=t.replace(a,"")).length;);return t.split("").reverse().join("")},buildURLFromParts:function(t){return t.scheme+t.netLoc+t.path+t.params+t.query+t.fragment}};t.exports=o}()},function(t,e,i){"use strict";function n(t,e,i,n){var r,a,o,s,l,u=navigator.userAgent.toLowerCase(),c=n,d=[96e3,88200,64e3,48e3,44100,32e3,24e3,22050,16e3,12e3,11025,8e3,7350];return r=1+((192&e[i+2])>>>6),(a=(60&e[i+2])>>>2)>d.length-1?void t.trigger(Event.ERROR,{type:L.b.MEDIA_ERROR,details:L.a.FRAG_PARSING_ERROR,fatal:!0,reason:"invalid ADTS sampling index:"+a}):(s=(1&e[i+2])<<2,s|=(192&e[i+3])>>>6,k.b.log("manifest codec:"+n+",ADTS data:type:"+r+",sampleingIndex:"+a+"["+d[a]+"Hz],channelConfig:"+s),/firefox/i.test(u)?a>=6?(r=5,l=new Array(4),o=a-3):(r=2,l=new Array(2),o=a):-1!==u.indexOf("android")?(r=2,l=new Array(2),o=a):(r=5,l=new Array(4),n&&(-1!==n.indexOf("mp4a.40.29")||-1!==n.indexOf("mp4a.40.5"))||!n&&a>=6?o=a-3:((n&&-1!==n.indexOf("mp4a.40.2")&&(a>=6&&1===s||/vivaldi/i.test(u))||!n&&1===s)&&(r=2,l=new Array(2)),o=a)),l[0]=r<<3,l[0]|=(14&a)>>1,l[1]|=(1&a)<<7,l[1]|=s<<3,5===r&&(l[1]|=(14&o)>>1,l[2]=(1&o)<<7,l[2]|=8,l[3]=0),{config:l,samplerate:d[a],channelCount:s,codec:"mp4a.40."+r,manifestCodec:c})}function r(t,e){return 255===t[e]&&240==(246&t[e+1])}function a(t,e){return 1&t[e+1]?7:9}function o(t,e){return(3&t[e+3])<<11|t[e+4]<<3|(224&t[e+5])>>>5}function s(t,e){return!!(e+10&&e+s+l<=c)return u=i+n*r,{headerLength:s,frameLength:l,stamp:u}}function h(t,e,i,n,r){var a=c(t.samplerate),o=d(e,i,n,r,a);if(o){var s=o.stamp,l=o.headerLength,u=o.frameLength,h={unit:e.subarray(i+l,i+l+u),pts:s,dts:s};return t.samples.push(h),t.len+=u,{sample:h,length:u+l}}}function f(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function p(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function g(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function y(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function m(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function v(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function b(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function _(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function E(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function T(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function A(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}var S=i(1),L=i(2),R=i(4),k=i(0),w=i(3),C=function(){function t(e,i,n){f(this,t),this.observer=e,this.config=n,this.remuxer=i}return t.prototype.resetInitSegment=function(t,e,i,n){this._audioTrack={container:"audio/adts",type:"audio",id:0,sequenceNumber:0,isAAC:!0,samples:[],len:0,manifestCodec:e,duration:n,inputTimeScale:9e4}},t.prototype.resetTimeStamp=function(){},t.probe=function(t){if(!t)return!1;for(var e=w.a.getID3Data(t,0)||[],i=e.length,n=t.length;i0},t.bin2str=function(t){return String.fromCharCode.apply(null,t)},t.readUint32=function(t,e){t.data&&(e+=t.start,t=t.data);var i=t[e]<<24|t[e+1]<<16|t[e+2]<<8|t[e+3];return i<0?4294967296+i:i},t.writeUint32=function(t,e,i){t.data&&(e+=t.start,t=t.data),t[e]=i>>24,t[e+1]=i>>16&255,t[e+2]=i>>8&255,t[e+3]=255&i},t.findBox=function(e,i){var n,r,a,o,s,l,u,c=[];if(e.data?(l=e.start,o=e.end,e=e.data):(l=0,o=e.byteLength),!i.length)return null;for(n=l;n1?n+r:o,a===i[0]&&(1===i.length?c.push({data:e,start:n+8,end:u}):(s=t.findBox({data:e,start:n+8,end:u},i.slice(1)),s.length&&(c=c.concat(s)))),n=u;return c},t.parseInitSegment=function(e){var i=[];return t.findBox(e,["moov","trak"]).forEach(function(e){var n=t.findBox(e,["tkhd"])[0];if(n){var r=n.data[n.start],a=0===r?12:20,o=t.readUint32(n,a),s=t.findBox(e,["mdia","mdhd"])[0];if(s){r=s.data[s.start],a=0===r?12:20;var l=t.readUint32(s,a),u=t.findBox(e,["mdia","hdlr"])[0];if(u){var c=t.bin2str(u.data.subarray(u.start+8,u.start+12)),d={soun:"audio",vide:"video"}[c];if(d){var h=t.findBox(e,["mdia","minf","stbl","stsd"]);if(h.length){h=h[0];var f=t.bin2str(h.data.subarray(h.start+12,h.start+16));k.b.log("MP4Demuxer:"+d+":"+f+" found")}i[o]={timescale:l,type:d},i[d]={timescale:l,id:o}}}}}}),i},t.getStartDTS=function(e,i){var n,r,a;return n=t.findBox(i,["moof","traf"]),r=[].concat.apply([],n.map(function(i){return t.findBox(i,["tfhd"]).map(function(n){var r,a;return r=t.readUint32(n,4),a=e[r].timescale||9e4,t.findBox(i,["tfdt"]).map(function(e){var i,n;return i=e.data[e.start],n=t.readUint32(e,4),1===i&&(n*=Math.pow(2,32),n+=t.readUint32(e,8)),n})[0]/a})})),a=Math.min.apply(null,r),isFinite(a)?a:0},t.offsetStartDTS=function(e,i,n){t.findBox(i,["moof","traf"]).map(function(i){return t.findBox(i,["tfhd"]).map(function(r){var a=t.readUint32(r,4),o=e[a].timescale||9e4;t.findBox(i,["tfdt"]).map(function(e){var i=e.data[e.start],r=t.readUint32(e,4);if(0===i)t.writeUint32(e,4,r-n*o);else{r*=Math.pow(2,32),r+=t.readUint32(e,8),r-=n*o,r=Math.max(r,0);var a=Math.floor(r/(D+1)),s=Math.floor(r%(D+1));t.writeUint32(e,4,a),t.writeUint32(e,8,s)}})})})},t.prototype.append=function(e,i,n,r){var a=this.initData;a||(this.resetInitSegment(e,this.audioCodec,this.videoCodec),a=this.initData);var o=void 0,s=this.initPTS;if(void 0===s){var l=t.getStartDTS(a,e);this.initPTS=s=l-i,this.observer.trigger(S.a.INIT_PTS_FOUND,{initPTS:s})}t.offsetStartDTS(a,e,s),o=t.getStartDTS(a,e),this.remuxer.remux(a.audio,a.video,null,null,o,n,r,e)},t.prototype.destroy=function(){},t}(),P=O,x={BitratesMap:[32,64,96,128,160,192,224,256,288,320,352,384,416,448,32,48,56,64,80,96,112,128,160,192,224,256,320,384,32,40,48,56,64,80,96,112,128,160,192,224,256,320,32,48,56,64,80,96,112,128,144,160,176,192,224,256,8,16,24,32,40,48,56,64,80,96,112,128,144,160],SamplingRateMap:[44100,48e3,32e3,22050,24e3,16e3,11025,12e3,8e3],SamplesCoefficients:[[0,72,144,12],[0,0,0,0],[0,72,144,12],[0,144,144,12]],BytesInSlot:[0,1,1,4],appendFrame:function(t,e,i,n,r){if(!(i+24>e.length)){var a=this.parseHeader(e,i);if(a&&i+a.frameLength<=e.length){var o=9e4*a.samplesPerFrame/a.sampleRate,s=n+r*o,l={unit:e.subarray(i,i+a.frameLength),pts:s,dts:s};return t.config=[],t.channelCount=a.channelCount,t.samplerate=a.sampleRate,t.samples.push(l),t.len+=a.frameLength,{sample:l,length:a.frameLength}}}},parseHeader:function(t,e){var i=t[e+1]>>3&3,n=t[e+1]>>1&3,r=t[e+2]>>4&15,a=t[e+2]>>2&3,o=t[e+2]>>1&1;if(1!==i&&0!==r&&15!==r&&3!==a){var s=3===i?3-n:3===n?3:4,l=1e3*x.BitratesMap[14*s+r-1],u=3===i?0:2===i?1:2,c=x.SamplingRateMap[3*u+a],d=t[e+3]>>6==3?1:2,h=x.SamplesCoefficients[i][n],f=x.BytesInSlot[n],p=8*h*f;return{sampleRate:c,channelCount:d,frameLength:parseInt(h*l/c+o,10)*f,samplesPerFrame:p}}},isHeaderPattern:function(t,e){return 255===t[e]&&224==(224&t[e+1])&&0!=(6&t[e+1])},isHeader:function(t,e){return!!(e+1t?(this.word<<=t,this.bitsAvailable-=t):(t-=this.bitsAvailable,e=t>>3,t-=e>>3,this.bytesAvailable-=e,this.loadWord(),this.word<<=t,this.bitsAvailable-=t)},t.prototype.readBits=function(t){var e=Math.min(this.bitsAvailable,t),i=this.word>>>32-e;return t>32&&k.b.error("Cannot read more than 32 bits at a time"),this.bitsAvailable-=e,this.bitsAvailable>0?this.word<<=e:this.bytesAvailable>0&&this.loadWord(),e=t-e,e>0&&this.bitsAvailable?i<>>t))return this.word<<=t,this.bitsAvailable-=t,t;return this.loadWord(),t+this.skipLZ()},t.prototype.skipUEG=function(){this.skipBits(1+this.skipLZ())},t.prototype.skipEG=function(){this.skipBits(1+this.skipLZ())},t.prototype.readUEG=function(){var t=this.skipLZ();return this.readBits(t+1)-1},t.prototype.readEG=function(){var t=this.readUEG();return 1&t?1+t>>>1:-1*(t>>>1)},t.prototype.readBoolean=function(){return 1===this.readBits(1)},t.prototype.readUByte=function(){return this.readBits(8)},t.prototype.readUShort=function(){return this.readBits(16)},t.prototype.readUInt=function(){return this.readBits(32)},t.prototype.skipScalingList=function(t){var e,i,n=8,r=8;for(e=0;e=t.length)return void i();if(!(t[e].unit.length<32)){var n=this.decrypter.isSync();if(this.decryptAacSample(t,e,i,n),!n)return}}},t.prototype.getAvcEncryptedData=function(t){for(var e=16*Math.floor((t.length-48)/160)+16,i=new Int8Array(e),n=0,r=32;r<=t.length-16;r+=160,n+=16)i.set(t.subarray(r,r+16),n);return i},t.prototype.getAvcDecryptedUnit=function(t,e){e=new Uint8Array(e);for(var i=0,n=32;n<=t.length-16;n+=160,i+=16)t.set(e.subarray(i,i+16),n);return t},t.prototype.decryptAvcSample=function(t,e,i,n,r,a){var o=this.discardEPB(r.data),s=this.getAvcEncryptedData(o),l=this;this.decryptBuffer(s.buffer,function(s){r.data=l.getAvcDecryptedUnit(o,s),a||l.decryptAvcSamples(t,e,i+1,n)})},t.prototype.decryptAvcSamples=function(t,e,i,n){for(;;e++,i=0){if(e>=t.length)return void n();for(var r=t[e].units;!(i>=r.length);i++){var a=r[i];if(!(a.length<=48||1!==a.type&&5!==a.type)){var o=this.decrypter.isSync();if(this.decryptAvcSample(t,e,i,n,a,o),!o)return}}}},t}(),U=B,G={video:0,audio:1,id3:2,text:3},K=function(){function t(e,i,n,r){m(this,t),this.observer=e,this.config=n,this.typeSupported=r,this.remuxer=i,this.sampleAes=null}return t.prototype.setDecryptData=function(t){null!=t&&null!=t.key&&"SAMPLE-AES"===t.method?this.sampleAes=new U(this.observer,this.config,t,this.discardEPB):this.sampleAes=null},t.probe=function(e){var i=t._syncOffset(e);return!(i<0)&&(i&&k.b.warn("MPEG2-TS detected but first sync word found @ offset "+i+", junk ahead ?"),!0)},t._syncOffset=function(t){for(var e=Math.min(1e3,t.length-564),i=0;i>4>1){if((l=a+5+e[a+4])===a+188)continue}else l=a+4;switch(s){case y:o&&(_&&(u=w(_))&&C(u,!1),_={data:[],size:0}),_&&(_.data.push(e.subarray(l,a+188)),_.size+=a+188-l);break;case m:o&&(E&&(u=w(E))&&(p.isAAC?I(u):D(u)),E={data:[],size:0}),E&&(E.data.push(e.subarray(l,a+188)),E.size+=a+188-l);break;case v:o&&(T&&(u=w(T))&&O(u),T={data:[],size:0}),T&&(T.data.push(e.subarray(l,a+188)),T.size+=a+188-l);break;case 0:o&&(l+=e[l]+1),b=this._pmtId=A(e,l);break;case b:o&&(l+=e[l]+1);var x=R(e,l,!0===this.typeSupported.mpeg||!0===this.typeSupported.mp3,null!=this.sampleAes);y=x.avc,y>0&&(f.pid=y),m=x.audio,m>0&&(p.pid=m,p.isAAC=x.isAAC),v=x.id3,v>0&&(g.pid=v),d&&!h&&(k.b.log("reparse from beginning"),d=!1,a=P-188),h=this.pmtParsed=!0;break;case 17:case 8191:break;default:d=!0}}else this.observer.trigger(S.a.ERROR,{type:L.b.MEDIA_ERROR,details:L.a.FRAG_PARSING_ERROR,fatal:!1,reason:"TS packet did not start with 0x47"});_&&(u=w(_))?(C(u,!0),f.pesData=null):f.pesData=_,E&&(u=w(E))?(p.isAAC?I(u):D(u),p.pesData=null):(E&&E.size&&k.b.log("last AAC PES packet truncated,might overlap between fragments"),p.pesData=E),T&&(u=w(T))?(O(u),g.pesData=null):g.pesData=T,null==this.sampleAes?this.remuxer.remux(p,f,g,this._txtTrack,i,n,r):this.decryptAndRemux(p,f,g,this._txtTrack,i,n,r)},t.prototype.decryptAndRemux=function(t,e,i,n,r,a,o){if(t.samples&&t.isAAC){var s=this;this.sampleAes.decryptAacSamples(t.samples,0,function(){s.decryptAndRemuxAvc(t,e,i,n,r,a,o)})}else this.decryptAndRemuxAvc(t,e,i,n,r,a,o)},t.prototype.decryptAndRemuxAvc=function(t,e,i,n,r,a,o){if(e.samples){var s=this;this.sampleAes.decryptAvcSamples(e.samples,0,0,function(){s.remuxer.remux(t,e,i,n,r,a,o)})}else this.remuxer.remux(t,e,i,n,r,a,o)},t.prototype.destroy=function(){this._initPTS=this._initDTS=void 0,this._duration=0},t.prototype._parsePAT=function(t,e){return(31&t[e+10])<<8|t[e+11]},t.prototype._parsePMT=function(t,e,i,n){var r,a,o,s,l={audio:-1,avc:-1,id3:-1,isAAC:!0};for(r=(15&t[e+1])<<8|t[e+2],a=e+3+r-4,o=(15&t[e+10])<<8|t[e+11],e+=12+o;e1;){var d=new Uint8Array(c[0].length+c[1].length);d.set(c[0]),d.set(c[1],c[0].length),c[0]=d,c.splice(1,1)}if(e=c[0],1===(e[0]<<16)+(e[1]<<8)+e[2]){if((n=(e[4]<<8)+e[5])&&n>t.size-6)return null;i=e[7],192&i&&(o=536870912*(14&e[9])+4194304*(255&e[10])+16384*(254&e[11])+128*(255&e[12])+(254&e[13])/2,o>4294967295&&(o-=8589934592),64&i?(s=536870912*(14&e[14])+4194304*(255&e[15])+16384*(254&e[16])+128*(255&e[17])+(254&e[18])/2,s>4294967295&&(s-=8589934592),o-s>54e5&&(k.b.warn(Math.round((o-s)/9e4)+"s delta between PTS and DTS, align them"),o=s)):s=o),r=e[8],l=r+9,t.size-=l,a=new Uint8Array(t.size);for(var h=0,f=c.length;hp){l-=p;continue}e=e.subarray(l),p-=l,l=0}a.set(e,u),u+=p}return n&&(n-=r+3),{data:a,pts:o,dts:s,len:n}}return null},t.prototype.pushAccesUnit=function(t,e){if(t.units.length&&t.frame){var i=e.samples,n=i.length;!this.config.forceKeyFrameOnDiscontinuity||!0===t.key||e.sps&&(n||this.contiguous)?(t.id=n,i.push(t)):e.dropped++}t.debug.length&&k.b.log(t.pts+"/"+t.dts+":"+t.debug)},t.prototype._parseAVCPES=function(t,e){var i,n,r,a=this,o=this._avcTrack,s=this._parseAVCNALu(t.data),l=this.avcSample,u=!1,c=this.pushAccesUnit.bind(this),d=function(t,e,i,n){return{key:t,pts:e,dts:i,units:[],debug:n}};t.data=null,l&&s.length&&!o.audFound&&(c(l,o),l=this.avcSample=d(!1,t.pts,t.dts,"")),s.forEach(function(e){switch(e.type){case 1:n=!0,l||(l=a.avcSample=d(!0,t.pts,t.dts,"")),l.frame=!0;var s=e.data;if(u&&s.length>4){var h=new F(s).readSliceType();2!==h&&4!==h&&7!==h&&9!==h||(l.key=!0)}break;case 5:n=!0,l||(l=a.avcSample=d(!0,t.pts,t.dts,"")),l.key=!0,l.frame=!0;break;case 6:n=!0,i=new F(a.discardEPB(e.data)),i.readUByte();for(var f=0,p=0,g=!1,y=0;!g&&i.bytesAvailable>1;){f=0;do{y=i.readUByte(),f+=y}while(255===y);p=0;do{y=i.readUByte(),p+=y}while(255===y);if(4===f&&0!==i.bytesAvailable){g=!0;if(181===i.readUByte()){if(49===i.readUShort()){if(1195456820===i.readUInt()){if(3===i.readUByte()){var m=i.readUByte(),v=i.readUByte(),b=31&m,_=[m,v];for(r=0;r0){if(e.pts>=t[i-1].pts)t.push(e);else for(var n=i-1;n>=0;n--)if(e.pts=0)n={data:t.subarray(h,o-u-1),type:a},d.push(n);else{var f=this._getLastNalUnit();if(f&&(c&&o<=4-c&&f.state&&(f.data=f.data.subarray(0,f.data.byteLength-c)),(i=o-u-1)>0)){var p=new Uint8Array(f.data.byteLength+i);p.set(f.data,0),p.set(t.subarray(0,i),f.data.byteLength),f.data=p}}o=0&&u>=0&&(n={data:t.subarray(h,s),type:a,state:u},d.push(n)),0===d.length){var g=this._getLastNalUnit();if(g){var y=new Uint8Array(g.data.byteLength+t.byteLength);y.set(g.data,0),y.set(t,g.data.byteLength),g.data=y}}return l.naluState=u,d},t.prototype.discardEPB=function(t){for(var e,i,n=t.byteLength,r=[],a=1;a1&&(k.b.log("AAC: align PTS for overlapping frames by "+Math.round((v-d)/90)),d=v)}for(;n>24&255,e[1]=n>>16&255,e[2]=n>>8&255,e[3]=255&n,e.set(t,4),r=0,n=8;r>24&255,e>>16&255,e>>8&255,255&e,n>>24,n>>16&255,n>>8&255,255&n,r>>24,r>>16&255,r>>8&255,255&r,85,196,0,0]))},t.mdia=function(e){return t.box(t.types.mdia,t.mdhd(e.timescale,e.duration),t.hdlr(e.type),t.minf(e))},t.mfhd=function(e){return t.box(t.types.mfhd,new Uint8Array([0,0,0,0,e>>24,e>>16&255,e>>8&255,255&e]))},t.minf=function(e){return"audio"===e.type?t.box(t.types.minf,t.box(t.types.smhd,t.SMHD),t.DINF,t.stbl(e)):t.box(t.types.minf,t.box(t.types.vmhd,t.VMHD),t.DINF,t.stbl(e))},t.moof=function(e,i,n){return t.box(t.types.moof,t.mfhd(e),t.traf(n,i))},t.moov=function(e){for(var i=e.length,n=[];i--;)n[i]=t.trak(e[i]);return t.box.apply(null,[t.types.moov,t.mvhd(e[0].timescale,e[0].duration)].concat(n).concat(t.mvex(e)))},t.mvex=function(e){for(var i=e.length,n=[];i--;)n[i]=t.trex(e[i]);return t.box.apply(null,[t.types.mvex].concat(n))},t.mvhd=function(e,i){i*=e;var n=Math.floor(i/(z+1)),r=Math.floor(i%(z+1)),a=new Uint8Array([1,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,e>>24&255,e>>16&255,e>>8&255,255&e,n>>24,n>>16&255,n>>8&255,255&n,r>>24,r>>16&255,r>>8&255,255&r,0,1,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255]);return t.box(t.types.mvhd,a)},t.sdtp=function(e){var i,n,r=e.samples||[],a=new Uint8Array(4+r.length);for(n=0;n>>8&255),a.push(255&r),a=a.concat(Array.prototype.slice.call(n));for(i=0;i>>8&255),o.push(255&r),o=o.concat(Array.prototype.slice.call(n));var s=t.box(t.types.avcC,new Uint8Array([1,a[3],a[4],a[5],255,224|e.sps.length].concat(a).concat([e.pps.length]).concat(o))),l=e.width,u=e.height,c=e.pixelRatio[0],d=e.pixelRatio[1];return t.box(t.types.avc1,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,l>>8&255,255&l,u>>8&255,255&u,0,72,0,0,0,72,0,0,0,0,0,0,0,1,18,100,97,105,108,121,109,111,116,105,111,110,47,104,108,115,46,106,115,0,0,0,0,0,0,0,0,0,0,0,0,0,0,24,17,17]),s,t.box(t.types.btrt,new Uint8Array([0,28,156,128,0,45,198,192,0,45,198,192])),t.box(t.types.pasp,new Uint8Array([c>>24,c>>16&255,c>>8&255,255&c,d>>24,d>>16&255,d>>8&255,255&d])))},t.esds=function(t){var e=t.config.length;return new Uint8Array([0,0,0,0,3,23+e,0,1,0,4,15+e,64,21,0,0,0,0,0,0,0,0,0,0,0,5].concat([e]).concat(t.config).concat([6,1,2]))},t.mp4a=function(e){var i=e.samplerate;return t.box(t.types.mp4a,new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,i>>8&255,255&i,0,0]),t.box(t.types.esds,t.esds(e)))},t.mp3=function(e){var i=e.samplerate;return t.box(t.types[".mp3"],new Uint8Array([0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,e.channelCount,0,16,0,0,0,0,i>>8&255,255&i,0,0]))},t.stsd=function(e){return"audio"===e.type?e.isAAC||"mp3"!==e.codec?t.box(t.types.stsd,t.STSD,t.mp4a(e)):t.box(t.types.stsd,t.STSD,t.mp3(e)):t.box(t.types.stsd,t.STSD,t.avc1(e))},t.tkhd=function(e){var i=e.id,n=e.duration*e.timescale,r=e.width,a=e.height,o=Math.floor(n/(z+1)),s=Math.floor(n%(z+1));return t.box(t.types.tkhd,new Uint8Array([1,0,0,7,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,3,i>>24&255,i>>16&255,i>>8&255,255&i,0,0,0,0,o>>24,o>>16&255,o>>8&255,255&o,s>>24,s>>16&255,s>>8&255,255&s,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,64,0,0,0,r>>8&255,255&r,0,0,a>>8&255,255&a,0,0]))},t.traf=function(e,i){var n=t.sdtp(e),r=e.id,a=Math.floor(i/(z+1)),o=Math.floor(i%(z+1));return t.box(t.types.traf,t.box(t.types.tfhd,new Uint8Array([0,0,0,0,r>>24,r>>16&255,r>>8&255,255&r])),t.box(t.types.tfdt,new Uint8Array([1,0,0,0,a>>24,a>>16&255,a>>8&255,255&a,o>>24,o>>16&255,o>>8&255,255&o])),t.trun(e,n.length+16+20+8+16+8+8),n)},t.trak=function(e){return e.duration=e.duration||4294967295,t.box(t.types.trak,t.tkhd(e),t.mdia(e))},t.trex=function(e){var i=e.id;return t.box(t.types.trex,new Uint8Array([0,0,0,0,i>>24,i>>16&255,i>>8&255,255&i,0,0,0,1,0,0,0,0,0,0,0,0,0,1,0,1]))},t.trun=function(e,i){var n,r,a,o,s,l,u=e.samples||[],c=u.length,d=12+16*c,h=new Uint8Array(d);for(i+=8+d,h.set([0,0,15,1,c>>>24&255,c>>>16&255,c>>>8&255,255&c,i>>>24&255,i>>>16&255,i>>>8&255,255&i],0),n=0;n>>24&255,a>>>16&255,a>>>8&255,255&a,o>>>24&255,o>>>16&255,o>>>8&255,255&o,s.isLeading<<2|s.dependsOn,s.isDependedOn<<6|s.hasRedundancy<<4|s.paddingValue<<1|s.isNonSync,61440&s.degradPrio,15&s.degradPrio,l>>>24&255,l>>>16&255,l>>>8&255,255&l],12+16*n);return t.box(t.types.trun,h)},t.initSegment=function(e){t.types||t.init();var i,n=t.moov(e);return i=new Uint8Array(t.FTYP.byteLength+n.byteLength),i.set(t.FTYP),i.set(n,t.FTYP.byteLength),i},t}(),q=W,X=function(){function t(e,i,n,r){E(this,t),this.observer=e,this.config=i,this.typeSupported=n;var a=navigator.userAgent;this.isSafari=r&&r.indexOf("Apple")>-1&&a&&!a.match("CriOS"),this.ISGenerated=!1}return t.prototype.destroy=function(){},t.prototype.resetTimeStamp=function(t){this._initPTS=this._initDTS=t},t.prototype.resetInitSegment=function(){this.ISGenerated=!1},t.prototype.remux=function(t,e,i,n,r,a,o){if(this.ISGenerated||this.generateIS(t,e,r),this.ISGenerated){var s=t.samples.length,l=e.samples.length,u=r,c=r;if(s&&l){var d=(t.samples[0].dts-e.samples[0].dts)/e.inputTimeScale;u+=Math.max(0,d),c+=Math.max(0,-d)}if(s){t.timescale||(k.b.warn("regenerate InitSegment as audio detected"),this.generateIS(t,e,r));var h=this.remuxAudio(t,u,a,o);if(l){var f=void 0;h&&(f=h.endPTS-h.startPTS),e.timescale||(k.b.warn("regenerate InitSegment as video detected"),this.generateIS(t,e,r)),this.remuxVideo(e,c,a,f,o)}}else{var p=void 0;l&&(p=this.remuxVideo(e,c,a,o)),p&&t.codec&&this.remuxEmptyAudio(t,u,a,p)}}i.samples.length&&this.remuxID3(i,r),n.samples.length&&this.remuxText(n,r),this.observer.trigger(S.a.FRAG_PARSED)},t.prototype.generateIS=function(t,e,i){var n,r,a=this.observer,o=t.samples,s=e.samples,l=this.typeSupported,u="audio/mp4",c={},d={tracks:c},h=void 0===this._initPTS;if(h&&(n=r=1/0),t.config&&o.length&&(t.timescale=t.samplerate,k.b.log("audio sampling rate : "+t.samplerate),t.isAAC||(l.mpeg?(u="audio/mpeg",t.codec=""):l.mp3&&(t.codec="mp3")),c.audio={container:u,codec:t.codec,initSegment:!t.isAAC&&l.mpeg?new Uint8Array:q.initSegment([t]),metadata:{channelCount:t.channelCount}},h&&(n=r=o[0].pts-t.inputTimeScale*i)),e.sps&&e.pps&&s.length){var f=e.inputTimeScale;e.timescale=f,c.video={container:"video/mp4",codec:e.codec,initSegment:q.initSegment([e]),metadata:{width:e.width,height:e.height}},h&&(n=Math.min(n,s[0].pts-f*i),r=Math.min(r,s[0].dts-f*i),this.observer.trigger(S.a.INIT_PTS_FOUND,{initPTS:n}))}Object.keys(c).length?(a.trigger(S.a.FRAG_PARSING_INIT_SEGMENT,d),this.ISGenerated=!0,h&&(this._initPTS=n,this._initDTS=r)):a.trigger(S.a.ERROR,{type:L.b.MEDIA_ERROR,details:L.a.FRAG_PARSING_ERROR,fatal:!1,reason:"no audio/video samples found"})},t.prototype.remuxVideo=function(t,e,i,n,r){var a,o,s,l,u,c,d,h=8,f=t.timescale,p=t.samples,g=[],y=p.length,m=this._PTSNormalize,v=this._initDTS,b=this.nextAvcDts,_=this.isSafari;_&&(i|=p.length&&b&&(r&&Math.abs(e-b/f)<.1||Math.abs(p[0].pts-b-v)1?k.b.log("AVC:"+R+" ms hole between fragments detected,filling it"):R<-1&&k.b.log("AVC:"+-R+" ms overlapping between fragments detected"),u=b,p[0].dts=u,l=Math.max(l-R,b),p[0].pts=l,k.b.log("Video/PTS/DTS adjusted: "+Math.round(l/90)+"/"+Math.round(u/90)+",delta:"+R+" ms")),A=p[p.length-1],d=Math.max(A.dts,0),c=Math.max(A.pts,0,d),_&&(a=Math.round((d-u)/(p.length-1)));for(var w=0,C=0,I=0;I0?B-1:B].dts;if(W.stretchShortVideoTrack){var Z=W.maxBufferHole,J=W.maxSeekHole,Q=Math.floor(Math.min(Z,J)*f),tt=(n?l+n*f:this.nextAudioPts)-U.pts;tt>Q?(a=tt-X,a<0&&(a=X),k.b.log("It is approximately "+tt/90+" ms to the next segment; using duration "+a/90+" ms for the last video frame.")):a=X}else a=X}V=Math.round(U.pts-U.dts)}g.push({size:K,duration:a,cts:V,flags:{isLeading:0,isDependedOn:0,hasRedundancy:0,degradPrio:0,dependsOn:U.key?2:1,isNonSync:U.key?0:1}})}this.nextAvcDts=d+a;var et=t.dropped;if(t.len=0,t.nbNalu=0,t.dropped=0,g.length&&navigator.userAgent.toLowerCase().indexOf("chrome")>-1){var it=g[0].flags;it.dependsOn=2,it.isNonSync=0}t.samples=g,s=q.moof(t.sequenceNumber++,u,t),t.samples=[];var nt={data1:s,data2:o,startPTS:l/f,endPTS:(c+a)/f,startDTS:u/f,endDTS:this.nextAvcDts/f,type:"video",nb:g.length,dropped:et};return this.observer.trigger(S.a.FRAG_PARSING_DATA,nt),nt},t.prototype.remuxAudio=function(t,e,i,n){var r,a,o,s,l,u,c,d=t.inputTimeScale,h=t.timescale,f=d/h,p=t.isAAC?1024:1152,g=p*f,y=this._PTSNormalize,m=this._initDTS,v=!t.isAAC&&this.typeSupported.mpeg,b=t.samples,_=[],E=this.nextAudioPts;if(i|=b.length&&E&&(n&&Math.abs(e-E/d)<.1||Math.abs(b[0].pts-E-m)<20*g),b.forEach(function(t){t.pts=t.dts=y(t.pts-m,e*d)}),b=b.filter(function(t){return t.pts>=0}),0!==b.length){if(i||(E=n?e*d:b[0].pts),t.isAAC)for(var T=this.config.maxAudioFramesDrift,A=0,R=E;A=T*g&&D<1e4&&R){var O=Math.round(w/g);k.b.warn("Injecting "+O+" audio frame @ "+(R/d).toFixed(3)+"s due to "+Math.round(1e3*w/d)+" ms gap.");for(var P=0;P0&&G<1e4)K=Math.round((U-E)/g),k.b.log(G+" ms hole between AAC samples detected,filling it"),K>0&&(o=$.getSilentFrame(t.manifestCodec||t.codec,t.channelCount),o||(o=B.subarray()),t.len+=K*o.length);else if(G<-12){k.b.log("drop overlapping AAC sample, expected/parsed/delta:"+(E/d).toFixed(3)+"s/"+(U/d).toFixed(3)+"s/"+-G+"ms"),t.len-=B.byteLength;continue}U=E}if(u=U,!(t.len>0))return;var V=v?t.len:t.len+8;r=v?0:8;try{s=new Uint8Array(V)}catch(t){return void this.observer.trigger(S.a.ERROR,{type:L.b.MUX_ERROR,details:L.a.REMUX_ALLOC_ERROR,fatal:!1,bytes:V,reason:"fail allocating audio mdat "+V})}if(!v){new DataView(s.buffer).setUint32(0,V),s.set(q.types.mdat,4)}for(var j=0;j=2&&(H=_[z-2].duration,a.duration=H),z){this.nextAudioPts=E=c+f*H,t.len=0,t.samples=_,l=v?new Uint8Array:q.moof(t.sequenceNumber++,u/f,t),t.samples=[];var W=u/d,X=E/d,Z={data1:l,data2:s,startPTS:W,endPTS:X,startDTS:W,endDTS:X,type:"audio",nb:z};return this.observer.trigger(S.a.FRAG_PARSING_DATA,Z),Z}return null}},t.prototype.remuxEmptyAudio=function(t,e,i,n){var r=t.inputTimeScale,a=t.samplerate?t.samplerate:r,o=r/a,s=this.nextAudioPts,l=(void 0!==s?s:n.startDTS*r)+this._initDTS,u=n.endDTS*r+this._initDTS,c=1024*o,d=Math.ceil((u-l)/c),h=$.getSilentFrame(t.manifestCodec||t.codec,t.channelCount);if(k.b.warn("remux empty Audio"),!h)return void k.b.trace("Unable to remuxEmptyAudio since we were unable to get a silent frame for given audio codec!");for(var f=[],p=0;p4294967296;)t+=i;return t},t}(),Z=X,J=function(){function t(e){T(this,t),this.observer=e}return t.prototype.destroy=function(){},t.prototype.resetTimeStamp=function(){},t.prototype.resetInitSegment=function(){},t.prototype.remux=function(t,e,i,n,r,a,o,s){var l=this.observer,u="";t&&(u+="audio"),e&&(u+="video"),l.trigger(S.a.FRAG_PARSING_DATA,{data1:s,startPTS:r,startDTS:r,type:u,nb:1,dropped:0}),l.trigger(S.a.FRAG_PARSED)},t}(),Q=J,tt=function(){function t(e,i,n,r){A(this,t),this.observer=e,this.typeSupported=i,this.config=n,this.vendor=r}return t.prototype.destroy=function(){var t=this.demuxer;t&&t.destroy()},t.prototype.push=function(t,e,i,n,r,a,o,s,l,u,c,d){if(t.byteLength>0&&null!=e&&null!=e.key&&"AES-128"===e.method){var h=this.decrypter;null==h&&(h=this.decrypter=new R.a(this.observer,this.config));var f,p=this;try{f=performance.now()}catch(t){f=Date.now()}h.decrypt(t,e.key.buffer,e.iv.buffer,function(t){var h;try{h=performance.now()}catch(t){h=Date.now()}p.observer.trigger(S.a.FRAG_DECRYPTED,{stats:{tstart:f,tdecrypt:h}}),p.pushDecrypted(new Uint8Array(t),e,new Uint8Array(i),n,r,a,o,s,l,u,c,d)})}else this.pushDecrypted(new Uint8Array(t),e,new Uint8Array(i),n,r,a,o,s,l,u,c,d)},t.prototype.pushDecrypted=function(t,e,i,n,r,a,o,s,l,u,c,d){var h=this.demuxer;if(!h||o&&!this.probe(t)){for(var f=this.observer,p=this.typeSupported,g=this.config,y=[{demux:V,remux:Z},{demux:P,remux:Q},{demux:I,remux:Z},{demux:Y,remux:Z}],m=0,v=y.length;me?n.start+n.duration:Math.max(n.start-r.duration,0):i>e?(n.duration=a-n.start,n.duration<0&&Pt.b.warn("negative duration computed for frag "+n.sn+",level "+n.level+", there should be some duration drift between playlist and fragment!")):(r.duration=n.start-a,r.duration<0&&Pt.b.warn("negative duration computed for frag "+r.sn+",level "+r.level+", there should be some duration drift between playlist and fragment!"))}function _(t,e,i,n,r,a){var o=i;if(!isNaN(e.startPTS)){var s=Math.abs(e.startPTS-i);isNaN(e.deltaPTS)?e.deltaPTS=s:e.deltaPTS=Math.max(s,e.deltaPTS),o=Math.max(i,e.startPTS),i=Math.min(i,e.startPTS),n=Math.max(n,e.endPTS),r=Math.min(r,e.startDTS),a=Math.max(a,e.endDTS)}var l=i-e.start;e.start=e.startPTS=i,e.maxStartPTS=o,e.endPTS=n,e.startDTS=r,e.endDTS=a,e.duration=n-i;var u=e.sn;if(!t||ut.endSN)return 0;var c,d,h;for(c=u-t.startSN,d=t.fragments,d[c]=e,h=c;h>0;h--)b(d,h,h-1);for(h=c;h=0&&ae?-1:0})}function S(t,e,i){var n=!1;return e&&e.details&&i&&(i.endCC>i.startCC||t&&t.cc59?e(i[1],i[2],0,i[4]):e(0,i[1],i[2],i[4]):null}function st(){this.values=Object.create(null)}function lt(t,e,i,n){var r=n?t.split(n):[t];for(var a in r)if("string"==typeof r[a]){var o=r[a].split(i);if(2===o.length){var s=o[0],l=o[1];e(s,l)}}}function ut(t,e,i){function n(){var e=ot(t);if(null===e)throw new Error("Malformed timestamp: "+a);return t=t.replace(/^[^\sa-zA-Z-]+/,""),e}function r(){t=t.replace(/^\s+/,"")}var a=t;if(r(),e.startTime=n(),r(),"--\x3e"!==t.substr(0,3))throw new Error("Malformed time stamp (time stamps must be separated by '--\x3e'): "+a);t=t.substr(3),r(),e.endTime=n(),r(),function(t,e){var n=new st;lt(t,function(t,e){switch(t){case"region":for(var r=i.length-1;r>=0;r--)if(i[r].id===e){n.set(t,i[r].region);break}break;case"vertical":n.alt(t,e,["rl","lr"]);break;case"line":var a=e.split(","),o=a[0];n.integer(t,o),n.percent(t,o)&&n.set("snapToLines",!1),n.alt(t,o,["auto"]),2===a.length&&n.alt("lineAlign",a[1],["start",Je,"end"]);break;case"position":a=e.split(","),n.percent(t,a[0]),2===a.length&&n.alt("positionAlign",a[1],["start",Je,"end","line-left","line-right","auto"]);break;case"size":n.percent(t,e);break;case"align":n.alt(t,e,["start",Je,"end","left","right"])}},/:/,/\s/),e.region=n.get("region",null),e.vertical=n.get("vertical","");var r=n.get("line","auto");"auto"===r&&-1===Ze.line&&(r=-1),e.line=r,e.lineAlign=n.get("lineAlign","start"),e.snapToLines=n.get("snapToLines",!0),e.size=n.get("size",100),e.align=n.get("align",Je);var a=n.get("position","auto");"auto"===a&&50===Ze.position&&(a="start"===e.align||"left"===e.align?0:"end"===e.align||"right"===e.align?100:50),e.position=a}(t,e)}function ct(t){return t.replace(//gi,"\n")}function dt(t,e,i,n){for(var r,a,o,s,l,u=window.VTTCue||window.TextTrackCue,c=0;c=16?s--:s++,navigator.userAgent.match(/Firefox\//)?a.line=c+1:a.line=c>7?c-2:c+1,a.align="left",a.position=Math.max(0,Math.min(100,s/32*100+(navigator.userAgent.match(/Firefox\//)?50:0))),t.addCue(a)}}function ht(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function ft(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function pt(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function gt(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function yt(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function mt(t){if(t&&t.cues)for(;t.cues.length>0;)t.removeCue(t.cues[0])}function vt(t,e){return t&&t.label===e.name&&!(t.textTrack1||t.textTrack2)}function bt(t,e,i,n){return Math.min(e,n)-Math.max(t,i)}function _t(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function Et(t,e){if(!t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!e||"object"!=typeof e&&"function"!=typeof e?t:e}function Tt(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function, not "+typeof e);t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,enumerable:!1,writable:!0,configurable:!0}}),e&&(Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e)}function At(t){for(var e=[],i=0;i1?i-1:0),a=1;aNumber.MAX_SAFE_INTEGER?1/0:e},t.prototype.hexadecimalInteger=function(t){if(this[t]){var e=(this[t]||"0x").slice(2);e=(1&e.length?"0":"")+e;for(var i=new Uint8Array(e.length/2),n=0;nNumber.MAX_SAFE_INTEGER?1/0:e},t.prototype.decimalFloatingPoint=function(t){return parseFloat(this[t])},t.prototype.enumeratedString=function(t){return this[t]},t.prototype.decimalResolution=function(t){var e=Ft.exec(this[t]);if(null!==e)return{width:parseInt(e[1],10),height:parseInt(e[2],10)}},t.parseAttrList=function(t){var e,i={};for(Bt.lastIndex=0;null!==(e=Bt.exec(t));){var n=e[2];0===n.indexOf('"')&&n.lastIndexOf('"')===n.length-1&&(n=n.slice(1,-1)),i[e[1]]=n}return i},t}(),Gt=Ut,Kt={audio:{a3ds:!0,"ac-3":!0,"ac-4":!0,alac:!0,alaw:!0,dra1:!0,"dts+":!0,"dts-":!0,dtsc:!0,dtse:!0,dtsh:!0,"ec-3":!0,enca:!0,g719:!0,g726:!0,m4ae:!0,mha1:!0,mha2:!0,mhm1:!0,mhm2:!0,mlpa:!0,mp4a:!0,"raw ":!0,Opus:!0,samr:!0,sawb:!0,sawp:!0,sevc:!0,sqcp:!0,ssmv:!0,twos:!0,ulaw:!0},video:{avc1:!0,avc2:!0,avc3:!0,avc4:!0,avcp:!0,drac:!0,dvav:!0,dvhe:!0,encv:!0,hev1:!0,hvc1:!0,mjp2:!0,mp4v:!0,mvc1:!0,mvc2:!0,mvc3:!0,mvc4:!0,resv:!0,rv60:!0,s263:!0,svc1:!0,svc2:!0,"vc-1":!0,vp08:!0,vp09:!0}},Vt=function(){function t(t,e){for(var i=0;i>8*(15-i)&255;return e},t.prototype.fragmentDecryptdataFromLevelkey=function(t,e){var i=t;return t&&t.method&&t.uri&&!t.iv&&(i=new zt,i.method=t.method,i.baseuri=t.baseuri,i.reluri=t.reluri,i.iv=this.createInitializationVector(e)),i},t.prototype.cloneObj=function(t){return JSON.parse(JSON.stringify(t))},Vt(t,[{key:"url",get:function(){return!this._url&&this.relurl&&(this._url=It.a.buildAbsoluteURL(this.baseurl,this.relurl,{alwaysNormalize:!0})),this._url},set:function(t){this._url=t}},{key:"programDateTime",get:function(){return!this._programDateTime&&this.rawProgramDateTime&&(this._programDateTime=new Date(Date.parse(this.rawProgramDateTime))),this._programDateTime}},{key:"byteRange",get:function(){if(!this._byteRange){var t=this._byteRange=[];if(this.rawByteRange){var e=this.rawByteRange.split("@",2);if(1===e.length){var i=this.lastByteRangeEndOffset;t[0]=i||0}else t[0]=parseInt(e[1]);t[1]=parseInt(e[0])+t[0]}}return this._byteRange}},{key:"byteRangeStartOffset",get:function(){return this.byteRange[0]}},{key:"byteRangeEndOffset",get:function(){return this.byteRange[1]}},{key:"decryptdata",get:function(){return this._decryptdata||(this._decryptdata=this.fragmentDecryptdataFromLevelkey(this.levelkey,this.sn)),this._decryptdata}}]),t}(),qt=function(t){function e(i){u(this,e);var n=s(this,t.call(this,i,Dt.a.MANIFEST_LOADING,Dt.a.LEVEL_LOADING,Dt.a.AUDIO_TRACK_LOADING,Dt.a.SUBTITLE_TRACK_LOADING));return n.loaders={},n}return l(e,t),e.prototype.destroy=function(){for(var t in this.loaders){var e=this.loaders[t];e&&e.destroy()}this.loaders={},Mt.prototype.destroy.call(this)},e.prototype.onManifestLoading=function(t){this.load(t.url,{type:"manifest"})},e.prototype.onLevelLoading=function(t){this.load(t.url,{type:"level",level:t.level,id:t.id})},e.prototype.onAudioTrackLoading=function(t){this.load(t.url,{type:"audioTrack",id:t.id})},e.prototype.onSubtitleTrackLoading=function(t){this.load(t.url,{type:"subtitleTrack",id:t.id})},e.prototype.load=function(t,e){var i=this.loaders[e.type];if(void 0!==i){var n=i.context;if(n&&n.url===t)return void Pt.b.trace("playlist request ongoing");Pt.b.warn("abort previous loader for type:"+e.type),i.abort()}var r=this.hls.config,a=void 0,o=void 0,s=void 0,l=void 0;"manifest"===e.type?(a=r.manifestLoadingMaxRetry,o=r.manifestLoadingTimeOut,s=r.manifestLoadingRetryDelay,l=r.manifestLoadingMaxRetryTimeout):"level"===e.type?(a=0,o=r.levelLoadingTimeOut):(a=r.levelLoadingMaxRetry,o=r.levelLoadingTimeOut,s=r.levelLoadingRetryDelay,l=r.levelLoadingMaxRetryTimeout,Pt.b.log("loading playlist for "+e.type+" "+(e.level||e.id))),i=this.loaders[e.type]=e.loader=void 0!==r.pLoader?new r.pLoader(r):new r.loader(r),e.url=t,e.responseType="";var u=void 0,c=void 0;u={timeout:o,maxRetry:a,retryDelay:s,maxRetryDelay:l},c={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)},i.load(e,u,c)},e.prototype.resolve=function(t,e){return It.a.buildAbsoluteURL(e,t,{alwaysNormalize:!0})},e.prototype.parseMasterPlaylist=function(t,e){var i=[],n=void 0;for(jt.lastIndex=0;null!=(n=jt.exec(t));){var r={},o=r.attrs=new Gt(n[1]);r.url=this.resolve(n[2],e);var s=o.decimalResolution("RESOLUTION");s&&(r.width=s.width,r.height=s.height),r.bitrate=o.decimalInteger("AVERAGE-BANDWIDTH")||o.decimalInteger("BANDWIDTH"),r.name=o.NAME,function(t,e){["video","audio"].forEach(function(i){var n=t.filter(function(t){return a(t,i)});if(n.length){var r=n.filter(function(t){return 0===t.lastIndexOf("avc1",0)||0===t.lastIndexOf("mp4a",0)});e[i+"Codec"]=r.length>0?r[0]:n[0],t=t.filter(function(t){return-1===n.indexOf(t)})}}),e.unknownCodecs=t}([].concat((o.CODECS||"").split(/[ ,]+/)),r),r.videoCodec&&-1!==r.videoCodec.indexOf("avc1")&&(r.videoCodec=this.avc1toavcoti(r.videoCodec)),i.push(r)}return i},e.prototype.parseMasterPlaylistMedia=function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:[],r=void 0,a=[],o=0;for(Yt.lastIndex=0;null!==(r=Yt.exec(t));){var s={},l=new Gt(r[1]);if(l.TYPE===i){if(s.groupId=l["GROUP-ID"],s.name=l.NAME,s.type=i,s.default="YES"===l.DEFAULT,s.autoselect="YES"===l.AUTOSELECT,s.forced="YES"===l.FORCED,l.URI&&(s.url=this.resolve(l.URI,e)),s.lang=l.LANGUAGE,s.name||(s.name=s.lang),n.length){var u=c(n,s.groupId);s.audioCodec=u?u.codec:n[0].codec}s.id=o++,a.push(s)}}return a},e.prototype.avc1toavcoti=function(t){var e,i=t.split(".");return i.length>2?(e=i.shift()+".",e+=parseInt(i.shift()).toString(16),e+=("000"+parseInt(i.shift()).toString(16)).substr(-4)):e=t,e},e.prototype.parseLevelPlaylist=function(t,e,i,n){var r,a,o=0,s=0,l={type:null,version:null,url:e,fragments:[],live:!0,startSN:0},u=new zt,c=0,d=null,h=new Wt;for(Ht.lastIndex=0;null!==(r=Ht.exec(t));){var f=r[1];if(f){h.duration=parseFloat(f);var p=(" "+r[2]).slice(1);h.title=p||null,h.tagList.push(p?["INF",f,p]:["INF",f])}else if(r[3]){if(!isNaN(h.duration)){var g=o++;h.type=n,h.start=s,h.levelkey=u,h.sn=g,h.level=i,h.cc=c,h.baseurl=e,h.relurl=(" "+r[3]).slice(1),l.fragments.push(h),d=h,s+=h.duration,h=new Wt}}else if(r[4]){if(h.rawByteRange=(" "+r[4]).slice(1),d){var y=d.byteRangeEndOffset;y&&(h.lastByteRangeEndOffset=y)}}else if(r[5])h.rawProgramDateTime=(" "+r[5]).slice(1),h.tagList.push(["PROGRAM-DATE-TIME",h.rawProgramDateTime]),void 0===l.programDateTime&&(l.programDateTime=new Date(new Date(Date.parse(r[5]))-1e3*s));else{for(r=r[0].match($t),a=1;a=0&&(u.method=E,u.baseuri=e,u.reluri=T,u.key=null,u.iv=A));break;case"START":var S=m,L=new Gt(S),R=L.decimalFloatingPoint("TIME-OFFSET");isNaN(R)||(l.startTimeOffset=R);break;case"MAP":var k=new Gt(m);h.relurl=k.URI,h.rawByteRange=k.BYTERANGE,h.baseurl=e,h.level=i,h.type=n,h.sn="initSegment",l.initSegment=h,h=new Wt;break;default:Pt.b.warn("line parsed but not handled: "+r)}}}return h=d,h&&!h.relurl&&(l.fragments.pop(),s-=h.duration),l.totalduration=s,l.averagetargetduration=s/l.fragments.length,l.endSN=o-1,l.startCC=l.fragments[0]?l.fragments[0].cc:0,l.endCC=c,l},e.prototype.loadsuccess=function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=t.data,a=t.url,o=i.type,s=i.id,l=i.level,u=this.hls;if(this.loaders[o]=void 0,void 0!==a&&0!==a.indexOf("data:")||(a=i.url),e.tload=performance.now(),0===r.indexOf("#EXTM3U"))if(r.indexOf("#EXTINF:")>0){var c="audioTrack"!==o&&"subtitleTrack"!==o,d=isNaN(l)?isNaN(s)?0:s:l,h=this.parseLevelPlaylist(r,a,d,"audioTrack"===o?"audio":"subtitleTrack"===o?"subtitle":"main");h.tload=e.tload,"manifest"===o&&u.trigger(Dt.a.MANIFEST_LOADED,{levels:[{url:a,details:h}],audioTracks:[],url:a,stats:e,networkDetails:n}),e.tparsed=performance.now(),h.targetduration?c?u.trigger(Dt.a.LEVEL_LOADED,{details:h,level:l||0,id:s||0,stats:e,networkDetails:n}):"audioTrack"===o?u.trigger(Dt.a.AUDIO_TRACK_LOADED,{details:h,id:s,stats:e,networkDetails:n}):"subtitleTrack"===o&&u.trigger(Dt.a.SUBTITLE_TRACK_LOADED,{details:h,id:s,stats:e,networkDetails:n}):u.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.MANIFEST_PARSING_ERROR,fatal:!0,url:a,reason:"invalid targetduration",networkDetails:n})}else{var f=this.parseMasterPlaylist(r,a);if(f.length){var p=f.map(function(t){return{id:t.attrs.AUDIO,codec:t.audioCodec}}),g=this.parseMasterPlaylistMedia(r,a,"AUDIO",p),y=this.parseMasterPlaylistMedia(r,a,"SUBTITLES");if(g.length){var m=!1;g.forEach(function(t){t.url||(m=!0)}),!1===m&&f[0].audioCodec&&!f[0].attrs.AUDIO&&(Pt.b.log("audio codec signaled in quality level, but no embedded audio track signaled, create one"),g.unshift({type:"main",name:"main"}))}u.trigger(Dt.a.MANIFEST_LOADED,{levels:f,audioTracks:g,subtitles:y,url:a,stats:e,networkDetails:n})}else u.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.MANIFEST_PARSING_ERROR,fatal:!0,url:a,reason:"no level found in manifest",networkDetails:n})}else u.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.MANIFEST_PARSING_ERROR,fatal:!0,url:a,reason:"no EXTM3U delimiter",networkDetails:n})},e.prototype.loaderror=function(t,e){var i,n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=e.loader;switch(e.type){case"manifest":i=Ot.a.MANIFEST_LOAD_ERROR,n=!0;break;case"level":i=Ot.a.LEVEL_LOAD_ERROR,n=!1;break;case"audioTrack":i=Ot.a.AUDIO_TRACK_LOAD_ERROR,n=!1}a&&(a.abort(),this.loaders[e.type]=void 0),this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:i,fatal:n,url:a.url,loader:a,response:t,context:e,networkDetails:r})},e.prototype.loadtimeout=function(t,e){var i,n,r=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,a=e.loader;switch(e.type){case"manifest":i=Ot.a.MANIFEST_LOAD_TIMEOUT,n=!0;break;case"level":i=Ot.a.LEVEL_LOAD_TIMEOUT,n=!1;break;case"audioTrack":i=Ot.a.AUDIO_TRACK_LOAD_TIMEOUT,n=!1}a&&(a.abort(),this.loaders[e.type]=void 0),this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:i,fatal:n,url:a.url,loader:a,context:e,networkDetails:r})},e}(Mt),Xt=qt,Zt=function(t){function e(i){d(this,e);var n=h(this,t.call(this,i,Dt.a.FRAG_LOADING));return n.loaders={},n}return f(e,t),e.prototype.destroy=function(){var t=this.loaders;for(var e in t){var i=t[e];i&&i.destroy()}this.loaders={},Mt.prototype.destroy.call(this)},e.prototype.onFragLoading=function(t){var e=t.frag,i=e.type,n=this.loaders[i],r=this.hls.config;e.loaded=0,n&&(Pt.b.warn("abort previous fragment loader for type:"+i),n.abort()),n=this.loaders[i]=e.loader=void 0!==r.fLoader?new r.fLoader(r):new r.loader(r);var a=void 0,o=void 0,s=void 0;a={url:e.url,frag:e,responseType:"arraybuffer",progressData:!1};var l=e.byteRangeStartOffset,u=e.byteRangeEndOffset;isNaN(l)||isNaN(u)||(a.rangeStart=l,a.rangeEnd=u),o={timeout:r.fragLoadingTimeOut,maxRetry:0,retryDelay:0,maxRetryDelay:r.fragLoadingMaxRetryTimeout},s={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this),onProgress:this.loadprogress.bind(this)},n.load(a,o,s)},e.prototype.loadsuccess=function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=t.data,a=i.frag;a.loader=void 0,this.loaders[a.type]=void 0,this.hls.trigger(Dt.a.FRAG_LOADED,{payload:r,frag:a,stats:e,networkDetails:n})},e.prototype.loaderror=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=e.loader;n&&n.abort(),this.loaders[e.type]=void 0,this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.FRAG_LOAD_ERROR,fatal:!1,frag:e.frag,response:t,networkDetails:i})},e.prototype.loadtimeout=function(t,e){var i=arguments.length>2&&void 0!==arguments[2]?arguments[2]:null,n=e.loader;n&&n.abort(),this.loaders[e.type]=void 0,this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.FRAG_LOAD_TIMEOUT,fatal:!1,frag:e.frag,networkDetails:i})},e.prototype.loadprogress=function(t,e,i){var n=arguments.length>3&&void 0!==arguments[3]?arguments[3]:null,r=e.frag;r.loaded=t.loaded,this.hls.trigger(Dt.a.FRAG_LOAD_PROGRESS,{frag:r,stats:t,networkDetails:n})},e}(Mt),Jt=Zt,Qt=function(t){function e(i){p(this,e);var n=g(this,t.call(this,i,Dt.a.KEY_LOADING));return n.loaders={},n.decryptkey=null,n.decrypturl=null,n}return y(e,t),e.prototype.destroy=function(){for(var t in this.loaders){var e=this.loaders[t];e&&e.destroy()}this.loaders={},Mt.prototype.destroy.call(this)},e.prototype.onKeyLoading=function(t){var e=t.frag,i=e.type,n=this.loaders[i],r=e.decryptdata,a=r.uri;if(a!==this.decrypturl||null===this.decryptkey){var o=this.hls.config;n&&(Pt.b.warn("abort previous key loader for type:"+i),n.abort()),e.loader=this.loaders[i]=new o.loader(o),this.decrypturl=a,this.decryptkey=null;var s=void 0,l=void 0,u=void 0;s={url:a,frag:e,responseType:"arraybuffer"},l={timeout:o.fragLoadingTimeOut,maxRetry:o.fragLoadingMaxRetry,retryDelay:o.fragLoadingRetryDelay,maxRetryDelay:o.fragLoadingMaxRetryTimeout},u={onSuccess:this.loadsuccess.bind(this),onError:this.loaderror.bind(this),onTimeout:this.loadtimeout.bind(this)},e.loader.load(s,l,u)}else this.decryptkey&&(r.key=this.decryptkey,this.hls.trigger(Dt.a.KEY_LOADED,{frag:e}))},e.prototype.loadsuccess=function(t,e,i){var n=i.frag;this.decryptkey=n.decryptdata.key=new Uint8Array(t.data),n.loader=void 0,this.loaders[n.type]=void 0,this.hls.trigger(Dt.a.KEY_LOADED,{frag:n})},e.prototype.loaderror=function(t,e){var i=e.frag,n=i.loader;n&&n.abort(),this.loaders[e.type]=void 0,this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.KEY_LOAD_ERROR,fatal:!1,frag:i,response:t})},e.prototype.loadtimeout=function(t,e){var i=e.frag,n=i.loader;n&&n.abort(),this.loaders[e.type]=void 0,this.hls.trigger(Dt.a.ERROR,{type:Ot.b.NETWORK_ERROR,details:Ot.a.KEY_LOAD_TIMEOUT,fatal:!1,frag:i})},e}(Mt),te=Qt,ee={search:function(t,e){for(var i=0,n=t.length-1,r=null,a=null;i<=n;){r=(i+n)/2|0,a=t[r];var o=e(a);if(o>0)i=r+1;else{if(!(o<0))return a;n=r-1}}return null}},ie=ee,ne={isBuffered:function(t,e){try{if(t)for(var i=t.buffered,n=0;n=i.start(n)&&e<=i.end(n))return!0}catch(t){}return!1},bufferInfo:function(t,e,i){try{if(t){var n,r=t.buffered,a=[];for(n=0;nc&&(l[u-1].end=t[s].end):l.push(t[s])}else l.push(t[s])}for(s=0,n=0,r=a=e;s=d&&e1?e-1:0),r=1;r1?e-1:0),r=1;r0&&-1===t&&(Pt.b.log("override startPosition with lastCurrentTime @"+e.toFixed(3)),t=e),this.state=ye.IDLE,this.nextLoadPosition=this.startPosition=this.lastCurrentTime=t,this.tick()}else this.forceStartLoad=!0,this.state=ye.STOPPED},e.prototype.stopLoad=function(){var t=this.fragCurrent;t&&(t.loader&&t.loader.abort(),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=ye.STOPPED,this.forceStartLoad=!1},e.prototype.tick=function(){1===++this.ticks&&(this.doTick(),this.ticks>1&&setTimeout(this.tick,1),this.ticks=0)},e.prototype.doTick=function(){switch(this.state){case ye.ERROR:break;case ye.BUFFER_FLUSHING:this.fragLoadError=0;break;case ye.IDLE:this._doTickIdle();break;case ye.WAITING_LEVEL:var t=this.levels[this.level];t&&t.details&&(this.state=ye.IDLE);break;case ye.FRAG_LOADING_WAITING_RETRY:var e=performance.now(),i=this.retryDate;(!i||e>=i||this.media&&this.media.seeking)&&(Pt.b.log("mediaController: retryDate reached, switch back to IDLE state"),this.state=ye.IDLE);break;case ye.ERROR:case ye.STOPPED:case ye.FRAG_LOADING:case ye.PARSING:case ye.PARSED:case ye.ENDED:}this._checkBuffer(),this._checkFragmentChanged()},e.prototype._doTickIdle=function(){var t=this.hls,e=t.config,i=this.media;if(void 0!==this.levelLastLoaded&&(i||!this.startFragRequested&&e.startFragPrefetch)){var n=void 0;n=this.loadedmetadata?i.currentTime:this.nextLoadPosition;var r=t.nextLoadLevel,a=this.levels[r];if(a){var o=a.bitrate,s=void 0;s=o?Math.max(8*e.maxBufferSize/o,e.maxBufferLength):e.maxBufferLength,s=Math.min(s,e.maxMaxBufferLength);var l=re.bufferInfo(this.mediaBuffer?this.mediaBuffer:i,n,e.maxBufferHole),u=l.len;if(!(u>=s)){Pt.b.trace("buffer length of "+u.toFixed(3)+" is below max of "+s.toFixed(3)+". checking for more payload ..."),this.level=t.nextLoadLevel=r;var c=a.details;if(void 0===c||!0===c.live&&this.levelLastLoaded!==r)return void(this.state=ye.WAITING_LEVEL);var d=this.fragPrevious;if(!c.live&&d&&!d.backtracked&&d.sn===c.endSN&&!l.nextStart){if(Math.min(i.duration,d.start+d.duration)-Math.max(l.end,d.start)<=Math.max(.2,d.duration)){var h={};return this.altAudio&&(h.type="video"),this.hls.trigger(Dt.a.BUFFER_EOS,h),void(this.state=ye.ENDED)}}this._fetchPayloadOrEos(n,l,c)}}}},e.prototype._fetchPayloadOrEos=function(t,e,i){var n=this.fragPrevious,r=this.level,a=i.fragments,o=a.length;if(0!==o){var s=a[0].start,l=a[o-1].start+a[o-1].duration,u=e.end,c=void 0;if(i.initSegment&&!i.initSegment.data)c=i.initSegment;else if(i.live){var d=this.config.initialLiveManifestSize;if(od&&(l.currentTime=d),this.nextLoadPosition=d}if(t.PTSKnown&&e>n&&l&&l.readyState)return null;if(this.startFragRequested&&!t.PTSKnown){if(r){var h=r.sn+1;if(h>=t.startSN&&h<=t.endSN){var f=a[h-t.startSN];r.cc===f.cc&&(u=f,Pt.b.log("live playlist, switching playlist, load frag with next SN: "+u.sn))}u||(u=ie.search(a,function(t){return r.cc-t.cc}))&&Pt.b.log("live playlist, switching playlist, load frag with same CC: "+u.sn)}u||(u=a[Math.min(o-1,Math.round(o/2))],Pt.b.log("live playlist, switching playlist, unknown, load middle frag : "+u.sn))}return u},e.prototype._findFragment=function(t,e,i,n,r,a,o){var s=this.hls.config,l=void 0,u=void 0,c=s.maxFragLookUpTolerance,d=e?n[e.sn-n[0].sn+1]:void 0,h=function(t){var e=Math.min(c,t.duration+(t.deltaPTS?t.deltaPTS:0));return t.start+t.duration-e<=r?1:t.start-e>r&&t.start?-1:0};if(ra-c&&(c=0),u=d&&!h(d)?d:ie.search(n,h)):u=n[i-1],u){l=u;var f=l.sn-o.startSN,p=e&&l.level===e.level,g=n[f-1],y=n[f+1];if(e&&l.sn===e.sn)if(p&&!l.backtracked)if(l.sns.maxBufferHole&&e.dropped&&f?(l=g,Pt.b.warn("SN just loaded, with large PTS gap between audio and video, maybe frag is not starting with a keyframe ? load previous one to try to overcome this"),e.loadCounter--):(l=y,Pt.b.log("SN just loaded, load next one: "+l.sn))}else l=null;else l.backtracked&&(y&&y.backtracked?(Pt.b.warn("Already backtracked from fragment "+y.sn+", will not backtrack to fragment "+l.sn+". Loading fragment "+y.sn),l=y):(Pt.b.warn("Loaded fragment with dropped frames, backtracking 1 segment to find a keyframe"),l.dropped=0,g?(g.loadCounter&&g.loadCounter--,l=g,l.backtracked=!0):f&&(l=null)))}return l},e.prototype._loadFragmentOrKey=function(t,e,i,n,r){var a=this.hls,o=a.config;if(!t.decryptdata||null==t.decryptdata.uri||null!=t.decryptdata.key){if(Pt.b.log("Loading "+t.sn+" of ["+i.startSN+" ,"+i.endSN+"],level "+e+", currentTime:"+n.toFixed(3)+",bufferEnd:"+r.toFixed(3)),void 0!==this.fragLoadIdx?this.fragLoadIdx++:this.fragLoadIdx=0,t.loadCounter){t.loadCounter++;var s=o.fragLoadingLoopThreshold;if(t.loadCounter>s&&Math.abs(this.fragLoadIdx-t.loadIdx)e.endPTS?1:0})},e.prototype.followingBufferedFrag=function(t){return t?this.getBufferedFrag(t.endPTS+.5):null},e.prototype._checkFragmentChanged=function(){var t,e,i=this.media;if(i&&i.readyState&&!1===i.seeking&&(e=i.currentTime,e>i.playbackRate*this.lastCurrentTime&&(this.lastCurrentTime=e),re.isBuffered(i,e)?t=this.getBufferedFrag(e):re.isBuffered(i,e+.1)&&(t=this.getBufferedFrag(e+.1)),t)){var n=t;if(n!==this.fragPlaying){this.hls.trigger(Dt.a.FRAG_CHANGED,{frag:n});var r=n.level;this.fragPlaying&&this.fragPlaying.level===r||this.hls.trigger(Dt.a.LEVEL_SWITCHED,{level:r}),this.fragPlaying=n}}},e.prototype.immediateLevelSwitch=function(){if(Pt.b.log("immediateLevelSwitch"),!this.immediateSwitch){this.immediateSwitch=!0;var t=this.media,e=void 0;t?(e=t.paused,t.pause()):e=!0,this.previouslyPaused=e}var i=this.fragCurrent;i&&i.loader&&i.loader.abort(),this.fragCurrent=null,void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold),this.flushMainBuffer(0,Number.POSITIVE_INFINITY)},e.prototype.immediateLevelSwitchEnd=function(){var t=this.media;t&&t.buffered.length&&(this.immediateSwitch=!1,re.isBuffered(t,t.currentTime)&&(t.currentTime-=1e-4),this.previouslyPaused||t.play())},e.prototype.nextLevelSwitch=function(){var t=this.media;if(t&&t.readyState){var e=void 0,i=void 0,n=void 0;if(void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold),i=this.getBufferedFrag(t.currentTime),i&&i.startPTS>1&&this.flushMainBuffer(0,i.startPTS-1),t.paused)e=0;else{var r=this.hls.nextLoadLevel,a=this.levels[r],o=this.fragLastKbps;e=o&&this.fragCurrent?this.fragCurrent.duration*a.bitrate/(1e3*o)+1:0}if((n=this.getBufferedFrag(t.currentTime+e))&&(n=this.followingBufferedFrag(n))){var s=this.fragCurrent;s&&s.loader&&s.loader.abort(),this.fragCurrent=null,this.flushMainBuffer(n.maxStartPTS,Number.POSITIVE_INFINITY)}}},e.prototype.flushMainBuffer=function(t,e){this.state=ye.BUFFER_FLUSHING;var i={startOffset:t,endOffset:e};this.altAudio&&(i.type="video"),this.hls.trigger(Dt.a.BUFFER_FLUSHING,i)},e.prototype.onMediaAttached=function(t){var e=this.media=this.mediaBuffer=t.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvseeked=this.onMediaSeeked.bind(this),this.onvended=this.onMediaEnded.bind(this),e.addEventListener("seeking",this.onvseeking),e.addEventListener("seeked",this.onvseeked),e.addEventListener("ended",this.onvended);var i=this.config;this.levels&&i.autoStartLoad&&this.hls.startLoad(i.startPosition)},e.prototype.onMediaDetaching=function(){var t=this.media;t&&t.ended&&(Pt.b.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var e=this.levels;e&&e.forEach(function(t){t.details&&t.details.fragments.forEach(function(t){t.loadCounter=void 0,t.backtracked=void 0})}),t&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("seeked",this.onvseeked),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=null,this.loadedmetadata=!1,this.stopLoad()},e.prototype.onMediaSeeking=function(){var t=this.media,e=t?t.currentTime:void 0,i=this.config;isNaN(e)||Pt.b.log("media seeking to "+e.toFixed(3));var n=this.mediaBuffer?this.mediaBuffer:t,r=re.bufferInfo(n,e,this.config.maxBufferHole);if(this.state===ye.FRAG_LOADING){var a=this.fragCurrent;if(0===r.len&&a){var o=i.maxFragLookUpTolerance,s=a.start-o,l=a.start+a.duration+o;el?(a.loader&&(Pt.b.log("seeking outside of buffer while fragment load in progress, cancel fragment load"),a.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.state=ye.IDLE):Pt.b.log("seeking outside of buffer but within currently loaded fragment range")}}else this.state===ye.ENDED&&(0===r.len&&(this.fragPrevious=0),this.state=ye.IDLE);t&&(this.lastCurrentTime=e),this.state!==ye.FRAG_LOADING&&void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*i.fragLoadingLoopThreshold),this.loadedmetadata||(this.nextLoadPosition=this.startPosition=e),this.tick()},e.prototype.onMediaSeeked=function(){var t=this.media,e=t?t.currentTime:void 0;isNaN(e)||Pt.b.log("media seeked to "+e.toFixed(3)),this.tick()},e.prototype.onMediaEnded=function(){Pt.b.log("media ended"),this.startPosition=this.lastCurrentTime=0},e.prototype.onManifestLoading=function(){Pt.b.log("trigger BUFFER_RESET"),this.hls.trigger(Dt.a.BUFFER_RESET),this._bufferedFrags=[],this.stalled=!1,this.startPosition=this.lastCurrentTime=0},e.prototype.onManifestParsed=function(t){var e,i=!1,n=!1;t.levels.forEach(function(t){(e=t.audioCodec)&&(-1!==e.indexOf("mp4a.40.2")&&(i=!0),-1!==e.indexOf("mp4a.40.5")&&(n=!0))}),this.audioCodecSwitch=i&&n,this.audioCodecSwitch&&Pt.b.log("both AAC/HE-AAC audio found in levels; declaring level codec as HE-AAC"),this.levels=t.levels,this.startFragRequested=!1;var r=this.config;(r.autoStartLoad||this.forceStartLoad)&&this.hls.startLoad(r.startPosition)},e.prototype.onLevelLoaded=function(t){var e=t.details,i=t.level,n=this.levels[this.levelLastLoaded],r=this.levels[i],a=e.totalduration,o=0;if(Pt.b.log("level "+i+" loaded ["+e.startSN+","+e.endSN+"],duration:"+a),e.live){var s=r.details;s&&e.fragments.length>0?(E(s,e),o=e.fragments[0].start,this.liveSyncPosition=this.computeLivePosition(o,s),e.PTSKnown&&!isNaN(o)?Pt.b.log("live playlist sliding:"+o.toFixed(3)):(Pt.b.log("live playlist - outdated PTS, unknown sliding"),k(this.fragPrevious,n,e))):(Pt.b.log("live playlist - first load, unknown sliding"),e.PTSKnown=!1,k(this.fragPrevious,n,e))}else e.PTSKnown=!1;if(r.details=e,this.levelLastLoaded=i,this.hls.trigger(Dt.a.LEVEL_UPDATED,{details:e,level:i}),!1===this.startFragRequested){if(-1===this.startPosition||-1===this.lastCurrentTime){var l=e.startTimeOffset;isNaN(l)?e.live?(this.startPosition=this.computeLivePosition(o,e),Pt.b.log("configure startPosition to "+this.startPosition)):this.startPosition=0:(l<0&&(Pt.b.log("negative start time offset "+l+", count from end of last fragment"),l=o+a+l),Pt.b.log("start time offset found in playlist, adjust startPosition to "+l),this.startPosition=l),this.lastCurrentTime=this.startPosition}this.nextLoadPosition=this.startPosition}this.state===ye.WAITING_LEVEL&&(this.state=ye.IDLE),this.tick()},e.prototype.onKeyLoaded=function(){this.state===ye.KEY_LOADING&&(this.state=ye.IDLE,this.tick())},e.prototype.onFragLoaded=function(t){var e=this.fragCurrent,i=t.frag;if(this.state===ye.FRAG_LOADING&&e&&"main"===i.type&&i.level===e.level&&i.sn===e.sn){var n=t.stats,r=this.levels[e.level],a=r.details;if(Pt.b.log("Loaded "+e.sn+" of ["+a.startSN+" ,"+a.endSN+"],level "+e.level),this.bitrateTest=!1,this.stats=n,!0===i.bitrateTest&&this.hls.nextLoadLevel)this.state=ye.IDLE,this.startFragRequested=!1,n.tparsed=n.tbuffered=performance.now(),this.hls.trigger(Dt.a.FRAG_BUFFERED,{stats:n,frag:e,id:"main"}),this.tick();else if("initSegment"===i.sn)this.state=ye.IDLE,n.tparsed=n.tbuffered=performance.now(),a.initSegment.data=t.payload,this.hls.trigger(Dt.a.FRAG_BUFFERED,{stats:n,frag:e,id:"main"}),this.tick();else{this.state=ye.PARSING;var o=a.totalduration,s=e.level,l=e.sn,u=this.config.defaultAudioCodec||r.audioCodec;this.audioCodecSwap&&(Pt.b.log("swapping playlist audio codec"),void 0===u&&(u=this.lastAudioCodec),u&&(u=-1!==u.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5")),this.pendingBuffering=!0,this.appended=!1,Pt.b.log("Parsing "+l+" of ["+a.startSN+" ,"+a.endSN+"],level "+s+", cc "+e.cc);var c=this.demuxer;c||(c=this.demuxer=new he(this.hls,"main"));var d=this.media,h=d&&d.seeking,f=!h&&(a.PTSKnown||!a.live),p=a.initSegment?a.initSegment.data:[];c.push(t.payload,p,u,r.videoCodec,e,o,f,void 0)}}this.fragLoadError=0},e.prototype.onFragParsingInitSegment=function(t){var e=this.fragCurrent,i=t.frag;if(e&&"main"===t.id&&i.sn===e.sn&&i.level===e.level&&this.state===ye.PARSING){var n,r,a=t.tracks;if(a.audio&&this.altAudio&&delete a.audio,r=a.audio){var o=this.levels[this.level].audioCodec,s=navigator.userAgent.toLowerCase();o&&this.audioCodecSwap&&(Pt.b.log("swapping playlist audio codec"),o=-1!==o.indexOf("mp4a.40.5")?"mp4a.40.2":"mp4a.40.5"),this.audioCodecSwitch&&1!==r.metadata.channelCount&&-1===s.indexOf("firefox")&&(o="mp4a.40.5"),-1!==s.indexOf("android")&&"audio/mpeg"!==r.container&&(o="mp4a.40.2",Pt.b.log("Android: force audio codec to "+o)),r.levelCodec=o,r.id=t.id}r=a.video,r&&(r.levelCodec=this.levels[this.level].videoCodec,r.id=t.id),this.hls.trigger(Dt.a.BUFFER_CODECS,a);for(n in a){r=a[n],Pt.b.log("main track:"+n+",container:"+r.container+",codecs[level/parsed]=["+r.levelCodec+"/"+r.codec+"]");var l=r.initSegment;l&&(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(Dt.a.BUFFER_APPENDING,{type:n,data:l,parent:"main",content:"initSegment"}))}this.tick()}},e.prototype.onFragParsingData=function(t){var e=this,i=this.fragCurrent,n=t.frag;if(i&&"main"===t.id&&n.sn===i.sn&&n.level===i.level&&("audio"!==t.type||!this.altAudio)&&this.state===ye.PARSING){var r=this.levels[this.level],a=i;if(isNaN(t.endPTS)&&(t.endPTS=t.startPTS+i.duration,t.endDTS=t.startDTS+i.duration),Pt.b.log("Parsed "+t.type+",PTS:["+t.startPTS.toFixed(3)+","+t.endPTS.toFixed(3)+"],DTS:["+t.startDTS.toFixed(3)+"/"+t.endDTS.toFixed(3)+"],nb:"+t.nb+",dropped:"+(t.dropped||0)),"video"===t.type)if(a.dropped=t.dropped,a.dropped)if(a.backtracked)Pt.b.warn("Already backtracked on this fragment, appending with the gap");else{var o=r.details;if(!o||a.sn!==o.startSN)return Pt.b.warn("missing video frame(s), backtracking fragment"),a.backtracked=!0,this.nextLoadPosition=t.startPTS,this.state=ye.IDLE,this.fragPrevious=a,void this.tick();Pt.b.warn("missing video frame(s) on first frag, appending with gap")}else a.backtracked=!1;var s=_(r.details,a,t.startPTS,t.endPTS,t.startDTS,t.endDTS),l=this.hls;l.trigger(Dt.a.LEVEL_PTS_UPDATED,{details:r.details,level:this.level,drift:s,type:t.type,start:t.startPTS,end:t.endPTS}),[t.data1,t.data2].forEach(function(i){i&&i.length&&e.state===ye.PARSING&&(e.appended=!0,e.pendingBuffering=!0,l.trigger(Dt.a.BUFFER_APPENDING,{type:t.type,data:i,parent:"main",content:"data"}))}),this.tick()}},e.prototype.onFragParsed=function(t){var e=this.fragCurrent,i=t.frag;e&&"main"===t.id&&i.sn===e.sn&&i.level===e.level&&this.state===ye.PARSING&&(this.stats.tparsed=performance.now(),this.state=ye.PARSED,this._checkAppendedParsed())},e.prototype.onAudioTrackSwitching=function(t){var e=!!t.url,i=t.id;if(!e){if(this.mediaBuffer!==this.media){Pt.b.log("switching on main audio, use media.buffered to schedule main fragment loading"),this.mediaBuffer=this.media;var n=this.fragCurrent;n.loader&&(Pt.b.log("switching to main audio track, cancel main fragment load"),n.loader.abort()),this.fragCurrent=null,this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=ye.IDLE}var r=this.hls;r.trigger(Dt.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),r.trigger(Dt.a.AUDIO_TRACK_SWITCHED,{id:i}),this.altAudio=!1}},e.prototype.onAudioTrackSwitched=function(t){var e=t.id,i=!!this.hls.audioTracks[e].url;if(i){var n=this.videoBuffer;n&&this.mediaBuffer!==n&&(Pt.b.log("switching on alternate audio, use video.buffered to schedule main fragment loading"),this.mediaBuffer=n)}this.altAudio=i,this.tick()},e.prototype.onBufferCreated=function(t){var e=t.tracks,i=void 0,n=void 0,r=!1;for(var a in e){var o=e[a];"main"===o.id?(n=a,i=o,"video"===a&&(this.videoBuffer=e[a].buffer)):r=!0}r&&i?(Pt.b.log("alternate track found, use "+n+".buffered to schedule main fragment loading"),this.mediaBuffer=i.buffer):this.mediaBuffer=this.media},e.prototype.onBufferAppended=function(t){if("main"===t.parent){var e=this.state;e!==ye.PARSING&&e!==ye.PARSED||(this.pendingBuffering=t.pending>0,this._checkAppendedParsed())}},e.prototype._checkAppendedParsed=function(){if(!(this.state!==ye.PARSED||this.appended&&this.pendingBuffering)){var t=this.fragCurrent;if(t){var e=this.mediaBuffer?this.mediaBuffer:this.media;Pt.b.log("main buffered : "+pe.toString(e.buffered));var i=this._bufferedFrags.filter(function(t){return re.isBuffered(e,(t.startPTS+t.endPTS)/2)});i.push(t),this._bufferedFrags=i.sort(function(t,e){return t.startPTS-e.startPTS}),this.fragPrevious=t;var n=this.stats;n.tbuffered=performance.now(),this.fragLastKbps=Math.round(8*n.total/(n.tbuffered-n.tfirst)),this.hls.trigger(Dt.a.FRAG_BUFFERED,{stats:n,frag:t,id:"main"}),this.state=ye.IDLE}this.tick()}},e.prototype.onError=function(t){var e=t.frag||this.fragCurrent;if(!e||"main"===e.type){var i=!!this.media&&re.isBuffered(this.media,this.media.currentTime)&&re.isBuffered(this.media,this.media.currentTime+.5);switch(t.details){case Ot.a.FRAG_LOAD_ERROR:case Ot.a.FRAG_LOAD_TIMEOUT:case Ot.a.KEY_LOAD_ERROR:case Ot.a.KEY_LOAD_TIMEOUT:if(!t.fatal)if(this.fragLoadError+1<=this.config.fragLoadingMaxRetry){var n=Math.min(Math.pow(2,this.fragLoadError)*this.config.fragLoadingRetryDelay,this.config.fragLoadingMaxRetryTimeout);e.loadCounter=0,Pt.b.warn("mediaController: frag loading failed, retry in "+n+" ms"),this.retryDate=performance.now()+n,this.loadedmetadata||(this.startFragRequested=!1,this.nextLoadPosition=this.startPosition),this.fragLoadError++,this.state=ye.FRAG_LOADING_WAITING_RETRY}else Pt.b.error("mediaController: "+t.details+" reaches max retry, redispatch as fatal ..."),t.fatal=!0,this.state=ye.ERROR;break;case Ot.a.FRAG_LOOP_LOADING_ERROR:t.fatal||(i?(this._reduceMaxBufferLength(e.duration),this.state=ye.IDLE):e.autoLevel&&0!==e.level||(t.fatal=!0,this.state=ye.ERROR));break;case Ot.a.LEVEL_LOAD_ERROR:case Ot.a.LEVEL_LOAD_TIMEOUT:this.state!==ye.ERROR&&(t.fatal?(this.state=ye.ERROR,Pt.b.warn("streamController: "+t.details+",switch to "+this.state+" state ...")):t.levelRetry||this.state!==ye.WAITING_LEVEL||(this.state=ye.IDLE));break;case Ot.a.BUFFER_FULL_ERROR:"main"!==t.parent||this.state!==ye.PARSING&&this.state!==ye.PARSED||(i?(this._reduceMaxBufferLength(this.config.maxBufferLength),this.state=ye.IDLE):(Pt.b.warn("buffer full error also media.currentTime is not buffered, flush everything"),this.fragCurrent=null,this.flushMainBuffer(0,Number.POSITIVE_INFINITY)))}}},e.prototype._reduceMaxBufferLength=function(t){var e=this.config;e.maxMaxBufferLength>=t&&(e.maxMaxBufferLength/=2,Pt.b.warn("main:reduce max buffer length to "+e.maxMaxBufferLength+"s"),void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*e.fragLoadingLoopThreshold))},e.prototype._checkBuffer=function(){var t=this.media,e=this.config;if(t&&t.readyState){var i=t.currentTime,n=this.mediaBuffer?this.mediaBuffer:t,r=n.buffered;if(!this.loadedmetadata&&r.length){this.loadedmetadata=!0;var a=t.seeking?i:this.startPosition,o=re.isBuffered(n,a),s=r.start(0),l=!o&&Math.abs(a-s)1e3*e.lowBufferWatchdogPeriod){this.stallReported||(this.stallReported=!0,Pt.b.warn("playback stalling in low buffer @"+i),f.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_STALLED_ERROR,fatal:!1,buffer:g}));var m=u.nextStart,v=m-i;if(m&&v0){this.nudgeRetry=++y;var b=y*e.nudgeOffset;Pt.b.log("adjust currentTime from "+t.currentTime+" to next buffered @ "+m+" + nudge "+b),t.currentTime=m+b,this.stalled=void 0,f.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_SEEK_OVER_HOLE,fatal:!1,hole:m+b-i})}}else if(g>.5&&p>1e3*e.highBufferWatchdogPeriod)if(this.stallReported||(this.stallReported=!0,Pt.b.warn("playback stalling in high buffer @"+i),f.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_STALLED_ERROR,fatal:!1,buffer:g})),this.stalled=void 0,this.nudgeRetry=++y,y"+t),this.hls.trigger(Dt.a.STREAM_STATE_TRANSITION,{previousState:e,nextState:t})}},get:function(){return this._state}},{key:"currentLevel",get:function(){var t=this.media;if(t){var e=this.getBufferedFrag(t.currentTime);if(e)return e.level}return-1}},{key:"nextBufferedFrag",get:function(){var t=this.media;return t?this.followingBufferedFrag(this.getBufferedFrag(t.currentTime)):null}},{key:"nextLevel",get:function(){var t=this.nextBufferedFrag;return t?t.level:-1}},{key:"liveSyncPosition",get:function(){return this._liveSyncPosition},set:function(t){this._liveSyncPosition=t}}]),e}(Mt),ve=me,be=function(){function t(t,e){for(var i=0;i0){i=e[0].bitrate,e.sort(function(t,e){return t.bitrate-e.bitrate}),this._levels=e;for(var c=0;c0})}else this.hls.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.MANIFEST_INCOMPATIBLE_CODECS_ERROR,fatal:!0,url:this.hls.url,reason:"no level with compatible codecs found in manifest"})},e.prototype.setLevelInternal=function(t){var e=this._levels,i=this.hls;if(t>=0&&t1&&s.loadError0&&(e=t.urlId,this.hls.trigger(Dt.a.LEVEL_LOADING,{url:t.url[e],level:this.currentLevelIndex,id:e}))},be(e,[{key:"levels",get:function(){return this._levels}},{key:"level",get:function(){return this.currentLevelIndex},set:function(t){var e=this._levels;e&&(t=Math.min(t,e.length-1),this.currentLevelIndex===t&&void 0!==e[t].details||this.setLevelInternal(t))}},{key:"manualLevel",get:function(){return this.manualLevelIndex},set:function(t){this.manualLevelIndex=t,void 0===this._startLevel&&(this._startLevel=t),-1!==t&&(this.level=t)}},{key:"firstLevel",get:function(){return this._firstLevel},set:function(t){this._firstLevel=t}},{key:"startLevel",get:function(){if(void 0===this._startLevel){var t=this.hls.config.startLevel;return void 0!==t?t:this._firstLevel}return this._startLevel},set:function(t){this._startLevel=t}},{key:"nextLoadLevel",get:function(){return-1!==this.manualLevelIndex?this.manualLevelIndex:this.hls.nextAutoLevel},set:function(t){this.level=t,-1===this.manualLevelIndex&&(this.hls.nextAutoLevel=t)}}]),e}(Mt),Ee=_e,Te=i(3),Ae=function(t){function e(i){x(this,e);var n=N(this,t.call(this,i,Dt.a.MEDIA_ATTACHED,Dt.a.MEDIA_DETACHING,Dt.a.FRAG_PARSING_METADATA));return n.id3Track=void 0,n.media=void 0,n}return M(e,t),e.prototype.destroy=function(){Mt.prototype.destroy.call(this)},e.prototype.onMediaAttached=function(t){this.media=t.media,this.media},e.prototype.onMediaDetaching=function(){this.media=void 0},e.prototype.onFragParsingMetadata=function(t){var e=t.frag,i=t.samples;this.id3Track||(this.id3Track=this.media.addTextTrack("metadata","id3"),this.id3Track.mode="hidden");for(var n=window.WebKitDataCue||window.VTTCue||window.TextTrackCue,r=0;r=this.minWeight_},t.prototype.getEstimate=function(){return this.canEstimate()?Math.min(this.fast_.getEstimate(),this.slow_.getEstimate()):this.defaultEstimate_},t.prototype.destroy=function(){},t}(),we=ke,Ce=function(){function t(t,e){for(var i=0;i500*i.duration/s){var l=t.levels,u=Math.max(1,a.bw?a.bw/8:1e3*a.loaded/o),c=l[i.level],d=c.realBitrate?Math.max(c.realBitrate,c.bitrate):c.bitrate,h=a.total?a.total:Math.max(a.loaded,Math.round(i.duration*d/8)),f=e.currentTime,p=(h-a.loaded)/u,g=(re.bufferInfo(e,f,t.config.maxBufferHole).end-f)/s;if(g<2*i.duration/s&&p>g){var y=void 0,m=void 0;for(m=i.level-1;m>r;m--){var v=l[m].realBitrate?Math.max(l[m].realBitrate,l[m].bitrate):l[m].bitrate;if((y=i.duration*v/(6.4*u))=n;u--){var c=l[u],d=c.details,h=d?d.totalduration/d.fragments.length:e,f=!!d&&d.live,p=void 0;p=u<=t?o*i:s*i;var g=l[u].realBitrate?Math.max(l[u].realBitrate,l[u].bitrate):l[u].bitrate,y=g*h/p;if(Pt.b.trace("level/adjustedbw/bitrate/avgDuration/maxFetchDuration/fetchDuration: "+u+"/"+Math.round(p)+"/"+g+"/"+h+"/"+a+"/"+y),p>g&&(!y||f&&!this.bitrateTestDelay||y=0)return h;Pt.b.trace("rebuffering expected to happen, lets try to find a quality level minimizing the rebuffering");var f=s?Math.min(s,n.maxStarvationDelay):n.maxStarvationDelay,p=n.abrBandWidthFactor,g=n.abrBandWidthUpFactor;if(0===d){var y=this.bitrateTestDelay;if(y){f=(s?Math.min(s,n.maxLoadingDelay):n.maxLoadingDelay)-y,Pt.b.trace("bitrate test took "+Math.round(1e3*y)+"ms, set first fragment max fetchDuration to "+Math.round(1e3*f)+" ms"),p=g=1}}return h=this._findBestLevel(o,s,c,r,e,d+f,p,g,i),Math.max(h,0)}}]),e}(Mt),De=Ie,Oe=m(),Pe=function(t){function e(i){j(this,e);var n=Y(this,t.call(this,i,Dt.a.MEDIA_ATTACHING,Dt.a.MEDIA_DETACHING,Dt.a.MANIFEST_PARSED,Dt.a.BUFFER_RESET,Dt.a.BUFFER_APPENDING,Dt.a.BUFFER_CODECS,Dt.a.BUFFER_EOS,Dt.a.BUFFER_FLUSHING,Dt.a.LEVEL_PTS_UPDATED,Dt.a.LEVEL_UPDATED));return n._msDuration=null,n._levelDuration=null,n._live=null,n._objectUrl=null,n.onsbue=n.onSBUpdateEnd.bind(n),n.onsbe=n.onSBUpdateError.bind(n),n.pendingTracks={},n.tracks={},n}return H(e,t),e.prototype.destroy=function(){Mt.prototype.destroy.call(this)},e.prototype.onLevelPtsUpdated=function(t){var e=t.type,i=this.tracks.audio;if("audio"===e&&i&&"audio/mpeg"===i.container){var n=this.sourceBuffer.audio;if(Math.abs(n.timestampOffset-t.start)>.1){var r=n.updating;try{n.abort()}catch(t){r=!0,Pt.b.warn("can not abort audio buffer: "+t)}r?this.audioTimestampOffset=t.start:(Pt.b.warn("change mpeg audio timestamp offset from "+n.timestampOffset+" to "+t.start),n.timestampOffset=t.start)}}},e.prototype.onManifestParsed=function(t){var e=t.audio,i=t.video||t.levels.length&&t.audio,n=0;t.altAudio&&(e||i)&&(n=(e?1:0)+(i?1:0),Pt.b.log(n+" sourceBuffer(s) expected")),this.sourceBufferNb=n},e.prototype.onMediaAttaching=function(t){var e=this.media=t.media;if(e){var i=this.mediaSource=new Oe;this.onmso=this.onMediaSourceOpen.bind(this),this.onmse=this.onMediaSourceEnded.bind(this),this.onmsc=this.onMediaSourceClose.bind(this),i.addEventListener("sourceopen",this.onmso),i.addEventListener("sourceended",this.onmse),i.addEventListener("sourceclose",this.onmsc),e.src=URL.createObjectURL(i),this._objectUrl=e.src}},e.prototype.onMediaDetaching=function(){Pt.b.log("media source detaching");var t=this.mediaSource;if(t){if("open"===t.readyState)try{t.endOfStream()}catch(t){Pt.b.warn("onMediaDetaching:"+t.message+" while calling endOfStream")}t.removeEventListener("sourceopen",this.onmso),t.removeEventListener("sourceended",this.onmse),t.removeEventListener("sourceclose",this.onmsc),this.media&&(URL.revokeObjectURL(this._objectUrl),this.media.src===this._objectUrl?(this.media.removeAttribute("src"),this.media.load()):Pt.b.warn("media.src was changed by a third party - skip cleanup")),this.mediaSource=null,this.media=null,this._objectUrl=null,this.pendingTracks={},this.tracks={},this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0}this.onmso=this.onmse=this.onmsc=null,this.hls.trigger(Dt.a.MEDIA_DETACHED)},e.prototype.onMediaSourceOpen=function(){Pt.b.log("media source opened"),this.hls.trigger(Dt.a.MEDIA_ATTACHED,{media:this.media});var t=this.mediaSource;t&&t.removeEventListener("sourceopen",this.onmso),this.checkPendingTracks()},e.prototype.checkPendingTracks=function(){var t=this.pendingTracks,e=Object.keys(t).length;e&&(this.sourceBufferNb<=e||0===this.sourceBufferNb)&&(this.createSourceBuffers(t),this.pendingTracks={},this.doAppending())},e.prototype.onMediaSourceClose=function(){Pt.b.log("media source closed")},e.prototype.onMediaSourceEnded=function(){Pt.b.log("media source ended")},e.prototype.onSBUpdateEnd=function(){if(this.audioTimestampOffset){var t=this.sourceBuffer.audio;Pt.b.warn("change mpeg audio timestamp offset from "+t.timestampOffset+" to "+this.audioTimestampOffset),t.timestampOffset=this.audioTimestampOffset,delete this.audioTimestampOffset}this._needsFlush&&this.doFlush(),this._needsEos&&this.checkEos(),this.appending=!1;var e=this.parent,i=this.segments.reduce(function(t,i){return i.parent===e?t+1:t},0);this.hls.trigger(Dt.a.BUFFER_APPENDED,{parent:e,pending:i}),this._needsFlush||this.doAppending(),this.updateMediaElementDuration()},e.prototype.onSBUpdateError=function(t){Pt.b.error("sourceBuffer error:",t),this.hls.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_APPENDING_ERROR,fatal:!1})},e.prototype.onBufferReset=function(){var t=this.sourceBuffer;for(var e in t){var i=t[e];try{this.mediaSource.removeSourceBuffer(i),i.removeEventListener("updateend",this.onsbue),i.removeEventListener("error",this.onsbe)}catch(t){}}this.sourceBuffer={},this.flushRange=[],this.segments=[],this.appended=0},e.prototype.onBufferCodecs=function(t){if(0===Object.keys(this.sourceBuffer).length){for(var e in t)this.pendingTracks[e]=t[e];var i=this.mediaSource;i&&"open"===i.readyState&&this.checkPendingTracks()}},e.prototype.createSourceBuffers=function(t){var e=this.sourceBuffer,i=this.mediaSource;for(var n in t)if(!e[n]){var r=t[n],a=r.levelCodec||r.codec,o=r.container+";codecs="+a;Pt.b.log("creating sourceBuffer("+o+")");try{var s=e[n]=i.addSourceBuffer(o);s.addEventListener("updateend",this.onsbue),s.addEventListener("error",this.onsbe),this.tracks[n]={codec:a,container:r.container},r.buffer=s}catch(t){Pt.b.error("error while trying to add sourceBuffer:"+t.message),this.hls.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_ADD_CODEC_ERROR,fatal:!1,err:t,mimeType:o})}}this.hls.trigger(Dt.a.BUFFER_CREATED,{tracks:t})},e.prototype.onBufferAppending=function(t){this._needsFlush||(this.segments?this.segments.push(t):this.segments=[t],this.doAppending())},e.prototype.onBufferAppendFail=function(t){Pt.b.error("sourceBuffer error:",t.event),this.hls.trigger(Dt.a.ERROR,{type:Ot.b.MEDIA_ERROR,details:Ot.a.BUFFER_APPENDING_ERROR,fatal:!1})},e.prototype.onBufferEos=function(t){var e=this.sourceBuffer,i=t.type;for(var n in e)i&&n!==i||e[n].ended||(e[n].ended=!0,Pt.b.log(n+" sourceBuffer now EOS"));this.checkEos()},e.prototype.checkEos=function(){var t=this.sourceBuffer,e=this.mediaSource;if(!e||"open"!==e.readyState)return void(this._needsEos=!1);for(var i in t){var n=t[i];if(!n.ended)return;if(n.updating)return void(this._needsEos=!0)}Pt.b.log("all media data available, signal endOfStream() to MediaSource and stop loading fragment");try{e.endOfStream()}catch(t){Pt.b.warn("exception while calling mediaSource.endOfStream()")}this._needsEos=!1},e.prototype.onBufferFlushing=function(t){this.flushRange.push({start:t.startOffset,end:t.endOffset,type:t.type}),this.flushBufferCounter=0,this.doFlush()},e.prototype.onLevelUpdated=function(t){var e=t.details;e.fragments.length>0&&(this._levelDuration=e.totalduration+e.fragments[0].start,this._live=e.live,this.updateMediaElementDuration())},e.prototype.updateMediaElementDuration=function(){var t=this.hls.config,e=void 0;if(null!==this._levelDuration&&this.media&&this.mediaSource&&this.sourceBuffer&&0!==this.media.readyState&&"open"===this.mediaSource.readyState){for(var i in this.sourceBuffer)if(!0===this.sourceBuffer[i].updating)return;e=this.media.duration,null===this._msDuration&&(this._msDuration=this.mediaSource.duration),!0===this._live&&!0===t.liveDurationInfinity?(Pt.b.log("Media Source duration is set to Infinity"),this._msDuration=this.mediaSource.duration=1/0):(this._levelDuration>this._msDuration&&this._levelDuration>e||e===1/0||isNaN(e))&&(Pt.b.log("Updating Media Source duration to "+this._levelDuration.toFixed(3)),this._msDuration=this.mediaSource.duration=this._levelDuration)}},e.prototype.doFlush=function(){for(;this.flushRange.length;){var t=this.flushRange[0];if(!this.flushBuffer(t.start,t.end,t.type))return void(this._needsFlush=!0);this.flushRange.shift(),this.flushBufferCounter=0}if(0===this.flushRange.length){this._needsFlush=!1;var e=0,i=this.sourceBuffer;try{for(var n in i)e+=i[n].buffered.length}catch(t){Pt.b.error("error while accessing sourceBuffer.buffered")}this.appended=e,this.hls.trigger(Dt.a.BUFFER_FLUSHED)}},e.prototype.doAppending=function(){var t=this.hls,e=this.sourceBuffer,i=this.segments;if(Object.keys(e).length){if(this.media.error)return this.segments=[],void Pt.b.error("trying to append although a media error occured, flush segment and abort");if(this.appending)return;if(i&&i.length){var n=i.shift();try{var r=n.type,a=e[r];a?a.updating?i.unshift(n):(a.ended=!1,this.parent=n.parent,a.appendBuffer(n.data),this.appendError=0,this.appended++,this.appending=!0):this.onSBUpdateEnd()}catch(e){Pt.b.error("error while trying to append buffer:"+e.message),i.unshift(n);var o={type:Ot.b.MEDIA_ERROR,parent:n.parent};if(22===e.code)return this.segments=[],o.details=Ot.a.BUFFER_FULL_ERROR,o.fatal=!1,void t.trigger(Dt.a.ERROR,o);if(this.appendError?this.appendError++:this.appendError=1,o.details=Ot.a.BUFFER_APPEND_ERROR,this.appendError>t.config.appendErrorMaxRetry)return Pt.b.log("fail "+t.config.appendErrorMaxRetry+" times to append segment in sourceBuffer"),i=[],o.fatal=!0,void t.trigger(Dt.a.ERROR,o);o.fatal=!1,t.trigger(Dt.a.ERROR,o)}}}},e.prototype.flushBuffer=function(t,e,i){var n,r,a,o,s,l,u=this.sourceBuffer;if(Object.keys(u).length){if(Pt.b.log("flushBuffer,pos/start/end: "+this.media.currentTime.toFixed(3)+"/"+t+"/"+e),this.flushBufferCounter.5)return this.flushBufferCounter++,Pt.b.log("flush "+c+" ["+s+","+l+"], of ["+a+","+o+"], pos:"+this.media.currentTime),n.remove(s,l),!1}catch(t){Pt.b.warn("exception while accessing sourcebuffer, it might have been removed from MediaSource")}}}else Pt.b.warn("abort flushing too many retries");Pt.b.log("buffer flushed")}return!0},e}(Mt),xe=Pe,Ne=function(){function t(t,e){for(var i=0;ithis.autoLevelCapping&&e.streamController.nextLevelSwitch(),this.autoLevelCapping=e.autoLevelCapping}}},e.prototype.getMaxLevel=function(t){var i=this;if(!this.levels)return-1;var n=this.levels.filter(function(n,r){return e.isLevelAllowed(r,i.restrictedLevels)&&r<=t});return e.getMaxLevelByMediaSize(n,this.mediaWidth,this.mediaHeight)},e.isLevelAllowed=function(t){return-1===(arguments.length>1&&void 0!==arguments[1]?arguments[1]:[]).indexOf(t)},e.getMaxLevelByMediaSize=function(t,e,i){if(!t||t&&!t.length)return-1;for(var n=t.length-1,r=0;r=e||a.height>=i)&&function(t,e){return!e||(t.width!==e.width||t.height!==e.height)}(a,t[r+1])){n=r;break}}return n},Ne(e,[{key:"mediaWidth",get:function(){var t=void 0,i=this.media;return i&&(t=i.width||i.clientWidth||i.offsetWidth,t*=e.contentScaleFactor),t}},{key:"mediaHeight",get:function(){var t=void 0,i=this.media;return i&&(t=i.height||i.clientHeight||i.offsetHeight,t*=e.contentScaleFactor),t}}],[{key:"contentScaleFactor",get:function(){var t=1;try{t=window.devicePixelRatio}catch(t){}return t}}]),e}(Mt),Fe=Me,Be=function(t){function e(i){return q(this,e),X(this,t.call(this,i,Dt.a.MEDIA_ATTACHING))}return Z(e,t),e.prototype.destroy=function(){this.timer&&clearInterval(this.timer),this.isVideoPlaybackQualityAvailable=!1},e.prototype.onMediaAttaching=function(t){var e=this.hls.config;if(e.capLevelOnFPSDrop){"function"==typeof(this.video=t.media instanceof HTMLVideoElement?t.media:null).getVideoPlaybackQuality&&(this.isVideoPlaybackQualityAvailable=!0),clearInterval(this.timer),this.timer=setInterval(this.checkFPSInterval.bind(this),e.fpsDroppedMonitoringPeriod)}},e.prototype.checkFPS=function(t,e,i){var n=performance.now();if(e){if(this.lastTime){var r=n-this.lastTime,a=i-this.lastDroppedFrames,o=e-this.lastDecodedFrames,s=1e3*a/r,l=this.hls;if(l.trigger(Dt.a.FPS_DROP,{currentDropped:a,currentDecoded:o,totalDroppedFrames:i}),s>0&&a>l.config.fpsDroppedMonitoringThreshold*o){var u=l.currentLevel;Pt.b.warn("drop FPS ratio greater than max allowed value for currentLevel: "+u),u>0&&(-1===l.autoLevelCapping||l.autoLevelCapping>=u)&&(u-=1,l.trigger(Dt.a.FPS_DROP_LEVEL_CAPPING,{level:u,droppedLevel:l.currentLevel}),l.autoLevelCapping=u,l.streamController.nextLevelSwitch())}}this.lastTime=n,this.lastDroppedFrames=i,this.lastDecodedFrames=e}},e.prototype.checkFPSInterval=function(){var t=this.video;if(t)if(this.isVideoPlaybackQualityAvailable){var e=t.getVideoPlaybackQuality();this.checkFPS(t,e.totalVideoFrames,e.droppedVideoFrames)}else this.checkFPS(t,t.webkitDecodedFrameCount,t.webkitDroppedFrameCount)},e}(Mt),Ue=Be,Ge=function(){function t(e){J(this,t),e&&e.xhrSetup&&(this.xhrSetup=e.xhrSetup)}return t.prototype.destroy=function(){this.abort(),this.loader=null},t.prototype.abort=function(){var t=this.loader;t&&4!==t.readyState&&(this.stats.aborted=!0,t.abort()),window.clearTimeout(this.requestTimeout),this.requestTimeout=null,window.clearTimeout(this.retryTimeout),this.retryTimeout=null},t.prototype.load=function(t,e,i){this.context=t,this.config=e,this.callbacks=i,this.stats={trequest:performance.now(),retry:0},this.retryDelay=e.retryDelay,this.loadInternal()},t.prototype.loadInternal=function(){var t,e=this.context;t=this.loader=new XMLHttpRequest;var i=this.stats;i.tfirst=0,i.loaded=0;var n=this.xhrSetup;try{if(n)try{n(t,e.url)}catch(i){t.open("GET",e.url,!0),n(t,e.url)}t.readyState||t.open("GET",e.url,!0)}catch(i){return void this.callbacks.onError({code:t.status,text:i.message},e,t)}e.rangeEnd&&t.setRequestHeader("Range","bytes="+e.rangeStart+"-"+(e.rangeEnd-1)),t.onreadystatechange=this.readystatechange.bind(this),t.onprogress=this.loadprogress.bind(this),t.responseType=e.responseType,this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),this.config.timeout),t.send()},t.prototype.readystatechange=function(t){var e=t.currentTarget,i=e.readyState,n=this.stats,r=this.context,a=this.config;if(!n.aborted&&i>=2)if(window.clearTimeout(this.requestTimeout),0===n.tfirst&&(n.tfirst=Math.max(performance.now(),n.trequest)),4===i){var o=e.status;if(o>=200&&o<300){n.tload=Math.max(n.tfirst,performance.now());var s=void 0,l=void 0;"arraybuffer"===r.responseType?(s=e.response,l=s.byteLength):(s=e.responseText,l=s.length),n.loaded=n.total=l;var u={url:e.responseURL,data:s};this.callbacks.onSuccess(u,n,r,e)}else n.retry>=a.maxRetry||o>=400&&o<499?(Pt.b.error(o+" while loading "+r.url),this.callbacks.onError({code:o,text:e.statusText},r,e)):(Pt.b.warn(o+" while loading "+r.url+", retrying in "+this.retryDelay+"..."),this.destroy(),this.retryTimeout=window.setTimeout(this.loadInternal.bind(this),this.retryDelay),this.retryDelay=Math.min(2*this.retryDelay,a.maxRetryDelay),n.retry++)}else this.requestTimeout=window.setTimeout(this.loadtimeout.bind(this),a.timeout)},t.prototype.loadtimeout=function(){Pt.b.warn("timeout while loading "+this.context.url),this.callbacks.onTimeout(this.stats,this.context,null)},t.prototype.loadprogress=function(t){var e=t.currentTarget,i=this.stats;i.loaded=t.loaded,t.lengthComputable&&(i.total=t.total);var n=this.callbacks.onProgress;n&&n(i,this.context,null,e)},t}(),Ke=Ge,Ve=function(){function t(t,e){for(var i=0;i1&&setTimeout(this.tick,1),this.ticks=0)},e.prototype.doTick=function(){this.updateTrack(this.trackId)},e.prototype.onError=function(t){t.fatal&&t.type===Ot.b.NETWORK_ERROR&&this.cleanTimer()},e.prototype.onManifestLoading=function(){this.tracks=[],this.trackId=-1},e.prototype.onManifestParsed=function(t){var e=this,i=t.audioTracks||[],n=!1;this.tracks=i,this.hls.trigger(Dt.a.AUDIO_TRACKS_UPDATED,{audioTracks:i});var r=0;i.forEach(function(t){if(t.default&&!n)return e.audioTrack=r,void(n=!0);r++}),!1===n&&i.length&&(Pt.b.log("no default audio track defined, use first audio track as default"),this.audioTrack=0)},e.prototype.onAudioTrackLoaded=function(t){t.id=0&&t=0&&t0&&-1===t?(Pt.b.log("audio:override startPosition with lastCurrentTime @"+e.toFixed(3)),this.state=$e.IDLE):(this.lastCurrentTime=this.startPosition?this.startPosition:t,this.state=$e.STARTING),this.nextLoadPosition=this.startPosition=this.lastCurrentTime,this.tick()}else this.startPosition=t,this.state=$e.STOPPED},e.prototype.stopLoad=function(){var t=this.fragCurrent;t&&(t.loader&&t.loader.abort(),this.fragCurrent=null),this.fragPrevious=null,this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),this.state=$e.STOPPED},e.prototype.tick=function(){1===++this.ticks&&(this.doTick(),this.ticks>1&&setTimeout(this.tick,1),this.ticks=0)},e.prototype.doTick=function(){var t,e,i,n=this.hls,r=n.config;switch(this.state){case $e.ERROR:case $e.PAUSED:case $e.BUFFER_FLUSHING:break;case $e.STARTING:this.state=$e.WAITING_TRACK,this.loadedmetadata=!1;break;case $e.IDLE:var a=this.tracks;if(!a)break;if(!this.media&&(this.startFragRequested||!r.startFragPrefetch))break;if(this.loadedmetadata)t=this.media.currentTime;else if(void 0===(t=this.nextLoadPosition))break;var o=this.mediaBuffer?this.mediaBuffer:this.media,s=this.videoBuffer?this.videoBuffer:this.media,l=re.bufferInfo(o,t,r.maxBufferHole),u=re.bufferInfo(s,t,r.maxBufferHole),c=l.len,d=l.end,h=this.fragPrevious,f=Math.max(r.maxBufferLength,u.len),p=this.audioSwitch,g=this.trackId;if((cv||l.nextStart))return;Pt.b.log("alt audio track ahead of main track, seek to start of alt audio track"),this.media.currentTime=v+.05}if(i.initSegment&&!i.initSegment.data)_=i.initSegment;else if(d<=v){if(_=y[0],null!==this.videoTrackCC&&_.cc!==this.videoTrackCC&&(_=A(y,this.videoTrackCC)),i.live&&_.loadIdx&&_.loadIdx===this.fragLoadIdx){var E=l.nextStart?l.nextStart:v;return Pt.b.log("no alt audio available @currentTime:"+this.media.currentTime+", seeking @"+(E+.05)),void(this.media.currentTime=E+.05)}}else{var T=void 0,S=r.maxFragLookUpTolerance,L=h?y[h.sn-y[0].sn+1]:void 0,R=function(t){var e=Math.min(S,t.duration);return t.start+t.duration-e<=d?1:t.start-e>d&&t.start?-1:0};db-S&&(S=0),T=L&&!R(L)?L:ie.search(y,R)):T=y[m-1],T&&(_=T,v=T.start,h&&_.level===h.level&&_.sn===h.sn&&(_.snk&&Math.abs(this.fragLoadIdx-_.loadIdx)=C||I)&&(Pt.b.log("audioStreamController: retryDate reached, switch back to IDLE state"),this.state=$e.IDLE);break;case $e.WAITING_INIT_PTS:var D=this.videoTrackCC;if(void 0===this.initPTS[D])break;var O=this.waitingFragment;if(O){var P=O.frag.cc;D!==P?(e=this.tracks[this.trackId],e.details&&e.details.live&&(Pt.b.warn("Waiting fragment CC ("+P+") does not match video track CC ("+D+")"),this.waitingFragment=null,this.state=$e.IDLE)):(this.state=$e.FRAG_LOADING,this.onFragLoaded(this.waitingFragment),this.waitingFragment=null)}else this.state=$e.IDLE;break;case $e.STOPPED:case $e.FRAG_LOADING:case $e.PARSING:case $e.PARSED:case $e.ENDED:}},e.prototype.onMediaAttached=function(t){var e=this.media=this.mediaBuffer=t.media;this.onvseeking=this.onMediaSeeking.bind(this),this.onvended=this.onMediaEnded.bind(this),e.addEventListener("seeking",this.onvseeking),e.addEventListener("ended",this.onvended);var i=this.config;this.tracks&&i.autoStartLoad&&this.startLoad(i.startPosition)},e.prototype.onMediaDetaching=function(){var t=this.media;t&&t.ended&&(Pt.b.log("MSE detaching and video ended, reset startPosition"),this.startPosition=this.lastCurrentTime=0);var e=this.tracks;e&&e.forEach(function(t){t.details&&t.details.fragments.forEach(function(t){t.loadCounter=void 0})}),t&&(t.removeEventListener("seeking",this.onvseeking),t.removeEventListener("ended",this.onvended),this.onvseeking=this.onvseeked=this.onvended=null),this.media=this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1,this.stopLoad()},e.prototype.onMediaSeeking=function(){this.state===$e.ENDED&&(this.state=$e.IDLE),this.media&&(this.lastCurrentTime=this.media.currentTime),void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold),this.tick()},e.prototype.onMediaEnded=function(){this.startPosition=this.lastCurrentTime=0},e.prototype.onAudioTracksUpdated=function(t){Pt.b.log("audio tracks updated"),this.tracks=t.audioTracks},e.prototype.onAudioTrackSwitching=function(t){var e=!!t.url;this.trackId=t.id,this.fragCurrent=null,this.state=$e.PAUSED,this.waitingFragment=null,e?this.timer||(this.timer=setInterval(this.ontick,100)):this.demuxer&&(this.demuxer.destroy(),this.demuxer=null),e&&(this.audioSwitch=!0,this.state=$e.IDLE,void 0!==this.fragLoadIdx&&(this.fragLoadIdx+=2*this.config.fragLoadingLoopThreshold)),this.tick()},e.prototype.onAudioTrackLoaded=function(t){var e=t.details,i=t.id,n=this.tracks[i],r=e.totalduration,a=0;if(Pt.b.log("track "+i+" loaded ["+e.startSN+","+e.endSN+"],duration:"+r),e.live){var o=n.details;o&&e.fragments.length>0?(E(o,e),a=e.fragments[0].start,e.PTSKnown?Pt.b.log("live audio playlist sliding:"+a.toFixed(3)):Pt.b.log("live audio playlist - outdated PTS, unknown sliding")):(e.PTSKnown=!1,Pt.b.log("live audio playlist - first load, unknown sliding"))}else e.PTSKnown=!1;if(n.details=e,!this.startFragRequested){if(-1===this.startPosition){var s=e.startTimeOffset;isNaN(s)?this.startPosition=0:(Pt.b.log("start time offset found in playlist, adjust startPosition to "+s),this.startPosition=s)}this.nextLoadPosition=this.startPosition}this.state===$e.WAITING_TRACK&&(this.state=$e.IDLE),this.tick()},e.prototype.onKeyLoaded=function(){this.state===$e.KEY_LOADING&&(this.state=$e.IDLE,this.tick())},e.prototype.onFragLoaded=function(t){var e=this.fragCurrent,i=t.frag;if(this.state===$e.FRAG_LOADING&&e&&"audio"===i.type&&i.level===e.level&&i.sn===e.sn){var n=this.tracks[this.trackId],r=n.details,a=r.totalduration,o=e.level,s=e.sn,l=e.cc,u=this.config.defaultAudioCodec||n.audioCodec||"mp4a.40.2",c=this.stats=t.stats;if("initSegment"===s)this.state=$e.IDLE,c.tparsed=c.tbuffered=performance.now(),r.initSegment.data=t.payload,this.hls.trigger(Dt.a.FRAG_BUFFERED,{stats:c,frag:e,id:"audio"}),this.tick();else{this.state=$e.PARSING,this.appended=!1,this.demuxer||(this.demuxer=new he(this.hls,"audio"));var d=this.initPTS[l],h=r.initSegment?r.initSegment.data:[];if(r.initSegment||void 0!==d){this.pendingBuffering=!0,Pt.b.log("Demuxing "+s+" of ["+r.startSN+" ,"+r.endSN+"],track "+o);this.demuxer.push(t.payload,h,u,null,e,a,!1,d)}else Pt.b.log("unknown video PTS for continuity counter "+l+", waiting for video PTS before demuxing audio frag "+s+" of ["+r.startSN+" ,"+r.endSN+"],track "+o),this.waitingFragment=t,this.state=$e.WAITING_INIT_PTS}}this.fragLoadError=0},e.prototype.onFragParsingInitSegment=function(t){var e=this.fragCurrent,i=t.frag;if(e&&"audio"===t.id&&i.sn===e.sn&&i.level===e.level&&this.state===$e.PARSING){var n=t.tracks,r=void 0;if(n.video&&delete n.video,r=n.audio){r.levelCodec=r.codec,r.id=t.id,this.hls.trigger(Dt.a.BUFFER_CODECS,n),Pt.b.log("audio track:audio,container:"+r.container+",codecs[level/parsed]=["+r.levelCodec+"/"+r.codec+"]");var a=r.initSegment;if(a){var o={type:"audio",data:a,parent:"audio",content:"initSegment"};this.audioSwitch?this.pendingData=[o]:(this.appended=!0,this.pendingBuffering=!0,this.hls.trigger(Dt.a.BUFFER_APPENDING,o))}this.tick()}}},e.prototype.onFragParsingData=function(t){var e=this,i=this.fragCurrent,n=t.frag;if(i&&"audio"===t.id&&"audio"===t.type&&n.sn===i.sn&&n.level===i.level&&this.state===$e.PARSING){var r=this.trackId,a=this.tracks[r],o=this.hls;isNaN(t.endPTS)&&(t.endPTS=t.startPTS+i.duration,t.endDTS=t.startDTS+i.duration),Pt.b.log("parsed "+t.type+",PTS:["+t.startPTS.toFixed(3)+","+t.endPTS.toFixed(3)+"],DTS:["+t.startDTS.toFixed(3)+"/"+t.endDTS.toFixed(3)+"],nb:"+t.nb),_(a.details,i,t.startPTS,t.endPTS);var s=this.audioSwitch,l=this.media,u=!1;if(s&&l)if(l.readyState){var c=l.currentTime;Pt.b.log("switching audio track : currentTime:"+c),c>=t.startPTS&&(Pt.b.log("switching audio track : flushing all audio"),this.state=$e.BUFFER_FLUSHING,o.trigger(Dt.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"}),u=!0,this.audioSwitch=!1,o.trigger(Dt.a.AUDIO_TRACK_SWITCHED,{id:r}))}else this.audioSwitch=!1,o.trigger(Dt.a.AUDIO_TRACK_SWITCHED,{id:r});var d=this.pendingData;this.audioSwitch||([t.data1,t.data2].forEach(function(e){e&&e.length&&d.push({type:t.type,data:e,parent:"audio",content:"data"})}),!u&&d.length&&(d.forEach(function(t){e.state===$e.PARSING&&(e.pendingBuffering=!0,e.hls.trigger(Dt.a.BUFFER_APPENDING,t))}),this.pendingData=[],this.appended=!0)),this.tick()}},e.prototype.onFragParsed=function(t){var e=this.fragCurrent,i=t.frag;e&&"audio"===t.id&&i.sn===e.sn&&i.level===e.level&&this.state===$e.PARSING&&(this.stats.tparsed=performance.now(),this.state=$e.PARSED,this._checkAppendedParsed())},e.prototype.onBufferReset=function(){this.mediaBuffer=this.videoBuffer=null,this.loadedmetadata=!1},e.prototype.onBufferCreated=function(t){var e=t.tracks.audio;e&&(this.mediaBuffer=e.buffer,this.loadedmetadata=!0),t.tracks.video&&(this.videoBuffer=t.tracks.video.buffer)},e.prototype.onBufferAppended=function(t){if("audio"===t.parent){var e=this.state;e!==$e.PARSING&&e!==$e.PARSED||(this.pendingBuffering=t.pending>0,this._checkAppendedParsed())}},e.prototype._checkAppendedParsed=function(){if(!(this.state!==$e.PARSED||this.appended&&this.pendingBuffering)){var t=this.fragCurrent,e=this.stats,i=this.hls;if(t){this.fragPrevious=t,e.tbuffered=performance.now(),i.trigger(Dt.a.FRAG_BUFFERED,{stats:e,frag:t,id:"audio"});var n=this.mediaBuffer?this.mediaBuffer:this.media;Pt.b.log("audio buffered : "+pe.toString(n.buffered)),this.audioSwitch&&this.appended&&(this.audioSwitch=!1,i.trigger(Dt.a.AUDIO_TRACK_SWITCHED,{id:this.trackId})),this.state=$e.IDLE}this.tick()}},e.prototype.onError=function(t){var e=t.frag;if(!e||"audio"===e.type)switch(t.details){case Ot.a.FRAG_LOAD_ERROR:case Ot.a.FRAG_LOAD_TIMEOUT:if(!t.fatal){var i=this.fragLoadError;i?i++:i=1;var n=this.config;if(i<=n.fragLoadingMaxRetry){this.fragLoadError=i,e.loadCounter=0;var r=Math.min(Math.pow(2,i-1)*n.fragLoadingRetryDelay,n.fragLoadingMaxRetryTimeout);Pt.b.warn("audioStreamController: frag loading failed, retry in "+r+" ms"),this.retryDate=performance.now()+r,this.state=$e.FRAG_LOADING_WAITING_RETRY}else Pt.b.error("audioStreamController: "+t.details+" reaches max retry, redispatch as fatal ..."),t.fatal=!0,this.state=$e.ERROR}break;case Ot.a.FRAG_LOOP_LOADING_ERROR:case Ot.a.AUDIO_TRACK_LOAD_ERROR:case Ot.a.AUDIO_TRACK_LOAD_TIMEOUT:case Ot.a.KEY_LOAD_ERROR:case Ot.a.KEY_LOAD_TIMEOUT:this.state!==$e.ERROR&&(this.state=t.fatal?$e.ERROR:$e.IDLE,Pt.b.warn("audioStreamController: "+t.details+" while loading frag,switch to "+this.state+" state ..."));break;case Ot.a.BUFFER_FULL_ERROR:if("audio"===t.parent&&(this.state===$e.PARSING||this.state===$e.PARSED)){var a=this.mediaBuffer,o=this.media.currentTime;if(a&&re.isBuffered(a,o)&&re.isBuffered(a,o+.5)){var s=this.config;s.maxMaxBufferLength>=s.maxBufferLength&&(s.maxMaxBufferLength/=2,Pt.b.warn("audio:reduce max buffer length to "+s.maxMaxBufferLength+"s"),this.fragLoadIdx+=2*s.fragLoadingLoopThreshold),this.state=$e.IDLE}else Pt.b.warn("buffer full error also media.currentTime is not buffered, flush audio buffer"),this.fragCurrent=null,this.state=$e.BUFFER_FLUSHING,this.hls.trigger(Dt.a.BUFFER_FLUSHING,{startOffset:0,endOffset:Number.POSITIVE_INFINITY,type:"audio"})}}},e.prototype.onBufferFlushed=function(){var t=this,e=this.pendingData;e&&e.length?(Pt.b.log("appending pending audio data on Buffer Flushed"),e.forEach(function(e){t.hls.trigger(Dt.a.BUFFER_APPENDING,e)}),this.appended=!0,this.pendingData=[],this.state=$e.PARSED):(this.state=$e.IDLE,this.fragPrevious=null,this.tick())},He(e,[{key:"state",set:function(t){if(this.state!==t){var e=this.state;this._state=t,Pt.b.log("audio stream:"+e+"->"+t)}},get:function(){return this._state}}]),e}(Mt),We=ze,qe=function(){function t(t){return"string"==typeof t&&(!!a[t.toLowerCase()]&&t.toLowerCase())}function e(t){return"string"==typeof t&&(!!o[t.toLowerCase()]&&t.toLowerCase())}function i(t){for(var e=1;e100)throw new Error("Position must be between 0 and 100.");_=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"positionAlign",i({},u,{get:function(){return E},set:function(t){var i=e(t);if(!i)throw new SyntaxError("An invalid or illegal string was specified.");E=i,this.hasBeenReset=!0}})),Object.defineProperty(s,"size",i({},u,{get:function(){return T},set:function(t){if(t<0||t>100)throw new Error("Size must be between 0 and 100.");T=t,this.hasBeenReset=!0}})),Object.defineProperty(s,"align",i({},u,{get:function(){return A},set:function(t){var i=e(t);if(!i)throw new SyntaxError("An invalid or illegal string was specified.");A=i,this.hasBeenReset=!0}})),s.displayState=void 0,l)return s}if("undefined"!=typeof window&&window.VTTCue)return window.VTTCue;var r="auto",a={"":!0,lr:!0,rl:!0},o={start:!0,middle:!0,end:!0,left:!0,right:!0};return n.prototype.getCueAsHTML=function(){return window.WebVTT.convertCueToDOMTree(window,this.text)},n}(),Xe=function(){return{decode:function(t){if(!t)return"";if("string"!=typeof t)throw new Error("Error - expected string data.");return decodeURIComponent(encodeURIComponent(t))}}};st.prototype={set:function(t,e){this.get(t)||""===e||(this.values[t]=e)},get:function(t,e,i){return i?this.has(t)?this.values[t]:e[i]:this.has(t)?this.values[t]:e},has:function(t){return t in this.values},alt:function(t,e,i){for(var n=0;n=0&&e<=100)&&(this.set(t,e),!0)}};var Ze=new qe(0,0,0),Je="middle"===Ze.align?"middle":"center";at.prototype={parse:function(t){function e(){var t=i.buffer,e=0;for(t=ct(t);e=i&&console.log(this.time+" ["+t+"] "+e)}},ci=function(t){for(var e=[],i=0;ini&&(ui.log("ERROR","Too large cursor position "+this.pos),this.pos=ni)},t.prototype.moveCursor=function(t){var e=this.pos+t;if(t>1)for(var i=this.pos+1;i=144&&this.backSpace();var e=ei(t);if(this.pos>=ni)return void ui.log("ERROR","Cannot insert "+t.toString(16)+" ("+e+") at position "+this.pos+". Skipping it!");this.chars[this.pos].setChar(e,this.currPenState),this.moveCursor(1)},t.prototype.clearFromPos=function(t){var e;for(e=t;e0&&(i=t?"["+e.join(" | ")+"]":e.join("\n")),i},t.prototype.getTextAndFormat=function(){return this.rows},t}(),gi=function(){function t(e,i){ht(this,t),this.chNr=e,this.outputFilter=i,this.mode=null,this.verbose=0,this.displayedMemory=new pi,this.nonDisplayedMemory=new pi,this.lastOutputScreen=new pi,this.currRollUpRow=this.displayedMemory.rows[ii-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null}return t.prototype.reset=function(){this.mode=null,this.displayedMemory.reset(),this.nonDisplayedMemory.reset(),this.lastOutputScreen.reset(),this.currRollUpRow=this.displayedMemory.rows[ii-1],this.writeScreen=this.displayedMemory,this.mode=null,this.cueStartTime=null,this.lastCueEndTime=null},t.prototype.getHandler=function(){return this.outputFilter},t.prototype.setHandler=function(t){this.outputFilter=t},t.prototype.setPAC=function(t){this.writeScreen.setPAC(t)},t.prototype.setBkgData=function(t){this.writeScreen.setBkgData(t)},t.prototype.setMode=function(t){t!==this.mode&&(this.mode=t,ui.log("INFO","MODE="+t),"MODE_POP-ON"===this.mode?this.writeScreen=this.nonDisplayedMemory:(this.writeScreen=this.displayedMemory,this.writeScreen.reset()),"MODE_ROLL-UP"!==this.mode&&(this.displayedMemory.nrRollUpRows=null,this.nonDisplayedMemory.nrRollUpRows=null),this.mode=t)},t.prototype.insertChars=function(t){for(var e=0;e=46,e.italics)e.foreground="white";else{var i=Math.floor(t/2)-16,n=["white","green","blue","cyan","red","yellow","magenta"];e.foreground=n[i]}ui.log("INFO","MIDROW: "+JSON.stringify(e)),this.writeScreen.setPen(e)},t.prototype.outputDataUpdate=function(){var t=arguments.length>0&&void 0!==arguments[0]&&arguments[0],e=ui.time;null!==e&&this.outputFilter&&(null!==this.cueStartTime||this.displayedMemory.isEmpty()?this.displayedMemory.equals(this.lastOutputScreen)||(this.outputFilter.newCue&&(this.outputFilter.newCue(this.cueStartTime,e,this.lastOutputScreen),!0===t&&this.outputFilter.dispatchCue&&this.outputFilter.dispatchCue()),this.cueStartTime=this.displayedMemory.isEmpty()?null:e):this.cueStartTime=e,this.lastOutputScreen.copy(this.displayedMemory))},t.prototype.cueSplitAtTime=function(t){this.outputFilter&&(this.displayedMemory.isEmpty()||(this.outputFilter.newCue&&this.outputFilter.newCue(this.cueStartTime,t,this.displayedMemory),this.cueStartTime=t))},t}(),yi=function(){function t(e,i,n){ht(this,t),this.field=e||1,this.outputs=[i,n],this.channels=[new gi(1,i),new gi(2,n)],this.currChNr=-1,this.lastCmdA=null,this.lastCmdB=null,this.bufferedData=[],this.startTime=null,this.lastTime=null,this.dataCounters={padding:0,char:0,cmd:0,other:0}}return t.prototype.getHandler=function(t){return this.channels[t].getHandler()},t.prototype.setHandler=function(t,e){this.channels[t].setHandler(e)},t.prototype.addData=function(t,e){var i,n,r,a=!1;this.lastTime=t,ui.setTime(t);for(var o=0;o ("+ci([n,r])+")"),i=this.parseCmd(n,r),i||(i=this.parseMidrow(n,r)),i||(i=this.parsePAC(n,r)),i||(i=this.parseBackgroundAttributes(n,r)),!i&&(a=this.parseChars(n,r)))if(this.currChNr&&this.currChNr>=0){var s=this.channels[this.currChNr-1];s.insertChars(a)}else ui.log("WARNING","No channel found yet. TEXT-MODE?");i?this.dataCounters.cmd+=2:a?this.dataCounters.char+=2:(this.dataCounters.other+=2,ui.log("WARNING","Couldn't parse cleaned data "+ci([n,r])+" orig: "+ci([e[o],e[o+1]])))}else this.dataCounters.padding+=2},t.prototype.parseCmd=function(t,e){var i=null,n=(20===t||28===t)&&32<=e&&e<=47,r=(23===t||31===t)&&33<=e&&e<=35;if(!n&&!r)return!1;if(t===this.lastCmdA&&e===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,ui.log("DEBUG","Repeated command ("+ci([t,e])+") is dropped"),!0;i=20===t||23===t?1:2;var a=this.channels[i-1];return 20===t||28===t?32===e?a.ccRCL():33===e?a.ccBS():34===e?a.ccAOF():35===e?a.ccAON():36===e?a.ccDER():37===e?a.ccRU(2):38===e?a.ccRU(3):39===e?a.ccRU(4):40===e?a.ccFON():41===e?a.ccRDC():42===e?a.ccTR():43===e?a.ccRTD():44===e?a.ccEDM():45===e?a.ccCR():46===e?a.ccENM():47===e&&a.ccEOC():a.ccTO(e-32),this.lastCmdA=t,this.lastCmdB=e,this.currChNr=i,!0},t.prototype.parseMidrow=function(t,e){var i=null;if((17===t||25===t)&&32<=e&&e<=47){if((i=17===t?1:2)!==this.currChNr)return ui.log("ERROR","Mismatch channel in midrow parsing"),!1;return this.channels[i-1].ccMIDROW(e),ui.log("DEBUG","MIDROW ("+ci([t,e])+")"),!0}return!1},t.prototype.parsePAC=function(t,e){var i=null,n=null,r=(17<=t&&t<=23||25<=t&&t<=31)&&64<=e&&e<=127,a=(16===t||24===t)&&64<=e&&e<=95;if(!r&&!a)return!1;if(t===this.lastCmdA&&e===this.lastCmdB)return this.lastCmdA=null,this.lastCmdB=null,!0;i=t<=23?1:2,n=64<=e&&e<=95?1===i?ri[t]:oi[t]:1===i?ai[t]:si[t];var o=this.interpretPAC(n,e);return this.channels[i-1].setPAC(o),this.lastCmdA=t,this.lastCmdB=e,this.currChNr=i,!0},t.prototype.interpretPAC=function(t,e){var i=e,n={color:null,italics:!1,indent:null,underline:!1,row:t};return i=e>95?e-96:e-64,n.underline=1==(1&i),i<=13?n.color=["white","green","blue","cyan","red","yellow","magenta","white"][Math.floor(i/2)]:i<=15?(n.italics=!0,n.color="white"):n.indent=4*Math.floor((i-16)/2),n},t.prototype.parseChars=function(t,e){var i=null,n=null,r=null;if(t>=25?(i=2,r=t-8):(i=1,r=t),17<=r&&r<=19){var a=e;a=17===r?e+80:18===r?e+112:e+144,ui.log("INFO","Special char '"+ei(a)+"' in channel "+i),n=[a]}else 32<=t&&t<=127&&(n=0===e?[t]:[t,e]);if(n){var o=ci(n);ui.log("DEBUG","Char codes = "+o.join(",")),this.lastCmdA=null,this.lastCmdB=null}return n},t.prototype.parseBackgroundAttributes=function(t,e){var i,n,r,a,o=(16===t||24===t)&&32<=e&&e<=47,s=(23===t||31===t)&&45<=e&&e<=47;return!(!o&&!s)&&(i={},16===t||24===t?(n=Math.floor((e-32)/2),i.background=li[n],e%2==1&&(i.background=i.background+"_semi")):45===e?i.background="transparent":(i.foreground="black",47===e&&(i.underline=!0)),r=t<24?1:2,a=this.channels[r-1],a.setBkgData(i),this.lastCmdA=null,this.lastCmdB=null,!0)},t.prototype.reset=function(){for(var t=0;tt)&&(this.startTime=t),this.endTime=e,this.screen=i,this.timelineController.createCaptionsTrack(this.track)},t}(),bi=vi,_i=function(t,e,i){return t.substr(i||0,e.length)===e},Ei=function(t){var e=parseInt(t.substr(-3)),i=parseInt(t.substr(-6,2)),n=parseInt(t.substr(-9,2)),r=t.length>9?parseInt(t.substr(0,t.indexOf(":"))):0;return isNaN(e)||isNaN(i)||isNaN(n)||isNaN(r)?-1:(e+=1e3*i,e+=6e4*n,e+=36e5*r)},Ti=function(t){for(var e=5381,i=t.length;i;)e=33*e^t.charCodeAt(--i);return(e>>>0).toString()},Ai=function(t,e,i){var n=t[e],r=t[n.prevCC];if(!r||!r.new&&n.new)return t.ccOffset=t.presentationOffset=n.start,void(n.new=!1);for(;r&&r.new;)t.ccOffset+=n.start-r.start,n.new=!1,n=r,r=t[n.prevCC];t.presentationOffset=i},Si={parse:function(t,e,i,n,r,a){var o=/\r\n|\n\r|\n|\r/g,s=Object(Te.b)(new Uint8Array(t)).trim().replace(o,"\n").split("\n"),l="00:00.000",u=0,c=0,d=0,h=[],f=void 0,p=!0,g=new Qe;g.oncue=function(t){var e=i[n],r=i.ccOffset;e&&e.new&&(void 0!==c?r=i.ccOffset=e.start:Ai(i,n,d)),d&&(r=d+i.ccOffset-i.presentationOffset),t.startTime+=r-c,t.endTime+=r-c,t.id=Ti(t.startTime.toString())+Ti(t.endTime.toString())+Ti(t.text),t.text=decodeURIComponent(encodeURIComponent(t.text)),t.endTime>0&&h.push(t)},g.onparsingerror=function(t){f=t},g.onflush=function(){if(f&&a)return void a(f);r(h)},s.forEach(function(t){if(p){if(_i(t,"X-TIMESTAMP-MAP=")){p=!1,t.substr(16).split(",").forEach(function(t){_i(t,"LOCAL:")?l=t.substr(6):_i(t,"MPEGTS:")&&(u=parseInt(t.substr(7)))});try{e=e<0?e+8589934592:e,u-=e,c=Ei(l)/1e3,d=u/9e4,-1===c&&(f=new Error("Malformed X-TIMESTAMP-MAP: "+t))}catch(e){f=new Error("Malformed X-TIMESTAMP-MAP: "+t)}return}""===t&&(p=!1)}g.parse(t+"\n")}),g.flush()}},Li=Si,Ri=function(t){function e(i){pt(this,e);var n=gt(this,t.call(this,i,Dt.a.MEDIA_ATTACHING,Dt.a.MEDIA_DETACHING,Dt.a.FRAG_PARSING_USERDATA,Dt.a.FRAG_DECRYPTED,Dt.a.MANIFEST_LOADING,Dt.a.MANIFEST_LOADED,Dt.a.FRAG_LOADED,Dt.a.LEVEL_SWITCHING,Dt.a.INIT_PTS_FOUND));if(n.hls=i,n.config=i.config,n.enabled=!0,n.Cues=i.config.cueHandler,n.textTracks=[],n.tracks=[],n.unparsedVttFrags=[],n.initPTS=void 0,n.cueRanges=[],n.config.enableCEA708Captions){var r=new bi(n,1),a=new bi(n,2);n.cea608Parser=new mi(0,r,a)}return n}return yt(e,t),e.prototype.addCues=function(t,e,i,n){for(var r=this.cueRanges,a=!1,o=r.length;o--;){var s=r[o],l=bt(s[0],s[1],e,i);if(l>=0&&(s[0]=Math.min(s[0],e),s[1]=Math.max(s[1],i),a=!0,l/(i-e)>.5))return}a||r.push([e,i]),this.Cues.newCue(this[t],e,i,n)},e.prototype.onInitPtsFound=function(t){var e=this;void 0===this.initPTS&&(this.initPTS=t.initPTS),this.unparsedVttFrags.length&&(this.unparsedVttFrags.forEach(function(t){e.onFragLoaded(t)}),this.unparsedVttFrags=[])},e.prototype.getExistingTrack=function(t){var e=this.media;if(e)for(var i=0;i=this.tracks.length)){this.timer&&(clearInterval(this.timer),this.timer=null);var e=At(this.media.textTracks);if(-1!==this.trackId&&this.subtitleDisplay&&(e[this.trackId].mode="hidden"),this.trackId=t,Pt.b.log("switching to subtitle track "+t),this.hls.trigger(Dt.a.SUBTITLE_TRACK_SWITCH,{id:t}),-1!==t){var i=this.tracks[t];this.subtitleDisplay&&(e[t].mode="showing");var n=i.details;void 0!==n&&!0!==n.live||(Pt.b.log("(re)loading playlist for subtitle track "+t),this.hls.trigger(Dt.a.SUBTITLE_TRACK_LOADING,{url:i.url,id:t}))}}},wi(e,[{key:"subtitleTracks",get:function(){return this.tracks}},{key:"subtitleTrack",get:function(){return this.trackId},set:function(t){this.trackId!==t&&this.setSubtitleTrackInternal(t)}}]),e}(Mt),Ii=Ci,Di=i(4),Oi={STOPPED:"STOPPED",IDLE:"IDLE",KEY_LOADING:"KEY_LOADING",FRAG_LOADING:"FRAG_LOADING"},Pi=function(t){function e(i){St(this,e);var n=Lt(this,t.call(this,i,Dt.a.MEDIA_ATTACHED,Dt.a.ERROR,Dt.a.KEY_LOADED,Dt.a.FRAG_LOADED,Dt.a.SUBTITLE_TRACKS_UPDATED,Dt.a.SUBTITLE_TRACK_SWITCH,Dt.a.SUBTITLE_TRACK_LOADED,Dt.a.SUBTITLE_FRAG_PROCESSED));return n.config=i.config,n.vttFragSNsProcessed={},n.vttFragQueues=void 0,n.currentlyProcessing=null,n.state=Oi.STOPPED,n.currentTrackId=-1,n.ticks=0,n.decrypter=new Di.a(i.observer,i.config),n}return Rt(e,t),e.prototype.destroy=function(){Mt.prototype.destroy.call(this),this.state=Oi.STOPPED},e.prototype.clearVttFragQueues=function(){var t=this;this.vttFragQueues={},this.tracks.forEach(function(e){t.vttFragQueues[e.id]=[]})},e.prototype.nextFrag=function(){if(null===this.currentlyProcessing&&this.currentTrackId>-1&&this.vttFragQueues[this.currentTrackId].length){var t=this.currentlyProcessing=this.vttFragQueues[this.currentTrackId].shift();this.fragCurrent=t,this.hls.trigger(Dt.a.FRAG_LOADING,{frag:t}),this.state=Oi.FRAG_LOADING}},e.prototype.onSubtitleFragProcessed=function(t){t.success&&this.vttFragSNsProcessed[t.frag.trackId].push(t.frag.sn),this.currentlyProcessing=null,this.state=Oi.IDLE,this.nextFrag()},e.prototype.onMediaAttached=function(){this.state=Oi.IDLE},e.prototype.onError=function(t){var e=t.frag;e&&"subtitle"!==e.type||this.currentlyProcessing&&(this.currentlyProcessing=null,this.nextFrag())},e.prototype.tick=function(){var t=this;1===++this.ticks&&(this.doTick(),this.ticks>1&&setTimeout(function(){t.tick()},1),this.ticks=0)},e.prototype.doTick=function(){var t=this;switch(this.state){case Oi.IDLE:var e=this.tracks,i=this.currentTrackId,n=this.vttFragSNsProcessed[i],r=this.vttFragQueues[i],a=this.currentlyProcessing?this.currentlyProcessing.sn:-1,o=function(t){return n.indexOf(t.sn)>-1},s=function(t){return r.some(function(e){return e.sn===t.sn})};if(!e)break;var l;if(i0&&null!=i&&null!=i.key&&"AES-128"===i.method){var a;try{a=performance.now()}catch(t){a=Date.now()}this.decrypter.decrypt(t.payload,i.key.buffer,i.iv.buffer,function(t){var e;try{e=performance.now()}catch(t){e=Date.now()}r.trigger(Dt.a.FRAG_DECRYPTED,{frag:n,payload:t,stats:{tstart:a,tdecrypt:e}})})}},e}(Mt),xi=Pi,Ni={autoStartLoad:!0,startPosition:-1,defaultAudioCodec:void 0,debug:!1,capLevelOnFPSDrop:!1,capLevelToPlayerSize:!1,initialLiveManifestSize:1,maxBufferLength:30,maxBufferSize:6e7,maxBufferHole:.5,maxSeekHole:2,lowBufferWatchdogPeriod:.5,highBufferWatchdogPeriod:3,nudgeOffset:.1,nudgeMaxRetry:3,maxFragLookUpTolerance:.25,liveSyncDurationCount:3,liveMaxLatencyDurationCount:1/0,liveSyncDuration:void 0,liveMaxLatencyDuration:void 0,liveDurationInfinity:!1,maxMaxBufferLength:600,enableWorker:!0,enableSoftwareAES:!0,manifestLoadingTimeOut:1e4,manifestLoadingMaxRetry:1,manifestLoadingRetryDelay:1e3,manifestLoadingMaxRetryTimeout:64e3,startLevel:void 0,levelLoadingTimeOut:1e4,levelLoadingMaxRetry:4,levelLoadingRetryDelay:1e3,levelLoadingMaxRetryTimeout:64e3,fragLoadingTimeOut:2e4,fragLoadingMaxRetry:6,fragLoadingRetryDelay:1e3,fragLoadingMaxRetryTimeout:64e3,fragLoadingLoopThreshold:3,startFragPrefetch:!1,fpsDroppedMonitoringPeriod:5e3,fpsDroppedMonitoringThreshold:.2,appendErrorMaxRetry:3,loader:Ke,fLoader:void 0,pLoader:void 0,xhrSetup:void 0,fetchSetup:void 0,abrController:De,bufferController:xe,capLevelController:Fe,fpsController:Ue,stretchShortVideoTrack:!1,maxAudioFramesDrift:1,forceKeyFrameOnDiscontinuity:!0,abrEwmaFastLive:3,abrEwmaSlowLive:9,abrEwmaFastVoD:3,abrEwmaSlowVoD:9,abrEwmaDefaultEstimate:5e5,abrBandWidthFactor:.95,abrBandWidthUpFactor:.7,abrMaxWithRealBitrate:!1,maxStarvationDelay:4,maxLoadingDelay:4,minAutoBitrate:0};Ni.subtitleStreamController=xi,Ni.subtitleTrackController=Ii,Ni.timelineController=ki,Ni.cueHandler=wt,Ni.enableCEA708Captions=!0,Ni.enableWebVTT=!0,Ni.captionsTextTrack1Label="English",Ni.captionsTextTrack1LanguageCode="en",Ni.captionsTextTrack2Label="Spanish",Ni.captionsTextTrack2LanguageCode="es",Ni.audioStreamController=We,Ni.audioTrackController=Ye;var Mi=function(){function t(t,e){for(var i=0;i0&&void 0!==arguments[0]?arguments[0]:{};kt(this,t);var n=t.DefaultConfig;if((i.liveSyncDurationCount||i.liveMaxLatencyDurationCount)&&(i.liveSyncDuration||i.liveMaxLatencyDuration))throw new Error("Illegal hls.js config: don't mix up liveSyncDurationCount/liveMaxLatencyDurationCount and liveSyncDuration/liveMaxLatencyDuration");for(var r in n)r in i||(i[r]=n[r]);if(void 0!==i.liveMaxLatencyDurationCount&&i.liveMaxLatencyDurationCount<=i.liveSyncDurationCount)throw new Error('Illegal hls.js config: "liveMaxLatencyDurationCount" must be gt "liveSyncDurationCount"');if(void 0!==i.liveMaxLatencyDuration&&(i.liveMaxLatencyDuration<=i.liveSyncDuration||void 0===i.liveSyncDuration))throw new Error('Illegal hls.js config: "liveMaxLatencyDuration" must be gt "liveSyncDuration"');Object(Pt.a)(i.debug),this.config=i,this._autoLevelCapping=-1;var a=this.observer=new se.a;a.trigger=function(t){for(var e=arguments.length,i=Array(e>1?e-1:0),n=1;n1?e-1:0),n=1;n0&&void 0!==arguments[0]?arguments[0]:-1;Pt.b.log("startLoad("+t+")"),this.networkControllers.forEach(function(e){e.startLoad(t)})},t.prototype.stopLoad=function(){Pt.b.log("stopLoad"),this.networkControllers.forEach(function(t){t.stopLoad()})},t.prototype.swapAudioCodec=function(){Pt.b.log("swapAudioCodec"),this.streamController.swapAudioCodec()},t.prototype.recoverMediaError=function(){Pt.b.log("recoverMediaError");var t=this.media;this.detachMedia(),this.attachMedia(t)},Mi(t,[{key:"levels",get:function(){return this.levelController.levels}},{key:"currentLevel",get:function(){return this.streamController.currentLevel},set:function(t){Pt.b.log("set currentLevel:"+t),this.loadLevel=t,this.streamController.immediateLevelSwitch()}},{key:"nextLevel",get:function(){return this.streamController.nextLevel},set:function(t){Pt.b.log("set nextLevel:"+t),this.levelController.manualLevel=t,this.streamController.nextLevelSwitch()}},{key:"loadLevel",get:function(){return this.levelController.level},set:function(t){Pt.b.log("set loadLevel:"+t),this.levelController.manualLevel=t}},{key:"nextLoadLevel",get:function(){return this.levelController.nextLoadLevel},set:function(t){this.levelController.nextLoadLevel=t}},{key:"firstLevel",get:function(){return Math.max(this.levelController.firstLevel,this.minAutoLevel)},set:function(t){Pt.b.log("set firstLevel:"+t),this.levelController.firstLevel=t}},{key:"startLevel",get:function(){return this.levelController.startLevel},set:function(t){Pt.b.log("set startLevel:"+t);var e=this;-1!==t&&(t=Math.max(t,e.minAutoLevel)),e.levelController.startLevel=t}},{key:"autoLevelCapping",get:function(){return this._autoLevelCapping},set:function(t){Pt.b.log("set autoLevelCapping:"+t),this._autoLevelCapping=t}},{key:"autoLevelEnabled",get:function(){return-1===this.levelController.manualLevel}},{key:"manualLevel",get:function(){return this.levelController.manualLevel}},{key:"minAutoLevel",get:function(){for(var t=this,e=t.levels,i=t.config.minAutoBitrate,n=e?e.length:0,r=0;ri)return r}return 0}},{key:"maxAutoLevel",get:function(){var t=this,e=t.levels,i=t.autoLevelCapping;return-1===i&&e&&e.length?e.length-1:i}},{key:"nextAutoLevel",get:function(){var t=this;return Math.min(Math.max(t.abrController.nextAutoLevel,t.minAutoLevel),t.maxAutoLevel)},set:function(t){var e=this;e.abrController.nextAutoLevel=Math.max(e.minAutoLevel,t)}},{key:"audioTracks",get:function(){var t=this.audioTrackController;return t?t.audioTracks:[]}},{key:"audioTrack",get:function(){var t=this.audioTrackController;return t?t.audioTrack:-1},set:function(t){var e=this.audioTrackController;e&&(e.audioTrack=t)}},{key:"liveSyncPosition",get:function(){return this.streamController.liveSyncPosition}},{key:"subtitleTracks",get:function(){var t=this.subtitleTrackController;return t?t.subtitleTracks:[]}},{key:"subtitleTrack",get:function(){var t=this.subtitleTrackController;return t?t.subtitleTrack:-1},set:function(t){var e=this.subtitleTrackController;e&&(e.subtitleTrack=t)}},{key:"subtitleDisplay",get:function(){var t=this.subtitleTrackController;return!!t&&t.subtitleDisplay},set:function(t){var e=this.subtitleTrackController;e&&(e.subtitleDisplay=t)}}]),t}();e.default=Fi},function(t,e,i){function n(t){function e(n){if(i[n])return i[n].exports;var r=i[n]={i:n,l:!1,exports:{}};return t[n].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var i={};e.m=t,e.c=i,e.i=function(t){return t},e.d=function(t,i,n){e.o(t,i)||Object.defineProperty(t,i,{configurable:!1,enumerable:!0,get:n})},e.n=function(t){var i=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(i,"a",i),i},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="/",e.oe=function(t){throw console.error(t),t};var n=e(e.s=ENTRY_MODULE);return n.default||n}function r(t){return(t+"").replace(/[.?*+^$[\]\\(){}|-]/g,"\\$&")}function a(t){var e=[],i=t.toString(),n=i.match(/^function\s?\(\w+,\s*\w+,\s*(\w+)\)/);if(!n)return e;for(var a,o=n[1],s=new RegExp("(\\\\n|\\W)"+r(o)+"\\((/\\*.*?\\*/)?s?.*?([\\.|\\-|\\w|/|@]+).*?\\)","g");a=s.exec(i);)e.push(a[3]);return e}function o(t,e){for(var i=[e],n=[],r={};i.length;){var o=i.pop();if(!r[o]&&t[o]){r[o]=!0,n.push(o);var s=a(t[o]);i=i.concat(s)}}return n}t.exports=function(t,e){e=e||{};var r=i.m,a=e.all?Object.keys(r):o(r,t),s="("+n.toString().replace("ENTRY_MODULE",JSON.stringify(t))+")({"+a.map(function(t){return JSON.stringify(t)+": "+r[t].toString()}).join(",")+"})(self);",l=new window.Blob([s],{type:"text/javascript"});if(e.bare)return l;var u=window.URL||window.webkitURL||window.mozURL||window.msURL,c=u.createObjectURL(l),d=new window.Worker(c);return d.objectURL=c,d}},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(7),r=i(1),a=i(0),o=i(5),s=i.n(o),l=function(t){var e=new s.a;e.trigger=function(t){for(var i=arguments.length,n=Array(i>1?i-1:0),r=1;r1?i-1:0),r=1;r\n

<%=message%>

\n"},function(t,e,i){var n=i(188);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,"[data-no-op]{position:absolute;height:100%;width:100%;text-align:center}[data-no-op] p[data-no-op-msg]{position:absolute;text-align:center;font-size:25px;left:0;right:0;color:#fff;padding:10px;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%);max-height:100%;overflow:auto}[data-no-op] canvas[data-no-op-canvas]{background-color:#777;height:100%;width:100%}",""])},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(190),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(36),f=n(h),p=i(4),g=n(p),y=i(8),m=n(y),v=i(191),b=n(v);i(192);var _=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.template=(0,m.default)(b.default),n.showTimeout=null,n.listenTo(n.container,g.default.CONTAINER_STATE_BUFFERING,n.onBuffering),n.listenTo(n.container,g.default.CONTAINER_STATE_BUFFERFULL,n.onBufferFull),n.listenTo(n.container,g.default.CONTAINER_STOP,n.onStop),n.listenTo(n.container,g.default.CONTAINER_ENDED,n.onStop),n.listenTo(n.container,g.default.CONTAINER_ERROR,n.onStop),n.render(),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"spinner"}},{key:"attributes",get:function(){return{"data-spinner":"",class:"spinner-three-bounce"}}}]),e.prototype.onBuffering=function(){this.show()},e.prototype.onBufferFull=function(){this.hide()},e.prototype.onStop=function(){this.hide()},e.prototype.show=function(){var t=this;null===this.showTimeout&&(this.showTimeout=setTimeout(function(){return t.$el.show()},300))},e.prototype.hide=function(){null!==this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=null),this.$el.hide()},e.prototype.render=function(){return this.$el.html(this.template()),this.container.$el.append(this.$el),this.$el.hide(),this.container.buffering&&this.onBuffering(),this},e}(f.default);e.default=_,t.exports=e.default},function(t,e){t.exports="

\n"},function(t,e,i){var n=i(193);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".spinner-three-bounce[data-spinner]{position:absolute;margin:0 auto;width:70px;text-align:center;z-index:999;left:0;right:0;margin-left:auto;margin-right:auto;top:50%;-webkit-transform:translateY(-50%);transform:translateY(-50%)}.spinner-three-bounce[data-spinner]>div{width:18px;height:18px;background-color:#fff;border-radius:100%;display:inline-block;-webkit-animation:bouncedelay 1.4s infinite ease-in-out;animation:bouncedelay 1.4s infinite ease-in-out;-webkit-animation-fill-mode:both;animation-fill-mode:both}.spinner-three-bounce[data-spinner] [data-bounce1]{-webkit-animation-delay:-.32s;animation-delay:-.32s}.spinner-three-bounce[data-spinner] [data-bounce2]{-webkit-animation-delay:-.16s;animation-delay:-.16s}@-webkit-keyframes bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}@keyframes bouncedelay{0%,80%,to{-webkit-transform:scale(0);transform:scale(0)}40%{-webkit-transform:scale(1);transform:scale(1)}}",""])},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(195),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(37),f=n(h),p=i(4),g=n(p),y=i(6),m=n(y),v=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.setInitialAttrs(),n.reportInterval=n.options.reportInterval||5e3,n.state="IDLE",n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"stats"}}]),e.prototype.bindEvents=function(){this.listenTo(this.container.playback,g.default.PLAYBACK_PLAY,this.onPlay),this.listenTo(this.container,g.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,g.default.CONTAINER_ENDED,this.onStop),this.listenTo(this.container,g.default.CONTAINER_DESTROYED,this.onStop),this.listenTo(this.container,g.default.CONTAINER_STATE_BUFFERING,this.onBuffering),this.listenTo(this.container,g.default.CONTAINER_STATE_BUFFERFULL,this.onBufferFull),this.listenTo(this.container,g.default.CONTAINER_STATS_ADD,this.onStatsAdd),this.listenTo(this.container,g.default.CONTAINER_BITRATE,this.onStatsAdd),this.listenTo(this.container.playback,g.default.PLAYBACK_STATS_ADD,this.onStatsAdd)},e.prototype.setInitialAttrs=function(){this.firstPlay=!0,this.startupTime=0,this.rebufferingTime=0,this.watchingTime=0,this.rebuffers=0,this.externalMetrics={}},e.prototype.onPlay=function(){this.state="PLAYING",this.watchingTimeInit=Date.now(),this.intervalId||(this.intervalId=setInterval(this.report.bind(this),this.reportInterval))},e.prototype.onStop=function(){clearInterval(this.intervalId),this.report(),this.intervalId=void 0,this.state="STOPPED"},e.prototype.onBuffering=function(){this.firstPlay?this.startupTimeInit=Date.now():this.rebufferingTimeInit=Date.now(),this.state="BUFFERING",this.rebuffers++},e.prototype.onBufferFull=function(){this.firstPlay&&this.startupTimeInit?(this.firstPlay=!1,this.startupTime=Date.now()-this.startupTimeInit,this.watchingTimeInit=Date.now()):this.rebufferingTimeInit&&(this.rebufferingTime+=this.getRebufferingTime()),this.rebufferingTimeInit=void 0,this.state="PLAYING"},e.prototype.getRebufferingTime=function(){return Date.now()-this.rebufferingTimeInit},e.prototype.getWatchingTime=function(){return Date.now()-this.watchingTimeInit-this.rebufferingTime},e.prototype.isRebuffering=function(){return!!this.rebufferingTimeInit},e.prototype.onStatsAdd=function(t){m.default.extend(this.externalMetrics,t)},e.prototype.getStats=function(){var t={startupTime:this.startupTime,rebuffers:this.rebuffers,rebufferingTime:this.isRebuffering()?this.rebufferingTime+this.getRebufferingTime():this.rebufferingTime,watchingTime:this.isRebuffering()?this.getWatchingTime()-this.getRebufferingTime():this.getWatchingTime()};return m.default.extend(t,this.externalMetrics),t},e.prototype.report=function(){this.container.statsReport(this.getStats())},e}(f.default);e.default=v,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(197),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(36),f=n(h),p=i(4),g=n(p),y=i(8),m=n(y),v=i(198),b=n(v);i(199);var _=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.configure(),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"watermark"}},{key:"template",get:function(){return(0,m.default)(b.default)}}]),e.prototype.bindEvents=function(){this.listenTo(this.container,g.default.CONTAINER_PLAY,this.onPlay),this.listenTo(this.container,g.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,g.default.CONTAINER_OPTIONS_CHANGE,this.configure)},e.prototype.configure=function(){this.position=this.options.position||"bottom-right",this.options.watermark?(this.imageUrl=this.options.watermark,this.imageLink=this.options.watermarkLink,this.render()):this.$el.remove()},e.prototype.onPlay=function(){this.hidden||this.$el.show()},e.prototype.onStop=function(){this.$el.hide()},e.prototype.render=function(){this.$el.hide();var t={position:this.position,imageUrl:this.imageUrl,imageLink:this.imageLink};return this.$el.html(this.template(t)),this.container.$el.append(this.$el),this},e}(f.default);e.default=_,t.exports=e.default},function(t,e){t.exports="
>\n<% if(typeof imageLink !== 'undefined') { %>\n\">\n<% } %>\n\">\n<% if(typeof imageLink !== 'undefined') { %>\n\n<% } %>\n
\n"},function(t,e,i){var n=i(200);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,"[data-watermark]{position:absolute;min-width:70px;max-width:200px;width:12%;text-align:center;z-index:10}[data-watermark] a{outline:none;cursor:pointer}[data-watermark] img{max-width:100%}[data-watermark-bottom-left]{bottom:10px;left:10px}[data-watermark-bottom-right]{bottom:10px;right:42px}[data-watermark-top-left]{top:10px;left:10px}[data-watermark-top-right]{top:10px;right:37px}",""])},function(t,e,i){"use strict";(function(n){function r(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var a=i(0),o=r(a),s=i(1),l=r(s),u=i(3),c=r(u),d=i(2),h=r(d),f=i(36),p=r(f),g=i(4),y=r(g),m=i(8),v=r(m),b=i(9),_=r(b),E=i(202),T=r(E),A=i(58),S=r(A);i(203);var L=function(t){function e(i){(0,o.default)(this,e);var r=(0,l.default)(this,t.call(this,i));return r.hasStartedPlaying=!1,r.playRequested=!1,r.render(),n.nextTick(function(){return r.update()}),r}return(0,h.default)(e,t),(0,c.default)(e,[{key:"name",get:function(){return"poster"}},{key:"template",get:function(){return(0,v.default)(T.default)}},{key:"shouldRender",get:function(){var t=!(!this.options.poster||!this.options.poster.showForNoOp);return"html_img"!==this.container.playback.name&&(this.container.playback.getPlaybackType()!==_.default.NO_OP||t)}},{key:"attributes",get:function(){return{class:"player-poster","data-poster":""}}},{key:"events",get:function(){return{click:"clicked"}}},{key:"showOnVideoEnd",get:function(){return!this.options.poster||this.options.poster.showOnVideoEnd||void 0===this.options.poster.showOnVideoEnd}}]),e.prototype.bindEvents=function(){this.listenTo(this.container,y.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,y.default.CONTAINER_PLAY,this.onPlay),this.listenTo(this.container,y.default.CONTAINER_STATE_BUFFERING,this.update),this.listenTo(this.container,y.default.CONTAINER_STATE_BUFFERFULL,this.update),this.listenTo(this.container,y.default.CONTAINER_OPTIONS_CHANGE,this.render),this.showOnVideoEnd&&this.listenTo(this.container,y.default.CONTAINER_ENDED,this.onStop)},e.prototype.stopListening=function(){t.prototype.stopListening.call(this)},e.prototype.onPlay=function(){this.hasStartedPlaying=!0,this.update()},e.prototype.onStop=function(){this.hasStartedPlaying=!1,this.playRequested=!1,this.update()},e.prototype.showPlayButton=function(t){!t||this.options.chromeless&&!this.options.allowUserInteraction?(this.$playButton.hide(),this.$el.removeClass("clickable")):(this.$playButton.show(),this.$el.addClass("clickable"))},e.prototype.clicked=function(){return this.options.chromeless&&!this.options.allowUserInteraction||(this.playRequested=!0,this.update(),this.container.play()),!1},e.prototype.shouldHideOnPlay=function(){return!this.container.playback.isAudioOnly},e.prototype.update=function(){if(this.shouldRender){var t=!this.playRequested&&!this.hasStartedPlaying&&!this.container.buffering;this.showPlayButton(t),this.hasStartedPlaying?(this.container.enableMediaControl(),this.shouldHideOnPlay()&&this.$el.hide()):(this.container.disableMediaControl(),this.$el.show())}},e.prototype.render=function(){if(this.shouldRender){this.$el.html(this.template());if(this.options.poster&&void 0===this.options.poster.custom){var t=this.options.poster.url||this.options.poster;this.$el.css({"background-image":"url("+t+")"})}else this.options.poster&&this.$el.css({background:this.options.poster.custom});this.container.$el.append(this.el),this.$playWrapper=this.$el.find(".play-wrapper"),this.$playWrapper.append(S.default),this.$playButton=this.$playWrapper.find("svg"),this.$playButton.addClass("poster-icon"),this.$playButton.attr("data-poster","");var e=this.options.mediacontrol&&this.options.mediacontrol.buttons;return e&&this.$el.find("svg path").css("fill",e),this.options.mediacontrol&&this.options.mediacontrol.buttons&&(e=this.options.mediacontrol.buttons,this.$playButton.css("color",e)),this.update(),this}},e}(p.default);e.default=L,t.exports=e.default}).call(e,i(57))},function(t,e){t.exports='
\n'},function(t,e,i){var n=i(204);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".player-poster[data-poster]{display:-webkit-box;display:-ms-flexbox;display:flex;-webkit-box-pack:center;-ms-flex-pack:center;justify-content:center;-webkit-box-align:center;-ms-flex-align:center;align-items:center;position:absolute;height:100%;width:100%;z-index:998;top:0;left:0;background-color:#000;background-size:cover;background-repeat:no-repeat;background-position:50% 50%}.player-poster[data-poster].clickable{cursor:pointer}.player-poster[data-poster]:hover .play-wrapper[data-poster]{opacity:1}.player-poster[data-poster] .play-wrapper[data-poster]{width:100%;height:25%;margin:0 auto;opacity:.75;transition:opacity .1s ease}.player-poster[data-poster] .play-wrapper[data-poster] svg{height:100%}.player-poster[data-poster] .play-wrapper[data-poster] svg path{fill:#fff}",""])},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(206),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(37),f=n(h),p=i(4),g=n(p),y=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.container.options.gaAccount&&(n.account=n.container.options.gaAccount,n.trackerName=n.container.options.gaTrackerName?n.container.options.gaTrackerName+".":"Clappr.",n.domainName=n.container.options.gaDomainName,n.currentHDState=void 0,n.embedScript()),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"google_analytics"}}]),e.prototype.embedScript=function(){var t=this;if(window._gat)this.addEventListeners();else{var e=document.createElement("script");e.setAttribute("type","text/javascript"),e.setAttribute("async","async"),e.setAttribute("src","//www.google-analytics.com/ga.js"),e.onload=function(){return t.addEventListeners()},document.body.appendChild(e)}},e.prototype.addEventListeners=function(){var t=this;this.container&&(this.listenTo(this.container,g.default.CONTAINER_READY,this.onReady),this.listenTo(this.container,g.default.CONTAINER_PLAY,this.onPlay),this.listenTo(this.container,g.default.CONTAINER_STOP,this.onStop),this.listenTo(this.container,g.default.CONTAINER_PAUSE,this.onPause),this.listenTo(this.container,g.default.CONTAINER_ENDED,this.onEnded),this.listenTo(this.container,g.default.CONTAINER_STATE_BUFFERING,this.onBuffering),this.listenTo(this.container,g.default.CONTAINER_STATE_BUFFERFULL,this.onBufferFull),this.listenTo(this.container,g.default.CONTAINER_ERROR,this.onError),this.listenTo(this.container,g.default.CONTAINER_PLAYBACKSTATE,this.onPlaybackChanged),this.listenTo(this.container,g.default.CONTAINER_VOLUME,function(e){return t.onVolumeChanged(e)}),this.listenTo(this.container,g.default.CONTAINER_SEEK,function(e){return t.onSeek(e)}),this.listenTo(this.container,g.default.CONTAINER_FULL_SCREEN,this.onFullscreen),this.listenTo(this.container,g.default.CONTAINER_HIGHDEFINITIONUPDATE,this.onHD),this.listenTo(this.container,g.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.onDVR)),_gaq.push([this.trackerName+"_setAccount",this.account]),this.domainName&&_gaq.push([this.trackerName+"_setDomainName",this.domainName])},e.prototype.onReady=function(){this.push(["Video","Playback",this.container.playback.name])},e.prototype.onPlay=function(){this.push(["Video","Play",this.container.playback.src])},e.prototype.onStop=function(){this.push(["Video","Stop",this.container.playback.src])},e.prototype.onEnded=function(){this.push(["Video","Ended",this.container.playback.src])},e.prototype.onBuffering=function(){this.push(["Video","Buffering",this.container.playback.src])},e.prototype.onBufferFull=function(){this.push(["Video","Bufferfull",this.container.playback.src])},e.prototype.onError=function(){this.push(["Video","Error",this.container.playback.src])},e.prototype.onHD=function(t){var e=t?"ON":"OFF";e!==this.currentHDState&&(this.currentHDState=e,this.push(["Video","HD - "+e,this.container.playback.src]))},e.prototype.onPlaybackChanged=function(t){null!==t.type&&this.push(["Video","Playback Type - "+t.type,this.container.playback.src])},e.prototype.onDVR=function(t){var e=t?"ON":"OFF";this.push(["Interaction","DVR - "+e,this.container.playback.src])},e.prototype.onPause=function(){this.push(["Video","Pause",this.container.playback.src])},e.prototype.onSeek=function(){this.push(["Video","Seek",this.container.playback.src])},e.prototype.onVolumeChanged=function(){this.push(["Interaction","Volume",this.container.playback.src])},e.prototype.onFullscreen=function(){this.push(["Interaction","Fullscreen",this.container.playback.src])},e.prototype.push=function(t){var e=[this.trackerName+"_trackEvent"].concat(t);_gaq.push(e)},e}(f.default);e.default=y,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(208),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(37),f=n(h),p=i(4),g=n(p),y=i(9),m=n(y),v=function(t){function e(i){return(0,a.default)(this,e),(0,s.default)(this,t.call(this,i))}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"click_to_pause"}}]),e.prototype.bindEvents=function(){this.listenTo(this.container,g.default.CONTAINER_CLICK,this.click),this.listenTo(this.container,g.default.CONTAINER_SETTINGSUPDATE,this.settingsUpdate)},e.prototype.click=function(){(this.container.getPlaybackType()!==m.default.LIVE||this.container.isDvrEnabled())&&(this.container.isPlaying()?this.container.pause():this.container.play())},e.prototype.settingsUpdate=function(){var t=this.container.getPlaybackType()!==m.default.LIVE||this.container.isDvrEnabled();if(t!==this.pointerEnabled){var e=t?"addClass":"removeClass";this.container.$el[e]("pointer-enabled"),this.pointerEnabled=t}},e}(f.default);e.default=v,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(210),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(38),f=n(h),p=i(8),g=n(p),y=i(9),m=n(y),v=i(4),b=n(v),_=i(211),E=n(_);i(212);var T=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.settingsUpdate(),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"template",get:function(){return(0,g.default)(E.default)}},{key:"name",get:function(){return"dvr_controls"}},{key:"events",get:function(){return{"click .live-button":"click"}}},{key:"attributes",get:function(){return{class:"dvr-controls","data-dvr-controls":""}}}]),e.prototype.bindEvents=function(){this.listenTo(this.core.mediaControl,b.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged),this.listenTo(this.core.mediaControl,b.default.MEDIACONTROL_RENDERED,this.settingsUpdate),this.listenTo(this.core,b.default.CORE_OPTIONS_CHANGE,this.render),this.core.getCurrentContainer()&&(this.listenToOnce(this.core.getCurrentContainer(),b.default.CONTAINER_TIMEUPDATE,this.render),this.listenTo(this.core.getCurrentContainer(),b.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.dvrChanged))},e.prototype.containerChanged=function(){this.stopListening(),this.bindEvents()},e.prototype.dvrChanged=function(t){this.core.getPlaybackType()===m.default.LIVE&&(this.settingsUpdate(),this.core.mediaControl.$el.addClass("live"),t?(this.core.mediaControl.$el.addClass("dvr"),this.core.mediaControl.$el.find(".media-control-indicator[data-position], .media-control-indicator[data-duration]").hide()):this.core.mediaControl.$el.removeClass("dvr"))},e.prototype.click=function(){var t=this.core.mediaControl,e=t.container;e.isPlaying()||e.play(),t.$el.hasClass("dvr")&&e.seek(e.getDuration())},e.prototype.settingsUpdate=function(){var t=this;this.stopListening(),this.core.mediaControl.$el.removeClass("live"),this.shouldRender()&&(this.render(),this.$el.click(function(){return t.click()})),this.bindEvents()},e.prototype.shouldRender=function(){return(void 0===this.core.options.useDvrControls||!!this.core.options.useDvrControls)&&this.core.getPlaybackType()===m.default.LIVE},e.prototype.render=function(){return this.$el.html(this.template({live:this.core.i18n.t("live"),backToLive:this.core.i18n.t("back_to_live")})),this.shouldRender()&&(this.core.mediaControl.$el.addClass("live"),this.core.mediaControl.$(".media-control-left-panel[data-media-control]").append(this.$el)),this},e}(f.default);e.default=T,t.exports=e.default},function(t,e){t.exports='
<%= live %>
\n\n'},function(t,e,i){var n=i(213);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,'.dvr-controls[data-dvr-controls]{display:inline-block;float:left;color:#fff;line-height:32px;font-size:10px;font-weight:700;margin-left:6px}.dvr-controls[data-dvr-controls] .live-info{cursor:default;font-family:Roboto,Open Sans,Arial,sans-serif;text-transform:uppercase}.dvr-controls[data-dvr-controls] .live-info:before{content:"";display:inline-block;position:relative;width:7px;height:7px;border-radius:3.5px;margin-right:3.5px;background-color:#ff0101}.dvr-controls[data-dvr-controls] .live-info.disabled{opacity:.3}.dvr-controls[data-dvr-controls] .live-info.disabled:before{background-color:#fff}.dvr-controls[data-dvr-controls] .live-button{cursor:pointer;outline:none;display:none;border:0;color:#fff;background-color:transparent;height:32px;padding:0;opacity:.7;font-family:Roboto,Open Sans,Arial,sans-serif;text-transform:uppercase;transition:all .1s ease}.dvr-controls[data-dvr-controls] .live-button:before{content:"";display:inline-block;position:relative;width:7px;height:7px;border-radius:3.5px;margin-right:3.5px;background-color:#fff}.dvr-controls[data-dvr-controls] .live-button:hover{opacity:1;text-shadow:hsla(0,0%,100%,.75) 0 0 5px}.dvr .dvr-controls[data-dvr-controls] .live-info{display:none}.dvr .dvr-controls[data-dvr-controls] .live-button{display:block}.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]{background-color:#005aff}.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar]{background-color:#ff0101}',""])},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(215),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(38),f=n(h),p=i(8),g=n(p),y=i(4),m=n(y),v=i(216),b=n(v),_=i(217),E=n(_);i(218);var T=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i)),r=i.options.closedCaptionsConfig;return n._title=r&&r.title?r.title:null,n._ariaLabel=r&&r.ariaLabel?r.ariaLabel:"cc-button",n._labelCb=r&&r.labelCallback&&"function"==typeof r.labelCallback?r.labelCallback:function(t){return t.name},n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"closed_captions"}},{key:"template",get:function(){return(0,g.default)(E.default)}},{key:"events",get:function(){return{"click [data-cc-button]":"toggleContextMenu","click [data-cc-select]":"onTrackSelect"}}},{key:"attributes",get:function(){return{class:"cc-controls","data-cc-controls":""}}}]),e.prototype.bindEvents=function(){this.listenTo(this.core.mediaControl,m.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged),this.listenTo(this.core.mediaControl,m.default.MEDIACONTROL_RENDERED,this.render),this.listenTo(this.core.mediaControl,m.default.MEDIACONTROL_HIDE,this.hideContextMenu),this.container=this.core.getCurrentContainer(),this.container&&(this.listenTo(this.container,m.default.CONTAINER_SUBTITLE_AVAILABLE,this.onSubtitleAvailable),this.listenTo(this.container,m.default.CONTAINER_SUBTITLE_CHANGED,this.onSubtitleChanged),this.listenTo(this.container,m.default.CONTAINER_STOP,this.onContainerStop))},e.prototype.onContainerStop=function(){this.ccAvailable(!1)},e.prototype.containerChanged=function(){this.ccAvailable(!1),this.stopListening(),this.bindEvents()},e.prototype.onSubtitleAvailable=function(){this.renderCcButton(),this.ccAvailable(!0)},e.prototype.onSubtitleChanged=function(t){this.setCurrentContextMenuElement(t.id)},e.prototype.onTrackSelect=function(t){var e=parseInt(t.target.dataset.ccSelect,10);return this.container.closedCaptionsTrackId=e,this.hideContextMenu(),t.stopPropagation(),!1},e.prototype.ccAvailable=function(t){var e=t?"addClass":"removeClass";this.$el[e]("available")},e.prototype.toggleContextMenu=function(){this.$el.find("ul").toggle()},e.prototype.hideContextMenu=function(){this.$el.find("ul").hide()},e.prototype.contextMenuElement=function(t){return this.$el.find("ul a"+(isNaN(t)?"":'[data-cc-select="'+t+'"]')).parent()},e.prototype.setCurrentContextMenuElement=function(t){if(this._trackId!==t){this.contextMenuElement().removeClass("current"),this.contextMenuElement(t).addClass("current");var e=t>-1?"addClass":"removeClass";this.$ccButton[e]("enabled"),this._trackId=t}},e.prototype.renderCcButton=function(){for(var t=this.container?this.container.closedCaptionsTracks:[],e=0;e'},function(t,e){t.exports='\n\n'},function(t,e,i){var n=i(219);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,".cc-controls[data-cc-controls]{float:right;position:relative;display:none}.cc-controls[data-cc-controls].available{display:block}.cc-controls[data-cc-controls] .cc-button{padding:6px!important}.cc-controls[data-cc-controls] .cc-button.enabled{display:block;opacity:1}.cc-controls[data-cc-controls] .cc-button.enabled:hover{opacity:1;text-shadow:none}.cc-controls[data-cc-controls]>ul{list-style-type:none;position:absolute;bottom:25px;border:1px solid #000;display:none;background-color:#e6e6e6}.cc-controls[data-cc-controls] li{font-size:10px}.cc-controls[data-cc-controls] li[data-title]{background-color:#c3c2c2;padding:5px}.cc-controls[data-cc-controls] li a{color:#444;padding:2px 10px;display:block;text-decoration:none}.cc-controls[data-cc-controls] li a:hover{background-color:#555;color:#fff}.cc-controls[data-cc-controls] li a:hover a{color:#fff;text-decoration:none}.cc-controls[data-cc-controls] li.current a{color:red}",""])},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(221),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(30),f=n(h),p=i(4),g=n(p),y=i(6),m=n(y),v=i(58),b=n(v),_=i(76),E=n(_),T=(0,m.default)('link[rel="shortcut icon"]'),A=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n._container=null,n.configure(),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"favicon"}},{key:"oldIcon",get:function(){return T}}]),e.prototype.configure=function(){this.core.options.changeFavicon?this.enabled||(this.stopListening(this.core,g.default.CORE_OPTIONS_CHANGE),this.enable()):this.enabled&&(this.disable(),this.listenTo(this.core,g.default.CORE_OPTIONS_CHANGE,this.configure))},e.prototype.bindEvents=function(){this.listenTo(this.core,g.default.CORE_OPTIONS_CHANGE,this.configure),this.listenTo(this.core.mediaControl,g.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged),this.core.mediaControl.container&&this.containerChanged()},e.prototype.containerChanged=function(){this._container&&this.stopListening(this._container),this._container=this.core.mediaControl.container,this.listenTo(this._container,g.default.CONTAINER_PLAY,this.setPlayIcon),this.listenTo(this._container,g.default.CONTAINER_PAUSE,this.setPauseIcon),this.listenTo(this._container,g.default.CONTAINER_STOP,this.resetIcon),this.listenTo(this._container,g.default.CONTAINER_ENDED,this.resetIcon),this.listenTo(this._container,g.default.CONTAINER_ERROR,this.resetIcon),this.resetIcon()},e.prototype.disable=function(){t.prototype.disable.call(this),this.resetIcon()},e.prototype.destroy=function(){t.prototype.destroy.call(this),this.resetIcon()},e.prototype.createIcon=function(t){var e=(0,m.default)("");e[0].width=16,e[0].height=16;var i=e[0].getContext("2d");i.fillStyle="#000";var n=(0,m.default)(t).find("path").attr("d"),r=new Path2D(n);i.fill(r);var a=(0,m.default)('');return a.attr("href",e[0].toDataURL("image/png")),a},e.prototype.setPlayIcon=function(){this.playIcon||(this.playIcon=this.createIcon(b.default)),this.changeIcon(this.playIcon)},e.prototype.setPauseIcon=function(){this.pauseIcon||(this.pauseIcon=this.createIcon(E.default)),this.changeIcon(this.pauseIcon)},e.prototype.resetIcon=function(){(0,m.default)('link[rel="shortcut icon"]').remove(),(0,m.default)("head").append(this.oldIcon)},e.prototype.changeIcon=function(t){t&&((0,m.default)('link[rel="shortcut icon"]').remove(),(0,m.default)("head").append(t))},e}(f.default);e.default=A,t.exports=e.default},function(t,e,i){"use strict";Object.defineProperty(e,"__esModule",{value:!0});var n=i(223),r=function(t){return t&&t.__esModule?t:{default:t}}(n);e.default=r.default,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(1),s=n(o),l=i(3),u=n(l),c=i(2),d=n(c),h=i(5),f=i(38),p=n(f),g=i(8),y=n(g),m=i(4),v=n(m),b=i(9),_=n(b),E=i(224),T=n(E);i(225);var A=function(t){function e(i){(0,a.default)(this,e);var n=(0,s.default)(this,t.call(this,i));return n.hoveringOverSeekBar=!1,n.hoverPosition=null,n.duration=null,n.actualLiveTime=!!n.mediaControl.options.actualLiveTime,n.actualLiveTime&&(n.mediaControl.options.actualLiveServerTime?n.actualLiveServerTimeDiff=(new Date).getTime()-new Date(n.mediaControl.options.actualLiveServerTime).getTime():n.actualLiveServerTimeDiff=0),n}return(0,d.default)(e,t),(0,u.default)(e,[{key:"name",get:function(){return"seek_time"}},{key:"template",get:function(){return(0,y.default)(T.default)}},{key:"attributes",get:function(){return{class:"seek-time","data-seek-time":""}}},{key:"mediaControl",get:function(){return this.core.mediaControl}},{key:"mediaControlContainer",get:function(){return this.mediaControl.container}},{key:"isLiveStreamWithDvr",get:function(){return this.mediaControlContainer&&this.mediaControlContainer.getPlaybackType()===_.default.LIVE&&this.mediaControlContainer.isDvrEnabled()}},{key:"durationShown",get:function(){return this.isLiveStreamWithDvr&&!this.useActualLiveTime}},{key:"useActualLiveTime",get:function(){return this.actualLiveTime&&this.isLiveStreamWithDvr}}]),e.prototype.bindEvents=function(){this.listenTo(this.mediaControl,v.default.MEDIACONTROL_RENDERED,this.render),this.listenTo(this.mediaControl,v.default.MEDIACONTROL_MOUSEMOVE_SEEKBAR,this.showTime),this.listenTo(this.mediaControl,v.default.MEDIACONTROL_MOUSELEAVE_SEEKBAR,this.hideTime),this.listenTo(this.mediaControl,v.default.MEDIACONTROL_CONTAINERCHANGED,this.onContainerChanged),this.mediaControlContainer&&(this.listenTo(this.mediaControlContainer,v.default.CONTAINER_PLAYBACKDVRSTATECHANGED,this.update),this.listenTo(this.mediaControlContainer,v.default.CONTAINER_TIMEUPDATE,this.updateDuration))},e.prototype.onContainerChanged=function(){this.stopListening(),this.bindEvents()},e.prototype.updateDuration=function(t){this.duration=t.total,this.update()},e.prototype.showTime=function(t){this.hoveringOverSeekBar=!0,this.calculateHoverPosition(t),this.update()},e.prototype.hideTime=function(){this.hoveringOverSeekBar=!1,this.update()},e.prototype.calculateHoverPosition=function(t){var e=t.pageX-this.mediaControl.$seekBarContainer.offset().left;this.hoverPosition=Math.min(1,Math.max(e/this.mediaControl.$seekBarContainer.width(),0))},e.prototype.getSeekTime=function(){var t=void 0,e=void 0;if(this.useActualLiveTime){var i=new Date((new Date).getTime()-this.actualLiveServerTimeDiff);e=(new Date(i)-i.setHours(0,0,0,0))/1e3,t=e-this.duration+this.hoverPosition*this.duration,t<0&&(t+=86400)}else t=this.hoverPosition*this.duration;return{seekTime:t,secondsSinceMidnight:e}},e.prototype.update=function(){if(this.rendered)if(this.shouldBeVisible()){var t=this.getSeekTime(),e=(0,h.formatTime)(t.seekTime,this.useActualLiveTime);if(e!==this.displayedSeekTime&&(this.$seekTimeEl.text(e),this.displayedSeekTime=e),this.durationShown){this.$durationEl.show();var i=(0,h.formatTime)(this.actualLiveTime?t.secondsSinceMidnight:this.duration,this.actualLiveTime);i!==this.displayedDuration&&(this.$durationEl.text(i),this.displayedDuration=i)}else this.$durationEl.hide();this.$el.show();var n=this.mediaControl.$seekBarContainer.width(),r=this.$el.width(),a=this.hoverPosition*n;a-=r/2,a=Math.max(0,Math.min(a,n-r)),this.$el.css("left",a)}else this.$el.hide(),this.$el.css("left","-100%")},e.prototype.shouldBeVisible=function(){return this.mediaControlContainer&&this.mediaControlContainer.settings.seekEnabled&&this.hoveringOverSeekBar&&null!==this.hoverPosition&&null!==this.duration},e.prototype.render=function(){this.rendered=!0,this.displayedDuration=null,this.displayedSeekTime=null,this.$el.html(this.template()),this.$el.hide(),this.mediaControl.$el.append(this.el),this.$seekTimeEl=this.$el.find("[data-seek-time]"),this.$durationEl=this.$el.find("[data-duration]"),this.$durationEl.hide(),this.update()},e}(p.default);e.default=A,t.exports=e.default},function(t,e){t.exports="\n\n"},function(t,e,i){var n=i(226);"string"==typeof n&&(n=[[t.i,n,""]]);var r={singleton:!0,hmr:!0};r.transform=void 0;i(10)(n,r);n.locals&&(t.exports=n.locals)},function(t,e,i){e=t.exports=i(7)(void 0),e.push([t.i,'.seek-time[data-seek-time]{position:absolute;white-space:nowrap;height:20px;line-height:20px;font-size:0;left:-100%;bottom:55px;background-color:rgba(2,2,2,.5);z-index:9999;transition:opacity .1s ease}.seek-time[data-seek-time].hidden[data-seek-time]{opacity:0}.seek-time[data-seek-time] [data-seek-time]{display:inline-block;color:#fff;font-size:10px;padding-left:7px;padding-right:7px;vertical-align:top}.seek-time[data-seek-time] [data-duration]{display:inline-block;color:hsla(0,0%,100%,.5);font-size:10px;padding-right:7px;vertical-align:top}.seek-time[data-seek-time] [data-duration]:before{content:"|";margin-right:7px}',""])},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(3),s=n(o),l=i(1),u=n(l),c=i(2),d=n(c),h=i(30),f=n(h),p=i(4),g=n(p),y=function(t){function e(){return(0,a.default)(this,e),(0,u.default)(this,t.apply(this,arguments))}return(0,d.default)(e,t),e.prototype.bindEvents=function(){this.listenTo(this.core,g.default.CORE_CONTAINERS_CREATED,this.onContainersCreated)},e.prototype.onContainersCreated=function(){var t=this.core.containers.filter(function(t){return"no_op"!==t.playback.name})[0]||this.core.containers[0];t&&this.core.containers.forEach(function(e){e!==t&&e.destroy()})},(0,s.default)(e,[{key:"name",get:function(){return"sources"}}]),e}(f.default);e.default=y,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(0),a=n(r),o=i(3),s=n(o),l=i(1),u=n(l),c=i(2),d=n(c),h=i(4),f=n(h),p=i(30),g=n(p),y=i(5),m=function(t){function e(){return(0,a.default)(this,e),(0,u.default)(this,t.apply(this,arguments))}return(0,d.default)(e,t),e.prototype.bindEvents=function(){this.listenTo(this.core.mediaControl,f.default.MEDIACONTROL_CONTAINERCHANGED,this.containerChanged);var t=this.core.getCurrentContainer();t&&(this.listenTo(t,f.default.CONTAINER_ENDED,this.ended),this.listenTo(t,f.default.CONTAINER_STOP,this.ended))},e.prototype.containerChanged=function(){this.stopListening(),this.bindEvents()},e.prototype.ended=function(){(void 0===this.core.options.exitFullscreenOnEnd||this.core.options.exitFullscreenOnEnd)&&y.Fullscreen.isFullscreen()&&this.core.toggleFullscreen()},(0,s.default)(e,[{key:"name",get:function(){return"end_video"}}]),e}(g.default);e.default=m,t.exports=e.default},function(t,e,i){"use strict";function n(t){return t&&t.__esModule?t:{default:t}}Object.defineProperty(e,"__esModule",{value:!0});var r=i(31),a=n(r),o=i(0),s=n(o),l=i(1),u=n(l),c=i(3),d=n(c),h=i(2),f=n(h),p=i(5),g=i(6),y=n(g),m=i(30),v=n(m),b=function(t){function e(i){(0,s.default)(this,e);var n=(0,u.default)(this,t.call(this,i));return n._initializeMessages(),n}return(0,f.default)(e,t),(0,d.default)(e,[{key:"name",get:function(){return"strings"}}]),e.prototype.t=function(t){var e=this._language();return(e&&this._messages[e]||this._messages.en)[t]||t},e.prototype._language=function(){return this.core.options.language||(0,p.getBrowserLanguage)()},e.prototype._initializeMessages=function(){var t={en:{live:"live",back_to_live:"back to live",disabled:"Disabled",playback_not_supported:"Your browser does not support the playback of this video. Please try using a different browser."},pt:{live:"ao vivo",back_to_live:"voltar para o ao vivo",disabled:"Desativado",playback_not_supported:"Seu navegador não supporta a reprodução deste video. Por favor, tente usar um navegador diferente."},es:{live:"vivo",back_to_live:"volver en vivo",disabled:"Discapacitado",playback_not_supported:"Su navegador no soporta la reproducción de un video. Por favor, trate de usar un navegador diferente."},ru:{live:"прямой эфир",back_to_live:"к прямому эфиру",disabled:"Отключено",playback_not_supported:"Ваш браузер не поддерживает воспроизведение этого видео. Пожалуйста, попробуйте другой браузер."},fr:{live:"en direct",disabled:"Désactivé",back_to_live:"retour au direct",playback_not_supported:"Votre navigateur ne supporte pas la lecture de cette vidéo. Merci de tenter sur un autre navigateur."},tr:{live:"canlı",back_to_live:"canlı yayına dön",disabled:"Engelli",playback_not_supported:"Tarayıcınız bu videoyu oynatma desteğine sahip değil. Lütfen farklı bir tarayıcı ile deneyin."},et:{live:"Otseülekanne",back_to_live:"Tagasi otseülekande juurde",disabled:"Keelatud",playback_not_supported:"Teie brauser ei toeta selle video taasesitust. Proovige kasutada muud brauserit."}},e=this.core.options.strings||{};this._messages=(0,a.default)(t).reduce(function(i,n){return i[n]=y.default.extend({},t[n],e[n]),i},{}),this._messages["pt-BR"]=this._messages.pt,this._messages["en-US"]=this._messages.en,this._messages["es-419"]=this._messages.es,this._messages["fr-FR"]=this._messages.fr,this._messages["tr-TR"]=this._messages.tr,this._messages["et-EE"]=this._messages.et},e}(v.default);e.default=b,t.exports=e.default}])}); \ No newline at end of file diff --git a/assets/clapprio/dash-shaka-playback.min.js b/assets/clapprio/dash-shaka-playback.min.js deleted file mode 100644 index 0cf777a..0000000 --- a/assets/clapprio/dash-shaka-playback.min.js +++ /dev/null @@ -1 +0,0 @@ -!function(t,e){"object"==typeof exports&&"object"==typeof module?module.exports=e(require("clappr")):"function"==typeof define&&define.amd?define(["clappr"],e):"object"==typeof exports?exports.DashShakaPlayback=e(require("clappr")):t.DashShakaPlayback=e(t.Clappr)}("undefined"!=typeof self?self:this,function(t){return function(t){function e(i){if(n[i])return n[i].exports;var r=n[i]={i:i,l:!1,exports:{}};return t[i].call(r.exports,r,r.exports,e),r.l=!0,r.exports}var n={};return e.m=t,e.c=n,e.d=function(t,n,i){e.o(t,n)||Object.defineProperty(t,n,{configurable:!1,enumerable:!0,get:i})},e.n=function(t){var n=t&&t.__esModule?function(){return t.default}:function(){return t};return e.d(n,"a",n),n},e.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},e.p="dist/",e(e.s=0)}([function(t,e,n){"use strict";function i(t){if(Array.isArray(t)){for(var e=0,n=Array(t.length);e1&&void 0!==arguments[1]?arguments[1]:"";l.default.polyfill.installAll();var n=l.default.Player.isBrowserSupported(),i=t.split("?")[0].match(/.*\.(.*)$/)||[];return n&&("mpd"===i[1]||e.indexOf("application/dash+xml")>-1)}},{key:"Events",get:function(){return{SHAKA_READY:"shaka:ready"}}}]),u(e,[{key:"play",value:function(){if(this._player||this._setup(),!this.isReady)return void this.once(e.Events.SHAKA_READY,this.play);this._stopped=!1,this._src=this.el.src,s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"play",this).call(this),this._startUpdateTimers()}},{key:"pause",value:function(){s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"pause",this).call(this),this.dvrEnabled&&this._updateDvr(!0)}},{key:"_setupSrc",value:function(){}},{key:"_startUpdateTimers",value:function(){var t=this;this._timeUpdateTimer||(this._timeUpdateTimer=setInterval(function(){t._onDurationChange(),t._onTimeUpdate()},200))}},{key:"_stopUpdateTimers",value:function(){clearInterval(this._timeUpdateTimer),this._timeUpdateTimer=null,clearInterval(this._progressUpdateTimer),this._progressUpdateTimer=null}},{key:"_ready",value:function(){}},{key:"_onShakaReady",value:function(){this._isShakaReadyState=!0,this.trigger(e.Events.SHAKA_READY),this.trigger(c.Events.PLAYBACK_READY,this.name)}},{key:"error",value:function(t){c.Log.error("an error was raised by the video tag",t,this.el.error)}},{key:"isHighDefinitionInUse",value:function(){return!1}},{key:"stop",value:function(){var t=this;clearInterval(this.sendStatsId),this._stopUpdateTimers(),this._stopped=!0,this._player?(this._sendStats(),this._player.unload().then(function(){s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"stop",t).call(t),t._player=null,t._isShakaReadyState=!1}).catch(function(){c.Log.error("shaka could not be unloaded")})):s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"stop",this).call(this)}},{key:"getPlaybackType",value:function(){return this._playbackType}},{key:"getCurrentTime",value:function(){return Math.max(0,this.el.currentTime-this._startTime)}},{key:"getDuration",value:function(){return this._duration}},{key:"isSeekEnabled",value:function(){return this._playbackType===c.Playback.VOD||this.dvrEnabled}},{key:"seekPercentage",value:function(t){var e=this._duration;t>0&&(e=this._duration*(t/100)),this.seek(e)}},{key:"seek",value:function(t){t<0&&(c.Log.warn("Attempt to seek to a negative time. Resetting to live point."),t=this.getDuration()),this.dvrEnabled&&this._updateDvr(t1&&void 0!==arguments[1]?arguments[1]:null;this._player.selectAudioLanguage(t,e)}},{key:"selectTrack",value:function(t){if("text"===t.type)this._player.selectTextTrack(t);else{if("variant"!==t.type)throw new Error("Unhandled track type:",t.type);this._player.selectVariantTrack(t),t.mimeType.startsWith("video/")&&this._onAdaptation()}}},{key:"_enableShakaTextTrack",value:function(t){this.el.textTracks&&(this._shakaTTVisible=t,Array.from(this.el.textTracks).filter(function(t){return"subtitles"===t.kind}).forEach(function(e){return e.mode=!0===t?"showing":"hidden"}))}},{key:"_checkForClosedCaptions",value:function(){if(!this._ccIsSetup){if(this.hasClosedCaptionsTracks){this.trigger(c.Events.PLAYBACK_SUBTITLE_AVAILABLE);var t=this.closedCaptionsTrackId;this.closedCaptionsTrackId=t}this._ccIsSetup=!0}}},{key:"destroy",value:function(){var t=this;this._stopUpdateTimers(),clearInterval(this.sendStatsId),this._player?this._player.destroy().then(function(){return t._destroy()}).catch(function(){t._destroy(),c.Log.error("shaka could not be destroyed")}):this._destroy(),s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"destroy",this).call(this)}},{key:"_setup",value:function(){var t=this;this._isShakaReadyState=!1,this._ccIsSetup=!1,this._player=this._createPlayer(),this._options.shakaConfiguration&&this._player.configure(this._options.shakaConfiguration),this._options.shakaOnBeforeLoad&&this._options.shakaOnBeforeLoad(this._player),this._player.load(this._options.src).then(function(){return t._loaded()}).catch(function(e){return t._setupError(e)})}},{key:"_createPlayer",value:function(){var t=new l.default.Player(this.el);return t.addEventListener("error",this._onError.bind(this)),t.addEventListener("adaptation",this._onAdaptation.bind(this)),t.addEventListener("buffering",this._onBuffering.bind(this)),t}},{key:"_onBuffering",value:function(t){if(!this._stopped){var e=t.buffering?c.Events.PLAYBACK_BUFFERING:c.Events.PLAYBACK_BUFFERFULL;this.trigger(e)}}},{key:"_onProgress",value:function(){if(this.el.buffered.length){for(var t=[],e=0,n=0;n=t[n].start&&this.el.currentTime<=t[n].end&&(e=n);var r={start:t[e].start,current:t[e].end,total:this.getDuration()};this.trigger(c.Events.PLAYBACK_PROGRESS,r,t)}}},{key:"_onDurationChange",value:function(){var t=this.getDuration();this._lastDuration!==t&&(this._lastDuration=t,s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"_onDurationChange",this).call(this))}},{key:"_updateSettings",value:function(){this._playbackType===c.Playback.VOD?this.settings.left=["playpause","position","duration"]:this.dvrEnabled?this.settings.left=["playpause"]:this.settings.left=["playstop"],this.settings.seekEnabled=this.isSeekEnabled(),this.trigger(c.Events.PLAYBACK_SETTINGSUPDATE)}},{key:"_onTimeUpdate",value:function(){var t={current:this.getCurrentTime(),total:this.getDuration(),firstFragDateTime:this._player.getPresentationStartTimeAsDate()};this._lastTimeUpdate&&t.current===this._lastTimeUpdate.current&&t.total===this._lastTimeUpdate.total||(this._lastTimeUpdate=t,this.trigger(c.Events.PLAYBACK_TIMEUPDATE,t,this.name))}},{key:"_updateDvr",value:function(t){this.trigger(c.Events.PLAYBACK_DVR,t),this.trigger(c.Events.PLAYBACK_STATS_ADD,{dvr:t})}},{key:"_loaded",value:function(){this._onShakaReady(),this._startToSendStats(),this._fillLevels(),this._checkForClosedCaptions()}},{key:"_fillLevels",value:function(){0===this._levels.length&&(this._levels=this.videoTracks.slice(0).reverse(),this.trigger(c.Events.PLAYBACK_LEVELS_AVAILABLE,this.levels))}},{key:"_startToSendStats",value:function(){var t=this,e=this._options.shakaSendStatsInterval||3e4;this.sendStatsId=setInterval(function(){return t._sendStats()},e)}},{key:"_sendStats",value:function(){this.trigger(c.Events.PLAYBACK_STATS_ADD,this._player.getStats())}},{key:"_setupError",value:function(t){this._onError(t)}},{key:"_onError",value:function(t){var n=this,i={shakaError:t,videoError:this.el.error},r=i.shakaError.detail||i.shakaError,a=r.category,o=r.code,u=r.severity;if(i.videoError||!o&&!a)return s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"_onError",this).call(this);var h=u===l.default.util.Error.Severity.CRITICAL,f={code:a+"_"+o,description:"Category: "+a+", code: "+o+", severity: "+u,level:h?c.PlayerError.Levels.FATAL:c.PlayerError.Levels.WARN,raw:t},d=this.createError(f);c.Log.error("Shaka error event:",d),this.trigger(c.Events.PLAYBACK_ERROR,d),t.detail&&2==t.detail.severity&&1002==t.detail.code&&(console.log("retrying"),this.stop(),setTimeout(function(){return n.play()},1e3))}},{key:"_onAdaptation",value:function(){var t=this.videoTracks.filter(function(t){return!0===t.active})[0];this._fillLevels(),this._sendStats(),this._pendingAdaptationEvent_&&(this.trigger(c.Events.PLAYBACK_LEVEL_SWITCH_END),this._pendingAdaptationEvent=!1),c.Log.debug("an adaptation has happened:",t),this.trigger(c.Events.PLAYBACK_BITRATE,{bandwidth:t.bandwidth,language:t.language,width:t.width,height:t.height,level:t.id})}},{key:"_destroy",value:function(){this._isShakaReadyState=!1,c.Log.debug("shaka was destroyed")}},{key:"isReady",get:function(){return this._isShakaReadyState}},{key:"textTracks",get:function(){return this.isReady&&this._player.getTextTracks()}},{key:"audioLanguages",get:function(){return this.isReady&&this._player.getAudioLanguages()}},{key:"audioTracks",get:function(){return this.isReady&&this._player.getVariantTracks().filter(function(t){return t.mimeType.startsWith("audio/")})}},{key:"videoTracks",get:function(){return this.isReady&&this._player.getVariantTracks().filter(function(t){return t.mimeType.startsWith("video/")})}},{key:"dvrEnabled",get:function(){return this._player.isLive()&&this._duration>=this._minDvrSize}},{key:"_startTime",get:function(){return this._player.seekRange().start}},{key:"_duration",get:function(){if(!this._player)return 0;var t=this._player.seekRange(),e=t.start;return t.end-e}},{key:"_playbackType",get:function(){return(this.isReady&&this._player.isLive()?c.Playback.LIVE:c.Playback.VOD)||""}},{key:"closedCaptionsTracks",get:function(){var t=0,e=function(){return t++};return(this.textTracks||[]).filter(function(t){return"subtitle"===t.kind}).map(function(t){return{id:e(),name:t.label||t.language,track:t}})}},{key:"closedCaptionsTrackId",get:function(){return s(e.prototype.__proto__||Object.getPrototypeOf(e.prototype),"closedCaptionsTrackId",this)},set:function(t){if(this._player){var e=this.closedCaptionsTracks,n=void 0;if(-1!==t){if(!(n=e.find(function(e){return e.id===t})))return void c.Log.warn('Track id "'+t+'" not found');if(this._shakaTTVisible&&!0===n.track.active)return void c.Log.info('Track id "'+t+'" already showing')}n?(this._player.selectTextTrack(n.track),this._enableShakaTextTrack(!0)):this._enableShakaTextTrack(!1),this._ccTrackId=t,this.trigger(c.Events.PLAYBACK_SUBTITLE_CHANGED,{id:t})}}}]),e}(c.HTML5Video);e.default=f,t.exports=e.default},function(e,n){e.exports=t},function(t,e,n){(function(t){!function(){var n="undefined"!=typeof window?window:t,i={};(function(t,e){function n(){n=function(){},Bu.Symbol||(Bu.Symbol=Fu)}function i(){n();var t=Bu.Symbol.iterator;t||(t=Bu.Symbol.iterator=Bu.Symbol("iterator")),"function"!=typeof Array.prototype[t]&&ju(Array.prototype,t,{configurable:!0,writable:!0,value:function(){return r(this)}}),i=function(){}}function r(t){var e=0;return a(function(){return ee)throw Error("Bad port number "+e);t.Qa=e}else t.Qa=null}function j(t,e,n){e instanceof K?t.a=e:(n||(e=F(e,Xu)),t.a=new K(e))}function B(t,e){return t?e?decodeURI(t):decodeURIComponent(t):""}function F(t,e,n){return"string"==typeof t?(t=encodeURI(t).replace(e,V),n&&(t=t.replace(/%25([0-9a-fA-F]{2})/g,"%$1")),t):null}function V(t){return t=t.charCodeAt(0),"%"+(t>>4&15).toString(16)+(15&t).toString(16)}function K(t){this.b=t||null}function H(t){var e=new K;if(e.b=t.b,t.a){var n,i={};for(n in t.a)i[n]=t.a[n].concat();e.a=i,e.c=t.c}return e}function q(){var t,e,n=new Promise(function(n,i){t=n,e=i});return n.resolve=t,n.reject=e,n}function G(t,e){var n=Y();this.i=null==t.maxAttempts?n.maxAttempts:t.maxAttempts,this.f=null==t.baseDelay?n.baseDelay:t.baseDelay,this.h=null==t.fuzzFactor?n.fuzzFactor:t.fuzzFactor,this.g=null==t.backoffFactor?n.backoffFactor:t.backoffFactor,this.a=0,this.b=this.f,(this.c=e||!1)&&(this.a=1)}function X(e){if(e.a>=e.i){if(!e.c)return Promise.reject();e.a=1,e.b=e.f}var n=new q;return e.a?(t.setTimeout(n.resolve,e.b*(1+(2*Math.random()-1)*e.h)),e.b*=e.g):n.resolve(),e.a++,n}function Y(){return{maxAttempts:2,baseDelay:1e3,backoffFactor:2,fuzzFactor:.5,timeout:0}}function z(t,e,n,i){this.severity=t,this.category=e,this.code=n,this.data=Array.prototype.slice.call(arguments,3),this.handled=!1}function W(t,e){this.promise=t,this.b=e,this.a=!1}function $(t){return new W(Promise.reject(t),function(){return Promise.resolve()})}function J(){var t=Promise.reject(new z(2,7,7001));return t.catch(function(){}),new W(t,function(){return Promise.resolve()})}function Q(t){return new W(Promise.resolve(t),function(){return Promise.resolve()})}function Z(t){return new W(t,function(){return t.catch(function(){})})}function tt(t){return new W(Promise.all(t.map(function(t){return t.promise})),function(){return Promise.all(t.map(function(t){return t.abort()}))})}function et(t,e,n){try{var i=t(e);return i&&i.promise&&i.abort?(n.resolve(i.promise),function(){return i.abort()}):(n.resolve(i),function(){return Promise.resolve(i).then(function(){}).catch(function(){})})}catch(t){return n.reject(t),function(){return Promise.resolve()}}}function nt(t,e){return!("number"!=typeof t||"number"!=typeof e||!isNaN(t)||!isNaN(e))||t===e}function it(t,e){e||(e=nt);for(var n=[],i=o(t),r=i.next();!r.done;r=i.next())r=r.value,-1==rt(n,r,e)&&n.push(r);return n}function rt(t,e,n){for(var i=0;i=i.priority)&&(zu[t]={priority:n,me:e})}function pt(t,e){return{uris:t,method:"GET",body:null,headers:{},allowCrossSiteCredentials:!1,retryParameters:e}}function mt(t){return t.then=function(e,n){return C("The network request interface has changed! Please update your application to the new interface, which allows operations to be aborted. Support for the old API will be removed in v2.5."),t.promise.then(e,n)},t.catch=function(e){return C("The network request interface has changed! Please update your application to the new interface, which allows operations to be aborted. Support for the old API will be removed in v2.5."),t.promise.catch(e)},t}function vt(t,e,n){var i=Q(void 0);return t.a.forEach(function(t){i=i.X(function(){return t(e,n)})}),i.X(void 0,function(t){if(t&&7001==t.code)throw t;throw new z(2,1,1006,t)})}function yt(t,e,n,i,r,a){var o=new L(n.uris[r]),s=o.ia;s||(s=location.protocol,s=s.slice(0,-1),O(o,s),n.uris[r]=o.toString());var u=(s=zu[s])?s.me:null;if(!u)return $(new z(2,1,1e3,o));var c;return Z(X(i)).X(function(){if(t.c)return J();c=Date.now();var i=u(n.uris[r],n,e);return void 0==i.promise&&(C("The scheme plugin interface has changed! Please update your scheme plugins to the new interface to add support for abort(). Support for the old plugin interface will be removed in v2.5."),i=Z(i)),i}).X(function(t){return void 0==t.timeMs&&(t.timeMs=Date.now()-c),t},function(o){if(o&&7001==o.code)throw o;if(t.c)return J();if(o&&1==o.severity)return r=(r+1)%n.uris.length,yt(t,e,n,i,r,o);throw o||a})}function gt(t,e,n){var i=Q(void 0);return t.b.forEach(function(t){i=i.X(function(){return t(e,n)})}),i.X(function(){return n},function(t){if(t&&7001==t.code)throw t;var e=2;throw t instanceof z&&(e=t.severity),new z(e,1,1007,t)})}function bt(){this.a={}}function wt(){this.a=new bt}function Tt(t,e,n,i){t.a&&(e=new kt(e,n,i),t.a.push(n,e))}function Et(t,e,n,i){Tt(t,e,n,function(t){this.pa(e,n),i(t)}.bind(t))}function St(t){if(t.a){var e,n=t.a,i=[];for(e in n.a)i.push.apply(i,n.a[e]);for(n=0;n=t[e]}.bind(null,e);if(0==e[0]&&0==e[2])return Lt(t,!1);if(0==e[1]&&0==e[3])return Lt(t,!0);if(n(0)&&n(1)&&n(2)&&n(3))return Mt(t);throw new z(2,2,2003)}function Ut(t){t=encodeURIComponent(t),t=unescape(t);for(var e=new Uint8Array(t.length),n=0;nt.end(0)-t.start(0)?null:t.length?t.end(t.length-1):null}function pe(t,e,n){return n=void 0===n?0:n,!(!t||!t.length||1==t.length&&1e-6>t.end(0)-t.start(0)||e>t.end(t.length-1))&&e+n>=t.start(0)}function me(t,e){if(!t||!t.length||1==t.length&&1e-6>t.end(0)-t.start(0))return 0;for(var n=0,i=t.length-1;0<=i&&t.end(i)>e;--i)n+=t.end(i)-Math.max(t.start(i),e);return n}function ve(t){if(!t)return[];for(var e=[],n=0;n>4).toString(16),r+=(15&o).toString(16),n=n.replace(i[0],r)}return n}function Ee(t,e){t.f=!0,t.b=new q,t.g=[],t.c=[];var n=new Uint8Array(e);return t.a.push(n),t.a.flush(),t.f&&t.b.reject(new z(2,3,3018)),t.b}function Se(t){this.f=null,this.c=t,this.h=this.i=0,this.g=1/0,this.b=this.a=null}function ke(t,e,n,i){return Promise.resolve().then(function(){if(this.f&&this.c)if(null==n||null==i)this.f.parseInit(new Uint8Array(e));else{var t={periodStart:this.i,segmentStart:n,segmentEnd:i};t=this.f.parseMedia(new Uint8Array(e),t).filter(function(t){return t.startTime>=this.h&&t.startTimen.end(0)-n.start(0)?null:1==n.length&&0>n.start(0)?0:n.length?n.start(0):null;return n}function Pe(t,e){return"text"==e?t.a.b:de(Ne(t,e))}function Re(t,e,n){return"text"==e?(t=t.a,null==t.b||t.b=vc&&n==e.split("-")[0]||t>=yc&&n.split("-")[0]==e.split("-")[0]}function Be(t){t=t.toLowerCase().split("-");var e=gc[t[0]];return e&&(t[0]=e),t.join("-")}function Fe(t,e,n){var i=t.video;return!(i&&(i.widthe.maxWidth||i.width>n.width||i.heighte.maxHeight||i.height>n.height||i.width*i.heighte.maxPixels)||t.bandwidthe.maxBandwidth)}function Ve(t,e,n){var i=!1;return t.variants.forEach(function(t){var r=t.allowedByApplication;t.allowedByApplication=Fe(t,e,n),r!=t.allowedByApplication&&(i=!0)}),i}function Ke(t,e,n,i){i.variants=i.variants.filter(function(i){return!(t&&t.L&&!le(t,i))&&(He(i.audio,t,e)&&He(i.video,t,n))}),i.textStreams=i.textStreams.filter(function(t){return!!mc[Ct(t.mimeType,t.codecs)]})}function He(t,e,n){if(!t)return!0;var i=null;e&&e.L&&(i=e.u),e=Ct(t.mimeType,t.codecs);var r,a=Ct(t.mimeType,t.codecs),o=t.mimeType;for(r in Ju){var s=t[r],u=Ju[r];s&&(o+="; "+u+'="'+s+'"')}return!(!(mc[a]||MediaSource.isTypeSupported(o)||we(a,t.type))||i&&t.encrypted&&0>i.indexOf(e)||n&&(t.mimeType!=n.mimeType||t.codecs.split(".")[0]!=n.codecs.split(".")[0]))}function qe(t){var e=t.audio,n=t.video,i=e?e.codecs:null,r=n?n.codecs:null,a=[];r&&a.push(r),i&&a.push(i);var o=[];n&&o.push(n.mimeType),e&&o.push(e.mimeType),o=o[0]||null;var s=[];e&&s.push(e.kind),n&&s.push(n.kind),s=s[0]||null;var u=[];return e&&u.push.apply(u,e.roles),n&&u.push.apply(u,n.roles),u=it(u),t={id:t.id,active:!1,type:"variant",bandwidth:t.bandwidth,language:t.language,label:null,kind:s,width:null,height:null,frameRate:null,mimeType:o,codecs:a.join(", "),audioCodec:i,videoCodec:r,primary:t.primary,roles:u,videoId:null,audioId:null,channelsCount:null,audioBandwidth:null,videoBandwidth:null},n&&(t.videoId=n.id,t.width=n.width||null,t.height=n.height||null,t.frameRate=n.frameRate||null,t.videoBandwidth=n.bandwidth||null),e&&(t.audioId=e.id,t.channelsCount=e.channelsCount,t.audioBandwidth=e.bandwidth||null,t.label=e.label),t}function Ge(t){return{id:t.id,active:!1,type:"text",bandwidth:0,language:t.language,label:t.label,kind:t.kind||null,width:null,height:null,frameRate:null,mimeType:t.mimeType,codecs:t.codecs||null,audioCodec:null,videoCodec:null,primary:t.primary,roles:t.roles,videoId:null,audioId:null,channelsCount:null,audioBandwidth:null,videoBandwidth:null}}function Xe(t){var e=[],n=Je(t.variants);return t=t.textStreams,n.forEach(function(t){e.push(qe(t))}),t.forEach(function(t){e.push(Ge(t))}),e}function Ye(t,e,n){return Je(t.variants).map(function(t){var i=qe(t);return t.video&&t.audio?i.active=n==t.video.id&&e==t.audio.id:t.video?i.active=n==t.video.id:t.audio&&(i.active=e==t.audio.id),i})}function ze(t,e){return t.textStreams.map(function(t){var n=Ge(t);return n.active=e==t.id,n})}function We(t,e){for(var n=0;n=t.periods[n].startTime)return n;return 0}function un(t,e){for(var n=0;ne?"-Infinity":"Infinity":e;return i}})}function fn(t){return JSON.parse(t,function(t,e){return"NaN"==e?NaN:"-Infinity"==e?-1/0:"Infinity"==e?1/0:e&&"object"==typeof e&&"TimeRanges"==e.__type__?dn(e):e})}function dn(t){return{length:t.length,start:function(e){return t.start[e]},end:function(e){return t.end[e]}}}function pn(t,e,n,i,r,a){this.I=t,this.g=e,this.L=n,this.j=!1,this.A=i,this.G=r,this.s=a,this.b=this.h=!1,this.u="",this.i=null,this.l=this.Cc.bind(this),this.m=this.Pd.bind(this),this.a={video:{},player:{}},this.o=0,this.c={},this.f=null}function mn(t){var e=Nc;e.removeUpdateListener(t.l),e.removeMessageListener("urn:x-cast:com.google.shaka.v2",t.m)}function vn(t){for(var e in t.c){var n=t.c[e];delete t.c[e],n.reject(new z(1,7,7e3))}}function yn(t){t=ln(t),Nc.sendMessage("urn:x-cast:com.google.shaka.v2",t,function(){},M)}function gn(){this.Bb=new bt,this.jb=this}function bn(t,e,n){gn.call(this),this.c=t,this.b=e,this.i=this.g=this.f=this.j=this.h=null,this.a=new pn(n,this.Le.bind(this),this.Me.bind(this),this.Ne.bind(this),this.Oe.bind(this),this.tc.bind(this)),wn(this)}function wn(t){t.a.init(),t.i=new wt,bc.forEach(function(t){Tt(this.i,this.c,t,this.$e.bind(this))}.bind(t)),Sc.forEach(function(t){Tt(this.i,this.b,t,this.le.bind(this))}.bind(t)),t.h={};for(var e in t.c)Object.defineProperty(t.h,e,{configurable:!1,enumerable:!0,get:t.Ze.bind(t,e),set:t.af.bind(t,e)});t.j={};for(var n in t.b)Object.defineProperty(t.j,n,{configurable:!1,enumerable:!0,get:t.ke.bind(t,n)});t.f=new gn,t.f.jb=t.h,t.g=new gn,t.g.jb=t.j}function Tn(t,e,n,i){gn.call(this),this.a=t,this.b=e,this.c=new wt,this.s={video:t,player:e},this.u=n||function(){},this.A=i||function(t){return t},this.o=!1,this.h=!0,this.g=0,this.m=!1,this.j=!0,this.l=this.i=this.f=null,En(this)}function En(e){var n=cast.receiver.CastReceiverManager.getInstance();n.onSenderConnected=e.Hc.bind(e),n.onSenderDisconnected=e.Hc.bind(e),n.onSystemVolumeChanged=e.ld.bind(e),e.i=n.getCastMessageBus("urn:x-cast:com.google.cast.media"),e.i.onMessage=e.Kd.bind(e),e.f=n.getCastMessageBus("urn:x-cast:com.google.shaka.v2"),e.f.onMessage=e.Zd.bind(e),n.start(),bc.forEach(function(t){Tt(this.c,this.a,t,this.Kc.bind(this,"video"))}.bind(e)),Sc.forEach(function(t){Tt(this.c,this.b,t,this.Kc.bind(this,"player"))}.bind(e)),cast.__platform__&&cast.__platform__.canDisplayType('video/mp4; codecs="avc1.640028"; width=3840; height=2160')?e.b.cc(3840,2160):e.b.cc(1920,1080),Tt(e.c,e.a,"loadeddata",function(){this.m=!0}.bind(e)),Tt(e.c,e.b,"loading",function(){this.h=!1,Sn(this)}.bind(e)),Tt(e.c,e.a,"playing",function(){this.h=!1,Sn(this)}.bind(e)),Tt(e.c,e.a,"pause",function(){Sn(this)}.bind(e)),Tt(e.c,e.b,"unloading",function(){this.h=!0,Sn(this)}.bind(e)),Tt(e.c,e.a,"ended",function(){t.setTimeout(function(){this.a&&this.a.ended&&(this.h=!0,Sn(this))}.bind(this),5e3)}.bind(e))}function Sn(t){Promise.resolve().then(function(){this.b&&(this.dispatchEvent(new At("caststatuschanged")),An(this)||xn(this,0))}.bind(t))}function kn(t,e,n){for(var i in e.player)t.b[i](e.player[i]);t.u(n),n=Promise.resolve();var r=t.a.autoplay;e.manifest&&(t.a.autoplay=!1,n=t.b.load(e.manifest,e.startTime)),n.then(function(){if(t.b){for(var n in e.video)t.a[n]=e.video[n];for(var i in e.playerAfterLoad)t.b[i](e.playerAfterLoad[i]);t.a.autoplay=r,e.manifest&&(t.a.play(),xn(t,0))}},function(e){t.b.dispatchEvent(new At("error",{detail:e}))})}function An(t){return!(!t.j||!t.a.duration&&!t.b.P())&&(_n(t),t.j=!1,!0)}function _n(t){xn(t,0,{contentId:t.b.Ib(),streamType:t.b.P()?"LIVE":"BUFFERED",duration:t.a.duration,contentType:""})}function In(t,e,n,i){t.o&&(t=ln(e),i?n.getCastChannel(i).send(t):n.broadcast(t))}function xn(t,e,n){var i=t.a.playbackRate,r=Dc;r=t.h?r.IDLE:t.b.xc()?r.Yc:t.a.paused?r.$c:r.ad,i={mediaSessionId:0,playbackRate:i,playerState:r,currentTime:t.a.currentTime,supportedMediaCommands:15,volume:{level:t.a.volume,muted:t.a.muted}},n&&(i.media=n),In(t,{requestId:e,type:"MEDIA_STATUS",status:[i]},t.i)}function Pn(t,e){var n=Rn(t,e);return 1!=n.length?null:n[0]}function Rn(t,e){return Array.prototype.filter.call(t.childNodes,function(t){return t instanceof Element&&t.tagName==e})}function Nn(t){return Array.prototype.filter.call(t.childNodes,function(t){return t instanceof Element&&"pssh"==t.localName&&"urn:mpeg:cenc:2013"==t.namespaceURI})}function Dn(t,e,n){return t.hasAttributeNS(e,n)?t.getAttributeNS(e,n):null}function Cn(t){return Array.prototype.every.call(t.childNodes,function(t){return t.nodeType==Node.TEXT_NODE||t.nodeType==Node.CDATA_SECTION_NODE})?t.textContent.trim():null}function Mn(t,e,n,i){var r=null;return t=t.getAttribute(e),null!=t&&(r=n(t)),null==r?void 0!=i?i:null:r}function Ln(t){return t?(/^\d+-\d+-\d+T\d+:\d+:\d+(\.\d+)?$/.test(t)&&(t+="Z"),t=Date.parse(t),isNaN(t)?null:Math.floor(t/1e3)):null}function On(t){return t&&(t=/^P(?:([0-9]*)Y)?(?:([0-9]*)M)?(?:([0-9]*)D)?(?:T(?:([0-9]*)H)?(?:([0-9]*)M)?(?:([0-9.]*)S)?)?$/.exec(t))?(t=31536e3*Number(t[1]||null)+2592e3*Number(t[2]||null)+86400*Number(t[3]||null)+3600*Number(t[4]||null)+60*Number(t[5]||null)+Number(t[6]||null),isFinite(t)?t:null):null}function Un(t){var e=/([0-9]+)-([0-9]+)/.exec(t);return e?(t=Number(e[1]),isFinite(t)?(e=Number(e[2]),isFinite(e)?{start:t,end:e}:null):null):null}function jn(t){return t=Number(t),0==t%1?t:null}function Bn(t){return t=Number(t),0==t%1&&0(f=f||0))if(l+1=f)break;f=Math.ceil((f-d)/p)-1}else{if(1/0==u)break;if(d/r>=u)break;f=Math.ceil((u*r-d)/p)-1}0>24&255,t>>16&255,t>>8&255,255&t)}function ci(t,e,n,i){var r,a=(new ii).Z("sidx",function(t){r=hi(e,i,n,t)});if(t&&a.parse(t),r)return r;throw new z(2,3,3004)}function hi(t,e,n,i){var r=[];i.reader.F(4);var a=i.reader.B();if(0==a)throw new z(2,3,3005);if(0==i.version)var o=i.reader.B(),s=i.reader.B();else o=i.reader.Ra(),s=i.reader.Ra();i.reader.F(2);var u=i.reader.bb();for(t=t+i.size+s,s=0;s>>31;c&=2147483647;var l=i.reader.B();if(i.reader.F(4),1==h)throw new z(2,3,3006);r.push(new ti(r.length,o/a-e,(o+l)/a-e,function(){return n},t,t+c-1)),o+=l,t+=c}return i.parser.stop(),r}function li(t){this.a=t}function fi(t,e){for(;t.a.length&&t.a[t.a.length-1].startTime>=e;)t.a.pop();for(;t.a.length&&0>=t.a[0].endTime;)t.a.shift();if(0!=t.a.length){var n=t.a[t.a.length-1];t.a[t.a.length-1]=new ti(n.position,n.startTime,e,n.c,n.b,n.a)}}function di(t){this.b=t,this.a=new ei(t,0),Lc||(Lc=[new Uint8Array([255]),new Uint8Array([127,255]),new Uint8Array([63,255,255]),new Uint8Array([31,255,255,255]),new Uint8Array([15,255,255,255,255]),new Uint8Array([7,255,255,255,255,255]),new Uint8Array([3,255,255,255,255,255,255]),new Uint8Array([1,255,255,255,255,255,255,255])])}function pi(t){var e=mi(t);if(7=e&&!(n&1<<8-e);e++);if(8t||n&&t>=n?null:Math.floor(t/i)},getSegmentReference:function(t){var e=t*i,h=e+i;return n&&(h=Math.min(h,n)),0>h||n&&e>=n?null:new ti(t,e,h,function(){var n=Xn(o,u,t+r,s,e*a);return Nt(c,[n])},0,null)}}}function Di(t,e){for(var n=[],i=0;ie.m||(e.g=t.setTimeout(e.Pe.bind(e),1e3*Math.max(3,e.m-n,N(e.o))))}function Xi(t,e,n){e=e||{contentType:"",mimeType:"",codecs:"",containsEmsgBoxes:!1,frameRate:void 0,Sb:null},n=n||e.ea;var i=Rn(t,"BaseURL").map(Cn),r=t.getAttribute("contentType")||e.contentType,a=t.getAttribute("mimeType")||e.mimeType,o=t.getAttribute("codecs")||e.codecs,s=Mn(t,"frameRate",Vn)||e.frameRate,u=!!Rn(t,"InbandEventStream").length,c=Rn(t,"AudioChannelConfiguration");return c=Yi(c)||e.Sb,r||(r=Ji(a,o)),{ea:Nt(n,i),cb:Pn(t,"SegmentBase")||e.cb,ta:Pn(t,"SegmentList")||e.ta,fb:Pn(t,"SegmentTemplate")||e.fb,width:Mn(t,"width",Fn)||e.width,height:Mn(t,"height",Fn)||e.height,contentType:r,mimeType:a,codecs:o,frameRate:s,containsEmsgBoxes:u||e.containsEmsgBoxes,id:t.getAttribute("id"),Sb:c}}function Yi(t){for(var e=0;e>=1;return t}}}return null}function zi(t){var e=t.cb?1:0;return e+=t.ta?1:0,0==(e+=t.fb?1:0)?"text"==t.contentType||"application"==t.contentType:(1!=e&&(t.cb&&(t.ta=null),t.fb=null),!0)}function Wi(t,e,n,i){return e=Nt(e,[n]),e=pt(e,t.b.retryParameters),e.method=i,e=t.a.networkingEngine.request(0,e),lt(t.f,e),e.promise.then(function(t){if("HEAD"==i){if(!t.headers||!t.headers.date)return 0;t=t.headers.date}else t=Mt(t.data);return t=Date.parse(t),isNaN(t)?0:t-Date.now()})}function $i(t,e,n,i){n=n.map(function(t){return{scheme:t.getAttribute("schemeIdUri"),value:t.getAttribute("value")}});var r=t.b.dash.clockSyncUri;return i&&!n.length&&r&&n.push({scheme:"urn:mpeg:dash:utc:http-head:2014",value:r}),_t(n,function(t){var n=t.value;switch(t.scheme){case"urn:mpeg:dash:utc:http-head:2014":case"urn:mpeg:dash:utc:http-head:2012":return Wi(this,e,n,"HEAD");case"urn:mpeg:dash:utc:http-xsdate:2014":case"urn:mpeg:dash:utc:http-iso:2014":case"urn:mpeg:dash:utc:http-xsdate:2012":case"urn:mpeg:dash:utc:http-iso:2012":return Wi(this,e,n,"GET");case"urn:mpeg:dash:utc:direct:2014":case"urn:mpeg:dash:utc:direct:2012":return t=Date.parse(n),isNaN(t)?0:t-Date.now();case"urn:mpeg:dash:utc:http-ntp:2014":case"urn:mpeg:dash:utc:ntp:2014":case"urn:mpeg:dash:utc:sntp:2014":default:return Promise.reject()}}.bind(t)).catch(function(){return 0})}function Ji(t,e){return mc[Ct(t,e)]?"text":t.split("/")[0]}function Qi(t,e,n,i){this.uri=t,this.type=e,this.a=n,this.segments=i||null}function Zi(t,e,n,i){this.id=t,this.name=e,this.a=n,this.value=i||null}function tr(t,e){this.name=t,this.value=e}function er(t,e,n){return n=n||null,(t=t.getAttribute(e))?t.value:n}function nr(t,e){this.a=e,this.uri=t}function ir(t,e){return t.filter(function(t){return t.name==e})}function rr(t,e){var n=ir(t,e);return n.length?n[0]:null}function ar(t,e,n){return t.filter(function(t){var i=t.getAttribute("TYPE");return t=t.getAttribute("GROUP-ID"),i.value==e&&t.value==n})}function or(t,e){return Nt([t],[e])[0]}function sr(t){this.b=t,this.a=0}function ur(t){cr(t,/[ \t]+/gm)}function cr(t,e){e.lastIndex=t.a;var n=e.exec(t.b);return n=null==n?null:{position:n.index,length:n[0].length,we:n},t.a==t.b.length||null==n||n.position!=t.a?null:(t.a+=n.length,n.we)}function hr(t){return t.a==t.b.length?null:(t=cr(t,/[^ \t\n]*/gm))?t[0]:null}function lr(){this.a=0}function fr(t,e,n){e=Mt(e),e=e.replace(/\r\n|\r(?=[^\n]|$)/gm,"\n").trim();var i=e.split(/\n+/m);if(!/^#EXTM3U($|[ \t\n])/m.test(i[0]))throw new z(2,4,4015);e=0;for(var r=1;rn.Qb&&(n.stream.presentationTimeOffset=-e,n.eb.offset(e))}else{this.b.ka(r);for(var u in this.a)s=this.a[u],s.stream.presentationTimeOffset=e,s.eb.offset(-e),fi(s.eb,r)}this.o={presentationTimeline:this.b,periods:[t],offlineSessionIds:[],minBufferTime:0}}.bind(t))}function br(t,e){var n=e.a,i=ir(e.a,"EXT-X-MEDIA").filter(function(t){return"SUBTITLES"==Br(t,"TYPE")}.bind(t)).map(function(t){return kr(this,t)}.bind(t));return Promise.all(i).then(function(t){var i=ir(n,"EXT-X-STREAM-INF").map(function(t){return wr(this,t,e)}.bind(this));return Promise.all(i).then(function(e){return{startTime:0,variants:e.reduce(It,[]),textStreams:t}}.bind(this))}.bind(t))}function wr(t,e,n){var i=er(e,"CODECS","avc1.42E01E,mp4a.40.2").split(/\s*,\s*/),r=e.getAttribute("RESOLUTION"),a=null,o=null,s=er(e,"FRAME-RATE"),u=Number(Br(e,"BANDWIDTH"));if(r){var c=r.value.split("x");a=c[0],o=c[1]}n=ir(n.a,"EXT-X-MEDIA");var h=er(e,"AUDIO"),l=er(e,"VIDEO");if(h?n=ar(n,"AUDIO",h):l&&(n=ar(n,"VIDEO",l)),c=Ur("text",i)){var f=er(e,"SUBTITLES");f&&(f=ar(n,"SUBTITLES",f),f.length&&(t.u[f[0].id].stream.codecs=c)),i.splice(i.indexOf(c),1)}n=n.map(function(t){return Ar(this,t,i)}.bind(t));var d=[],p=[];return Promise.all(n).then(function(t){if(h?d=t:l&&(p=t),t=!1,d.length||p.length)if(d.length)if(Br(e,"URI")==d[0].$b){var n="audio";t=!0}else n="video";else n="audio";else 1==i.length?(n=Ur("video",i),n=r||s||n?"video":"audio"):(n="video",i=[i.join(",")]);return t?Promise.resolve():Ir(this,e,i,n)}.bind(t)).then(function(t){return t&&("audio"==t.stream.type?d=[t]:p=[t]),p&&Tr(p),d&&Tr(d),Er(this,d,p,u,a,o,s)}.bind(t))}function Tr(t){t.forEach(function(t){var e=t.stream.codecs.split(",");e=e.filter(function(t){return"mp4a.40.34"!=t}),t.stream.codecs=e.join(",")})}function Er(t,e,n,i,r,a,o){n.forEach(function(t){(t=t.stream)&&(t.width=Number(r)||void 0,t.height=Number(a)||void 0,t.frameRate=Number(o)||void 0)}.bind(t)),e.length||(e=[null]),n.length||(n=[null]);for(var s=[],u=0;u>4,0!=i&&2!=i||e(),3==i&&(i=t.ca(),t.F(i)),1==t.B()>>8)return t.F(3),n=t.ca()>>6,0!=n&&1!=n||e(),0==t.ca()&&e(),n=t.ca(),i=t.bb(),t=t.bb(),(1073741824*((14&n)>>1)+((65534&i)<<14|(65534&t)>>1))/9e4;t.seek(n+188),i=t.ca(),71!=i&&(t.seek(n+192),i=t.ca()),71!=i&&(t.seek(n+204),i=t.ca()),71!=i&&e(),t.Oc(1)}}function Ur(t,e){for(var n=Fc[t],i=0;ie?0:e,!t.g&&0>e&&(t.b=new Bt(function(){t.a.currentTime+=e/4}),Vt(t.b,.25))}function Wr(t,e,n){function i(){!t.a||10<=r++||t.a.currentTime!=e||(t.a.currentTime=n,setTimeout(i,100))}t.a.currentTime=n;var r=0;setTimeout(i,100)}function $r(t,e,n,i,r,a){this.c=t,this.b=e,this.h=n,this.j=r,this.f=null,this.g=new qr(t,e,n,a),e=this.Xd.bind(this),n=this.b.presentationTimeline,null==i?i=1/0>n.T()?n.Ja():n.ma():0>i&&(i=n.ma()+i),i=Qr(this,ta(this,i)),this.a=new Gr(t,e,i),this.f=new Bt(this.Ud.bind(this)),Vt(this.f,.25)}function Jr(t){var e=Xr(t.a);return 0=n?n-t.h.durationBackoff:e}function Zr(t,e){var n=pe.bind(null,t.c.buffered),i=Math.max(t.b.minBufferTime||0,t.h.rebufferingGoal),r=t.b.presentationTimeline,a=r.Ja(),o=r.ma(),s=r.T();3>o-a&&(a=o-3);var u=r.Wa(i),c=r.Wa(5);return i=r.Wa(i+5),e>=s?Qr(t,e):e>o?o:e=u||n(e)?e:i}function ta(t,e){var n=t.b.presentationTimeline.Ja();return en?n:e)}function ea(t,e,n,i,r,a,o){this.a=t,this.u=e,this.g=n,this.s=i,this.l=r,this.h=a,this.A=o,this.c=[],this.j=new wt,this.b=!1,this.i=-1,this.f=null,ia(this)}function na(t){var e=ut(t);return e.eventElement=t.eventElement,e}function ia(e){ra(e),e.f=t.setTimeout(e.G.bind(e),250)}function ra(e){e.f&&(t.clearTimeout(e.f),e.f=null)}function aa(t,e){this.a=e,this.b=t,this.g=null,this.j=1,this.m=Promise.resolve(),this.h=[],this.i={},this.c={},this.o=!1,this.A=null,this.u=this.f=this.l=!1,this.s=0}function oa(t){var e=Jr(t.a.Pa);return t.b.periods[sn(t.b,e)]}function sa(t){var e=t.c.video||t.c.audio;return e?t.b.periods[e.Ba]:null}function ua(t){return ha(t,"audio")}function ca(t){return ha(t,"video")}function ha(t,e){var n=t.c[e];return n?n.sa||n.stream:null}function la(t,e){Ce(t.a.J,"text"),t.s++,t.u=!1;var n=t.s;return t.a.J.init({text:e},!1).then(function(){return Ta(t,[e])}).then(function(){if(!t.f&&t.s==n&&!t.c.text&&!t.u){var i=Jr(t.a.Pa);t.c.text=ba(e,sn(t.b,i)),Oa(t,t.c.text,0)}})}function fa(t){t.u=!0,t.c.text&&(Ua(t.c.text),delete t.c.text)}function da(t,e){var n=t.c.video;if(n){var i=n.stream;if(i)if(e){var r=i.trickModeVideo;r&&!n.sa&&(ma(t,r,!1),n.sa=i)}else(i=n.sa)&&(n.sa=null,ma(t,i,!0))}}function pa(t,e,n){e.video&&ma(t,e.video,n),e.audio&&ma(t,e.audio,n)}function ma(t,e,n){var i=t.c[e.type];if(!i&&"text"==e.type&&t.g.ignoreTextStreamFailures)la(t,e);else if(i){var r=un(t.b,e);n&&r!=i.Ba?ya(t):(i.sa&&(e.trickModeVideo?(i.sa=e,e=e.trickModeVideo):i.sa=null),(r=t.h[r])&&r.Sa&&(r=t.i[e.id])&&r.Sa&&i.stream!=e&&("text"==e.type&&Ie(t.a.J,Ct(e.mimeType,e.codecs)),i.stream=e,i.wb=!0,n&&(i.ya?i.zb=!0:i.Ca?(i.va=!0,i.zb=!0):(Ua(i),La(t,i,!0)))))}}function va(t){var e=Jr(t.a.Pa),n=t.g.smallGapLimit;Object.keys(t.c).every(function(t){var i=this.a.J;return"text"==t?(t=i.a,t=e>=t.a&&ee?t.a.J.ka(e):t.a.J.ka(Math.pow(2,32)),Ta(t,o)}}).then(function(){if(!t.f)for(var e in a){var i=a[e];t.c[e]||(t.c[e]=ba(i,r,n),Oa(t,t.c[e],0))}})}function ba(t,e,n){return{stream:t,type:t.type,La:null,na:null,sa:null,wb:!0,Ba:e,endOfStream:!1,Ca:!1,ua:null,va:!1,zb:!1,ya:!1,Zb:!1,Ya:!1,Nc:n||0}}function wa(t,e){var n=t.h[e];if(n)return n.promise;n={promise:new q,Sa:!1},t.h[e]=n;var i=t.b.periods[e].variants.map(function(t){var e=[];return t.audio&&e.push(t.audio),t.video&&e.push(t.video),t.video&&t.video.trickModeVideo&&e.push(t.video.trickModeVideo),e}).reduce(It,[]).filter(Rt);return i.push.apply(i,t.b.periods[e].textStreams),t.m=t.m.then(function(){if(!this.f)return Ta(this,i)}.bind(t)).then(function(){this.f||(this.h[e].promise.resolve(),this.h[e].Sa=!0)}.bind(t)).catch(function(t){this.f||(this.h[e].promise.catch(function(){}),this.h[e].promise.reject(),delete this.h[e],this.a.onError(t))}.bind(t)),n.promise}function Ta(t,e){e.map(function(t){return t.id}).filter(Rt);for(var n=[],i=0;i=t.b.presentationTimeline.T())return e.endOfStream=!0,null;if(e.endOfStream=!1,e.Ba=a,a!=r)return null;if(o>=s)return.5;if(a=Pe(t.a.J,e.type),!(a=ka(t,e,n,a,r)))return 1;var u=1/0;return $u.values(t.c).forEach(function(e){u=Math.min(u,Sa(t,e,n))}),i>=u+t.b.presentationTimeline.a?1:(e.Nc=0,_a(t,e,n,r,a),null)}function Sa(t,e,n){return e.La&&e.na?t.b.periods[un(t.b,e.La)].startTime+e.na.endTime:Math.max(n,e.Nc)}function ka(t,e,n,i,r){if(e.na&&e.stream==e.La)return Aa(t,e,r,e.na.position+1);if(null==(n=e.na?e.stream.findSegmentPosition(Math.max(0,t.b.periods[un(t.b,e.La)].startTime+e.na.endTime-t.b.periods[r].startTime)):e.stream.findSegmentPosition(Math.max(0,(i||n)-t.b.periods[r].startTime))))return null;var a=null;return null==i&&(a=Aa(t,e,r,Math.max(0,n-1))),a||Aa(t,e,r,n)}function Aa(t,e,n,i){return n=t.b.periods[n],(e=e.stream.getSegmentReference(i))?(i=t.b.presentationTimeline,t=i.Xa(),i=i.Ka(),n.startTime+e.endTimei?null:e):null}function _a(t,e,n,i,r){var a=t.b.periods[i],o=e.stream,s=t.b.presentationTimeline.T(),u=t.b.periods[i+1];i=xa(t,e,i,Math.max(0,a.startTime-.1),u?u.startTime:s),e.Ca=!0,e.wb=!1,s=Ma(t,r),Promise.all([i,s]).then(function(t){if(!this.f&&!this.l)return Pa(this,e,n,a,o,r,t[1])}.bind(t)).then(function(){this.f||this.l||(e.Ca=!1,e.Zb=!1,e.va||this.a.ab(),Oa(this,e,0),Na(this,o))}.bind(t)).catch(function(t){this.f||this.l||(e.Ca=!1,"text"==e.type&&this.g.ignoreTextStreamFailures?delete this.c.text:3017==t.code?Ia(this,e,t):(e.Ya=!0,t.severity=2,ja(this,t)))}.bind(t))}function Ia(t,e,n){if(!$u.values(t.c).some(function(t){return t!=e&&t.Zb})){var i=Math.round(100*t.j);if(20=n?Promise.resolve():t.a.J.remove(e.type,r,r+n).then(function(){}.bind(t)))}function Na(t,e){if(!t.o&&(t.o=$u.values(t.c).every(function(t){return"text"==t.type||!t.va&&!t.ya&&t.na}),t.o)){var n=un(t.b,e);for(t.h[n]||wa(t,n).then(function(){this.f||this.a.zc()}.bind(t)).catch(xt),n=0;n=n&&202!=n)return r&&(i=r),{uri:i,data:e,headers:t,fromCache:!!t["x-shaka-from-cache"]};r=null;try{r=Ot(e)}catch(t){}throw new z(401==n||403==n?2:1,1,1001,i,n,r,t,a)}function Fa(t,e,n){var i=new Fa.b;$u.forEach(e.headers,function(t,e){i.append(t,e)});var r,a=new Fa.a,o={body:e.body||void 0,headers:i,method:e.method,signal:a.signal,credentials:e.allowCrossSiteCredentials?"include":void 0},s={mc:!1,Xc:!1};return e.retryParameters.timeout&&(r=setTimeout(function(){s.Xc=!0,a.abort()},e.retryParameters.timeout)),t=Fa.f(t,n,o,s,r),new W(t,function(){return s.mc=!0,a.abort(),Promise.resolve()})}function Va(t,e,n){var i=new Va.g;return new W(new Promise(function(r,a){i.open(e.method,t,!0),i.responseType="arraybuffer",i.timeout=e.retryParameters.timeout,i.withCredentials=e.allowCrossSiteCredentials,i.onabort=function(){a(new z(1,1,7001,t,n))},i.onload=function(e){e=e.target;var i=e.getAllResponseHeaders().trim().split("\r\n").reduce(function(t,e){var n=e.split(": ");return t[n[0].toLowerCase()]=n.slice(1).join(": "),t},{});try{var o=Ba(i,e.response,e.status,t,e.responseURL,n);r(o)}catch(t){a(t)}},i.onerror=function(e){a(new z(1,1,1002,t,e,n))},i.ontimeout=function(){a(new z(1,1,1003,t,n))};for(var o in e.headers)i.setRequestHeader(o.toLowerCase(),e.headers[o]);i.send(e.body)}),function(){return i.abort(),Promise.resolve()})}function Ka(t){this.a={},this.c=Promise.resolve(),this.h=!1,this.i=t,this.f=this.b=this.g=0}function Ha(t,e,n,i,r){t.a[e]=t.a[e]||[],t.a[e].push({request:n,pc:i,Id:r})}function qa(t,e){var n=$u.values(t.a);t.a={},n.forEach(function(e){e.forEach(function(e){t.b+=e.pc})});var i=Promise.resolve().then(function(){return Ya(t),Promise.all(n.map(function(n){return Ga(t,e,n)}))});return t.c=t.c.then(function(){return i}),i}function Ga(t,e,n){var i=Promise.resolve();return n.forEach(function(n){i=i.then(function(){return Ya(t),Xa(t,e,n)})}),i}function Xa(t,e,n){return Promise.resolve().then(function(){return Ya(t),e.request(1,n.request).promise}).then(function(e){return Ya(t),t.g+=n.pc,t.f+=e.data.byteLength,t.i(t.b?t.g/t.b:0,t.f),n.Id(e.data)})}function Ya(t){if(t.h)throw new z(2,9,7001)}function za(t,e){var n=this;this.c=t,this.b=t.objectStore(e),this.a=new q,t.onabort=function(t){t.preventDefault(),n.a.reject()},t.onerror=function(t){t.preventDefault(),n.a.reject()},t.oncomplete=function(){n.a.resolve()}}function Wa(t){this.b=t,this.a=[]}function $a(t,e){return Ja(t,e,"readwrite")}function Ja(t,e,n){n=t.b.transaction([e],n);var i=new za(n,e);return t.a.push(i),i.promise().then(function(){at(t.a,i)},function(){at(t.a,i)}),i}function Qa(){this.a={}}function Za(t){var e=null;if($u.forEach(t.a,function(t,n){$u.forEach(n.getCells(),function(n,i){i.hasFixedKeySpace()||e||(e={path:{fa:t,N:n},N:i})})}),e)return e;throw new z(2,9,9013,"Could not find a cell that supports add-operations")}function to(t,e){$u.forEach(t.a,function(t,n){$u.forEach(n.getCells(),function(n,i){e({fa:t,N:n},i)})})}function eo(t,e,n){if(!(t=t.a[e]))throw new z(2,9,9013,"Could not find mechanism with name "+e);if(!(e=t.getCells()[n]))throw new z(2,9,9013,"Could not find cell with name "+n);return e}function no(t){return c(function e(){var n,i,r,a;return A(e,function(e){switch(e.w){case 1:return n=$u,i=Object.values(t.a),r=0=t.endTime)return null;var e=new VTTCue(t.startTime,t.endTime,t.payload);e.lineAlign=t.lineAlign,e.positionAlign=t.positionAlign,e.size=t.size;try{e.align=t.textAlign}catch(t){}return"center"==t.textAlign&&"center"!=e.align&&(e.align="middle"),2==t.writingDirection?e.vertical="lr":3==t.writingDirection&&(e.vertical="rl"),1==t.lineInterpretation&&(e.snapToLines=!1),null!=t.line&&(e.line=t.line),null!=t.position&&(e.position=t.position),e}function Lo(t,e){var n=t.mode;t.mode="showing"==n?"showing":"hidden";for(var i=t.cues,r=i.length-1;0<=r;r--){var a=i[r];a&&e(a)&&t.removeCue(a)}t.mode=n}function Oo(e,n){var i=this;gn.call(this),this.wa=!1,this.f=null,this.pb=!1,this.u=null,this.o=new wt,this.Ab=this.h=this.Cb=this.b=this.m=this.a=this.A=this.g=this.j=this.i=this.s=null,this.bd=1e9,this.lb=[],this.ob=!1,this.xa=!0,this.S=this.qb=this.Ha=null,this.kc=!1,this.G=null,this.nb=[],this.I={},this.c=Wo(this),this.mb={width:1/0,height:1/0},this.l=$o(),this.kb=0,this.L=this.c.preferredAudioLanguage,this.ga=this.c.preferredTextLanguage,this.Ga=this.c.preferredVariantRole,this.Ua=this.c.preferredTextRole,this.Y=this.c.preferredAudioChannelCount,n&&n(this),this.s=new ft(this.Je.bind(this)),e&&this.rb(e,!0),Tt(this.o,t,"online",function(){i.ac()})}function Uo(t){if(!t.Ha)return Promise.resolve();var e=Promise.resolve();return t.m&&(e=t.m.stop(),t.m=null),Promise.all([e,t.Ha()])}function jo(t,e,n){return c(function i(){var r,a;return A(i,function(i){switch(i.w){case 1:return d(i,Li(e,t.s,t.c.manifest.retryParameters,n),2);case 2:return r=i.K,t.m=new r,t.m.configure(t.c.manifest),a={networkingEngine:t.s,filterNewPeriod:t.tb.bind(t),filterAllPeriods:t.ec.bind(t),onTimelineRegionAdded:t.ae.bind(t),onEvent:t.gb.bind(t),onError:t.Ta.bind(t)},i.return(t.m.start(e,a))}})})}function Bo(t){function e(t){return t.video&&t.audio||t.video&&t.video.codecs.includes(",")}if(t.b.periods.some(function(t){return t.variants.some(e)})&&t.b.periods.forEach(function(t){t.variants=t.variants.filter(e)}),0==t.b.periods.length)throw new z(2,4,4014)}function Fo(t){var e=t.b.presentationTimeline.T(),n=t.c.playRangeEnd,i=t.c.playRangeStart;0=t.height});return u.length&&(u.sort(function(t,e){return e.height-t.height}),o=u.filter(function(t){return t.height==u[0].height})),o.sort(function(t,e){return t.bandwidth-e.bandwidth}),o.length&&n.push(o[Math.floor(o.length/2)]),n.push.apply(n,e.filter(function(t){return"text"==t.type})),n}function ys(t){return{trackSelectionCallback:function(e){return vs(t.a.getConfiguration().preferredAudioLanguage,e)},progressCallback:function(t,e){if(t||e)return null},usePersistentLicense:!0}}function gs(t,e,n){n.forEach(function(n){return bs(t,e,n)})}function bs(t,e,n){var i=null;if(t.c){var r=t.c.filter(function(t){return"variant"==t.type})[0];r&&(i=We(n,r))}var a=r=null;i&&(i.audio&&(r=i.audio),i.video&&(a=i.video)),Ke(e,r,a,n),Ve(n,t.a.getConfiguration().restrictions,{width:1/0,height:1/0})}function ws(t){var e=t.periods.map(function(t){return t.variants}).reduce(It,[]).map(function(t){var e=[];return t.audio&&e.push(t.audio),t.video&&e.push(t.video),e}).reduce(It,[]).filter(Rt);return t=t.periods.map(function(t){return t.textStreams}).reduce(It,[]),e.push.apply(e,t),Promise.all(e.map(function(t){return t.createSegmentIndex()}))}function Ts(t,e,n,i,r,a,o){var s=new ss,u=r.periods.map(function(a){return Es(t,e,n,s,i,r,a)}),c=i.b,h=Qt(i);if(c&&t.b.usePersistentLicense){if(!h.length)throw new z(2,9,9007,a);c.initData=[]}return{originalManifestUri:a,duration:r.presentationTimeline.T(),size:0,expiration:i.vb(),periods:u,sessionIds:t.b.usePersistentLicense?h:[],drmInfo:c,appMetadata:o}}function Es(t,e,n,i,r,a,o){var s=Ye(o,null,null),u=ze(o,null);s=t.b.trackSelectionCallback(s.concat(u)),null==t.c&&(t.c=s,gs(t,r,a.periods)),Ps(s),a.periods.forEach(function(t){t.variants.forEach(function(t){var e=t.audio,n=t.video;if(e&&!n&&(i.a[e.id]=e.bandwidth||t.bandwidth),!e&&n&&(i.a[n.id]=n.bandwidth||t.bandwidth),e&&n){var r=e.bandwidth||393216,a=n.bandwidth||t.bandwidth-r;0>=a&&(a=t.bandwidth),i.a[e.id]=r,i.a[n.id]=a}}),t.textStreams.forEach(function(t){i.a[t.id]=52})});var c={};s.forEach(function(t){"variant"==t.type&&null!=t.audioId&&(c[t.audioId]=!0),"variant"==t.type&&null!=t.videoId&&(c[t.videoId]=!0),"text"==t.type&&(c[t.id]=!0)});var h={};return Rs(a).filter(function(t){return!!c[t.id]}).forEach(function(r){h[r.id]=Ss(t,e,n,i,a,r)}),s.forEach(function(t){"variant"==t.type&&null!=t.audioId&&h[t.audioId].variantIds.push(t.id),"variant"==t.type&&null!=t.videoId&&h[t.videoId].variantIds.push(t.id)}),{startTime:o.startTime,streams:$u.values(h)}}function Ss(t,e,n,i,r,a){var o={id:a.id,primary:a.primary,presentationTimeOffset:a.presentationTimeOffset||0,contentType:a.type,mimeType:a.mimeType,codecs:a.codecs,frameRate:a.frameRate,kind:a.kind,language:a.language,label:a.label,width:a.width||null,height:a.height||null,initSegmentKey:null,encrypted:a.encrypted,keyId:a.keyId,segments:[],variantIds:[]};r=r.presentationTimeline.Xa();var s=a.id;return ks(a,r,function(r){Ha(e,s,Is(t,r),us(i,a.id,r),function(e){return n.addSegments([{data:e}]).then(function(e){t.f.push(e[0]),o.segments.push({startTime:r.startTime,endTime:r.endTime,dataKey:e[0]})})})}),(r=a.initSegmentReference)&&Ha(e,s,Is(t,r),.5*cs(i,a.id),function(e){return n.addSegments([{data:e}]).then(function(e){t.f.push(e[0]),o.initSegmentKey=e[0]})}),o}function ks(t,e,n){e=t.findSegmentPosition(e);for(var i=null==e?null:t.getSegmentReference(e);i;)n(i),i=t.getSegmentReference(++e)}function As(t){if(!t.a)throw new z(2,9,7001)}function _s(){if(!io())throw new z(2,9,9e3)}function Is(t,e){var n=t.a.getConfiguration().streaming.retryParameters;return n=pt(e.c(),n),0==e.b&&null==e.a||(n.headers.Range="bytes="+e.b+"-"+(null==e.a?"":e.a)),n}function xs(t){var e=[];return t.periods.forEach(function(t){t.streams.forEach(function(t){null!=t.initSegmentKey&&e.push(t.initSegmentKey),t.segments.forEach(function(t){e.push(t.dataKey)})})}),e}function Ps(t){t.some(function(e){return t.some(function(t){return e!=t&&e.type==t.type&&e.kind==t.kind&&e.language==t.language})})}function Rs(t){var e={};return t.periods.forEach(function(t){t.textStreams.forEach(function(t){e[t.id]=t}),t.variants.forEach(function(t){t.audio&&(e[t.audio.id]=t.audio),t.video&&(e[t.video.id]=t.video)})}),$u.values(e)}function Ns(t,e){e=e||0;for(var n={priority:e,dd:t},i=0;i=n.a.length)){for(var i=[],r=0;rt.textDecoration.indexOf("underline")&&t.textDecoration.push("underline");break;case"noUnderline":0<=t.textDecoration.indexOf("underline")&&at(t.textDecoration,"underline");break;case"lineThrough":0>t.textDecoration.indexOf("lineThrough")&&t.textDecoration.push("lineThrough");break;case"noLineThrough":0<=t.textDecoration.indexOf("lineThrough")&&at(t.textDecoration,"lineThrough");break;case"overline":0>t.textDecoration.indexOf("overline")&&t.textDecoration.push("overline");break;case"noOverline":0<=t.textDecoration.indexOf("overline")&&at(t.textDecoration,"overline")}}function Eu(t,e,n,i){return(t=ku(t,n,i))?t:Su(e,n,i)}function Su(t,e,n){for(var i=yu(t),r=0;rn.length)return null;var i=null,r=t;for(t=null;r&&!(t=r.getAttribute(e))&&(r=r.parentNode)instanceof Element;);if(e=t)for(t=0;tr&&(r=Math.max(r+i,0));rthis.a?t:Math.min(N(this.b),N(this.c))},t.console&&t.console.log.bind&&(C=console.warn.bind(console));var Ku=/^(?:([^:\/?#.]+):)?(?:\/\/(?:([^\/?#]*)@)?([^\/#?]*?)(?::([0-9]+))?(?=[\/#?]|$))?([^?#]+)?(?:\?([^#]*))?(?:#(.*))?$/;Uu=L.prototype,Uu.ia="",Uu.Fa="",Uu.la="",Uu.Qa=null,Uu.aa="",Uu.za="",Uu.toString=function(){var t=[],e=this.ia;if(e&&t.push(F(e,Hu,!0),":"),e=this.la){t.push("//");var n=this.Fa;n&&t.push(F(n,Hu,!0),"@"),t.push(encodeURIComponent(e).replace(/%25([0-9a-fA-F]{2})/g,"%$1")),e=this.Qa,null!=e&&t.push(":",String(e))}return(e=this.aa)&&(this.la&&"/"!=e.charAt(0)&&t.push("/"),t.push(F(e,"/"==e.charAt(0)?Gu:qu,!0))),(e=this.a.toString())&&t.push("?",e),(e=this.za)&&t.push("#",F(e,Yu)),t.join("")},Uu.resolve=function(t){var e=new L(this);"data"===e.ia&&(e=new L);var n=!!t.ia;n?O(e,t.ia):n=!!t.Fa,n?e.Fa=t.Fa:n=!!t.la,n?e.la=t.la:n=null!=t.Qa;var i=t.aa;if(n)U(e,t.Qa);else if(n=!!t.aa){if("/"!=i.charAt(0))if(this.la&&!this.aa)i="/"+i;else{var r=e.aa.lastIndexOf("/");-1!=r&&(i=e.aa.substr(0,r+1)+i)}if(".."==i||"."==i)i="";else if(-1!=i.indexOf("./")||-1!=i.indexOf("/.")){r=0==i.lastIndexOf("/",0),i=i.split("/");for(var a=[],o=0;oi||n&&1e3>i)&&!this.a[e].qa&&(this.a.splice(e,1),t.close().catch(function(){})),this.a.every(function(t){return t.loaded})&&(this.i.resolve(),Ft(this.G))}},Uu.oe=function(){function t(t,e){return"expired"==e}this.m={};for(var e in this.S)this.m[e]=this.S[e];!$u.empty(this.m)&&$u.every(this.m,t)&&this.h(new z(2,6,6014)),this.s.Ub(this.m)},Uu.Td=function(){for(var t=0;t=this.b||(t<=this.a&&e>=this.b?this.a=this.b=null:t<=this.a&&ethis.a&&e>=this.b&&(this.b=t))}.bind(this))},Se.prototype.lc=function(t){this.c.append(t)},Se.prototype.appendCues=Se.prototype.lc,Uu=Ae.prototype,Uu.destroy=function(){this.m=!0;var t,e=[];for(t in this.c){var n=this.c[t],i=n[0];for(this.c[t]=n.slice(0,1),i&&e.push(i.p.catch(xt)),i=1;ie&&(e+=.001),this.b[t].timestampOffset=e,this.Oa(t)},Uu.De=function(t,e,n){this.b[t].appendWindowStart=0,this.b[t].appendWindowEnd=n,this.b[t].appendWindowStart=e,this.Oa(t)},Uu.Qe=function(t){this.c[t][0].p.reject(new z(2,3,3014,this.f.error?this.f.error.code:0))},Uu.Oa=function(t){var e=this.c[t][0];e&&(e.p.resolve(),Ue(this,t))};var vc=1,yc=2,gc={aar:"aa",abk:"ab",afr:"af",aka:"ak",alb:"sq",amh:"am",ara:"ar",arg:"an",arm:"hy",asm:"as",ava:"av",ave:"ae",aym:"ay",aze:"az",bak:"ba",bam:"bm",baq:"eu",bel:"be",ben:"bn",bih:"bh",bis:"bi",bod:"bo",bos:"bs",bre:"br",bul:"bg",bur:"my",cat:"ca",ces:"cs",cha:"ch",che:"ce",chi:"zh",chu:"cu",chv:"cv",cor:"kw",cos:"co",cre:"cr",cym:"cy",cze:"cs",dan:"da",deu:"de",div:"dv",dut:"nl",dzo:"dz",ell:"el",eng:"en",epo:"eo",est:"et",eus:"eu",ewe:"ee",fao:"fo",fas:"fa",fij:"fj",fin:"fi",fra:"fr",fre:"fr",fry:"fy",ful:"ff",geo:"ka",ger:"de",gla:"gd",gle:"ga",glg:"gl",glv:"gv",gre:"el",grn:"gn",guj:"gu",hat:"ht",hau:"ha",heb:"he",her:"hz",hin:"hi",hmo:"ho",hrv:"hr",hun:"hu",hye:"hy",ibo:"ig",ice:"is",ido:"io",iii:"ii",iku:"iu",ile:"ie",ina:"ia",ind:"id",ipk:"ik",isl:"is",ita:"it",jav:"jv",jpn:"ja",kal:"kl",kan:"kn",kas:"ks",kat:"ka",kau:"kr",kaz:"kk",khm:"km",kik:"ki",kin:"rw",kir:"ky",kom:"kv",kon:"kg",kor:"ko",kua:"kj",kur:"ku",lao:"lo",lat:"la",lav:"lv",lim:"li",lin:"ln",lit:"lt",ltz:"lb",lub:"lu",lug:"lg",mac:"mk",mah:"mh",mal:"ml",mao:"mi",mar:"mr",may:"ms",mkd:"mk",mlg:"mg",mlt:"mt",mon:"mn",mri:"mi",msa:"ms",mya:"my",nau:"na",nav:"nv",nbl:"nr",nde:"nd",ndo:"ng",nep:"ne",nld:"nl",nno:"nn",nob:"nb",nor:"no",nya:"ny",oci:"oc",oji:"oj",ori:"or",orm:"om",oss:"os",pan:"pa",per:"fa",pli:"pi",pol:"pl",por:"pt",pus:"ps",que:"qu",roh:"rm",ron:"ro",rum:"ro",run:"rn",rus:"ru",sag:"sg",san:"sa",sin:"si",slk:"sk",slo:"sk",slv:"sl",sme:"se",smo:"sm",sna:"sn",snd:"sd",som:"so",sot:"st",spa:"es",sqi:"sq",srd:"sc",srp:"sr",ssw:"ss",sun:"su",swa:"sw",swe:"sv",tah:"ty",tam:"ta",tat:"tt",tel:"te",tgk:"tg",tgl:"tl",tha:"th",tib:"bo",tir:"ti",ton:"to",tsn:"tn",tso:"ts",tuk:"tk",tur:"tr",twi:"tw",uig:"ug",ukr:"uk",urd:"ur",uzb:"uz",ven:"ve",vie:"vi",vol:"vo",wel:"cy",wln:"wa",wol:"wo",xho:"xh",yid:"yi",yor:"yo",zha:"za",zho:"zh",zul:"zu"};I("shaka.abr.SimpleAbrManager",cn),cn.prototype.stop=function(){this.h=null,this.f=!1,this.c=[],this.g=null},cn.prototype.stop=cn.prototype.stop,cn.prototype.init=function(t){this.h=t},cn.prototype.init=cn.prototype.init,cn.prototype.chooseVariant=function(){var t=hn(this.a.restrictions,this.c),e=this.b.getBandwidthEstimate(this.a.defaultBandwidthEstimate);this.c.length&&!t.length&&(t=hn(null,this.c),t=[t[0]]);for(var n=t[0]||null,i=0;i=r.bandwidth/this.a.bandwidthDowngradeTarget&&e<=a&&(n=r)}return this.g=Date.now(),n},cn.prototype.chooseVariant=cn.prototype.chooseVariant,cn.prototype.enable=function(){this.f=!0},cn.prototype.enable=cn.prototype.enable,cn.prototype.disable=function(){this.f=!1},cn.prototype.disable=cn.prototype.disable,cn.prototype.segmentDownloaded=function(t,e){var n=this.b;if(!(16e3>e)){var i=8e3*e/t,r=t/1e3;n.a+=e,R(n.b,r,i),R(n.c,r,i)}if(null!=this.g&&this.f)t:{if(this.i){if(Date.now()-this.g<1e3*this.a.switchInterval)break t}else{if(!(128e3<=this.b.a))break t;this.i=!0}n=this.chooseVariant(),this.b.getBandwidthEstimate(this.a.defaultBandwidthEstimate),this.h(n)}},cn.prototype.segmentDownloaded=cn.prototype.segmentDownloaded,cn.prototype.getBandwidthEstimate=function(){return this.b.getBandwidthEstimate(this.a.defaultBandwidthEstimate)},cn.prototype.getBandwidthEstimate=cn.prototype.getBandwidthEstimate,cn.prototype.setVariants=function(t){this.c=t},cn.prototype.setVariants=cn.prototype.setVariants,cn.prototype.configure=function(t){this.a=t},cn.prototype.configure=cn.prototype.configure;var bc="ended play playing pause pausing ratechange seeked seeking timeupdate volumechange".split(" "),wc="buffered currentTime duration ended loop muted paused playbackRate seeking videoHeight videoWidth volume".split(" "),Tc=["loop","playbackRate"],Ec=["pause","play"],Sc="adaptation buffering emsg error loading streaming texttrackvisibility timelineregionadded timelineregionenter timelineregionexit trackschanged unloading".split(" "),kc={getAudioLanguages:2,getAudioLanguagesAndRoles:2,getBufferedInfo:2,getConfiguration:2,getExpiration:2,getManifestUri:2,getPlaybackRate:2,getTextLanguages:2,getTextLanguagesAndRoles:2,getTextTracks:2,getStats:5,usingEmbeddedTextTrack:2,getVariantTracks:2,isAudioOnly:10,isBuffering:1,isInProgress:1,isLive:10,isTextTrackVisible:1,keySystem:10,seekRange:1},Ac={getPlayheadTimeAsDate:1,getPresentationStartTimeAsDate:20},_c=[["getConfiguration","configure"]],Ic=[["isTextTrackVisible","setTextTrackVisibility"]],xc="addTextTrack cancelTrickPlay configure resetConfiguration retryStreaming selectAudioLanguage selectEmbeddedTextTrack selectTextLanguage selectTextTrack selectVariantTrack setTextTrackVisibility trickPlay".split(" "),Pc=["attach","detach","load","unload"],Rc=!1,Nc=null;Uu=pn.prototype,Uu.destroy=function(){return vn(this),Nc&&mn(this),this.G=this.A=this.g=null,this.b=this.h=!1,this.m=this.l=this.f=this.c=this.a=this.i=null,Promise.resolve()},Uu.$=function(){return this.b},Uu.Yb=function(){return this.u},Uu.init=function(){if(t.chrome&&chrome.cast&&chrome.cast.isAvailable){delete t.__onGCastApiAvailable,this.h=!0,this.g();var e=new chrome.cast.SessionRequest(this.I);e=new chrome.cast.ApiConfig(e,this.Dc.bind(this),this.Wd.bind(this),"origin_scoped"),chrome.cast.initialize(e,function(){},function(){}),Rc&&setTimeout(this.g.bind(this),20),(e=Nc)&&e.status!=chrome.cast.SessionStatus.STOPPED?this.Dc(e):Nc=null}else t.__onGCastApiAvailable=function(t){t&&this.init()}.bind(this)},Uu.bc=function(t){this.i=t,this.b&&yn({type:"appData",appData:this.i})},Uu.cast=function(t){return this.h?Rc?this.b?Promise.reject(new z(1,8,8002)):(this.f=new q,chrome.cast.requestSession(this.Vb.bind(this,t),this.Bc.bind(this)),this.f):Promise.reject(new z(1,8,8001)):Promise.reject(new z(1,8,8e3))},Uu.ub=function(){this.b&&(vn(this),Nc&&(mn(this),Nc.stop(function(){},function(){}),Nc=null))},Uu.get=function(t,e){if("video"==t){if(0<=Ec.indexOf(e))return this.Mc.bind(this,t,e)}else if("player"==t){if(Ac[e]&&!this.get("player","isLive")())return function(){};if(0<=xc.indexOf(e))return this.Mc.bind(this,t,e);if(0<=Pc.indexOf(e))return this.se.bind(this,t,e);if(kc[e])return this.Jc.bind(this,t,e)}return this.Jc(t,e)},Uu.set=function(t,e,n){this.a[t][e]=n,yn({type:"set",targetName:t,property:e,value:n})},Uu.Vb=function(t,e){Nc=e,e.addUpdateListener(this.l),e.addMessageListener("urn:x-cast:com.google.shaka.v2",this.m),this.Cc(),yn({type:"init",initState:t,appData:this.i}),this.f.resolve()},Uu.Bc=function(t){var e=8003;switch(t.code){case"cancel":e=8004;break;case"timeout":e=8005;break;case"receiver_unavailable":e=8006}this.f.reject(new z(2,8,e,t))},Uu.Jc=function(t,e){return this.a[t][e]},Uu.Mc=function(t,e){yn({type:"call",targetName:t,methodName:e,args:Array.prototype.slice.call(arguments,2)})},Uu.se=function(t,e){var n=Array.prototype.slice.call(arguments,2),i=new q,r=this.o.toString();return this.o++,this.c[r]=i,yn({type:"asyncCall",targetName:t,methodName:e,args:n,id:r}),i},Uu.Dc=function(t){var e=this.s();this.f=new q,this.j=!0,this.Vb(e,t)},Uu.Wd=function(t){Rc="available"==t,this.g()},Uu.Cc=function(){var t=!!Nc&&"connected"==Nc.status;if(this.b&&!t){this.G();for(var e in this.a)this.a[e]={};vn(this)}this.u=(this.b=t)?Nc.receiver.friendlyName:"",this.g()},Uu.Pd=function(t,e){var n=fn(e);switch(n.type){case"event":var i=n.event;this.A(n.targetName,new At(i.type,i));break;case"update":i=n.update;for(var r in i){n=this.a[r]||{};for(var a in i[r])n[a]=i[r][a]}this.j&&(this.L(),this.j=!1);break;case"asyncComplete":if(r=n.id,n=n.error,a=this.c[r],delete this.c[r],a)if(n){r=new z(n.severity,n.category,n.code);for(i in n)r[i]=n[i];a.reject(r)}else a.resolve()}},gn.prototype.addEventListener=function(t,e){this.Bb.push(t,e)},gn.prototype.removeEventListener=function(t,e){this.Bb.remove(t,e)},gn.prototype.dispatchEvent=function(t){for(var e=this.Bb.get(t.type)||[],n=0;nthis.D.byteLength&&ni();var e=new Uint8Array(this.D.buffer,this.D.byteOffset+this.a,t);return this.a+=t,new Uint8Array(e)},ei.prototype.readBytes=ei.prototype.Da,ei.prototype.F=function(t){this.a+t>this.D.byteLength&&ni(),this.a+=t},ei.prototype.skip=ei.prototype.F,ei.prototype.Oc=function(t){this.at||t>this.D.byteLength)&&ni(),this.a=t},ei.prototype.seek=ei.prototype.seek,ei.prototype.Xb=function(){for(var t=this.a;this.ha()&&0!=this.D.getUint8(this.a);)this.a+=1;return t=new Uint8Array(this.D.buffer,this.D.byteOffset+t,this.a-t),this.a+=1,Mt(t)},ei.prototype.readTerminatedString=ei.prototype.Xb,I("shaka.util.Mp4Parser",ii),ii.prototype.C=function(t,e){var n=si(t);return this.c[n]=0,this.b[n]=e,this},ii.prototype.box=ii.prototype.C,ii.prototype.Z=function(t,e){var n=si(t);return this.c[n]=1,this.b[n]=e,this},ii.prototype.fullBox=ii.prototype.Z,ii.prototype.stop=function(){this.a=!0},ii.prototype.stop=ii.prototype.stop,ii.prototype.parse=function(t,e){var n=new Uint8Array(t);for(n=new ei(new DataView(n.buffer,n.byteOffset,n.byteLength),0),this.a=!1;n.ha()&&!this.a;)this.xb(0,n,e)},ii.prototype.parse=ii.prototype.parse,ii.prototype.xb=function(t,e,n){var i=e.U(),r=e.B(),a=e.B();switch(r){case 0:r=e.D.byteLength-i;break;case 1:r=e.Ra()}var o=this.b[a];if(o){var s=null,u=null;1==this.c[a]&&(u=e.B(),s=u>>>24,u&=16777215),a=i+r,n&&a>e.D.byteLength&&(a=e.D.byteLength),a-=e.U(),e=0=n.startTime&&tt||t>=this.a.length?null:this.a[t])},li.prototype.get=li.prototype.get,li.prototype.offset=function(t){for(var e=0;ea.startTime?0==n&&e.push(a):(.1t)return void this.a.splice(0,e);this.a=[]},li.prototype.evict=li.prototype.Fb;var Lc;di.prototype.ha=function(){return this.a.ha()},gi.prototype.parse=function(t,e,n,i){var r;if(e=new di(new DataView(e)),440786851!=pi(e).id)throw new z(2,3,3008);var a=pi(e);if(408125543!=a.id)throw new z(2,3,3009);for(e=a.a.byteOffset,a=new di(a.a),r=null;a.ha();){var o=pi(a);if(357149030==o.id){r=o;break}}if(!r)throw new z(2,3,3010);for(a=new di(r.a),r=1e6,o=null;a.ha();){var s=pi(a);if(2807729==s.id)r=yi(s);else if(17545==s.id)if(o=s,4==o.a.byteLength)o=o.a.getFloat32(0);else{if(8!=o.a.byteLength)throw new z(2,3,3003);o=o.a.getFloat64(0)}}if(null==o)throw new z(2,3,3011);if(a=r/1e9,r=o*a,t=pi(new di(new DataView(t))),475249515!=t.id)throw new z(2,3,3007);return bi(t,e,a,r,n,i)};var Oc={},Uc={};I("shaka.media.ManifestParser.registerParserByExtension",function(t,e){Uc[t]=e}),I("shaka.media.ManifestParser.registerParserByMime",function(t,e){Oc[t]=e}),I("shaka.media.PresentationTimeline",Oi),Oi.prototype.T=function(){return this.b},Oi.prototype.getDuration=Oi.prototype.T,Oi.prototype.ka=function(t){this.b=t},Oi.prototype.setDuration=Oi.prototype.ka,Oi.prototype.vd=function(){return this.f},Oi.prototype.getPresentationStartTime=Oi.prototype.vd,Oi.prototype.Rc=function(t){this.j=t},Oi.prototype.setClockOffset=Oi.prototype.Rc,Oi.prototype.yb=function(t){this.i=t},Oi.prototype.setStatic=Oi.prototype.yb,Oi.prototype.dc=function(t){this.c=t},Oi.prototype.setSegmentAvailabilityDuration=Oi.prototype.dc,Oi.prototype.Sc=function(t){this.l=t},Oi.prototype.setDelay=Oi.prototype.Sc,Oi.prototype.Na=function(t,e){0!=t.length&&(e&&(this.h=Math.max(this.h,t[0].startTime)),this.a=t.reduce(function(t,e){return Math.max(t,e.endTime-e.startTime)},this.a))},Oi.prototype.notifySegments=Oi.prototype.Na,Oi.prototype.Rb=function(t){this.a=Math.max(this.a,t)},Oi.prototype.notifyMaxSegmentDuration=Oi.prototype.Rb,Oi.prototype.P=function(){return 1/0==this.b&&!this.i},Oi.prototype.isLive=Oi.prototype.P,Oi.prototype.Aa=function(){return 1/0!=this.b&&!this.i},Oi.prototype.isInProgress=Oi.prototype.Aa,Oi.prototype.Xa=function(){if(1/0==this.c)return this.g;var t=this.Ka()-this.c;return Math.max(this.g,t)},Oi.prototype.getSegmentAvailabilityStart=Oi.prototype.Xa,Oi.prototype.Tc=function(t){this.g=t},Oi.prototype.setUserSeekStart=Oi.prototype.Tc,Oi.prototype.Ka=function(){return this.P()||this.Aa()?Math.min(Math.max(0,(Date.now()+this.j)/1e3-this.a-this.f),this.b):this.b},Oi.prototype.getSegmentAvailabilityEnd=Oi.prototype.Ka,Oi.prototype.Wa=function(t){var e=Math.max(this.h,this.g);if(1/0==this.c)return e;var n=this.Ka()-this.c;return t=Math.min(n+t,this.ma()),Math.max(e,t)},Oi.prototype.getSafeSeekRangeStart=Oi.prototype.Wa,Oi.prototype.Ja=function(){return this.Wa(0)},Oi.prototype.getSeekRangeStart=Oi.prototype.Ja,Oi.prototype.ma=function(){var t=this.P()||this.Aa()?this.l:0;return Math.max(0,this.Ka()-t)},Oi.prototype.getSeekRangeEnd=Oi.prototype.ma,I("shaka.dash.DashParser",Ui),Uu=Ui.prototype,Uu.configure=function(t){this.b=t},Uu.start=function(t,e){return this.h=[t],this.a=e,ji(this).then(function(t){return this.a&&Gi(this,t),this.c}.bind(this))},Uu.stop=function(){return this.b=this.a=null,this.h=[],this.c=null,this.j=[],this.l={},null!=this.g&&(t.clearTimeout(this.g),this.g=null),this.f.destroy()},Uu.update=function(){ji(this).catch(function(t){this.a&&this.a.onError(t)}.bind(this))},Uu.onExpirationUpdated=function(){},Uu.ge=function(t,e){t.W=Xi(e,t.ba,null);var n=!1,i=Rn(e,"Role"),r=i.map(function(t){return t.getAttribute("value")}).filter(Pt),a=void 0,o="text"==t.W.contentType;o&&(a="subtitle");for(var s=0;sn.length||"data"!=n[0])throw new z(2,1,1004,e);if(n=n.slice(1).join(":").split(","),2>n.length)throw new z(2,1,1004,e);var i=n[0];n=t.decodeURIComponent(n.slice(1).join(",")),i=i.split(";");var r=null;if(1n.end(0)-n.start(0))){var i=.1;/(Edge\/|Trident\/|Tizen)/.test(navigator.userAgent)&&(i=.5);for(var r=0;re&&(0==r||n.end(r-1)-e<=i)){i=r;break t}}i=null}if(null==i){if(n=this.a.currentTime,e=this.a.buffered,!this.a.paused&&0=e.start(i)&&n=a)){a=r-e,t=a<=t;var o=!1;.001>a||(t||this.c||(this.c=!0,e=new At("largegap",{currentTime:e,gapSize:a}),e.cancelable=!0,this.u(e),this.o.jumpLargeGaps&&!e.defaultPrevented&&(o=!0)),!t&&!o)||(0!=i&&n.end(i-1),this.a.currentTime=r)}}}}},Uu=Gr.prototype,Uu.destroy=function(){var t=this.c.destroy();return this.c=null,null!=this.b&&(this.b.cancel(),this.b=null),this.i=this.a=null,t},Uu.Va=function(){return this.f},Uu.Vd=function(){var t=this.g||0>this.f?0:this.f;this.a.playbackRate&&this.a.playbackRate!=t&&zr(this,this.a.playbackRate)},Uu.Fc=function(){.001>Math.abs(this.a.currentTime-this.h)?this.Gc():(Et(this.c,this.a,"seeking",this.Gc.bind(this)),this.a.currentTime=0==this.a.currentTime?this.h:this.a.currentTime)},Uu.Gc=function(){var t=this;Tt(this.c,this.a,"seeking",function(){return t.i()})},Uu=$r.prototype,Uu.destroy=function(){var t=Promise.all([this.a.destroy(),this.g.destroy()]);return this.g=this.a=null,null!=this.f&&(this.f.cancel(),this.f=null),this.j=this.h=this.b=this.c=null,t},Uu.Va=function(){return this.a.Va()},Uu.ab=function(){this.g.ab()},Uu.Ud=function(){if(0!=this.c.readyState&&!this.c.paused){var t=this.c.currentTime,e=this.b.presentationTimeline,n=e.Ja();e=e.ma(),3>e-n&&(n=e-3),tthis.a.currentTime?1:e.info.endTime=i,n=this.u,n=!n.g||"ended"==n.g.readyState,e=e||this.a.ended||n,this.b?(n=Math.max(this.g.minBufferTime||0,this.s.rebufferingGoal),(e||t>=n)&&0!=this.b&&(this.b=!1,this.l(!1))):!e&&.5>t&&1!=this.b&&(this.b=!0,this.l(!0)),this.c.forEach(this.m.bind(this,!1))},Uu=aa.prototype,Uu.destroy=function(){for(var t in this.c)Ua(this.c[t]);return this.g=this.c=this.i=this.h=this.m=this.b=this.a=null,this.f=!0,Promise.resolve()},Uu.configure=function(t){this.g=t,this.A=new G({maxAttempts:Math.max(t.retryParameters.maxAttempts,2),baseDelay:t.retryParameters.baseDelay,backoffFactor:t.retryParameters.backoffFactor,fuzzFactor:t.retryParameters.fuzzFactor,timeout:0},!0)},Uu.init=function(){var t=Jr(this.a.Pa);return t=this.a.Ac(this.b.periods[sn(this.b,t)]),t.variant||t.text?ga(this,t).then(function(){!this.f&&this.a&&this.a.Ld&&this.a.Ld()}.bind(this)):Promise.reject(new z(2,5,5005))},Uu.Re=function(t){if(!this.f&&!t.Ca&&null!=t.ua&&!t.ya)if(t.ua=null,t.va)La(this,t,t.zb);else{try{var e=Ea(this,t);null!=e&&(Oa(this,t,e),t.Ya=!1)}catch(t){return void ja(this,t)}e=$u.values(this.c),Da(this,t),e.every(function(t){return t.endOfStream})&&this.a.J.endOfStream().then(function(){if(!this.f){var t=this.a.J.T();te,u&&c)return d(r,a.updateManifestExpiration(n.key(),e),0);r.V(0)}})})}).catch(function(){})},Oc["application/x-offline-manifest"]=No,I("shaka.offline.OfflineScheme",Do),Do.a=function(t){return t={uri:t,data:new ArrayBuffer(0),headers:{"content-type":"application/x-offline-manifest"}},Q(t)},Do.b=function(t,e){var n=new Qa;return Z(ct([n],function(){return c(function t(){var i,r,a;return A(t,function(t){switch(t.w){case 1:return d(t,n.init(),2);case 2:return d(t,eo(n,e.fa(),e.N()),3);case 3:return i=t.K,d(t,i.getSegments([e.key()]),4);case 4:return r=t.K,a=r[0],t.return({uri:e,data:a.data,headers:{}})}})})}))},dt("offline",Do),I("shaka.text.SimpleTextDisplayer",Co),Co.prototype.remove=function(t,e){return!!this.a&&(Lo(this.a,function(n){return!(n.startTime>=e||n.endTime<=t)}),!0)},Co.prototype.remove=Co.prototype.remove,Co.prototype.append=function(t){for(var e=Mo,n=[],i=0;i(a=n.indexOf(".",a)));)0!=a&&"\\"==n[a-1]||(o=n.substring(o,a).replace(/\\\./g,"."),r[o]={},r=r[o],o=a+1),a+=1;r[n.substring(o).replace(/\\\./g,".")]=e,t=i}return n=st(this.c,t,Wo(this),zo(),""),Ko(this),n},Oo.prototype.configure=Oo.prototype.configure,Oo.prototype.getConfiguration=function(){var t=Wo(this);return st(t,this.c,Wo(this),zo(),""),t},Oo.prototype.getConfiguration=Oo.prototype.getConfiguration,Oo.prototype.ve=function(){this.c=Wo(this),Ko(this)},Oo.prototype.resetConfiguration=Oo.prototype.ve,Oo.prototype.sd=function(){return this.f},Oo.prototype.getMediaElement=Oo.prototype.sd,Oo.prototype.uc=function(){return this.s},Oo.prototype.getNetworkingEngine=Oo.prototype.uc,Oo.prototype.Ib=function(){return this.Cb},Oo.prototype.getManifestUri=Oo.prototype.Ib,Oo.prototype.P=function(){return!!this.b&&this.b.presentationTimeline.P()},Oo.prototype.isLive=Oo.prototype.P,Oo.prototype.Aa=function(){return!!this.b&&this.b.presentationTimeline.Aa()},Oo.prototype.isInProgress=Oo.prototype.Aa,Oo.prototype.Dd=function(){if(!this.b||!this.b.periods.length)return!1;var t=this.b.periods[0].variants;return!!t.length&&!t[0].video},Oo.prototype.isAudioOnly=Oo.prototype.Dd,Oo.prototype.xe=function(){var t=0,e=0;return this.b&&(e=this.b.presentationTimeline,t=e.Ja(),e=e.ma()),{start:t,end:e}},Oo.prototype.seekRange=Oo.prototype.xe,Oo.prototype.keySystem=function(){return this.i?this.i.keySystem():""},Oo.prototype.keySystem=Oo.prototype.keySystem,Oo.prototype.drmInfo=function(){return this.i?this.i.b:null},Oo.prototype.drmInfo=Oo.prototype.drmInfo,Oo.prototype.vb=function(){return this.i?this.i.vb():1/0},Oo.prototype.getExpiration=Oo.prototype.vb,Oo.prototype.xc=function(){return this.ob},Oo.prototype.isBuffering=Oo.prototype.xc,Oo.prototype.hb=function(t){var e=this;return c(function n(){return A(n,function(n){switch(n.w){case 1:return e.wa?n.return():(void 0===t&&(t=!0),e.dispatchEvent(new At("unloading")),d(n,Uo(e),2));case 2:return e.qb||(e.qb=Yo(e).then(function(){e.Uc(!1),e.qb=null})),d(n,e.qb,3);case 3:if(t)return e.j=new Ae(e.f),d(n,e.j.j,0);n.V(0)}})})},Oo.prototype.unload=Oo.prototype.hb,Oo.prototype.Va=function(){return this.g?this.g.Va():0},Oo.prototype.getPlaybackRate=Oo.prototype.Va,Oo.prototype.Te=function(t){this.g&&zr(this.g.a,t),this.a&&da(this.a,1!=t)},Oo.prototype.trickPlay=Oo.prototype.Te,Oo.prototype.gd=function(){this.g&&zr(this.g.a,1),this.a&&da(this.a,!1)},Oo.prototype.cancelTrickPlay=Oo.prototype.gd,Oo.prototype.Ad=function(){if(!this.b||!this.g)return[];var t=sn(this.b,Jr(this.g)),e=this.I[t]||{};return Ye(this.b.periods[t],e.audio,e.video)},Oo.prototype.getVariantTracks=Oo.prototype.Ad,Oo.prototype.zd=function(){if(!this.b||!this.g)return[];var t=sn(this.b,Jr(this.g)),e=this.I[t]||{};if(!e.text){var n=en(this.b.periods[t].textStreams,this.ga,this.Ua);n.length&&(e.text=n[0].id)}return ze(this.b.periods[t],e.text).filter(function(t){return 0>this.lb.indexOf(t.id)}.bind(this))},Oo.prototype.getTextTracks=Oo.prototype.zd,Oo.prototype.Be=function(t){if(this.a){var e=oa(this.a);t:{for(var n=0;n=this.b.periods.length?this.b.presentationTimeline.T():this.b.periods[s].startTime)-o.startTime;if(1/0==u)return Promise.reject(new z(1,4,4033));var c={id:this.bd++,createSegmentIndex:Promise.resolve.bind(Promise),findSegmentPosition:function(){return 1},getSegmentReference:function(e){return 1!=e?null:new ti(1,0,u,function(){return[t]},0,null)},initSegmentReference:null,presentationTimeOffset:0,mimeType:i,codecs:r||"",kind:n,encrypted:!1,keyId:null,language:e,label:a||null,type:"text",primary:!1,trickModeVideo:null,containsEmsgBoxes:!1,roles:[],channelsCount:null};return this.lb.push(c.id),o.textStreams.push(c),la(this.a,c).then(function(){if(!this.wa){var t=this.b.periods.indexOf(o),i=ha(this.a,"text");return i&&(this.I[t].text=i.id),this.lb.splice(this.lb.indexOf(c.id),1),es(this,o),is(this),{id:c.id,active:!1,type:"text",bandwidth:0,language:e,label:a||null,kind:n,width:null,height:null}}}.bind(this))},Oo.prototype.addTextTrack=Oo.prototype.addTextTrack,Oo.prototype.cc=function(t,e){this.mb.width=t,this.mb.height=e},Oo.prototype.setMaxHardwareResolution=Oo.prototype.cc,Oo.prototype.ac=function(){if(this.a){var t=this.a;if(t.f)t=!1;else if(t.l)t=!1;else{for(var e in t.c){var n=t.c[e];n.Ya&&(n.Ya=!1,Oa(t,n,.1))}t=!0}}else t=!1;return t},Oo.prototype.retryStreaming=Oo.prototype.ac,Oo.prototype.rd=function(){return this.b},Oo.prototype.getManifest=Oo.prototype.rd,Uu=Oo.prototype,Uu.kd=function(t){var e=[1001,1002,1003];this.P()&&0<=e.indexOf(t.code)&&(t.severity=1,this.ac())},Uu.ec=function(t){t.forEach(Ke.bind(null,this.i,this.a?ua(this.a):null,this.a?ca(this.a):null));var e=ot(t,function(t){return t.variants.some($e)});if(0==e)throw new z(2,4,4032);if(ee&&(e+=Math.pow(2,32)),e=e.toString(16)),this.Ta(new z(2,3,3016,t,e,this.f.error.message))}}},Uu.Md=function(t){var e=["output-restricted","internal-error"],n=oa(this.a),i=!1,r=Object.keys(t),a=1==r.length&&"00"==r[0];r.length&&n.variants.forEach(function(n){var r=[];n.audio&&r.push(n.audio),n.video&&r.push(n.video),r.forEach(function(r){var o=n.allowedByKeySystem;r.keyId&&(r=t[a?"00":r.keyId],n.allowedByKeySystem=!!r&&0>e.indexOf(r)),o!=n.allowedByKeySystem&&(i=!0)})}),(r=an(ua(this.a),ca(this.a),n.variants))&&!r.allowedByKeySystem&&es(this,n),i&&(is(this),n=Qe(n.variants,this.L,this.Ga,this.Y),this.h.setVariants(n))},Uu.Jd=function(t,e){this.m&&this.m.onExpirationUpdated&&this.m.onExpirationUpdated(t,e),this.dispatchEvent(new At("expirationupdated"))},I("shaka.offline.Storage",hs),hs.support=ls,hs.prototype.destroy=function(){return this.a=this.b=null,Promise.resolve()},hs.prototype.destroy=hs.prototype.destroy,hs.prototype.configure=function(t){st(this.b,t,ys(this),{},"")},hs.prototype.configure=hs.prototype.configure,hs.prototype.store=function(t,e,n){var i=this;return c(function r(){var a,o,s,u,h,l;return A(r,function(r){switch(r.w){case 1:return _s(),i.g?r.return(Promise.reject(new z(2,9,9006))):(i.g=!0,a=e||{},o=null,s=function(t){o=o||t},d(r,ms(i,t,s,n),2));case 2:if(u=r.K,!(h=!u.manifest.presentationTimeline.P()&&!u.manifest.presentationTimeline.Aa()))throw new z(2,9,9005,t);if(As(i),o)throw o;return l=new Qa,r.return(ct([l,u.Eb],function(){return c(function e(){var n,r,s,c,h,f,v;return A(e,function(e){switch(e.w){case 1:return m(e),d(e,l.init(),4);case 4:return As(i),gs(i,u.Eb,u.manifest.periods),d(e,Za(l),5);case 5:return n=e.K,As(i),p(e,6),d(e,fs(i,n.N,u.Eb,u.manifest,t,a||{}),8);case 8:return r=e.K,As(i),d(e,n.N.addManifests([r]),9);case 9:return s=e.K,As(i),c=new Eo("manifest",n.path.fa,n.path.N,s[0]),e.return(os(c,r));case 6:return h=y(e),f=i.f,v=function(){},d(e,n.N.removeSegments(f,v),10);case 10:throw o||h;case 2:g(e),i.g=!1,i.c=null,i.f=[],b(e,0)}})})}))}})})},hs.prototype.store=hs.prototype.store,hs.prototype.remove=function(t){var e=this;_s();var n=So(t);if(null==n||"manifest"!=n.a)return Promise.reject(new z(2,9,9004,t));var i=new Qa;return ct([i],function(){return c(function t(){var r,a,o;return A(t,function(t){switch(t.w){case 1:return d(t,i.init(),2);case 2:return d(t,eo(i,n.fa(),n.N()),3);case 3:return r=t.K,d(t,r.getManifests([n.key()]),4);case 4:return a=t.K,o=a[0],d(t,Promise.all([ds(e,n,o),ps(e,r,n,o)]),0)}})})})},hs.prototype.remove=hs.prototype.remove,hs.prototype.list=function(){function t(t,n){return c(function i(){var r;return A(i,function(i){switch(i.w){case 1:return d(i,n.getAllManifests(),2);case 2:r=i.K,$u.forEach(r,function(n,i){var r=os(new Eo("manifest",t.fa,t.N,n),i);e.push(r)}),i.w=0}})})}_s();var e=[],n=new Qa;return ct([n],function(){return c(function e(){var i;return A(e,function(e){switch(e.w){case 1:return d(e,n.init(),2);case 2:return i=Promise.resolve(),to(n,function(e,n){i=i.then(function(){return t(e,n)})}),d(e,i,0)}})})}).then(function(){return e})},hs.prototype.list=hs.prototype.list,hs.deleteAll=function(){return c(function t(){var e;return A(t,function(t){switch(t.w){case 1:return e=new Qa,m(t),d(t,no(e),2);case 2:return g(t),d(t,e.destroy(),5);case 5:b(t,0)}})})},Xc.offline=ls,I("shaka.polyfill.installAll",function(){for(var t=0;tnavigator.userAgent.indexOf("Trident/")||HTMLInputElement.prototype.addEventListener==Cs||(zc=HTMLInputElement.prototype.addEventListener,HTMLInputElement.prototype.addEventListener=Cs)}),Ns(function(){}),Ns(function(){if(t.MediaSource)if(t.cast&&cast.__platform__&&cast.__platform__.canDisplayType)Fs();else if(navigator.vendor&&0<=navigator.vendor.indexOf("Apple")){var e=navigator.appVersion;Bs(),0<=e.indexOf("Version/8")?t.MediaSource=null:0<=e.indexOf("Version/9")?Ms():0<=e.indexOf("Version/10")?(Ms(),Os()):0<=e.indexOf("Version/11")&&(Ms(),Ls())}}),Vs.prototype.c=function(t){if(!(1c[0].indexOf("--\x3e")&&(u=c[0],c.splice(0,1)),h=new sr(c[0]);var f=Cu(h),d=cr(h,/[ \t]+--\x3e[ \t]+/g),p=Cu(h);if(null==f||null==d||null==p)throw new z(2,2,2001);for(c=new ye(f+l,p+l,c.slice(1).join("\n").trim()),ur(h),l=hr(h);l;)Nu(c,l,o),ur(h),l=hr(h);null!=u&&(c.id=u),o=c}o&&r.push(o)}return r},mc["text/vtt"]=Ru,mc['text/vtt; codecs="vtt"']=Ru,Mu.prototype.parseInit=function(t){var e=!1;if((new ii).C("moov",ri).C("trak",ri).C("mdia",ri).Z("mdhd",function(t){0==t.version?(t.reader.F(4),t.reader.F(4),this.a=t.reader.B(),t.reader.F(4)):(t.reader.F(8),t.reader.F(8),this.a=t.reader.B(),t.reader.F(8)),t.reader.F(4)}.bind(this)).C("minf",ri).C("stbl",ri).Z("stsd",ai).C("wvtt",function(){e=!0}).parse(t),!this.a)throw new z(2,2,2008);if(!e)throw new z(2,2,2008)},Mu.prototype.parseMedia=function(t,e){var n=this;if(!this.a)throw new z(2,2,2008);var i,r=0,a=[],o=[],s=!1,u=!1,c=!1,h=null;if((new ii).C("moof",ri).C("traf",ri).Z("tfdt",function(t){s=!0,r=0==t.version?t.reader.B():t.reader.Ra()}).Z("tfhd",function(t){var e=t.flags;t=t.reader,t.F(4),1&e&&t.F(8),2&e&&t.F(4),h=8&e?t.B():null}).Z("trun",function(t){u=!0;var e=t.version,n=t.flags;t=t.reader;var i=t.B();1&n&&t.F(4),4&n&&t.F(4);for(var r=[],o=0;o/",t(0)}([/*!******************!*\ - !*** ./index.js ***! - \******************/ -function(e,t,l){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.default=l(/*! ./src/main.js */1),e.exports=t.default},/*!*********************!*\ - !*** ./src/main.js ***! - \*********************/ -function(e,t,l){"use strict";function n(e){return e&&e.__esModule?e:{default:e}}function o(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function r(e,t){if("function"!=typeof t&&null!==t)throw new TypeError("Super expression must either be null or a function, not "+typeof t);e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),t&&(Object.setPrototypeOf?Object.setPrototypeOf(e,t):e.__proto__=t)}Object.defineProperty(t,"__esModule",{value:!0});var i=function(){function e(e,t){for(var l=0;l0;t&&this.fillLevels(e.levels)}},{key:"reload",value:function(){this.unBindEvents(),this.bindEvents(),this.bindPlaybackEvents()}},{key:"shouldRender",value:function(){if(!this.core.getCurrentContainer())return!1;var e=this.core.getCurrentPlayback();if(!e)return!1;var t=void 0!==e.currentLevel,l=!!(this.levels&&this.levels.length>1);return t&&l}},{key:"render",value:function(){if(this.shouldRender()){var e=a.Styler.getStyleFor(h.default,{baseUrl:this.core.options.baseUrl});this.$el.html(this.template({levels:this.levels,title:this.getTitle()})),this.$el.append(e),this.core.mediaControl.$(".media-control-right-panel").append(this.el),this.highlightCurrentLevel()}return this}},{key:"fillLevels",value:function(e){var t=arguments.length<=1||void 0===arguments[1]?f:arguments[1];void 0===this.selectedLevelId&&(this.selectedLevelId=t),this.levels=e,this.configureLevelsLabels(),this.render()}},{key:"configureLevelsLabels",value:function(){if(this.levels.forEach(function(e){e.label=(e.height?e.height:e.level.height)+"p"}),void 0!==this.core.options.levelSelectorConfig){var e=this.core.options.levelSelectorConfig.labelCallback;if(e&&"function"!=typeof e)throw new TypeError("labelCallback must be a function");var t=this.core.options.levelSelectorConfig.labels,l=t?this.core.options.levelSelectorConfig.labels:{};if(e||t){var n,o;for(var r in this.levels)n=this.levels[r],o=l[n.id],e?n.label=e(n,o):o&&(n.label=o)}}}},{key:"findLevelBy",value:function(e){var t;return this.levels.forEach(function(l){l.id===e&&(t=l)}),t}},{key:"onLevelSelect",value:function(e){return this.selectedLevelId=parseInt(e.target.dataset.levelSelectorSelect,10),this.core.getCurrentPlayback().currentLevel!=this.selectedLevelId&&(this.core.getCurrentPlayback().currentLevel=this.selectedLevelId,this.toggleContextMenu(),e.stopPropagation(),!1)}},{key:"onShowLevelSelectMenu",value:function(e){this.toggleContextMenu()}},{key:"hideSelectLevelMenu",value:function(){this.$(".level_selector ul").hide()}},{key:"toggleContextMenu",value:function(){this.$(".level_selector ul").toggle()}},{key:"buttonElement",value:function(){return this.$(".level_selector button")}},{key:"levelElement",value:function(e){return this.$(".level_selector ul a"+(isNaN(e)?"":'[data-level-selector-select="'+e+'"]')).parent()}},{key:"getTitle",value:function(){return(this.core.options.levelSelectorConfig||{}).title}},{key:"updateText",value:function(e){e===f?this.buttonElement().text(this.currentLevel?"AUTO ("+this.currentLevel.label+")":"AUTO"):this.buttonElement().text(this.findLevelBy(e).label)}},{key:"handleAdaptation",value:function(e){var t=this.findLevelBy(e.level);this.currentLevel=t?t:null,this.highlightCurrentLevel()}},{key:"highlightCurrentLevel",value:function(){var e=this;this.updateText(this.selectedLevelId),this.levelElement().removeClass("current"),this.currentLevel&&this.levelElement(this.currentLevel.id).addClass("current");var t=this.currentLevel&&this.currentLevel.language;t&&(this.levelElement().removeClass("hidden"),this.levels.forEach(function(l){l.language!=t&&e.levelElement(l.id).addClass("hidden")}))}},{key:"name",get:function(){return"level_selector"}},{key:"template",get:function(){return(0,a.template)(u.default)}},{key:"attributes",get:function(){return{class:this.name,"data-level-selector":""}}},{key:"events",get:function(){return{"click [data-level-selector-select]":"onLevelSelect","click [data-level-selector-button]":"onShowLevelSelectMenu"}}}],[{key:"version",get:function(){return VERSION}}]),t}(a.UICorePlugin);t.default=d,e.exports=t.default},/*!*************************!*\ - !*** external "Clappr" ***! - \*************************/ -function(t,l){t.exports=e},/*!****************************************!*\ - !*** ./src/public/level-selector.html ***! - \****************************************/ -function(e,t){e.exports='\n
    \n <% if (title) { %>\n
  • <%= title %>
  • \n <% }; %>\n
  • AUTO
  • \n <% for (var i = 0; i < levels.length; i++) { %>\n
  • <%= levels[i].label %>
  • \n <% }; %>\n
\n'},/*!*******************************!*\ - !*** ./src/public/style.scss ***! - \*******************************/ -function(e,t,l){t=e.exports=l(/*! ../../~/css-loader/lib/css-base.js */5)(),t.push([e.id,".level_selector[data-level-selector]{float:right;margin-top:7px;position:relative}.level_selector[data-level-selector] button{background-color:transparent;color:#fff;font-family:Roboto,Open Sans,Arial,sans-serif;-webkit-font-smoothing:antialiased;border:none;font-size:12px}.level_selector[data-level-selector] button:hover{color:#c9c9c9}.level_selector[data-level-selector] button.changing{-webkit-animation:pulse .5s infinite alternate}.level_selector[data-level-selector]>ul{list-style-type:none;position:absolute;bottom:25px;border:1px solid #000;display:none;background-color:#e6e6e6}.level_selector[data-level-selector] li{font-size:12px}.level_selector[data-level-selector] li[data-title]{background-color:#c3c2c2;padding:5px}.level_selector[data-level-selector] li a{color:#444;padding:2px 10px;display:block;text-decoration:none}.level_selector[data-level-selector] li a:hover{background-color:#555;color:#fff}.level_selector[data-level-selector] li a:hover a{color:#fff;text-decoration:none}.level_selector[data-level-selector] li.current a{color:red}.level_selector[data-level-selector] li.hidden{display:none}@-webkit-keyframes pulse{0%{color:#fff}50%{color:#ff0101}to{color:#b80000}}",""])},/*!**************************************!*\ - !*** ./~/css-loader/lib/css-base.js ***! - \**************************************/ -function(e,t){"use strict";e.exports=function(){var e=[];return e.toString=function(){for(var e=[],t=0;t