-
Notifications
You must be signed in to change notification settings - Fork 837
/
clappr.plainhtml5.js.map
1 lines (1 loc) · 689 KB
/
clappr.plainhtml5.js.map
1
{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap f72bc783886e58c8e50d","webpack:///./node_modules/babel-runtime/helpers/classCallCheck.js","webpack:///./node_modules/babel-runtime/helpers/possibleConstructorReturn.js","webpack:///./node_modules/babel-runtime/helpers/inherits.js","webpack:///./node_modules/babel-runtime/helpers/createClass.js","webpack:///./src/base/events.js","webpack:///./src/base/utils.js","webpack:///./node_modules/clappr-zepto/zepto.js","webpack:///./node_modules/css-loader/lib/css-base.js","webpack:///./node_modules/core-js/library/modules/_core.js","webpack:///./node_modules/style-loader/lib/addStyles.js","webpack:///./src/base/template.js","webpack:///./node_modules/babel-runtime/core-js/object/assign.js","webpack:///./node_modules/core-js/library/modules/_wks.js","webpack:///./src/base/playback.js","webpack:///./src/base/base_object.js","webpack:///./node_modules/core-js/library/modules/_export.js","webpack:///./node_modules/core-js/library/modules/_global.js","webpack:///./node_modules/core-js/library/modules/_object-dp.js","webpack:///./node_modules/core-js/library/modules/_to-iobject.js","webpack:///./src/base/error_mixin.js","webpack:///./node_modules/core-js/library/modules/_descriptors.js","webpack:///./node_modules/core-js/library/modules/_has.js","webpack:///./src/base/ui_core_plugin.js","webpack:///./src/base/void.js","webpack:///./node_modules/core-js/library/modules/_hide.js","webpack:///./node_modules/core-js/library/modules/_an-object.js","webpack:///./node_modules/core-js/library/modules/_fails.js","webpack:///./node_modules/core-js/library/modules/_object-keys.js","webpack:///./src/components/browser/index.js","webpack:///./src/base/ui_object.js","webpack:///./node_modules/core-js/library/modules/_is-object.js","webpack:///./node_modules/core-js/library/modules/_property-desc.js","webpack:///./node_modules/core-js/library/modules/_iterators.js","webpack:///./src/plugins/log/index.js","webpack:///./src/components/error/index.js","webpack:///./src/base/core_plugin.js","webpack:///./node_modules/core-js/library/modules/_uid.js","webpack:///./node_modules/core-js/library/modules/_object-pie.js","webpack:///./node_modules/core-js/library/modules/_to-object.js","webpack:///./node_modules/babel-runtime/helpers/typeof.js","webpack:///./src/components/player_info.js","webpack:///./src/base/ui_container_plugin.js","webpack:///./src/base/container_plugin.js","webpack:///./node_modules/core-js/library/modules/_ctx.js","webpack:///./node_modules/core-js/library/modules/_to-primitive.js","webpack:///./node_modules/core-js/library/modules/_cof.js","webpack:///./node_modules/core-js/library/modules/_defined.js","webpack:///./node_modules/core-js/library/modules/_to-integer.js","webpack:///./node_modules/core-js/library/modules/_shared-key.js","webpack:///./node_modules/core-js/library/modules/_shared.js","webpack:///./node_modules/core-js/library/modules/_enum-bug-keys.js","webpack:///./node_modules/core-js/library/modules/_object-gops.js","webpack:///./node_modules/babel-runtime/core-js/object/keys.js","webpack:///./node_modules/core-js/library/modules/_library.js","webpack:///./node_modules/core-js/library/modules/_object-create.js","webpack:///./node_modules/core-js/library/modules/_set-to-string-tag.js","webpack:///./node_modules/core-js/library/modules/_wks-ext.js","webpack:///./node_modules/core-js/library/modules/_wks-define.js","webpack:///./node_modules/core-js/library/modules/_object-gopd.js","webpack:///./src/vendor/index.js","webpack:///./src/components/mediator.js","webpack:///./src/playbacks/html5_video/index.js","webpack:///./node_modules/node-libs-browser/node_modules/process/browser.js","webpack:///./src/icons/01-play.svg","webpack:///./node_modules/core-js/library/modules/_ie8-dom-define.js","webpack:///./node_modules/core-js/library/modules/_dom-create.js","webpack:///./node_modules/core-js/library/modules/_object-keys-internal.js","webpack:///./node_modules/core-js/library/modules/_iobject.js","webpack:///./node_modules/core-js/library/modules/_to-length.js","webpack:///./node_modules/core-js/library/modules/_object-sap.js","webpack:///./node_modules/core-js/library/modules/es6.string.iterator.js","webpack:///./node_modules/core-js/library/modules/_iter-define.js","webpack:///./node_modules/core-js/library/modules/_redefine.js","webpack:///./node_modules/core-js/library/modules/_object-gopn.js","webpack:///./node_modules/babel-runtime/core-js/object/define-property.js","webpack:///./node_modules/babel-runtime/core-js/object/create.js","webpack:///./src/components/core/index.js","webpack:///./src/base/styler.js","webpack:///./src/components/error/error.js","webpack:///./src/components/container/index.js","webpack:///./node_modules/css-loader/lib/url/escape.js","webpack:///./src/components/loader/index.js","webpack:///./node_modules/babel-runtime/helpers/toConsumableArray.js","webpack:///./node_modules/babel-runtime/core-js/array/from.js","webpack:///./src/playbacks/html5_audio/index.js","webpack:///./src/playbacks/html_img/index.js","webpack:///./src/playbacks/no_op/index.js","webpack:///./src/plugins/spinner_three_bounce/index.js","webpack:///./src/plugins/watermark/index.js","webpack:///./src/plugins/poster/index.js","webpack:///./src/plugins/click_to_pause/index.js","webpack:///./src/plugins/media_control/index.js","webpack:///./src/plugins/media_control/public/closed-hand.cur","webpack:///./src/icons/02-pause.svg","webpack:///./src/plugins/dvr_controls/index.js","webpack:///./src/plugins/favicon/index.js","webpack:///./src/main.js","webpack:///./src/components/player.js","webpack:///./node_modules/core-js/library/fn/object/assign.js","webpack:///./node_modules/core-js/library/modules/es6.object.assign.js","webpack:///./node_modules/core-js/library/modules/_a-function.js","webpack:///./node_modules/core-js/library/modules/_object-assign.js","webpack:///./node_modules/core-js/library/modules/_array-includes.js","webpack:///./node_modules/core-js/library/modules/_to-index.js","webpack:///./node_modules/core-js/library/fn/object/keys.js","webpack:///./node_modules/core-js/library/modules/es6.object.keys.js","webpack:///./node_modules/babel-runtime/core-js/symbol/iterator.js","webpack:///./node_modules/core-js/library/fn/symbol/iterator.js","webpack:///./node_modules/core-js/library/modules/_string-at.js","webpack:///./node_modules/core-js/library/modules/_iter-create.js","webpack:///./node_modules/core-js/library/modules/_object-dps.js","webpack:///./node_modules/core-js/library/modules/_html.js","webpack:///./node_modules/core-js/library/modules/_object-gpo.js","webpack:///./node_modules/core-js/library/modules/web.dom.iterable.js","webpack:///./node_modules/core-js/library/modules/es6.array.iterator.js","webpack:///./node_modules/core-js/library/modules/_add-to-unscopables.js","webpack:///./node_modules/core-js/library/modules/_iter-step.js","webpack:///./node_modules/babel-runtime/core-js/symbol.js","webpack:///./node_modules/core-js/library/fn/symbol/index.js","webpack:///./node_modules/core-js/library/modules/es6.symbol.js","webpack:///./node_modules/core-js/library/modules/_meta.js","webpack:///./node_modules/core-js/library/modules/_keyof.js","webpack:///./node_modules/core-js/library/modules/_enum-keys.js","webpack:///./node_modules/core-js/library/modules/_is-array.js","webpack:///./node_modules/core-js/library/modules/_object-gopn-ext.js","webpack:///./node_modules/core-js/library/modules/es7.symbol.async-iterator.js","webpack:///./node_modules/core-js/library/modules/es7.symbol.observable.js","webpack:///./node_modules/core-js/library/fn/object/define-property.js","webpack:///./node_modules/core-js/library/modules/es6.object.define-property.js","webpack:///./node_modules/babel-runtime/core-js/object/set-prototype-of.js","webpack:///./node_modules/core-js/library/fn/object/set-prototype-of.js","webpack:///./node_modules/core-js/library/modules/es6.object.set-prototype-of.js","webpack:///./node_modules/core-js/library/modules/_set-proto.js","webpack:///./node_modules/core-js/library/fn/object/create.js","webpack:///./node_modules/core-js/library/modules/es6.object.create.js","webpack:///./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js","webpack:///./node_modules/core-js/library/fn/object/get-own-property-descriptor.js","webpack:///./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js","webpack:///./src/base/polyfills.js","webpack:///./src/components/browser/browser.js","webpack:///./src/components/browser/browser_data.js","webpack:///./src/components/browser/os_data.js","webpack:///./src/base/media.js","webpack:///./src/plugins/log/log.js","webpack:///./src/vendor/kibo.js","webpack:///./src/components/core_factory/index.js","webpack:///./src/components/core_factory/core_factory.js","webpack:///./src/components/core/core.js","webpack:///./src/components/container_factory/index.js","webpack:///./src/components/container_factory/container_factory.js","webpack:///./src/components/container/container.js","webpack:///./src/components/container/public/style.scss?45e2","webpack:///./src/components/container/public/style.scss","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./src/components/core/public/style.scss?08a2","webpack:///./src/components/core/public/style.scss","webpack:///./src/components/core/public/fonts.css","webpack:///./src/components/core/public/Roboto.ttf","webpack:///./src/components/loader/loader.js","webpack:///./node_modules/core-js/library/fn/array/from.js","webpack:///./node_modules/core-js/library/modules/es6.array.from.js","webpack:///./node_modules/core-js/library/modules/_iter-call.js","webpack:///./node_modules/core-js/library/modules/_is-array-iter.js","webpack:///./node_modules/core-js/library/modules/_create-property.js","webpack:///./node_modules/core-js/library/modules/core.get-iterator-method.js","webpack:///./node_modules/core-js/library/modules/_classof.js","webpack:///./node_modules/core-js/library/modules/_iter-detect.js","webpack:///./src/playbacks/html5_video/html5_video.js","webpack:///./src/playbacks/html5_video/public/tracks.html","webpack:///./src/playbacks/html5_video/public/style.scss?5521","webpack:///./src/playbacks/html5_video/public/style.scss","webpack:///./src/playbacks/html5_audio/html5_audio.js","webpack:///./src/playbacks/html_img/html_img.js","webpack:///./src/playbacks/html_img/public/style.scss?65da","webpack:///./src/playbacks/html_img/public/style.scss","webpack:///./src/playbacks/no_op/no_op.js","webpack:///./src/playbacks/no_op/public/error.html","webpack:///./src/playbacks/no_op/public/style.scss?a63c","webpack:///./src/playbacks/no_op/public/style.scss","webpack:///./src/plugins/spinner_three_bounce/spinner_three_bounce.js","webpack:///./src/plugins/spinner_three_bounce/public/spinner.html","webpack:///./src/plugins/spinner_three_bounce/public/spinner.scss?45b1","webpack:///./src/plugins/spinner_three_bounce/public/spinner.scss","webpack:///./src/plugins/stats/index.js","webpack:///./src/plugins/stats/stats.js","webpack:///./src/plugins/watermark/watermark.js","webpack:///./src/plugins/watermark/public/watermark.html","webpack:///./src/plugins/watermark/public/watermark.scss?d1ad","webpack:///./src/plugins/watermark/public/watermark.scss","webpack:///./src/plugins/poster/poster.js","webpack:///./src/plugins/poster/public/poster.html","webpack:///./src/plugins/poster/public/poster.scss?8d31","webpack:///./src/plugins/poster/public/poster.scss","webpack:///./src/plugins/google_analytics/index.js","webpack:///./src/plugins/google_analytics/google_analytics.js","webpack:///./src/plugins/click_to_pause/click_to_pause.js","webpack:///./src/plugins/media_control/media_control.js","webpack:///./node_modules/babel-runtime/core-js/json/stringify.js","webpack:///./node_modules/core-js/library/fn/json/stringify.js","webpack:///./src/plugins/media_control/public/media-control.scss?1e55","webpack:///./src/plugins/media_control/public/media-control.scss","webpack:///./src/plugins/media_control/public/media-control.html","webpack:///./src/icons/03-stop.svg","webpack:///./src/icons/04-volume.svg","webpack:///./src/icons/05-mute.svg","webpack:///./src/icons/06-expand.svg","webpack:///./src/icons/07-shrink.svg","webpack:///./src/icons/08-hd.svg","webpack:///./src/plugins/dvr_controls/dvr_controls.js","webpack:///./src/plugins/dvr_controls/public/index.html","webpack:///./src/plugins/dvr_controls/public/dvr_controls.scss?e553","webpack:///./src/plugins/dvr_controls/public/dvr_controls.scss","webpack:///./src/plugins/closed_captions/index.js","webpack:///./src/plugins/closed_captions/closed_captions.js","webpack:///./src/icons/09-cc.svg","webpack:///./src/plugins/closed_captions/public/closed_captions.html","webpack:///./src/plugins/closed_captions/public/closed_captions.scss?4f32","webpack:///./src/plugins/closed_captions/public/closed_captions.scss","webpack:///./src/plugins/favicon/favicon.js","webpack:///./src/plugins/seek_time/index.js","webpack:///./src/plugins/seek_time/seek_time.js","webpack:///./src/plugins/seek_time/public/seek_time.html","webpack:///./src/plugins/seek_time/public/seek_time.scss?50ac","webpack:///./src/plugins/seek_time/public/seek_time.scss","webpack:///./src/plugins/sources.js","webpack:///./src/plugins/end_video.js","webpack:///./src/plugins/strings.js","webpack:///./src/plugins/error_screen/index.js","webpack:///./src/plugins/error_screen/error_screen.js","webpack:///./src/icons/10-reload.svg","webpack:///./src/plugins/error_screen/public/error_screen.html","webpack:///./src/plugins/error_screen/public/error_screen.scss?8f65","webpack:///./src/plugins/error_screen/public/error_screen.scss"],"names":["slice","Array","prototype","eventSplitter","eventsApi","obj","action","name","rest","key","apply","concat","test","names","split","i","l","length","triggerEvents","events","args","klass","ev","a1","a2","a3","run","callback","call","ctx","exception","error","Events","on","context","_events","push","once","off","arguments","retain","j","k","_callback","trigger","constructor","debug","allEvents","all","stopListening","listeningTo","_listeningTo","remove","_listenId","id","register","eventName","Custom","property","toUpperCase","trim","toLowerCase","map","value","index","join","listAvailableCustomEvents","filter","listenMethods","listenTo","listenToOnce","forEach","method","PLAYER_READY","PLAYER_RESIZE","PLAYER_FULLSCREEN","PLAYER_PLAY","PLAYER_PAUSE","PLAYER_STOP","PLAYER_ENDED","PLAYER_SEEK","PLAYER_ERROR","ERROR","PLAYER_TIMEUPDATE","PLAYER_VOLUMEUPDATE","PLAYER_SUBTITLE_AVAILABLE","PLAYBACK_PROGRESS","PLAYBACK_TIMEUPDATE","PLAYBACK_READY","PLAYBACK_BUFFERING","PLAYBACK_BUFFERFULL","PLAYBACK_SETTINGSUPDATE","PLAYBACK_LOADEDMETADATA","PLAYBACK_HIGHDEFINITIONUPDATE","PLAYBACK_BITRATE","PLAYBACK_LEVELS_AVAILABLE","PLAYBACK_LEVEL_SWITCH_START","PLAYBACK_LEVEL_SWITCH_END","PLAYBACK_PLAYBACKSTATE","PLAYBACK_DVR","PLAYBACK_MEDIACONTROL_DISABLE","PLAYBACK_MEDIACONTROL_ENABLE","PLAYBACK_ENDED","PLAYBACK_PLAY_INTENT","PLAYBACK_PLAY","PLAYBACK_PAUSE","PLAYBACK_SEEK","PLAYBACK_SEEKED","PLAYBACK_STOP","PLAYBACK_ERROR","PLAYBACK_STATS_ADD","PLAYBACK_FRAGMENT_LOADED","PLAYBACK_LEVEL_SWITCH","PLAYBACK_SUBTITLE_AVAILABLE","PLAYBACK_SUBTITLE_CHANGED","CORE_CONTAINERS_CREATED","CORE_ACTIVE_CONTAINER_CHANGED","CORE_OPTIONS_CHANGE","CORE_READY","CORE_FULLSCREEN","CORE_RESIZE","CORE_SCREEN_ORIENTATION_CHANGED","CORE_MOUSE_MOVE","CORE_MOUSE_LEAVE","CONTAINER_PLAYBACKSTATE","CONTAINER_PLAYBACKDVRSTATECHANGED","CONTAINER_BITRATE","CONTAINER_STATS_REPORT","CONTAINER_DESTROYED","CONTAINER_READY","CONTAINER_ERROR","CONTAINER_LOADEDMETADATA","CONTAINER_SUBTITLE_AVAILABLE","CONTAINER_SUBTITLE_CHANGED","CONTAINER_TIMEUPDATE","CONTAINER_PROGRESS","CONTAINER_PLAY","CONTAINER_STOP","CONTAINER_PAUSE","CONTAINER_ENDED","CONTAINER_CLICK","CONTAINER_DBLCLICK","CONTAINER_CONTEXTMENU","CONTAINER_MOUSE_ENTER","CONTAINER_MOUSE_LEAVE","CONTAINER_SEEK","CONTAINER_SEEKED","CONTAINER_VOLUME","CONTAINER_FULLSCREEN","CONTAINER_STATE_BUFFERING","CONTAINER_STATE_BUFFERFULL","CONTAINER_SETTINGSUPDATE","CONTAINER_HIGHDEFINITIONUPDATE","CONTAINER_MEDIACONTROL_SHOW","CONTAINER_MEDIACONTROL_HIDE","CONTAINER_MEDIACONTROL_DISABLE","CONTAINER_MEDIACONTROL_ENABLE","CONTAINER_STATS_ADD","CONTAINER_OPTIONS_CHANGE","MEDIACONTROL_RENDERED","MEDIACONTROL_FULLSCREEN","MEDIACONTROL_SHOW","MEDIACONTROL_HIDE","MEDIACONTROL_MOUSEMOVE_SEEKBAR","MEDIACONTROL_MOUSELEAVE_SEEKBAR","MEDIACONTROL_PLAYING","MEDIACONTROL_NOTPLAYING","MEDIACONTROL_CONTAINERCHANGED","MEDIACONTROL_OPTIONS_CHANGE","assign","extend","formatTime","seekStringToSeconds","uniqueId","isNumber","currentScriptUrl","getBrowserLanguage","now","removeArrayItem","listContainsIgnoreCase","canAutoPlayMedia","source","prop","propDescriptor","parent","properties","Surrogate","initialize","time","paddedHours","isFinite","parseInt","seconds","minutes","hours","days","out","Fullscreen","isFullscreen","document","webkitFullscreenElement","webkitIsFullScreen","mozFullScreen","msFullscreenElement","requestFullscreen","el","webkitRequestFullscreen","mozRequestFullScreen","msRequestFullscreen","querySelector","webkitEnterFullScreen","cancelFullscreen","exitFullscreen","webkitCancelFullScreen","webkitExitFullscreen","mozCancelFullScreen","msExitFullscreen","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","Config","_defaultConfig","volume","parse","_defaultValueFor","e","undefined","_createKeyspace","domain","restore","hasLocalstorage","localStorage","persist","QueryString","paramsString","match","pl","search","decode","s","decodeURIComponent","replace","params","exec","query","window","location","substring","_urlParams","hash","_hashParams","paramName","seekString","hashParams","parts","factor","suffix","idsCounter","prefix","parseFloat","scripts","getElementsByTagName","src","requestAnimationFrame","mozRequestAnimationFrame","webkitRequestAnimationFrame","fn","setTimeout","bind","cancelAnimationFrame","mozCancelAnimationFrame","webkitCancelAnimationFrame","clearTimeout","navigator","language","performance","Date","arr","item","indexOf","splice","items","find","itemEach","cb","options","inline","muted","timeout","type","mp4","element","createElement","setAttribute","promise","play","timeoutId","setResult","Error","result","then","catch","err","videoStack","DomRecycler","configure","create","recycleVideo","shift","garbage","$el","tagName","children","Media","settings","evaluate","interpolate","escape","noMatch","escapes","escaper","htmlEntities","entityRe","RegExp","escapeExpr","string","counter","tmpl","text","data","render","matcher","offset","variable","Function","template","Playback","_i18n","_consented","i18n","playerError","consent","pause","stop","seek","seekPercentage","percentage","getStartTimeOffset","getDuration","isPlaying","getPlaybackType","NO_OP","isHighDefinitionInUse","_options","attemptAutoPlay","canAutoPlay","closedCaptionsTracks","trackId","canPlay","mimeType","VOD","AOD","LIVE","BaseObject","ErrorMixin","createError","useCodePrefix","scope","origin","core","container","prefixedCode","code","defaultError","description","level","Levels","FATAL","raw","errorData","UI","defaultUI","title","t","message","warn","UICorePlugin","enabled","bindEvents","getExternalInterface","enable","show","disable","hide","module","exports","delegateEventSplitter","UIObject","cid","_ensureElement","delegateEvents","$","selector","destroy","undelegateEvents","setElement","delegate","zepto","isZ","attrs","attributes","className","attr","CorePlugin","PlayerInfo","playbackPlugins","currentSize","width","height","_players","getInstance","playerId","UIContainerPlugin","ContainerPlugin","Kibo","Mediator","opts","Styler","getStyleFor","style","baseUrl","html","toString","PlayerError","WARN","INFO","version","Player","Browser","MediaControl","Container","Core","Loader","Utils","BaseFlashPlayback","Flash","FlasHLS","HLS","HTML5Audio","HTML5Video","HTMLImg","NoOp","ClickToPausePlugin","DVRControls","Favicon","Log","Poster","SpinnerThreeBouncePlugin","WaterMarkPlugin","Vendor","loader","_loader","plugins","activeContainer","ended","buffering","_ready","onReady","onResize","onPlay","onPause","onStop","onEnded","onSeek","onError","onTimeUpdate","onVolumeUpdate","onSubtitleAvailable","playbackDefaultOptions","defaultOptions","persistConfig","allowUserInteraction","isMobile","playback","sources","_normalizeSources","chromeless","disableKeyboardShortcuts","_registerOptionEventListeners","_coreFactory","playerInfo","parentId","setParentId","attachTo","parentElement","_addEventListeners","isReady","_onReady","_containerChanged","_onFullscreenChange","_onResize","_addContainerEventListeners","_onPlay","_onPause","_onStop","_onEnded","_onSeek","_onError","_onTimeUpdate","_onVolumeUpdate","_onSubtitleAvailable","newEvents","hasNewEvents","userEvent","eventType","eventsMapping","eventFunction","fullscreen","size","getCurrentTime","timeProgress","resize","load","autoPlay","getCurrentPlayback","mute","_mutedVolume","getVolume","setVolume","unmute","isDvrEnabled","isDvrInUse","getPlugin","plugin","Object","defineProperty","predicate","TypeError","o","len","thisArg","kValue","setItem","removeItem","hasFlash","fo","ActiveXObject","mimeTypes","enabledPlugin","getBrowserInfo","ua","extra","appName","appVersion","getBrowserData","browserObject","userAgent","browserRegExp","identifier","browserRegExpResult","group","versionIdentifier","versionRegExp","versionRegExpResult","setBrowserVersion","splitVersion","fullVersion","majorVersion","minorVersion","getOsData","osObject","osRegExp","osRegExpResult","setOsVersion","versionSeparator","separator","finalSeparator","substr","getViewportSize","viewportObject","setViewportOrientation","orientation","viewport","getDevice","platformRegExp","matches","device","browserInfo","isEdge","isChrome","isSafari","isFirefox","isLegacyIE","isIE","isIE11","isChromecast","isiOS","isAndroid","isWindowsPhone","isWin8App","isWiiU","isPS4","os","BROWSER_DATA","OS_DATA","BOLD","DEBUG","LEVEL_DEBUG","LEVEL_INFO","LEVEL_WARN","LEVEL_ERROR","LEVEL_DISABLED","COLORS","DESCRIPTIONS","offLevel","kibo","down","onOff","BLACKLIST","log","info","previousLevel","console","newLevel","color","klassDescription","_instance","setLevel","KEY_NAMES_BY_CODE","KEY_CODES_BY_NAME","hasOwnProperty","MODIFIERS","registerEvent","addEventListener","func","attachEvent","unregisterEvent","removeEventListener","detachEvent","stringContains","neatString","capitalize","isString","what","arrayIncludes","haystack","needle","extractModifiers","keyCombination","modifiers","extractKey","keys","modifiersAndKey","keyName","keyCode","that","lastKeyCode","lastModifiers","keysDown","any","keysUp","downHandler","handler","upHandler","unloader","upOrDown","registeredKeys","lastModifiersAndKey","event","preventDefault","registerKeys","newKeys","unregisterKeys","String","up","lastKey","modifier","CoreFactory","player","addCorePlugins","createContainers","corePlugins","Plugin","addPlugin","setupExternalInterface","externalFunctions","tabindex","ready","dummyMediaControl","_dummyMediaControl","_activeContainer","configureDomRecycler","firstResize","containers","_boundFullscreenHandler","handleFullscreenChange","handleWindowResize","defer","Deferred","containerFactory","prepareContainers","setupContainers","resolveOnContainersReady","updateSize","setFullscreen","setPlayerSize","addClass","removeAttr","previousSize","removeClass","triggerResize","enableResizeObserver","checkSizeCallback","clientWidth","clientHeight","resizeObserverInterval","setInterval","newSize","thereWasChange","oldHeight","oldWidth","computedSize","disableResizeObserver","clearInterval","when","done","resolve","hasPlugin","unbind","innerWidth","innerHeight","_screenOrientation","removeContainer","c","setupContainer","renderContainers","appendToParent","appendChild","createContainer","getCurrentContainer","activePlayback","toggleFullscreen","onMouseMove","onMouseLeave","hasCoreParent","appendTo","append","ContainerFactory","findPlaybackPlugin","p","resolvedSource","protocol","playbackPlugin","addContainerPlugins","containerPlugins","class","hasClosedCaptionsTracks","closedCaptionsTrackId","currentTime","mediaControlDisabled","progress","timeUpdated","onBuffering","bufferfull","settingsUpdate","loadedMetadata","highDefinitionUpdate","updateBitrate","playbackStateChanged","playbackDvrStateChanged","disableMediaControl","enableMediaControl","onSeeked","playing","paused","stopped","subtitleAvailable","subtitleChanged","track","state","dvrInUse","newBitrate","statsReport","metrics","dvrEnabled","setStyle","css","animate","duration","metadata","current","clicked","dblClicked","onContextMenu","mouseEnter","mouseLeave","isHD","updateStyle","externalPlugins","useOnlyPlainHtml5Plugins","isArray","validateExternalPluginsType","addExternalPlugins","groupPluginsByType","reduce","memo","removeDups","list","groupUp","pluginsMap","reduceRight","unshift","plugintypes","errorMessage","ReferenceError","MIMETYPES","codec","AUDIO_MIMETYPES","KNOWN_AUDIO_MIMETYPES","acc","UNKNOWN_ERROR","isAudioOnly","resourceUrl","_mimeTypesForUrl","audioOnly","_isBuffering","_destroyed","_loadStarted","_playheadMoving","_playheadMovingTimer","_stopped","_ccTrackId","_setupSrc","disableContextMenu","disableVideoTagContextMenu","playbackConfig","preload","posterUrl","poster","url","defaultMuted","loop","controls","useVideoTagDefaultControls","crossOrigin","playInline","playsinline","crossorigin","default","left","right","externalTracks","_setupExternalTracks","process","nextTick","disableCanAutoPlay","autoPlayTimeout","tracks","_externalTracks","kind","label","lang","srcUrl","_ccIsSetup","_src","_onLoadedMetadata","_handleBufferingEvents","target","_updateSettings","autoSeekFromUrl","_checkInitialSeek","_onDurationChange","_onProgress","seekEnabled","isSeekEnabled","onDemandType","Infinity","removeAttribute","_stopPlayheadMovingChecks","isMuted","_startPlayheadMovingChecks","_playheadMovingTimeOnCheck","_determineIfPlayheadMoving","before","_onWaiting","_onLoadedData","_onCanPlay","_onPlaying","_checkForClosedCaptions","_onSeeking","_onSeeked","playheadShouldBeMoving","readyState","HAVE_FUTURE_DATA","isUnknownError","formattedError","handleTextTrackChange","textTracks","seekTime","total","buffered","bufferedPos","start","end","_typeFor","_isReadyState","isHTML5Video","_handleTextTrackChange","mode","showingTrack","mimeTypesByExtension","extension","_canPlay","media","canPlayType","mediaType","updateSettings","mimetypes","_onLoad","evt","m","resource","_noiseFrameNum","playbackNotSupported","playbackNotSupportedMessage","showForNoOp","_animate","_noise","idata","createImageData","canvas","buffer32","Uint32Array","buffer","Math","random","pow","putImageData","_loop","_stop","_animationHandle","getContext","showTimeout","onBufferFull","StatsPlugin","setInitialAttrs","reportInterval","onStatsAdd","firstPlay","startupTime","rebufferingTime","watchingTime","rebuffers","externalMetrics","watchingTimeInit","intervalId","report","startupTimeInit","rebufferingTimeInit","getRebufferingTime","getWatchingTime","totalTime","isRebuffering","metric","getStats","position","watermark","imageUrl","imageLink","watermarkLink","hidden","templateOptions","PosterPlugin","showOnVideoEnd","hasStartedPlaying","playRequested","update","hasFatalError","showPlayButton","updatePlayButton","hidePlayButton","disableErrorScreen","$playButton","shouldHideOnPlay","shouldRender","updatePoster","showPoster","hidePoster","isRegularPoster","custom","$playWrapper","buttonsColor","mediacontrol","buttons","GoogleAnalytics","gaAccount","account","trackerName","gaTrackerName","domainName","gaDomainName","currentHDState","embedScript","_gat","script","onload","addEventListeners","body","onPlaybackChanged","onVolumeChanged","CONTAINER_FULL_SCREEN","onFullscreen","onHD","onDVR","_gaq","status","playbackState","array","res","click","pointerEnabled","playbackIsNOOP","userDisabled","intendedVolume","currentPositionValue","currentDurationValue","keepVisible","fullScreenOnVideoTagSupported","setInitialVolume","focusElement","bindKeyEvents","isEmptyObject","stopDragHandler","stopDrag","updateDragHandler","updateDrag","onActiveContainerChanged","hideMediaControlDelay","playerResize","bindContainerEvents","changeTogglePlay","updateProgressBar","nodeName","onLoadedMetadataOnVideoTag","unbindKeyEvents","initialVolume","updateVolumeUI","video","webkitSupportsFullscreen","rendered","$volumeBarContainer","containerWidth","barWidth","$volumeBarBackground","pos","$volumeBarFill","$volumeBarScrubber","ceil","$volumeIcon","applyButtonStyle","$playPauseToggle","$playStopToggle","mousemoveOnSeekBar","offsetX","pageX","$seekBarContainer","$seekBarHover","mouseleaveOnSeekBar","onVolumeClick","getVolumeFromUIEvent","mousemoveOnVolumeBar","draggingVolumeBar","$fullscreenToggle","icon","hideVolumeBar","togglePlayPause","togglePlayStop","startSeekDrag","draggingSeekBar","$seekBarLoaded","$seekBarPosition","$seekBarScrubber","startVolumeDrag","min","max","setSeekPercentage","offsetY","volumeFromUI","toggleMute","isInitialVolume","setWhenContainerReady","resetUserKeepVisible","showVolumeBar","hideVolumeId","loadedStart","loadedEnd","renderSeekBar","currentSeekBarPercentage","newPosition","newDuration","displayedPosition","$position","displayedDuration","$duration","setKeepVisible","resetKeepVisible","setUserKeepVisible","userKeepVisible","isVisible","hasClass","disabled","mousePointerMoved","clientX","lastMouseX","clientY","lastMouseY","hideId","showing","updateCursorStyle","delay","hideMediaControl","hasKeepVisibleRequested","hasDraggingAction","newSettings","getSettings","settingsChanged","$hdIndicator","createCachedElements","$layer","$volumeContainer","resetIndicators","initializeIcons","displayedSeekBarPercentage","seekRelative","delta","bindKeyAndShow","parseColors","seekbarColor","seekbar","previousSeekPercentage","mediaControl","containerChanged","dvrChanged","useDvrControls","live","backToLive","ClosedCaptions","config","closedCaptionsConfig","_title","_ariaLabel","ariaLabel","_labelCb","labelCallback","hideContextMenu","onSubtitleChanged","onContainerStop","ccAvailable","renderCcButton","setCurrentContextMenuElement","onTrackSelect","dataset","ccSelect","stopPropagation","hasCC","toggleContextMenu","toggle","contextMenuElement","isNaN","_trackId","$ccButton","disabledLabel","$fullscreen","insertAfter","prepend","oldIcon","_container","changeFavicon","setPlayIcon","setPauseIcon","resetIcon","createIcon","svg","fillStyle","d","path","Path2D","fill","toDataURL","playIcon","changeIcon","pauseIcon","SeekTime","mediaControlContainer","isLiveStreamWithDvr","actualLiveTime","hoveringOverSeekBar","hoverPosition","firstFragDateTime","actualLiveServerTime","actualLiveServerTimeDiff","getTime","showTime","hideTime","onContainerChanged","updateDuration","calculateHoverPosition","getSeekTime","secondsSinceMidnight","useActualLiveTime","setHours","shouldBeVisible","currentSeekTime","displayedSeekTime","$seekTimeEl","durationShown","$durationEl","currentDuration","elWidth","elLeftPos","SourcesPlugin","onContainersCreated","firstValidSource","EndVideo","exitOnEnd","exitFullscreenOnEnd","Strings","_initializeMessages","_language","fallbackLang","_messages","defaultMessages","strings","ErrorScreen","bindReload","reloadButton","reload","unbindReload","reloadIcon"],"mappings":"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,0CAA0C,sBAAsB;AAC3F,2BAA2B;AAC3B,2BAA2B,oDAAoD,sCAAsC;AACrH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,+CAA+C,oCAAoC;;AAE5G;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,+CAA+C,sCAAsC;AACrF;;AAEA;AACA;AACA,eAAe,SAAS;AACxB;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,+BAA+B,4BAA4B;AAC3D;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB;AACjB;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA,eAAe;AACf,YAAY;AACZ;;AAEA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,iBAAiB,qBAAqB;AACtC;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,sBAAsB;AACvC;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA,2CAA2C,4BAA4B;AACvE,KAAK;AACL;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;AACA,oEAAoE,cAAc;AAClF;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL,wBAAwB,oBAAoB;AAC5C;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT;AACA,wCAAwC,mCAAmC;AAC3E;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA,0CAA0C,wBAAwB;AAClE,KAAK;AACL;AACA,kCAAkC,6DAA6D;AAC/F,KAAK;AACL;AACA;AACA,oEAAoE,oBAAoB;AACxF,OAAO;AACP,KAAK;AACL;AACA,kCAAkC,sBAAsB;AACxD,KAAK;AACL;AACA;AACA,sCAAsC,sBAAsB;AAC5D,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA,KAAK;AACL;AACA,iCAAiC,8BAA8B;AAC/D,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL,6BAA6B,yEAAyE;AACtG,6BAA6B,qEAAqE;AAClG;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,KAAK;AACL;AACA,kCAAkC;AAClC;AACA,OAAO,QAAQ;AACf,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,KAAK;AACL;AACA;AACA,kCAAkC,oBAAoB;AACtD,KAAK;AACL;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP;AACA,uDAAuD,uBAAuB;AAC9E;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;AACA,gBAAgB;AAChB;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;;AAEA;AACA;AACA;AACA,+BAA+B,iDAAiD;AAChF;AACA;AACA,OAAO;AACP;AACA;AACA,iCAAiC,4CAA4C;AAC7E;AACA,6EAA6E;AAC7E;;AAEA,kCAAkC,yBAAyB,SAAS;AACpE,KAAK;AACL;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT,OAAO;AACP,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,yBAAyB;AAC5C,mBAAmB,qCAAqC;AACxD,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,mBAAmB,0BAA0B;AAC7C,mBAAmB,qCAAqC;AACxD,KAAK;AACL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,oEAAoE,kBAAkB;;AAEtF;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;AACA,GAAG;AACH;AACA,yCAAyC,4BAA4B;;AAErE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA,GAAG;;AAEH;AACA;AACA,iDAAiD,SAAS;AAC1D;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX,SAAS;AACT,OAAO;AACP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;;AAEA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED;AACA;;AAEA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,aAAa,eAAe;;AAE5B;;AAEA;AACA;AACA;;AAEA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;;AAEA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA,KAAK;;AAEL;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,kCAAkC;AAClC;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,6CAA6C,IAAI;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,8BAA8B,eAAe;AAC7C;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,mBAAmB,EAAE;AACrB,2CAA2C,8CAA8C;AACzF;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa,YAAY;;AAEzB;AACA;;AAEA;AACA,SAAS;AACT;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;AACA;AACA,OAAO;;AAEP;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB;;AAEzB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iBAAiB,qCAAqC;AACtD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;;AAET;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,eAAe;AACf;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;;AAED,CAAC;AACD;;AAEA;AACA;AACA;AACA,4CAA4C,iBAAiB;AAC7D,2CAA2C,iBAAiB;AAC5D,+CAA+C,SAAS;AACxD;AACA;AACA;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA,WAAW;AACX;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,mBAAmB;AACnB;AACA;AACA;AACA;AACA,iBAAiB;AACjB,eAAe;AACf;AACA,aAAa;AACb,WAAW;;AAEX;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,SAAS;AACT;;AAEA;AACA;AACA;AACA;AACA;AACA,KAAK;;AAEL;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,aAAa;AACb;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,aAAa,SAAS;AACtB;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA,+BAA+B,gCAAgC;AAC/D,mBAAmB;AACnB,sBAAsB;AACtB;AACA,eAAe,qCAAqC;AACpD,eAAe;;AAEf;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,YAAY;AACZ;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;;AAEA,aAAa;;AAEb;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,OAAO;AACP;AACA;AACA,KAAK;AACL;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,8BAA8B,YAAY;AAC1C,+BAA+B,aAAa;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;;AAEP;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,sBAAsB;AACtB;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,0CAA0C,yCAAyC;AACnF;AACA;AACA;;AAEA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO;AACP,KAAK;AACL;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,CAAC;;AAED,CAAC;AACD;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,OAAO;AACP;AACA;AACA;AACA;AACA,CAAC;;AAED,CAAC;AACD;;AAEA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yBAAyB,iCAAiC;AAC1D,yBAAyB,kCAAkC;AAC3D,yBAAyB,iCAAiC;AAC1D,yBAAyB,gCAAgC;AACzD,yBAAyB,yBAAyB;AAClD,4BAA4B,6BAA6B;AACzD,mCAAmC,4CAA4C;AAC/E,sCAAsC,iCAAiC;AACvE,qCAAqC,qDAAqD;AAC1F,oCAAoC;AACpC;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,OAAO;AACP;AACA;AACA,OAAO;AACP;AACA;AACA;AACA,+CAA+C,uCAAuC;AACtF,KAAK;AACL;;AAEA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA,CAAC;AACD;;;;;;;ACj4DA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,mCAAmC,gBAAgB;AACnD,IAAI;AACJ;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA,YAAY,oBAAoB;AAChC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,oDAAoD,cAAc;;AAElE;AACA;;;;;;;AC3EA,6BAA6B;AAC7B,qCAAqC,gC;;;;;;ACDrC;AACA;AACA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA,8CAA8C;AAC9C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;;AAEA;;AAEA;;AAEA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;;AAEA;;AAEA;AACA;;AAEA,iBAAiB,mBAAmB;AACpC;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,iBAAiB,sBAAsB;AACvC;;AAEA;AACA,mBAAmB,2BAA2B;;AAE9C;AACA;AACA;AACA;AACA;;AAEA;AACA,gBAAgB,mBAAmB;AACnC;AACA;;AAEA;AACA;;AAEA,iBAAiB,2BAA2B;AAC5C;AACA;;AAEA,QAAQ,uBAAuB;AAC/B;AACA;AACA,GAAG;AACH;;AAEA,iBAAiB,uBAAuB;AACxC;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;;AAEA;AACA;AACA;;AAEA,gBAAgB,iBAAiB;AACjC;AACA;AACA;AACA;AACA;AACA,cAAc;;AAEd,kDAAkD,sBAAsB;AACxE;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA,GAAG;AACH;AACA;AACA;AACA,EAAE;AACF;AACA,EAAE;AACF;AACA;AACA,EAAE;AACF;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA,EAAE;AACF;;AAEA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;A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nV,aAAL;AACA,WAAKmV,OAAL,GAAe,KAAf;AACD;AACF,G;;4BAEDC,U,yBAAa,CAAE,C;;4BAEfe,O,sBAAU;AACR,SAAKnW,aAAL;AACD,G;;;;;kBA5BkBuX,e;;;AA+BrB,sBAAcA,gBAAgBta,SAA9B;;AAEAsa,gBAAgB9P,MAAhB,GAAyB,UAASe,UAAT,EAAqB;AAC5C,SAAO,mBAAO+O,eAAP,EAAwB/O,UAAxB,CAAP;AACD,CAFD;;AAIA+O,gBAAgBtI,IAAhB,GAAuB,WAAvB;;;;;;;AChDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACnBA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACXA,iBAAiB;;AAEjB;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACLA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA,mDAAmD;AACnD;AACA,uCAAuC;AACvC,E;;;;;;ACLA;AACA;AACA;AACA,a;;;;;;ACHA,yC;;;;;;ACAA,kBAAkB,yD;;;;;;ACAlB,sB;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,6BAA6B;AAC7B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;;;;;;;ACxCA;AACA;AACA;;AAEA;AACA,kEAAkE,+BAA+B;AACjG,E;;;;;;ACNA,oC;;;;;;ACAA;AACA;AACA;AACA;AACA;AACA;AACA,0DAA0D,sBAAsB;AAChF,gFAAgF,sBAAsB;AACtG,E;;;;;;ACRA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG,UAAU;AACb;AACA,E;;;;;;;;;;;;;ACfA;;;;;;kBAEe,EAAEuI,oBAAF,E;;;;;;;;;;;;;;;;;;ACMf;;;;;;AAEA,IAAMtZ,SAAS,sBAAf,C,CAVA;AACA;AACA;;AAEA;;;;IAQqBuZ,Q;;;;kBAAAA,Q;;;AAGrBA,SAASzY,EAAT,GAAc,UAAS1B,IAAT,EAAeoB,QAAf,EAAyBO,OAAzB,EAAkC;AAC9Cf,SAAOc,EAAP,CAAU1B,IAAV,EAAgBoB,QAAhB,EAA0BO,OAA1B;AACA;AACD,CAHD;;AAKAwY,SAASrY,IAAT,GAAgB,UAAS9B,IAAT,EAAeoB,QAAf,EAAyBO,OAAzB,EAAkC;AAChDf,SAAOkB,IAAP,CAAY9B,IAAZ,EAAkBoB,QAAlB,EAA4BO,OAA5B;AACA;AACD,CAHD;;AAKAwY,SAASpY,GAAT,GAAe,UAAS/B,IAAT,EAAeoB,QAAf,EAAyBO,OAAzB,EAAkC;AAC/Cf,SAAOmB,GAAP,CAAW/B,IAAX,EAAiBoB,QAAjB,EAA2BO,OAA3B;AACA;AACD,CAHD;;AAKAwY,SAAS9X,OAAT,GAAmB,UAASrC,IAAT,EAAwB;AAAA,oCAANoa,IAAM;AAANA,QAAM;AAAA;;AACzCxZ,SAAOyB,OAAP,CAAelC,KAAf,CAAqBS,MAArB,GAA8BZ,IAA9B,SAAuCoa,IAAvC;AACA;AACD,CAHD;;AAKAD,SAASzX,aAAT,GAAyB,UAAS5C,GAAT,EAAcE,IAAd,EAAoBoB,QAApB,EAA8B;AACrDR,SAAO8B,aAAP,CAAqB5C,GAArB,EAA0BE,IAA1B,EAAgCoB,QAAhC;AACA;AACD,CAHD;;;;;;;;;;;;;;ACnCA;;;;;;;;;;;;;ACAA;AACA;;AAEA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,SAAS;AACT;AACA;AACA,KAAK;AACL;AACA;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;;;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA,SAAS;AACT;AACA;AACA;AACA;AACA;;;;AAIA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA,uBAAuB,sBAAsB;AAC7C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,qBAAqB;AACrB;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA,2BAA2B;AAC3B;AACA;AACA;AACA,4BAA4B,UAAU;;;;;;;ACnLtC,iK;;;;;;ACAA;AACA,qEAAsE,gBAAgB,UAAU,GAAG;AACnG,CAAC,E;;;;;;ACFD;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACNA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;AChBA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA;AACA,2DAA2D;AAC3D,E;;;;;;ACLA;AACA;AACA;AACA;AACA;AACA,8BAA8B;AAC9B;AACA;AACA,mDAAmD,OAAO,EAAE;AAC5D,E;;;;;;;ACTA;AACA;;AAEA;AACA;AACA,6BAA6B;AAC7B,cAAc;AACd;AACA,CAAC;AACD;AACA;AACA;AACA,+BAA+B;AAC/B;AACA;AACA,UAAU;AACV,CAAC,E;;;;;;;AChBD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,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BAAmB,sCAAsC;AACzD,CAAC,oCAAoC;AACrC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,CAAC,W;;;;;;AChCD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,WAAW,eAAe;AAC/B;AACA,KAAK;AACL;AACA,E;;;;;;ACpBA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACNA;AACA,oD;;;;;;ACDA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA,CAAC,E;;;;;;ACRD,kBAAkB,yD;;;;;;ACAlB;AACA;AACA,uD;;;;;;ACFA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;;AChBA;AACA;AACA;AACA;AACA;;AAEA;AACA,2FAAgF,aAAa,EAAE;;AAE/F;AACA,qDAAqD,0BAA0B;AAC/E;AACA,E;;;;;;ACZA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACZA,8E;;;;;;ACAA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA,wGAAwG,OAAO;AAC/G;AACA;AACA;AACA;AACA;AACA,C;;;;;;;ACZA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA,gCAAgC;AAChC,cAAc;AACd,iBAAiB;AACjB;AACA,CAAC;AACD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;;AAEA;AACA;AACA,4B;;;;;;ACjCA,4BAA4B,e;;;;;;ACA5B;AACA,UAAU;AACV,E;;;;;;ACFA,kBAAkB,yD;;;;;;ACAlB;AACA;AACA;AACA;AACA,+C;;;;;;;ACJA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,uBAAuB;AACvB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,sBAAsB;AACtB,oBAAoB,uBAAuB,SAAS,IAAI;AACxD,GAAG;AACH,CAAC;AACD;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,CAAC;AACD;AACA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,yDAAyD;AACzD;AACA,KAAK;AACL;AACA,sBAAsB,iCAAiC;AACvD,KAAK;AACL,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,8DAA8D,8BAA8B;AAC5F;AACA;AACA;AACA;AACA,GAAG;;AAEH;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA;;AAEA;AACA;AACA;AACA;;AAEA,0DAA0D,gBAAgB;;AAE1E;AACA;AACA;AACA,oBAAoB,oBAAoB;;AAExC,0CAA0C,oBAAoB;;AAE9D;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA,GAAG;AACH,wBAAwB,eAAe,EAAE;AACzC,wBAAwB,gBAAgB;AACxC,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA,oDAAoD,KAAK,QAAQ,iCAAiC;AAClG,CAAC;AACD;AACA,+CAA+C;AAC/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0C;;;;;;AC1OA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,iDAAiD;AACjD,CAAC;AACD;AACA,qBAAqB;AACrB;AACA,SAAS;AACT,IAAI;AACJ;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACpDA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,E;;;;;;ACTA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG;AACH,E;;;;;;ACdA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA;AACA,kBAAkB;;AAElB;AACA;;AAEA;AACA;AACA;AACA,GAAG;AACH;AACA;AACA;;AAEA;AACA;AACA;;;;;;;;;;;;;AClBA,yC;;;;;;ACAA,sC;;;;;;ACAA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA,qEAAuE,0CAA0C,E;;;;;;ACFjH,kBAAkB,yD;;;;;;ACAlB;AACA,8D;;;;;;ACDA;AACA;AACA,8BAA8B,6CAA4C,E;;;;;;ACF1E;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,kDAAkD;AAClD;AACA;AACA;AACA;AACA;AACA,OAAO,UAAU,cAAc;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA,KAAK,GAAG;AACR;AACA,E;;;;;;ACxBA;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA;AACA,8BAA8B,gCAAoC,E;;;;;;ACFlE,kBAAkB,yD;;;;;;ACAlB;AACA;AACA;AACA;AACA,E;;;;;;ACJA;AACA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","file":"clappr.plainhtml5.js","sourcesContent":["(function webpackUniversalModuleDefinition(root, factory) {\n\tif(typeof exports === 'object' && typeof module === 'object')\n\t\tmodule.exports = factory();\n\telse if(typeof define === 'function' && define.amd)\n\t\tdefine([], factory);\n\telse if(typeof exports === 'object')\n\t\texports[\"Clappr\"] = factory();\n\telse\n\t\troot[\"Clappr\"] = factory();\n})(typeof self !== 'undefined' ? self : this, function() {\nreturn \n\n\n// WEBPACK FOOTER //\n// webpack/universalModuleDefinition"," \t// The module cache\n \tvar installedModules = {};\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, {\n \t\t\t\tconfigurable: false,\n \t\t\t\tenumerable: true,\n \t\t\t\tget: getter\n \t\t\t});\n \t\t}\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"\";\n\n \t// Load entry module and return exports\n \treturn __webpack_require__(__webpack_require__.s = 96);\n\n\n\n// WEBPACK FOOTER //\n// webpack/bootstrap f72bc783886e58c8e50d","\"use strict\";\n\nexports.__esModule = true;\n\nexports.default = function (instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/classCallCheck.js\n// module id = 0\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && ((typeof call === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(call)) === \"object\" || typeof call === \"function\") ? call : self;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/possibleConstructorReturn.js\n// module id = 1\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _setPrototypeOf = require(\"../core-js/object/set-prototype-of\");\n\nvar _setPrototypeOf2 = _interopRequireDefault(_setPrototypeOf);\n\nvar _create = require(\"../core-js/object/create\");\n\nvar _create2 = _interopRequireDefault(_create);\n\nvar _typeof2 = require(\"../helpers/typeof\");\n\nvar _typeof3 = _interopRequireDefault(_typeof2);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + (typeof superClass === \"undefined\" ? \"undefined\" : (0, _typeof3.default)(superClass)));\n }\n\n subClass.prototype = (0, _create2.default)(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) _setPrototypeOf2.default ? (0, _setPrototypeOf2.default)(subClass, superClass) : subClass.__proto__ = superClass;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/inherits.js\n// module id = 2\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _defineProperty = require(\"../core-js/object/define-property\");\n\nvar _defineProperty2 = _interopRequireDefault(_defineProperty);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n (0, _defineProperty2.default)(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/createClass.js\n// module id = 3\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Log from '../plugins/log'\nimport { uniqueId } from './utils'\n\nconst slice = Array.prototype.slice\n\nconst eventSplitter = /\\s+/\n\nconst eventsApi = function(obj, action, name, rest) {\n if (!name) return true\n\n // Handle event maps.\n if (typeof name === 'object') {\n for (const key in name)\n obj[action].apply(obj, [key, name[key]].concat(rest))\n\n return false\n }\n\n // Handle space separated event names.\n if (eventSplitter.test(name)) {\n const names = name.split(eventSplitter)\n for (let i = 0, l = names.length; i < l; i++)\n obj[action].apply(obj, [names[i]].concat(rest))\n\n return false\n }\n\n return true\n}\n\nconst triggerEvents = function(events, args, klass, name) {\n let ev, i = -1\n const l = events.length, a1 = args[0], a2 = args[1], a3 = args[2]\n run()\n\n function run() {\n try {\n switch (args.length) {\n /* eslint-disable curly */\n case 0: while (++i < l) { (ev = events[i]).callback.call(ev.ctx) } return\n case 1: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1) } return\n case 2: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1, a2) } return\n case 3: while (++i < l) { (ev = events[i]).callback.call(ev.ctx, a1, a2, a3) } return\n default: while (++i < l) { (ev = events[i]).callback.apply(ev.ctx, args) } return\n }\n } catch (exception) {\n Log.error.apply(Log, [klass, 'error on event', name, 'trigger','-', exception])\n run()\n }\n }\n}\n\n/**\n * @class Events\n * @constructor\n * @module base\n */\nexport default class Events {\n /**\n * listen to an event indefinitely, if you want to stop you need to call `off`\n * @method on\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n on(name, callback, context) {\n if (!eventsApi(this, 'on', name, [callback, context]) || !callback) return this\n this._events || (this._events = {})\n const events = this._events[name] || (this._events[name] = [])\n events.push({ callback: callback, context: context, ctx: context || this })\n return this\n }\n\n /**\n * listen to an event only once\n * @method once\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n once(name, callback, context) {\n let once\n if (!eventsApi(this, 'once', name, [callback, context]) || !callback) return this\n const off = () => this.off(name, once)\n once = function() {\n off(name, once)\n callback.apply(this, arguments)\n }\n return this.on(name, once, context)\n }\n\n /**\n * stop listening to an event\n * @method off\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n */\n off(name, callback, context) {\n let retain, ev, events, names, i, l, j, k\n if (!this._events || !eventsApi(this, 'off', name, [callback, context])) return this\n if (!name && !callback && !context) {\n this._events = void 0\n return this\n }\n names = name ? [name] : Object.keys(this._events)\n // jshint maxdepth:5\n for (i = 0, l = names.length; i < l; i++) {\n name = names[i]\n events = this._events[name]\n if (events) {\n this._events[name] = retain = []\n if (callback || context) {\n for (j = 0, k = events.length; j < k; j++) {\n ev = events[j]\n if ((callback && callback !== ev.callback && callback !== ev.callback._callback) ||\n (context && context !== ev.context))\n retain.push(ev)\n\n }\n }\n if (!retain.length) delete this._events[name]\n }\n }\n return this\n }\n\n /**\n * triggers an event given its `name`\n * @method trigger\n * @param {String} name\n */\n trigger(name) {\n const klass = this.name || this.constructor.name\n Log.debug.apply(Log, [klass].concat(Array.prototype.slice.call(arguments)))\n if (!this._events) return this\n const args = slice.call(arguments, 1)\n if (!eventsApi(this, 'trigger', name, args)) return this\n const events = this._events[name]\n const allEvents = this._events.all\n if (events) triggerEvents(events, args, klass, name)\n if (allEvents) triggerEvents(allEvents, arguments, klass, name)\n return this\n }\n\n /**\n * stop listening an event for a given object\n * @method stopListening\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n */\n stopListening(obj, name, callback) {\n let listeningTo = this._listeningTo\n if (!listeningTo) return this\n const remove = !name && !callback\n if (!callback && typeof name === 'object') callback = this\n if (obj) (listeningTo = {})[obj._listenId] = obj\n for (const id in listeningTo) {\n obj = listeningTo[id]\n obj.off(name, callback, this)\n if (remove || Object.keys(obj._events).length === 0) delete this._listeningTo[id]\n }\n return this\n }\n\n static register(eventName) {\n Events.Custom || (Events.Custom = {})\n let property = typeof eventName === 'string' && eventName.toUpperCase().trim()\n\n if (property && !Events.Custom[property]) {\n Events.Custom[property] = property.toLowerCase().split('_').map(\n (value, index) => index === 0 ? value : value = (value[0].toUpperCase() + value.slice(1))\n ).join('')\n } else\n Log.error('Events', 'Error when register event: ' + eventName)\n\n }\n\n static listAvailableCustomEvents() {\n Events.Custom || (Events.Custom = {})\n return Object.keys(Events.Custom).filter((property) => typeof Events.Custom[property] === 'string')\n }\n}\n\n/**\n * listen to an event indefinitely for a given `obj`\n * @method listenTo\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n * @example\n * ```javascript\n * this.listenTo(this.core.playback, Events.PLAYBACK_PAUSE, this.callback)\n * ```\n */\n/**\n * listen to an event once for a given `obj`\n * @method listenToOnce\n * @param {Object} obj\n * @param {String} name\n * @param {Function} callback\n * @param {Object} context\n * @example\n * ```javascript\n * this.listenToOnce(this.core.playback, Events.PLAYBACK_PAUSE, this.callback)\n * ```\n */\nconst listenMethods = { listenTo: 'on', listenToOnce: 'once' }\n\nObject.keys(listenMethods).forEach(function(method) {\n Events.prototype[method] = function(obj, name, callback) {\n const listeningTo = this._listeningTo || (this._listeningTo = {})\n const id = obj._listenId || (obj._listenId = uniqueId('l'))\n listeningTo[id] = obj\n if (!callback && typeof name === 'object') callback = this\n obj[listenMethods[method]](name, callback, this)\n return this\n }\n})\n\n// PLAYER EVENTS\n/**\n * Fired when the player is ready on startup\n *\n * @event PLAYER_READY\n */\nEvents.PLAYER_READY = 'ready'\n/**\n * Fired when player resizes\n *\n * @event PLAYER_RESIZE\n * @param {Object} currentSize an object with the current size\n */\nEvents.PLAYER_RESIZE = 'resize'\n/**\n * Fired when player changes its fullscreen state\n *\n * @event PLAYER_FULLSCREEN\n * @param {Boolean} whether or not the player is on fullscreen mode\n */\nEvents.PLAYER_FULLSCREEN = 'fullscreen'\n/**\n * Fired when player starts to play\n *\n * @event PLAYER_PLAY\n */\nEvents.PLAYER_PLAY = 'play'\n/**\n * Fired when player pauses\n *\n * @event PLAYER_PAUSE\n */\nEvents.PLAYER_PAUSE = 'pause'\n/**\n * Fired when player stops\n *\n * @event PLAYER_STOP\n */\nEvents.PLAYER_STOP = 'stop'\n/**\n * Fired when player ends the video\n *\n * @event PLAYER_ENDED\n */\nEvents.PLAYER_ENDED = 'ended'\n/**\n * Fired when player seeks the video\n *\n * @event PLAYER_SEEK\n * @param {Number} time the current time in seconds\n */\nEvents.PLAYER_SEEK = 'seek'\n/**\n * Fired when player receives an error\n *\n * @event PLAYER_ERROR\n * @param {Object} error the error\n */\nEvents.PLAYER_ERROR = 'playererror'\n/**\n * Fired when there is an error\n *\n * @event ERROR\n * @param {Object} error\n * the error with the following format `{code, description, level, raw, origin, scope}`\n * @param {String} [options.code]\n * error's code: code to identify error in the following format: origin:code\n * @param {String} [options.description]\n * error's description: description of the error\n * @param {String} [options.level]\n * error's level: FATAL or WARN.\n * @param {String} [options.origin]\n * error's origin. Example: hls, html5, etc\n * @param {String} [options.scope]\n * error's scope. Example: playback, container, etc\n * @param {String} [options.raw]\n * raw error: the initial error received\n */\nEvents.ERROR = 'error'\n/**\n * Fired when the time is updated on player\n *\n * @event PLAYER_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\nEvents.PLAYER_TIMEUPDATE = 'timeupdate'\n/**\n * Fired when player updates its volume\n *\n * @event PLAYER_VOLUMEUPDATE\n * @param {Number} volume the current volume\n */\nEvents.PLAYER_VOLUMEUPDATE = 'volumeupdate'\n\n/**\n * Fired when subtitle is available\n *\n * @event PLAYER_SUBTITLE_AVAILABLE\n */\nEvents.PLAYER_SUBTITLE_AVAILABLE = 'subtitleavailable'\n\n// Playback Events\n/**\n * Fired when the playback is downloading the media\n *\n * @event PLAYBACK_PROGRESS\n * @param progress {Object}\n * Data progress object\n * @param [progress.start] {Number}\n * start position of buffered content at current position\n * @param [progress.current] {Number}\n * end position of buffered content at current position\n * @param [progress.total] {Number}\n * total content to be downloaded\n * @param buffered {Array}\n * array of buffered segments ({start, end}). [Only for supported playbacks]\n */\nEvents.PLAYBACK_PROGRESS = 'playback:progress'\n/**\n * Fired when the time is updated on playback\n *\n * @event PLAYBACK_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\nEvents.PLAYBACK_TIMEUPDATE = 'playback:timeupdate'\n/**\n * Fired when playback is ready\n *\n * @event PLAYBACK_READY\n */\nEvents.PLAYBACK_READY = 'playback:ready'\n/**\n * Fired when the playback starts having to buffer because\n * playback can currently not be smooth.\n *\n * This corresponds to the playback `buffering` property being\n * `true`.\n *\n * @event PLAYBACK_BUFFERING\n */\nEvents.PLAYBACK_BUFFERING = 'playback:buffering'\n/**\n * Fired when the playback has enough in the buffer to be\n * able to play smoothly, after previously being unable to\n * do this.\n *\n * This corresponds to the playback `buffering` property being\n * `false`.\n *\n * @event PLAYBACK_BUFFERFULL\n */\nEvents.PLAYBACK_BUFFERFULL = 'playback:bufferfull'\n/**\n * Fired when playback changes any settings (volume, seek and etc)\n *\n * @event PLAYBACK_SETTINGSUPDATE\n */\nEvents.PLAYBACK_SETTINGSUPDATE = 'playback:settingsupdate'\n/**\n * Fired when playback loaded its metadata\n *\n * @event PLAYBACK_LOADEDMETADATA\n * @param {Object} metadata Data\n * settings object\n * @param {Number} [metadata.duration]\n * the playback duration\n * @param {Object} [metadata.data]\n * extra meta data\n */\nEvents.PLAYBACK_LOADEDMETADATA = 'playback:loadedmetadata'\n/**\n * Fired when playback updates its video quality\n *\n * @event PLAYBACK_HIGHDEFINITIONUPDATE\n * @param {Boolean} isHD\n * true when is on HD, false otherwise\n */\nEvents.PLAYBACK_HIGHDEFINITIONUPDATE = 'playback:highdefinitionupdate'\n/**\n * Fired when playback updates its bitrate\n *\n * @event PLAYBACK_BITRATE\n * @param {Object} bitrate Data\n * bitrate object\n * @param {Number} [bitrate.bandwidth]\n * bitrate bandwidth when it's available\n * @param {Number} [bitrate.width]\n * playback width (ex: 720, 640, 1080)\n * @param {Number} [bitrate.height]\n * playback height (ex: 240, 480, 720)\n * @param {Number} [bitrate.level]\n * playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)\n */\nEvents.PLAYBACK_BITRATE = 'playback:bitrate'\n/**\n * Fired when the playback has its levels\n *\n * @event PLAYBACK_LEVELS_AVAILABLE\n * @param {Array} levels\n * the ordered levels, each one with the following format `{id: 1, label: '500kbps'}` ps: id should be a number >= 0\n * @param {Number} initial\n * the initial level otherwise -1 (AUTO)\n */\nEvents.PLAYBACK_LEVELS_AVAILABLE = 'playback:levels:available'\n/**\n * Fired when the playback starts to switch level\n *\n * @event PLAYBACK_LEVEL_SWITCH_START\n *\n */\nEvents.PLAYBACK_LEVEL_SWITCH_START = 'playback:levels:switch:start'\n/**\n * Fired when the playback ends the level switch\n *\n * @event PLAYBACK_LEVEL_SWITCH_END\n *\n */\nEvents.PLAYBACK_LEVEL_SWITCH_END = 'playback:levels:switch:end'\n\n/**\n * Fired when playback internal state changes\n *\n * @event PLAYBACK_PLAYBACKSTATE\n * @param {Object} state Data\n * state object\n * @param {String} [state.type]\n * the playback type\n */\nEvents.PLAYBACK_PLAYBACKSTATE = 'playback:playbackstate'\n/**\n * Fired when DVR becomes enabled/disabled.\n *\n * @event PLAYBACK_DVR\n * @param {boolean} state true if dvr enabled\n */\nEvents.PLAYBACK_DVR = 'playback:dvr'\n// TODO doc\nEvents.PLAYBACK_MEDIACONTROL_DISABLE = 'playback:mediacontrol:disable'\n// TODO doc\nEvents.PLAYBACK_MEDIACONTROL_ENABLE = 'playback:mediacontrol:enable'\n/**\n * Fired when the media for a playback ends.\n *\n * @event PLAYBACK_ENDED\n * @param {String} name the name of the playback\n */\nEvents.PLAYBACK_ENDED = 'playback:ended'\n/**\n * Fired when user requests `play()`\n *\n * @event PLAYBACK_PLAY_INTENT\n */\nEvents.PLAYBACK_PLAY_INTENT = 'playback:play:intent'\n/**\n * Fired when the media for a playback starts playing.\n * This is not necessarily when the user requests `play()`\n * The media may have to buffer first.\n * I.e. `isPlaying()` might return `true` before this event is fired,\n * because `isPlaying()` represents the intended state.\n *\n * @event PLAYBACK_PLAY\n */\nEvents.PLAYBACK_PLAY = 'playback:play'\n/**\n * Fired when the media for a playback pauses.\n *\n * @event PLAYBACK_PAUSE\n */\nEvents.PLAYBACK_PAUSE = 'playback:pause'\n/**\n * Fired when the media for a playback is seeking.\n *\n * @event PLAYBACK_SEEK\n */\nEvents.PLAYBACK_SEEK = 'playback:seek'\n/**\n * Fired when the media for a playback is seeked.\n *\n * @event PLAYBACK_SEEKED\n */\nEvents.PLAYBACK_SEEKED = 'playback:seeked'\n/**\n * Fired when the media for a playback is stopped.\n *\n * @event PLAYBACK_STOP\n */\nEvents.PLAYBACK_STOP = 'playback:stop'\n/**\n * Fired if an error occurs in the playback.\n *\n * @event PLAYBACK_ERROR\n * @param {Object} error An object containing the error details\n * @param {String} name Playback name\n */\nEvents.PLAYBACK_ERROR = 'playback:error'\n// TODO doc\nEvents.PLAYBACK_STATS_ADD = 'playback:stats:add'\n// TODO doc\nEvents.PLAYBACK_FRAGMENT_LOADED = 'playback:fragment:loaded'\n// TODO doc\nEvents.PLAYBACK_LEVEL_SWITCH = 'playback:level:switch'\n/**\n * Fired when subtitle is available on playback for display\n *\n * @event PLAYBACK_SUBTITLE_AVAILABLE\n */\nEvents.PLAYBACK_SUBTITLE_AVAILABLE = 'playback:subtitle:available'\n/**\n * Fired when playback subtitle track has changed\n *\n * @event CONTAINER_SUBTITLE_CHANGED\n * @param {Object} track Data\n * track object\n * @param {Number} [track.id]\n * selected track id\n */\nEvents.PLAYBACK_SUBTITLE_CHANGED = 'playback:subtitle:changed'\n\n// Core Events\n/**\n * Fired when the containers are created\n *\n * @event CORE_CONTAINERS_CREATED\n */\nEvents.CORE_CONTAINERS_CREATED = 'core:containers:created'\n/**\n * Fired when the active container changed\n *\n * @event CORE_ACTIVE_CONTAINER_CHANGED\n */\nEvents.CORE_ACTIVE_CONTAINER_CHANGED = 'core:active:container:changed'\n/**\n * Fired when the options were changed for the core\n *\n * @event CORE_OPTIONS_CHANGE\n */\nEvents.CORE_OPTIONS_CHANGE = 'core:options:change'\n/**\n * Fired after creating containers, when the core is ready\n *\n * @event CORE_READY\n */\nEvents.CORE_READY = 'core:ready'\n/**\n * Fired when the fullscreen state change\n *\n * @event CORE_FULLSCREEN\n * @param {Boolean} whether or not the player is on fullscreen mode\n */\nEvents.CORE_FULLSCREEN = 'core:fullscreen'\n/**\n * Fired when core updates size\n *\n * @event CORE_RESIZE\n * @param {Object} currentSize an object with the current size\n */\nEvents.CORE_RESIZE = 'core:resize'\n/**\n * Fired when the screen orientation has changed.\n * This event is trigger only for mobile devices.\n *\n * @event CORE_SCREEN_ORIENTATION_CHANGED\n * @param {Object} screen An object with screen orientation\n * screen object\n * @param {Object} [screen.event]\n * window resize event object\n * @param {String} [screen.orientation]\n * screen orientation (ie: 'landscape' or 'portrait')\n */\nEvents.CORE_SCREEN_ORIENTATION_CHANGED = 'core:screen:orientation:changed'\n/**\n * Fired when occurs mouse move event on core element\n *\n * @event CORE_MOUSE_MOVE\n * @param {Object} event a DOM event\n */\nEvents.CORE_MOUSE_MOVE = 'core:mousemove'\n/**\n * Fired when occurs mouse leave event on core element\n *\n * @event CORE_MOUSE_LEAVE\n * @param {Object} event a DOM event\n */\nEvents.CORE_MOUSE_LEAVE = 'core:mouseleave'\n\n// Container Events\n/**\n * Fired when the container internal state changes\n *\n * @event CONTAINER_PLAYBACKSTATE\n * @param {Object} state Data\n * state object\n * @param {String} [state.type]\n * the playback type\n */\nEvents.CONTAINER_PLAYBACKSTATE = 'container:playbackstate'\nEvents.CONTAINER_PLAYBACKDVRSTATECHANGED = 'container:dvr'\n/**\n * Fired when the container updates its bitrate\n *\n * @event CONTAINER_BITRATE\n * @param {Object} bitrate Data\n * bitrate object\n * @param {Number} [bitrate.bandwidth]\n * bitrate bandwidth when it's available\n * @param {Number} [bitrate.width]\n * playback width (ex: 720, 640, 1080)\n * @param {Number} [bitrate.height]\n * playback height (ex: 240, 480, 720)\n * @param {Number} [bitrate.level]\n * playback level when it's available, it could be just a map for width (0 => 240, 1 => 480, 2 => 720)\n */\nEvents.CONTAINER_BITRATE = 'container:bitrate'\nEvents.CONTAINER_STATS_REPORT = 'container:stats:report'\nEvents.CONTAINER_DESTROYED = 'container:destroyed'\n/**\n * Fired when the container is ready\n *\n * @event CONTAINER_READY\n */\nEvents.CONTAINER_READY = 'container:ready'\nEvents.CONTAINER_ERROR = 'container:error'\n/**\n * Fired when the container loaded its metadata\n *\n * @event CONTAINER_LOADEDMETADATA\n * @param {Object} metadata Data\n * settings object\n * @param {Number} [metadata.duration]\n * the playback duration\n * @param {Object} [metadata.data]\n * extra meta data\n */\nEvents.CONTAINER_LOADEDMETADATA = 'container:loadedmetadata'\n\n/**\n * Fired when subtitle is available on container for display\n *\n * @event CONTAINER_SUBTITLE_AVAILABLE\n */\nEvents.CONTAINER_SUBTITLE_AVAILABLE = 'container:subtitle:available'\n/**\n * Fired when subtitle track has changed\n *\n * @event CONTAINER_SUBTITLE_CHANGED\n * @param {Object} track Data\n * track object\n * @param {Number} [track.id]\n * selected track id\n */\nEvents.CONTAINER_SUBTITLE_CHANGED = 'container:subtitle:changed'\n\n/**\n * Fired when the time is updated on container\n *\n * @event CONTAINER_TIMEUPDATE\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.current]\n * current time (in seconds)\n * @param {Number} [progress.total]\n * total time (in seconds)\n */\nEvents.CONTAINER_TIMEUPDATE = 'container:timeupdate'\n/**\n * Fired when the container is downloading the media\n *\n * @event CONTAINER_PROGRESS\n * @param {Object} progress Data\n * progress object\n * @param {Number} [progress.start]\n * initial downloaded content\n * @param {Number} [progress.current]\n * current dowloaded content\n * @param {Number} [progress.total]\n * total content to be downloaded\n */\nEvents.CONTAINER_PROGRESS = 'container:progress'\nEvents.CONTAINER_PLAY = 'container:play'\nEvents.CONTAINER_STOP = 'container:stop'\nEvents.CONTAINER_PAUSE = 'container:pause'\nEvents.CONTAINER_ENDED = 'container:ended'\nEvents.CONTAINER_CLICK = 'container:click'\nEvents.CONTAINER_DBLCLICK = 'container:dblclick'\nEvents.CONTAINER_CONTEXTMENU = 'container:contextmenu'\nEvents.CONTAINER_MOUSE_ENTER = 'container:mouseenter'\nEvents.CONTAINER_MOUSE_LEAVE = 'container:mouseleave'\n/**\n * Fired when the container seeks the video\n *\n * @event CONTAINER_SEEK\n * @param {Number} time the current time in seconds\n */\nEvents.CONTAINER_SEEK = 'container:seek'\n/**\n * Fired when the container was finished the seek video\n *\n * @event CONTAINER_SEEKED\n * @param {Number} time the current time in seconds\n */\nEvents.CONTAINER_SEEKED = 'container:seeked'\nEvents.CONTAINER_VOLUME = 'container:volume'\nEvents.CONTAINER_FULLSCREEN = 'container:fullscreen'\n/**\n * Fired when container is buffering\n *\n * @event CONTAINER_STATE_BUFFERING\n */\nEvents.CONTAINER_STATE_BUFFERING = 'container:state:buffering'\n/**\n * Fired when the container filled the buffer\n *\n * @event CONTAINER_STATE_BUFFERFULL\n */\nEvents.CONTAINER_STATE_BUFFERFULL = 'container:state:bufferfull'\n/**\n * Fired when the container changes any settings (volume, seek and etc)\n *\n * @event CONTAINER_SETTINGSUPDATE\n */\nEvents.CONTAINER_SETTINGSUPDATE = 'container:settingsupdate'\n/**\n * Fired when container updates its video quality\n *\n * @event CONTAINER_HIGHDEFINITIONUPDATE\n * @param {Boolean} isHD\n * true when is on HD, false otherwise\n */\nEvents.CONTAINER_HIGHDEFINITIONUPDATE = 'container:highdefinitionupdate'\n\n/**\n * Fired when the media control shows\n *\n * @event CONTAINER_MEDIACONTROL_SHOW\n */\nEvents.CONTAINER_MEDIACONTROL_SHOW = 'container:mediacontrol:show'\n/**\n * Fired when the media control hides\n *\n * @event CONTAINER_MEDIACONTROL_HIDE\n */\nEvents.CONTAINER_MEDIACONTROL_HIDE = 'container:mediacontrol:hide'\n\nEvents.CONTAINER_MEDIACONTROL_DISABLE = 'container:mediacontrol:disable'\nEvents.CONTAINER_MEDIACONTROL_ENABLE = 'container:mediacontrol:enable'\nEvents.CONTAINER_STATS_ADD = 'container:stats:add'\n/**\n * Fired when the options were changed for the container\n *\n * @event CONTAINER_OPTIONS_CHANGE\n */\nEvents.CONTAINER_OPTIONS_CHANGE = 'container:options:change'\n\n// MediaControl Events\nEvents.MEDIACONTROL_RENDERED = 'mediacontrol:rendered'\n/**\n * Fired when the player enters/exit on fullscreen\n *\n * @event MEDIACONTROL_FULLSCREEN\n */\nEvents.MEDIACONTROL_FULLSCREEN = 'mediacontrol:fullscreen'\n/**\n * Fired when the media control shows\n *\n * @event MEDIACONTROL_SHOW\n */\nEvents.MEDIACONTROL_SHOW = 'mediacontrol:show'\n/**\n * Fired when the media control hides\n *\n * @event MEDIACONTROL_HIDE\n */\nEvents.MEDIACONTROL_HIDE = 'mediacontrol:hide'\n/**\n * Fired when mouse enters on the seekbar\n *\n * @event MEDIACONTROL_MOUSEMOVE_SEEKBAR\n * @param {Object} event\n * the javascript event\n */\nEvents.MEDIACONTROL_MOUSEMOVE_SEEKBAR = 'mediacontrol:mousemove:seekbar'\n/**\n * Fired when mouse leaves the seekbar\n *\n * @event MEDIACONTROL_MOUSELEAVE_SEEKBAR\n * @param {Object} event\n * the javascript event\n */\nEvents.MEDIACONTROL_MOUSELEAVE_SEEKBAR = 'mediacontrol:mouseleave:seekbar'\n/**\n * Fired when the media is being played\n *\n * @event MEDIACONTROL_PLAYING\n */\nEvents.MEDIACONTROL_PLAYING = 'mediacontrol:playing'\n/**\n * Fired when the media is not being played\n *\n * @event MEDIACONTROL_NOTPLAYING\n */\nEvents.MEDIACONTROL_NOTPLAYING = 'mediacontrol:notplaying'\n/**\n * Fired when the container was changed\n *\n * @event MEDIACONTROL_CONTAINERCHANGED\n */\nEvents.MEDIACONTROL_CONTAINERCHANGED = 'mediacontrol:containerchanged'\n/**\n * Fired when the options were changed for the mediacontrol\n *\n * @event MEDIACONTROL_OPTIONS_CHANGE\n */\nEvents.MEDIACONTROL_OPTIONS_CHANGE = 'mediacontrol:options:change'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/events.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n/*jshint -W079 */\n\nimport './polyfills'\nimport Browser from '../components/browser'\nimport $ from 'clappr-zepto'\nimport Media from './media'\n\nexport function assign(obj, source) {\n if (source) {\n for (const prop in source) {\n const propDescriptor = Object.getOwnPropertyDescriptor(source, prop)\n propDescriptor ? Object.defineProperty(obj, prop, propDescriptor) : obj[prop] = source[prop]\n }\n }\n return obj\n}\n\nexport function extend(parent, properties) {\n class Surrogate extends parent {\n constructor(...args) {\n super(...args)\n if (properties.initialize)\n properties.initialize.apply(this, args)\n\n }\n }\n assign(Surrogate.prototype, properties)\n return Surrogate\n}\n\nexport function formatTime(time, paddedHours) {\n if (!isFinite(time))\n return '--:--'\n\n time = time * 1000\n time = parseInt(time/1000)\n const seconds = time % 60\n time = parseInt(time/60)\n const minutes = time % 60\n time = parseInt(time/60)\n const hours = time % 24\n const days = parseInt(time/24)\n let out = ''\n if (days && days > 0) {\n out += days + ':'\n if (hours < 1) out += '00:'\n }\n if (hours && hours > 0 || paddedHours) out += ('0' + hours).slice(-2) + ':'\n out += ('0' + minutes).slice(-2) + ':'\n out += ('0' + seconds).slice(-2)\n return out.trim()\n}\n\nexport const Fullscreen = {\n isFullscreen: function() {\n return !!(\n document.webkitFullscreenElement ||\n document.webkitIsFullScreen ||\n document.mozFullScreen ||\n document.msFullscreenElement\n )\n },\n requestFullscreen: function(el) {\n if (el.requestFullscreen)\n el.requestFullscreen()\n else if (el.webkitRequestFullscreen)\n el.webkitRequestFullscreen()\n else if (el.mozRequestFullScreen)\n el.mozRequestFullScreen()\n else if (el.msRequestFullscreen)\n el.msRequestFullscreen()\n else if (el.querySelector && el.querySelector('video') && el.querySelector('video').webkitEnterFullScreen)\n el.querySelector('video').webkitEnterFullScreen()\n else if (el.webkitEnterFullScreen)\n el.webkitEnterFullScreen()\n\n },\n cancelFullscreen: function(el=document) {\n if (el.exitFullscreen)\n el.exitFullscreen()\n else if (el.webkitCancelFullScreen)\n el.webkitCancelFullScreen()\n else if (el.webkitExitFullscreen)\n el.webkitExitFullscreen()\n else if (el.mozCancelFullScreen)\n el.mozCancelFullScreen()\n else if (el.msExitFullscreen)\n el.msExitFullscreen()\n\n },\n fullscreenEnabled: function() {\n return !!(\n document.fullscreenEnabled ||\n document.webkitFullscreenEnabled ||\n document.mozFullScreenEnabled ||\n document.msFullscreenEnabled\n )\n }\n}\n\nexport class Config {\n\n static _defaultConfig() {\n return {\n volume: {\n value: 100,\n parse: parseInt\n }\n }\n }\n\n static _defaultValueFor(key) {\n try {\n return this._defaultConfig()[key].parse(this._defaultConfig()[key].value)\n } catch (e) {\n return undefined\n }\n }\n\n static _createKeyspace(key) {\n return `clappr.${document.domain}.${key}`\n }\n\n static restore(key) {\n if (Browser.hasLocalstorage && localStorage[this._createKeyspace(key)])\n return this._defaultConfig()[key].parse(localStorage[this._createKeyspace(key)])\n\n return this._defaultValueFor(key)\n }\n\n static persist(key, value) {\n if (Browser.hasLocalstorage) {\n try {\n localStorage[this._createKeyspace(key)] = value\n return true\n } catch (e) {\n return false\n }\n }\n }\n}\n\nexport class QueryString {\n static get params() {\n const query = window.location.search.substring(1)\n if (query !== this.query) {\n this._urlParams = this.parse(query)\n this.query = query\n }\n return this._urlParams\n }\n\n static get hashParams() {\n const hash = window.location.hash.substring(1)\n if (hash !== this.hash) {\n this._hashParams = this.parse(hash)\n this.hash = hash\n }\n return this._hashParams\n }\n\n static parse(paramsString) {\n let match\n const pl = /\\+/g, // Regex for replacing addition symbol with a space\n search = /([^&=]+)=?([^&]*)/g,\n decode = (s) => decodeURIComponent(s.replace(pl, ' ')),\n params = {}\n while (match = search.exec(paramsString)) { // eslint-disable-line no-cond-assign\n params[decode(match[1]).toLowerCase()] = decode(match[2])\n }\n return params\n }\n}\n\nexport function seekStringToSeconds(paramName = 't') {\n let seconds = 0\n const seekString = QueryString.params[paramName] || QueryString.hashParams[paramName] || ''\n const parts = seekString.match(/[0-9]+[hms]+/g) || []\n if (parts.length > 0) {\n const factor = { 'h': 3600, 'm': 60, 's': 1 }\n parts.forEach(function(el) {\n if (el) {\n const suffix = el[el.length - 1]\n const time = parseInt(el.slice(0, el.length - 1), 10)\n seconds += time * (factor[suffix])\n }\n })\n } else if (seekString) { seconds = parseInt(seekString, 10) }\n\n return seconds\n}\n\nconst idsCounter = {}\n\nexport function uniqueId(prefix) {\n idsCounter[prefix] || (idsCounter[prefix] = 0)\n const id = ++idsCounter[prefix]\n return prefix + id\n}\n\nexport function isNumber(value) {\n return value - parseFloat(value) + 1 >= 0\n}\n\nexport function currentScriptUrl() {\n const scripts = document.getElementsByTagName('script')\n return scripts.length ? scripts[scripts.length - 1].src : ''\n}\n\nexport const requestAnimationFrame = (window.requestAnimationFrame ||\n window.mozRequestAnimationFrame ||\n window.webkitRequestAnimationFrame ||\n function(fn) { window.setTimeout(fn, 1000/60) }).bind(window)\n\nexport const cancelAnimationFrame = (window.cancelAnimationFrame ||\n window.mozCancelAnimationFrame ||\n window.webkitCancelAnimationFrame ||\n window.clearTimeout).bind(window)\n\nexport function getBrowserLanguage() {\n return window.navigator && window.navigator.language\n}\n\nexport function now() {\n if (window.performance && window.performance.now)\n return performance.now()\n\n return Date.now()\n}\n\n// remove the item from the array if it exists in the array\nexport function removeArrayItem(arr, item) {\n const i = arr.indexOf(item)\n if (i >= 0)\n arr.splice(i, 1)\n\n}\n\n// find an item regardless of its letter case\nexport function listContainsIgnoreCase(item, items) {\n if (item === undefined || items === undefined) return false\n return items.find((itemEach) => item.toLowerCase() === itemEach.toLowerCase()) !== undefined\n}\n\n// https://github.com/video-dev/can-autoplay\nexport function canAutoPlayMedia(cb, options) {\n options = Object.assign({\n inline: false,\n muted: false,\n timeout: 250,\n type: 'video',\n source: Media.mp4,\n element: null\n }, options)\n\n let element = options.element ? options.element : document.createElement(options.type)\n\n element.muted = options.muted\n if (options.muted === true)\n element.setAttribute('muted', 'muted')\n\n if (options.inline === true)\n element.setAttribute('playsinline', 'playsinline')\n\n element.src = options.source\n\n let promise = element.play()\n\n let timeoutId = setTimeout(() => {\n setResult(false, new Error(`Timeout ${options.timeout} ms has been reached`))\n }, options.timeout)\n\n let setResult = (result, error = null) => {\n clearTimeout(timeoutId)\n cb(result, error)\n }\n\n if (promise !== undefined) {\n promise\n .then(() => setResult(true))\n .catch(err => setResult(false, err))\n } else {\n setResult(true)\n }\n}\n\n// Simple Zepto element factory with video recycle feature.\nconst videoStack = []\n\nexport class DomRecycler {\n static configure(options) {\n this.options = $.extend(this.options, options)\n }\n\n static create(name) {\n if (this.options.recycleVideo && name === 'video' && videoStack.length > 0)\n return videoStack.shift()\n\n return $('<' + name + '>')\n }\n\n static garbage($el) {\n // Expect Zepto collection with single element (does not iterate!)\n if (!this.options.recycleVideo || $el[0].tagName.toUpperCase() !== 'VIDEO') return\n $el.children().remove()\n videoStack.push($el)\n }\n}\n\nDomRecycler.options = { recycleVideo: false }\n\nexport default {\n Config,\n Fullscreen,\n QueryString,\n DomRecycler,\n extend,\n formatTime,\n seekStringToSeconds,\n uniqueId,\n currentScriptUrl,\n isNumber,\n requestAnimationFrame,\n cancelAnimationFrame,\n getBrowserLanguage,\n now,\n removeArrayItem,\n canAutoPlayMedia,\n Media\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/utils.js","/* Zepto v1.2.0 - zepto ajax callbacks deferred event ie selector - zeptojs.com/license */\n\n\nvar Zepto = (function() {\n var undefined, key, $, classList, emptyArray = [], concat = emptyArray.concat, filter = emptyArray.filter, slice = emptyArray.slice,\n document = window.document,\n elementDisplay = {}, classCache = {},\n cssNumber = { 'column-count': 1, 'columns': 1, 'font-weight': 1, 'line-height': 1,'opacity': 1, 'z-index': 1, 'zoom': 1 },\n fragmentRE = /^\\s*<(\\w+|!)[^>]*>/,\n singleTagRE = /^<(\\w+)\\s*\\/?>(?:<\\/\\1>|)$/,\n tagExpanderRE = /<(?!area|br|col|embed|hr|img|input|link|meta|param)(([\\w:]+)[^>]*)\\/>/ig,\n rootNodeRE = /^(?:body|html)$/i,\n capitalRE = /([A-Z])/g,\n\n // special attributes that should be get/set via method calls\n methodAttributes = ['val', 'css', 'html', 'text', 'data', 'width', 'height', 'offset'],\n\n adjacencyOperators = [ 'after', 'prepend', 'before', 'append' ],\n table = document.createElement('table'),\n tableRow = document.createElement('tr'),\n containers = {\n 'tr': document.createElement('tbody'),\n 'tbody': table, 'thead': table, 'tfoot': table,\n 'td': tableRow, 'th': tableRow,\n '*': document.createElement('div')\n },\n readyRE = /complete|loaded|interactive/,\n simpleSelectorRE = /^[\\w-]*$/,\n class2type = {},\n toString = class2type.toString,\n zepto = {},\n camelize, uniq,\n tempParent = document.createElement('div'),\n propMap = {\n 'tabindex': 'tabIndex',\n 'readonly': 'readOnly',\n 'for': 'htmlFor',\n 'class': 'className',\n 'maxlength': 'maxLength',\n 'cellspacing': 'cellSpacing',\n 'cellpadding': 'cellPadding',\n 'rowspan': 'rowSpan',\n 'colspan': 'colSpan',\n 'usemap': 'useMap',\n 'frameborder': 'frameBorder',\n 'contenteditable': 'contentEditable'\n },\n isArray = Array.isArray ||\n function(object){ return object instanceof Array }\n\n zepto.matches = function(element, selector) {\n if (!selector || !element || element.nodeType !== 1) return false\n var matchesSelector = element.matches || element.webkitMatchesSelector ||\n element.mozMatchesSelector || element.oMatchesSelector ||\n element.matchesSelector\n if (matchesSelector) return matchesSelector.call(element, selector)\n // fall back to performing a selector:\n var match, parent = element.parentNode, temp = !parent\n if (temp) (parent = tempParent).appendChild(element)\n match = ~zepto.qsa(parent, selector).indexOf(element)\n temp && tempParent.removeChild(element)\n return match\n }\n\n function type(obj) {\n return obj == null ? String(obj) :\n class2type[toString.call(obj)] || \"object\"\n }\n\n function isFunction(value) { return type(value) == \"function\" }\n function isWindow(obj) { return obj != null && obj == obj.window }\n function isDocument(obj) { return obj != null && obj.nodeType == obj.DOCUMENT_NODE }\n function isObject(obj) { return type(obj) == \"object\" }\n function isPlainObject(obj) {\n return isObject(obj) && !isWindow(obj) && Object.getPrototypeOf(obj) == Object.prototype\n }\n\n function likeArray(obj) {\n var length = !!obj && 'length' in obj && obj.length,\n type = $.type(obj)\n\n return 'function' != type && !isWindow(obj) && (\n 'array' == type || length === 0 ||\n (typeof length == 'number' && length > 0 && (length - 1) in obj)\n )\n }\n\n function compact(array) { return filter.call(array, function(item){ return item != null }) }\n function flatten(array) { return array.length > 0 ? $.fn.concat.apply([], array) : array }\n camelize = function(str){ return str.replace(/-+(.)?/g, function(match, chr){ return chr ? chr.toUpperCase() : '' }) }\n function dasherize(str) {\n return str.replace(/::/g, '/')\n .replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2')\n .replace(/([a-z\\d])([A-Z])/g, '$1_$2')\n .replace(/_/g, '-')\n .toLowerCase()\n }\n uniq = function(array){ return filter.call(array, function(item, idx){ return array.indexOf(item) == idx }) }\n\n function classRE(name) {\n return name in classCache ?\n classCache[name] : (classCache[name] = new RegExp('(^|\\\\s)' + name + '(\\\\s|$)'))\n }\n\n function maybeAddPx(name, value) {\n return (typeof value == \"number\" && !cssNumber[dasherize(name)]) ? value + \"px\" : value\n }\n\n function defaultDisplay(nodeName) {\n var element, display\n if (!elementDisplay[nodeName]) {\n element = document.createElement(nodeName)\n document.body.appendChild(element)\n display = getComputedStyle(element, '').getPropertyValue(\"display\")\n element.parentNode.removeChild(element)\n display == \"none\" && (display = \"block\")\n elementDisplay[nodeName] = display\n }\n return elementDisplay[nodeName]\n }\n\n function children(element) {\n return 'children' in element ?\n slice.call(element.children) :\n $.map(element.childNodes, function(node){ if (node.nodeType == 1) return node })\n }\n\n function Z(dom, selector) {\n var i, len = dom ? dom.length : 0\n for (i = 0; i < len; i++) this[i] = dom[i]\n this.length = len\n this.selector = selector || ''\n }\n\n // `$.zepto.fragment` takes a html string and an optional tag name\n // to generate DOM nodes from the given html string.\n // The generated DOM nodes are returned as an array.\n // This function can be overridden in plugins for example to make\n // it compatible with browsers that don't support the DOM fully.\n zepto.fragment = function(html, name, properties) {\n var dom, nodes, container\n\n // A special case optimization for a single tag\n if (singleTagRE.test(html)) dom = $(document.createElement(RegExp.$1))\n\n if (!dom) {\n if (html.replace) html = html.replace(tagExpanderRE, \"<$1></$2>\")\n if (name === undefined) name = fragmentRE.test(html) && RegExp.$1\n if (!(name in containers)) name = '*'\n\n container = containers[name]\n container.innerHTML = '' + html\n dom = $.each(slice.call(container.childNodes), function(){\n container.removeChild(this)\n })\n }\n\n if (isPlainObject(properties)) {\n nodes = $(dom)\n $.each(properties, function(key, value) {\n if (methodAttributes.indexOf(key) > -1) nodes[key](value)\n else nodes.attr(key, value)\n })\n }\n\n return dom\n }\n\n // `$.zepto.Z` swaps out the prototype of the given `dom` array\n // of nodes with `$.fn` and thus supplying all the Zepto functions\n // to the array. This method can be overridden in plugins.\n zepto.Z = function(dom, selector) {\n return new Z(dom, selector)\n }\n\n // `$.zepto.isZ` should return `true` if the given object is a Zepto\n // collection. This method can be overridden in plugins.\n zepto.isZ = function(object) {\n return object instanceof zepto.Z\n }\n\n // `$.zepto.init` is Zepto's counterpart to jQuery's `$.fn.init` and\n // takes a CSS selector and an optional context (and handles various\n // special cases).\n // This method can be overridden in plugins.\n zepto.init = function(selector, context) {\n var dom\n // If nothing given, return an empty Zepto collection\n if (!selector) return zepto.Z()\n // Optimize for string selectors\n else if (typeof selector == 'string') {\n selector = selector.trim()\n // If it's a html fragment, create nodes from it\n // Note: In both Chrome 21 and Firefox 15, DOM error 12\n // is thrown if the fragment doesn't begin with <\n if (selector[0] == '<' && fragmentRE.test(selector))\n dom = zepto.fragment(selector, RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // If it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // If a function is given, call it when the DOM is ready\n else if (isFunction(selector)) return $(document).ready(selector)\n // If a Zepto collection is given, just return it\n else if (zepto.isZ(selector)) return selector\n else {\n // normalize array if an array of nodes is given\n if (isArray(selector)) dom = compact(selector)\n // Wrap DOM nodes.\n else if (isObject(selector))\n dom = [selector], selector = null\n // If it's a html fragment, create nodes from it\n else if (fragmentRE.test(selector))\n dom = zepto.fragment(selector.trim(), RegExp.$1, context), selector = null\n // If there's a context, create a collection on that context first, and select\n // nodes from there\n else if (context !== undefined) return $(context).find(selector)\n // And last but no least, if it's a CSS selector, use it to select nodes.\n else dom = zepto.qsa(document, selector)\n }\n // create a new Zepto collection from the nodes found\n return zepto.Z(dom, selector)\n }\n\n // `$` will be the base `Zepto` object. When calling this\n // function just call `$.zepto.init, which makes the implementation\n // details of selecting nodes and creating Zepto collections\n // patchable in plugins.\n $ = function(selector, context){\n return zepto.init(selector, context)\n }\n\n function extend(target, source, deep) {\n for (key in source)\n if (deep && (isPlainObject(source[key]) || isArray(source[key]))) {\n if (isPlainObject(source[key]) && !isPlainObject(target[key]))\n target[key] = {}\n if (isArray(source[key]) && !isArray(target[key]))\n target[key] = []\n extend(target[key], source[key], deep)\n }\n else if (source[key] !== undefined) target[key] = source[key]\n }\n\n // Copy all but undefined properties from one or more\n // objects to the `target` object.\n $.extend = function(target){\n var deep, args = slice.call(arguments, 1)\n if (typeof target == 'boolean') {\n deep = target\n target = args.shift()\n }\n args.forEach(function(arg){ extend(target, arg, deep) })\n return target\n }\n\n // `$.zepto.qsa` is Zepto's CSS selector implementation which\n // uses `document.querySelectorAll` and optimizes for some special cases, like `#id`.\n // This method can be overridden in plugins.\n zepto.qsa = function(element, selector){\n var found,\n maybeID = selector[0] == '#',\n maybeClass = !maybeID && selector[0] == '.',\n nameOnly = maybeID || maybeClass ? selector.slice(1) : selector, // Ensure that a 1 char tag name still gets checked\n isSimple = simpleSelectorRE.test(nameOnly)\n return (element.getElementById && isSimple && maybeID) ? // Safari DocumentFragment doesn't have getElementById\n ( (found = element.getElementById(nameOnly)) ? [found] : [] ) :\n (element.nodeType !== 1 && element.nodeType !== 9 && element.nodeType !== 11) ? [] :\n slice.call(\n isSimple && !maybeID && element.getElementsByClassName ? // DocumentFragment doesn't have getElementsByClassName/TagName\n maybeClass ? element.getElementsByClassName(nameOnly) : // If it's simple, it could be a class\n element.getElementsByTagName(selector) : // Or a tag\n element.querySelectorAll(selector) // Or it's not simple, and we need to query all\n )\n }\n\n function filtered(nodes, selector) {\n return selector == null ? $(nodes) : $(nodes).filter(selector)\n }\n\n $.contains = document.documentElement.contains ?\n function(parent, node) {\n return parent !== node && parent.contains(node)\n } :\n function(parent, node) {\n while (node && (node = node.parentNode))\n if (node === parent) return true\n return false\n }\n\n function funcArg(context, arg, idx, payload) {\n return isFunction(arg) ? arg.call(context, idx, payload) : arg\n }\n\n function setAttribute(node, name, value) {\n value == null ? node.removeAttribute(name) : node.setAttribute(name, value)\n }\n\n // access className property while respecting SVGAnimatedString\n function className(node, value){\n var klass = node.className || '',\n svg = klass && klass.baseVal !== undefined\n\n if (value === undefined) return svg ? klass.baseVal : klass\n svg ? (klass.baseVal = value) : (node.className = value)\n }\n\n // \"true\" => true\n // \"false\" => false\n // \"null\" => null\n // \"42\" => 42\n // \"42.5\" => 42.5\n // \"08\" => \"08\"\n // JSON => parse if valid\n // String => self\n function deserializeValue(value) {\n try {\n return value ?\n value == \"true\" ||\n ( value == \"false\" ? false :\n value == \"null\" ? null :\n +value + \"\" == value ? +value :\n /^[\\[\\{]/.test(value) ? $.parseJSON(value) :\n value )\n : value\n } catch(e) {\n return value\n }\n }\n\n $.type = type\n $.isFunction = isFunction\n $.isWindow = isWindow\n $.isArray = isArray\n $.isPlainObject = isPlainObject\n\n $.isEmptyObject = function(obj) {\n var name\n for (name in obj) return false\n return true\n }\n\n $.isNumeric = function(val) {\n var num = Number(val), type = typeof val\n return val != null && type != 'boolean' &&\n (type != 'string' || val.length) &&\n !isNaN(num) && isFinite(num) || false\n }\n\n $.inArray = function(elem, array, i){\n return emptyArray.indexOf.call(array, elem, i)\n }\n\n $.camelCase = camelize\n $.trim = function(str) {\n return str == null ? \"\" : String.prototype.trim.call(str)\n }\n\n // plugin compatibility\n $.uuid = 0\n $.support = { }\n $.expr = { }\n $.noop = function() {}\n\n $.map = function(elements, callback){\n var value, values = [], i, key\n if (likeArray(elements))\n for (i = 0; i < elements.length; i++) {\n value = callback(elements[i], i)\n if (value != null) values.push(value)\n }\n else\n for (key in elements) {\n value = callback(elements[key], key)\n if (value != null) values.push(value)\n }\n return flatten(values)\n }\n\n $.each = function(elements, callback){\n var i, key\n if (likeArray(elements)) {\n for (i = 0; i < elements.length; i++)\n if (callback.call(elements[i], i, elements[i]) === false) return elements\n } else {\n for (key in elements)\n if (callback.call(elements[key], key, elements[key]) === false) return elements\n }\n\n return elements\n }\n\n $.grep = function(elements, callback){\n return filter.call(elements, callback)\n }\n\n if (window.JSON) $.parseJSON = JSON.parse\n\n // Populate the class2type map\n $.each(\"Boolean Number String Function Array Date RegExp Object Error\".split(\" \"), function(i, name) {\n class2type[ \"[object \" + name + \"]\" ] = name.toLowerCase()\n })\n\n // Define methods that will be available on all\n // Zepto collections\n $.fn = {\n constructor: zepto.Z,\n length: 0,\n\n // Because a collection acts like an array\n // copy over these useful array functions.\n forEach: emptyArray.forEach,\n reduce: emptyArray.reduce,\n push: emptyArray.push,\n sort: emptyArray.sort,\n splice: emptyArray.splice,\n indexOf: emptyArray.indexOf,\n concat: function(){\n var i, value, args = []\n for (i = 0; i < arguments.length; i++) {\n value = arguments[i]\n args[i] = zepto.isZ(value) ? value.toArray() : value\n }\n return concat.apply(zepto.isZ(this) ? this.toArray() : this, args)\n },\n\n // `map` and `slice` in the jQuery API work differently\n // from their array counterparts\n map: function(fn){\n return $($.map(this, function(el, i){ return fn.call(el, i, el) }))\n },\n slice: function(){\n return $(slice.apply(this, arguments))\n },\n\n ready: function(callback){\n // need to check if document.body exists for IE as that browser reports\n // document ready when it hasn't yet created the body element\n if (readyRE.test(document.readyState) && document.body) callback($)\n else document.addEventListener('DOMContentLoaded', function(){ callback($) }, false)\n return this\n },\n get: function(idx){\n return idx === undefined ? slice.call(this) : this[idx >= 0 ? idx : idx + this.length]\n },\n toArray: function(){ return this.get() },\n size: function(){\n return this.length\n },\n remove: function(){\n return this.each(function(){\n if (this.parentNode != null)\n this.parentNode.removeChild(this)\n })\n },\n each: function(callback){\n emptyArray.every.call(this, function(el, idx){\n return callback.call(el, idx, el) !== false\n })\n return this\n },\n filter: function(selector){\n if (isFunction(selector)) return this.not(this.not(selector))\n return $(filter.call(this, function(element){\n return zepto.matches(element, selector)\n }))\n },\n add: function(selector,context){\n return $(uniq(this.concat($(selector,context))))\n },\n is: function(selector){\n return this.length > 0 && zepto.matches(this[0], selector)\n },\n not: function(selector){\n var nodes=[]\n if (isFunction(selector) && selector.call !== undefined)\n this.each(function(idx){\n if (!selector.call(this,idx)) nodes.push(this)\n })\n else {\n var excludes = typeof selector == 'string' ? this.filter(selector) :\n (likeArray(selector) && isFunction(selector.item)) ? slice.call(selector) : $(selector)\n this.forEach(function(el){\n if (excludes.indexOf(el) < 0) nodes.push(el)\n })\n }\n return $(nodes)\n },\n has: function(selector){\n return this.filter(function(){\n return isObject(selector) ?\n $.contains(this, selector) :\n $(this).find(selector).size()\n })\n },\n eq: function(idx){\n return idx === -1 ? this.slice(idx) : this.slice(idx, + idx + 1)\n },\n first: function(){\n var el = this[0]\n return el && !isObject(el) ? el : $(el)\n },\n last: function(){\n var el = this[this.length - 1]\n return el && !isObject(el) ? el : $(el)\n },\n find: function(selector){\n var result, $this = this\n if (!selector) result = $()\n else if (typeof selector == 'object')\n result = $(selector).filter(function(){\n var node = this\n return emptyArray.some.call($this, function(parent){\n return $.contains(parent, node)\n })\n })\n else if (this.length == 1) result = $(zepto.qsa(this[0], selector))\n else result = this.map(function(){ return zepto.qsa(this, selector) })\n return result\n },\n closest: function(selector, context){\n var nodes = [], collection = typeof selector == 'object' && $(selector)\n this.each(function(_, node){\n while (node && !(collection ? collection.indexOf(node) >= 0 : zepto.matches(node, selector)))\n node = node !== context && !isDocument(node) && node.parentNode\n if (node && nodes.indexOf(node) < 0) nodes.push(node)\n })\n return $(nodes)\n },\n parents: function(selector){\n var ancestors = [], nodes = this\n while (nodes.length > 0)\n nodes = $.map(nodes, function(node){\n if ((node = node.parentNode) && !isDocument(node) && ancestors.indexOf(node) < 0) {\n ancestors.push(node)\n return node\n }\n })\n return filtered(ancestors, selector)\n },\n parent: function(selector){\n return filtered(uniq(this.pluck('parentNode')), selector)\n },\n children: function(selector){\n return filtered(this.map(function(){ return children(this) }), selector)\n },\n contents: function() {\n return this.map(function() { return this.contentDocument || slice.call(this.childNodes) })\n },\n siblings: function(selector){\n return filtered(this.map(function(i, el){\n return filter.call(children(el.parentNode), function(child){ return child!==el })\n }), selector)\n },\n empty: function(){\n return this.each(function(){ this.innerHTML = '' })\n },\n // `pluck` is borrowed from Prototype.js\n pluck: function(property){\n return $.map(this, function(el){ return el[property] })\n },\n show: function(){\n return this.each(function(){\n this.style.display == \"none\" && (this.style.display = '')\n if (getComputedStyle(this, '').getPropertyValue(\"display\") == \"none\")\n this.style.display = defaultDisplay(this.nodeName)\n })\n },\n replaceWith: function(newContent){\n return this.before(newContent).remove()\n },\n wrap: function(structure){\n var func = isFunction(structure)\n if (this[0] && !func)\n var dom = $(structure).get(0),\n clone = dom.parentNode || this.length > 1\n\n return this.each(function(index){\n $(this).wrapAll(\n func ? structure.call(this, index) :\n clone ? dom.cloneNode(true) : dom\n )\n })\n },\n wrapAll: function(structure){\n if (this[0]) {\n $(this[0]).before(structure = $(structure))\n var children\n // drill down to the inmost element\n while ((children = structure.children()).length) structure = children.first()\n $(structure).append(this)\n }\n return this\n },\n wrapInner: function(structure){\n var func = isFunction(structure)\n return this.each(function(index){\n var self = $(this), contents = self.contents(),\n dom = func ? structure.call(this, index) : structure\n contents.length ? contents.wrapAll(dom) : self.append(dom)\n })\n },\n unwrap: function(){\n this.parent().each(function(){\n $(this).replaceWith($(this).children())\n })\n return this\n },\n clone: function(){\n return this.map(function(){ return this.cloneNode(true) })\n },\n hide: function(){\n return this.css(\"display\", \"none\")\n },\n toggle: function(setting){\n return this.each(function(){\n var el = $(this)\n ;(setting === undefined ? el.css(\"display\") == \"none\" : setting) ? el.show() : el.hide()\n })\n },\n prev: function(selector){ return $(this.pluck('previousElementSibling')).filter(selector || '*') },\n next: function(selector){ return $(this.pluck('nextElementSibling')).filter(selector || '*') },\n html: function(html){\n return 0 in arguments ?\n this.each(function(idx){\n var originHtml = this.innerHTML\n $(this).empty().append( funcArg(this, html, idx, originHtml) )\n }) :\n (0 in this ? this[0].innerHTML : null)\n },\n text: function(text){\n return 0 in arguments ?\n this.each(function(idx){\n var newText = funcArg(this, text, idx, this.textContent)\n this.textContent = newText == null ? '' : ''+newText\n }) :\n (0 in this ? this.pluck('textContent').join(\"\") : null)\n },\n attr: function(name, value){\n var result\n return (typeof name == 'string' && !(1 in arguments)) ?\n (0 in this && this[0].nodeType == 1 && (result = this[0].getAttribute(name)) != null ? result : undefined) :\n this.each(function(idx){\n if (this.nodeType !== 1) return\n if (isObject(name)) for (key in name) setAttribute(this, key, name[key])\n else setAttribute(this, name, funcArg(this, value, idx, this.getAttribute(name)))\n })\n },\n removeAttr: function(name){\n return this.each(function(){ this.nodeType === 1 && name.split(' ').forEach(function(attribute){\n setAttribute(this, attribute)\n }, this)})\n },\n prop: function(name, value){\n name = propMap[name] || name\n return (1 in arguments) ?\n this.each(function(idx){\n this[name] = funcArg(this, value, idx, this[name])\n }) :\n (this[0] && this[0][name])\n },\n removeProp: function(name){\n name = propMap[name] || name\n return this.each(function(){ delete this[name] })\n },\n data: function(name, value){\n var attrName = 'data-' + name.replace(capitalRE, '-$1').toLowerCase()\n\n var data = (1 in arguments) ?\n this.attr(attrName, value) :\n this.attr(attrName)\n\n return data !== null ? deserializeValue(data) : undefined\n },\n val: function(value){\n if (0 in arguments) {\n if (value == null) value = \"\"\n return this.each(function(idx){\n this.value = funcArg(this, value, idx, this.value)\n })\n } else {\n return this[0] && (this[0].multiple ?\n $(this[0]).find('option').filter(function(){ return this.selected }).pluck('value') :\n this[0].value)\n }\n },\n offset: function(coordinates){\n if (coordinates) return this.each(function(index){\n var $this = $(this),\n coords = funcArg(this, coordinates, index, $this.offset()),\n parentOffset = $this.offsetParent().offset(),\n props = {\n top: coords.top - parentOffset.top,\n left: coords.left - parentOffset.left\n }\n\n if ($this.css('position') == 'static') props['position'] = 'relative'\n $this.css(props)\n })\n if (!this.length) return null\n if (document.documentElement !== this[0] && !$.contains(document.documentElement, this[0]))\n return {top: 0, left: 0}\n var obj = this[0].getBoundingClientRect()\n return {\n left: obj.left + window.pageXOffset,\n top: obj.top + window.pageYOffset,\n width: Math.round(obj.width),\n height: Math.round(obj.height)\n }\n },\n css: function(property, value){\n if (arguments.length < 2) {\n var element = this[0]\n if (typeof property == 'string') {\n if (!element) return\n return element.style[camelize(property)] || getComputedStyle(element, '').getPropertyValue(property)\n } else if (isArray(property)) {\n if (!element) return\n var props = {}\n var computedStyle = getComputedStyle(element, '')\n $.each(property, function(_, prop){\n props[prop] = (element.style[camelize(prop)] || computedStyle.getPropertyValue(prop))\n })\n return props\n }\n }\n\n var css = ''\n if (type(property) == 'string') {\n if (!value && value !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(property)) })\n else\n css = dasherize(property) + \":\" + maybeAddPx(property, value)\n } else {\n for (key in property)\n if (!property[key] && property[key] !== 0)\n this.each(function(){ this.style.removeProperty(dasherize(key)) })\n else\n css += dasherize(key) + ':' + maybeAddPx(key, property[key]) + ';'\n }\n\n return this.each(function(){ this.style.cssText += ';' + css })\n },\n index: function(element){\n return element ? this.indexOf($(element)[0]) : this.parent().children().indexOf(this[0])\n },\n hasClass: function(name){\n if (!name) return false\n return emptyArray.some.call(this, function(el){\n return this.test(className(el))\n }, classRE(name))\n },\n addClass: function(name){\n if (!name) return this\n return this.each(function(idx){\n if (!('className' in this)) return\n classList = []\n var cls = className(this), newName = funcArg(this, name, idx, cls)\n newName.split(/\\s+/g).forEach(function(klass){\n if (!$(this).hasClass(klass)) classList.push(klass)\n }, this)\n classList.length && className(this, cls + (cls ? \" \" : \"\") + classList.join(\" \"))\n })\n },\n removeClass: function(name){\n return this.each(function(idx){\n if (!('className' in this)) return\n if (name === undefined) return className(this, '')\n classList = className(this)\n funcArg(this, name, idx, classList).split(/\\s+/g).forEach(function(klass){\n classList = classList.replace(classRE(klass), \" \")\n })\n className(this, classList.trim())\n })\n },\n toggleClass: function(name, when){\n if (!name) return this\n return this.each(function(idx){\n var $this = $(this), names = funcArg(this, name, idx, className(this))\n names.split(/\\s+/g).forEach(function(klass){\n (when === undefined ? !$this.hasClass(klass) : when) ?\n $this.addClass(klass) : $this.removeClass(klass)\n })\n })\n },\n scrollTop: function(value){\n if (!this.length) return\n var hasScrollTop = 'scrollTop' in this[0]\n if (value === undefined) return hasScrollTop ? this[0].scrollTop : this[0].pageYOffset\n return this.each(hasScrollTop ?\n function(){ this.scrollTop = value } :\n function(){ this.scrollTo(this.scrollX, value) })\n },\n scrollLeft: function(value){\n if (!this.length) return\n var hasScrollLeft = 'scrollLeft' in this[0]\n if (value === undefined) return hasScrollLeft ? this[0].scrollLeft : this[0].pageXOffset\n return this.each(hasScrollLeft ?\n function(){ this.scrollLeft = value } :\n function(){ this.scrollTo(value, this.scrollY) })\n },\n position: function() {\n if (!this.length) return\n\n var elem = this[0],\n // Get *real* offsetParent\n offsetParent = this.offsetParent(),\n // Get correct offsets\n offset = this.offset(),\n parentOffset = rootNodeRE.test(offsetParent[0].nodeName) ? { top: 0, left: 0 } : offsetParent.offset()\n\n // Subtract element margins\n // note: when an element has margin: auto the offsetLeft and marginLeft\n // are the same in Safari causing offset.left to incorrectly be 0\n offset.top -= parseFloat( $(elem).css('margin-top') ) || 0\n offset.left -= parseFloat( $(elem).css('margin-left') ) || 0\n\n // Add offsetParent borders\n parentOffset.top += parseFloat( $(offsetParent[0]).css('border-top-width') ) || 0\n parentOffset.left += parseFloat( $(offsetParent[0]).css('border-left-width') ) || 0\n\n // Subtract the two offsets\n return {\n top: offset.top - parentOffset.top,\n left: offset.left - parentOffset.left\n }\n },\n offsetParent: function() {\n return this.map(function(){\n var parent = this.offsetParent || document.body\n while (parent && !rootNodeRE.test(parent.nodeName) && $(parent).css(\"position\") == \"static\")\n parent = parent.offsetParent\n return parent\n })\n }\n }\n\n // for now\n $.fn.detach = $.fn.remove\n\n // Generate the `width` and `height` functions\n ;['width', 'height'].forEach(function(dimension){\n var dimensionProperty =\n dimension.replace(/./, function(m){ return m[0].toUpperCase() })\n\n $.fn[dimension] = function(value){\n var offset, el = this[0]\n if (value === undefined) return isWindow(el) ? el['inner' + dimensionProperty] :\n isDocument(el) ? el.documentElement['scroll' + dimensionProperty] :\n (offset = this.offset()) && offset[dimension]\n else return this.each(function(idx){\n el = $(this)\n el.css(dimension, funcArg(this, value, idx, el[dimension]()))\n })\n }\n })\n\n function traverseNode(node, fun) {\n fun(node)\n for (var i = 0, len = node.childNodes.length; i < len; i++)\n traverseNode(node.childNodes[i], fun)\n }\n\n // Generate the `after`, `prepend`, `before`, `append`,\n // `insertAfter`, `insertBefore`, `appendTo`, and `prependTo` methods.\n adjacencyOperators.forEach(function(operator, operatorIndex) {\n var inside = operatorIndex % 2 //=> prepend, append\n\n $.fn[operator] = function(){\n // arguments can be nodes, arrays of nodes, Zepto objects and HTML strings\n var argType, nodes = $.map(arguments, function(arg) {\n var arr = []\n argType = type(arg)\n if (argType == \"array\") {\n arg.forEach(function(el) {\n if (el.nodeType !== undefined) return arr.push(el)\n else if ($.zepto.isZ(el)) return arr = arr.concat(el.get())\n arr = arr.concat(zepto.fragment(el))\n })\n return arr\n }\n return argType == \"object\" || arg == null ?\n arg : zepto.fragment(arg)\n }),\n parent, copyByClone = this.length > 1\n if (nodes.length < 1) return this\n\n return this.each(function(_, target){\n parent = inside ? target : target.parentNode\n\n // convert all methods to a \"before\" operation\n target = operatorIndex == 0 ? target.nextSibling :\n operatorIndex == 1 ? target.firstChild :\n operatorIndex == 2 ? target :\n null\n\n var parentInDocument = $.contains(document.documentElement, parent)\n\n nodes.forEach(function(node){\n if (copyByClone) node = node.cloneNode(true)\n else if (!parent) return $(node).remove()\n\n parent.insertBefore(node, target)\n if (parentInDocument) traverseNode(node, function(el){\n if (el.nodeName != null && el.nodeName.toUpperCase() === 'SCRIPT' &&\n (!el.type || el.type === 'text/javascript') && !el.src){\n var target = el.ownerDocument ? el.ownerDocument.defaultView : window\n target['eval'].call(target, el.innerHTML)\n }\n })\n })\n })\n }\n\n // after => insertAfter\n // prepend => prependTo\n // before => insertBefore\n // append => appendTo\n $.fn[inside ? operator+'To' : 'insert'+(operatorIndex ? 'Before' : 'After')] = function(html){\n $(html)[operator](this)\n return this\n }\n })\n\n zepto.Z.prototype = Z.prototype = $.fn\n\n // Export internal API functions in the `$.zepto` namespace\n zepto.uniq = uniq\n zepto.deserializeValue = deserializeValue\n $.zepto = zepto\n\n return $\n})()\n\nwindow.Zepto = Zepto\nwindow.$ === undefined && (window.$ = Zepto)\n\n;(function($){\n var jsonpID = +new Date(),\n document = window.document,\n key,\n name,\n rscript = /<script\\b[^<]*(?:(?!<\\/script>)<[^<]*)*<\\/script>/gi,\n scriptTypeRE = /^(?:text|application)\\/javascript/i,\n xmlTypeRE = /^(?:text|application)\\/xml/i,\n jsonType = 'application/json',\n htmlType = 'text/html',\n blankRE = /^\\s*$/,\n originAnchor = document.createElement('a')\n\n originAnchor.href = window.location.href\n\n // trigger a custom event and return false if it was cancelled\n function triggerAndReturn(context, eventName, data) {\n var event = $.Event(eventName)\n $(context).trigger(event, data)\n return !event.isDefaultPrevented()\n }\n\n // trigger an Ajax \"global\" event\n function triggerGlobal(settings, context, eventName, data) {\n if (settings.global) return triggerAndReturn(context || document, eventName, data)\n }\n\n // Number of active Ajax requests\n $.active = 0\n\n function ajaxStart(settings) {\n if (settings.global && $.active++ === 0) triggerGlobal(settings, null, 'ajaxStart')\n }\n function ajaxStop(settings) {\n if (settings.global && !(--$.active)) triggerGlobal(settings, null, 'ajaxStop')\n }\n\n // triggers an extra global event \"ajaxBeforeSend\" that's like \"ajaxSend\" but cancelable\n function ajaxBeforeSend(xhr, settings) {\n var context = settings.context\n if (settings.beforeSend.call(context, xhr, settings) === false ||\n triggerGlobal(settings, context, 'ajaxBeforeSend', [xhr, settings]) === false)\n return false\n\n triggerGlobal(settings, context, 'ajaxSend', [xhr, settings])\n }\n function ajaxSuccess(data, xhr, settings, deferred) {\n var context = settings.context, status = 'success'\n settings.success.call(context, data, status, xhr)\n if (deferred) deferred.resolveWith(context, [data, status, xhr])\n triggerGlobal(settings, context, 'ajaxSuccess', [xhr, settings, data])\n ajaxComplete(status, xhr, settings)\n }\n // type: \"timeout\", \"error\", \"abort\", \"parsererror\"\n function ajaxError(error, type, xhr, settings, deferred) {\n var context = settings.context\n settings.error.call(context, xhr, type, error)\n if (deferred) deferred.rejectWith(context, [xhr, type, error])\n triggerGlobal(settings, context, 'ajaxError', [xhr, settings, error || type])\n ajaxComplete(type, xhr, settings)\n }\n // status: \"success\", \"notmodified\", \"error\", \"timeout\", \"abort\", \"parsererror\"\n function ajaxComplete(status, xhr, settings) {\n var context = settings.context\n settings.complete.call(context, xhr, status)\n triggerGlobal(settings, context, 'ajaxComplete', [xhr, settings])\n ajaxStop(settings)\n }\n\n function ajaxDataFilter(data, type, settings) {\n if (settings.dataFilter == empty) return data\n var context = settings.context\n return settings.dataFilter.call(context, data, type)\n }\n\n // Empty function, used as default callback\n function empty() {}\n\n $.ajaxJSONP = function(options, deferred){\n if (!('type' in options)) return $.ajax(options)\n\n var _callbackName = options.jsonpCallback,\n callbackName = ($.isFunction(_callbackName) ?\n _callbackName() : _callbackName) || ('Zepto' + (jsonpID++)),\n script = document.createElement('script'),\n originalCallback = window[callbackName],\n responseData,\n abort = function(errorType) {\n $(script).triggerHandler('error', errorType || 'abort')\n },\n xhr = { abort: abort }, abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n $(script).on('load error', function(e, errorType){\n clearTimeout(abortTimeout)\n $(script).off().remove()\n\n if (e.type == 'error' || !responseData) {\n ajaxError(null, errorType || 'error', xhr, options, deferred)\n } else {\n ajaxSuccess(responseData[0], xhr, options, deferred)\n }\n\n window[callbackName] = originalCallback\n if (responseData && $.isFunction(originalCallback))\n originalCallback(responseData[0])\n\n originalCallback = responseData = undefined\n })\n\n if (ajaxBeforeSend(xhr, options) === false) {\n abort('abort')\n return xhr\n }\n\n window[callbackName] = function(){\n responseData = arguments\n }\n\n script.src = options.url.replace(/\\?(.+)=\\?/, '?$1=' + callbackName)\n document.head.appendChild(script)\n\n if (options.timeout > 0) abortTimeout = setTimeout(function(){\n abort('timeout')\n }, options.timeout)\n\n return xhr\n }\n\n $.ajaxSettings = {\n // Default type of request\n type: 'GET',\n // Callback that is executed before request\n beforeSend: empty,\n // Callback that is executed if the request succeeds\n success: empty,\n // Callback that is executed the the server drops error\n error: empty,\n // Callback that is executed on request complete (both: error and success)\n complete: empty,\n // The context for the callbacks\n context: null,\n // Whether to trigger \"global\" Ajax events\n global: true,\n // Transport\n xhr: function () {\n return new window.XMLHttpRequest()\n },\n // MIME types mapping\n // IIS returns Javascript as \"application/x-javascript\"\n accepts: {\n script: 'text/javascript, application/javascript, application/x-javascript',\n json: jsonType,\n xml: 'application/xml, text/xml',\n html: htmlType,\n text: 'text/plain'\n },\n // Whether the request is to another domain\n crossDomain: false,\n // Default timeout\n timeout: 0,\n // Whether data should be serialized to string\n processData: true,\n // Whether the browser should be allowed to cache GET responses\n cache: true,\n //Used to handle the raw response data of XMLHttpRequest.\n //This is a pre-filtering function to sanitize the response.\n //The sanitized response should be returned\n dataFilter: empty\n }\n\n function mimeToDataType(mime) {\n if (mime) mime = mime.split(';', 2)[0]\n return mime && ( mime == htmlType ? 'html' :\n mime == jsonType ? 'json' :\n scriptTypeRE.test(mime) ? 'script' :\n xmlTypeRE.test(mime) && 'xml' ) || 'text'\n }\n\n function appendQuery(url, query) {\n if (query == '') return url\n return (url + '&' + query).replace(/[&?]{1,2}/, '?')\n }\n\n // serialize payload and append it to the URL for GET requests\n function serializeData(options) {\n if (options.processData && options.data && $.type(options.data) != \"string\")\n options.data = $.param(options.data, options.traditional)\n if (options.data && (!options.type || options.type.toUpperCase() == 'GET' || 'jsonp' == options.dataType))\n options.url = appendQuery(options.url, options.data), options.data = undefined\n }\n\n $.ajax = function(options){\n var settings = $.extend({}, options || {}),\n deferred = $.Deferred && $.Deferred(),\n urlAnchor, hashIndex\n for (key in $.ajaxSettings) if (settings[key] === undefined) settings[key] = $.ajaxSettings[key]\n\n ajaxStart(settings)\n\n if (!settings.crossDomain) {\n urlAnchor = document.createElement('a')\n urlAnchor.href = settings.url\n // cleans up URL for .href (IE only), see https://github.com/madrobby/zepto/pull/1049\n urlAnchor.href = urlAnchor.href\n settings.crossDomain = (originAnchor.protocol + '//' + originAnchor.host) !== (urlAnchor.protocol + '//' + urlAnchor.host)\n }\n\n if (!settings.url) settings.url = window.location.toString()\n if ((hashIndex = settings.url.indexOf('#')) > -1) settings.url = settings.url.slice(0, hashIndex)\n serializeData(settings)\n\n var dataType = settings.dataType, hasPlaceholder = /\\?.+=\\?/.test(settings.url)\n if (hasPlaceholder) dataType = 'jsonp'\n\n if (settings.cache === false || (\n (!options || options.cache !== true) &&\n ('script' == dataType || 'jsonp' == dataType)\n ))\n settings.url = appendQuery(settings.url, '_=' + Date.now())\n\n if ('jsonp' == dataType) {\n if (!hasPlaceholder)\n settings.url = appendQuery(settings.url,\n settings.jsonp ? (settings.jsonp + '=?') : settings.jsonp === false ? '' : 'callback=?')\n return $.ajaxJSONP(settings, deferred)\n }\n\n var mime = settings.accepts[dataType],\n headers = { },\n setHeader = function(name, value) { headers[name.toLowerCase()] = [name, value] },\n protocol = /^([\\w-]+:)\\/\\//.test(settings.url) ? RegExp.$1 : window.location.protocol,\n xhr = settings.xhr(),\n nativeSetHeader = xhr.setRequestHeader,\n abortTimeout\n\n if (deferred) deferred.promise(xhr)\n\n if (!settings.crossDomain) setHeader('X-Requested-With', 'XMLHttpRequest')\n setHeader('Accept', mime || '*/*')\n if (mime = settings.mimeType || mime) {\n if (mime.indexOf(',') > -1) mime = mime.split(',', 2)[0]\n xhr.overrideMimeType && xhr.overrideMimeType(mime)\n }\n if (settings.contentType || (settings.contentType !== false && settings.data && settings.type.toUpperCase() != 'GET'))\n setHeader('Content-Type', settings.contentType || 'application/x-www-form-urlencoded')\n\n if (settings.headers) for (name in settings.headers) setHeader(name, settings.headers[name])\n xhr.setRequestHeader = setHeader\n\n xhr.onreadystatechange = function(){\n if (xhr.readyState == 4) {\n xhr.onreadystatechange = empty\n clearTimeout(abortTimeout)\n var result, error = false\n if ((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304 || (xhr.status == 0 && protocol == 'file:')) {\n dataType = dataType || mimeToDataType(settings.mimeType || xhr.getResponseHeader('content-type'))\n\n if (xhr.responseType == 'arraybuffer' || xhr.responseType == 'blob')\n result = xhr.response\n else {\n result = xhr.responseText\n\n try {\n // http://perfectionkills.com/global-eval-what-are-the-options/\n // sanitize response accordingly if data filter callback provided\n result = ajaxDataFilter(result, dataType, settings)\n if (dataType == 'script') (1,eval)(result)\n else if (dataType == 'xml') result = xhr.responseXML\n else if (dataType == 'json') result = blankRE.test(result) ? null : $.parseJSON(result)\n } catch (e) { error = e }\n\n if (error) return ajaxError(error, 'parsererror', xhr, settings, deferred)\n }\n\n ajaxSuccess(result, xhr, settings, deferred)\n } else {\n ajaxError(xhr.statusText || null, xhr.status ? 'error' : 'abort', xhr, settings, deferred)\n }\n }\n }\n\n if (ajaxBeforeSend(xhr, settings) === false) {\n xhr.abort()\n ajaxError(null, 'abort', xhr, settings, deferred)\n return xhr\n }\n\n var async = 'async' in settings ? settings.async : true\n xhr.open(settings.type, settings.url, async, settings.username, settings.password)\n\n if (settings.xhrFields) for (name in settings.xhrFields) xhr[name] = settings.xhrFields[name]\n\n for (name in headers) nativeSetHeader.apply(xhr, headers[name])\n\n if (settings.timeout > 0) abortTimeout = setTimeout(function(){\n xhr.onreadystatechange = empty\n xhr.abort()\n ajaxError(null, 'timeout', xhr, settings, deferred)\n }, settings.timeout)\n\n // avoid sending empty string (#319)\n xhr.send(settings.data ? settings.data : null)\n return xhr\n }\n\n // handle optional data/success arguments\n function parseArguments(url, data, success, dataType) {\n if ($.isFunction(data)) dataType = success, success = data, data = undefined\n if (!$.isFunction(success)) dataType = success, success = undefined\n return {\n url: url\n , data: data\n , success: success\n , dataType: dataType\n }\n }\n\n $.get = function(/* url, data, success, dataType */){\n return $.ajax(parseArguments.apply(null, arguments))\n }\n\n $.post = function(/* url, data, success, dataType */){\n var options = parseArguments.apply(null, arguments)\n options.type = 'POST'\n return $.ajax(options)\n }\n\n $.getJSON = function(/* url, data, success */){\n var options = parseArguments.apply(null, arguments)\n options.dataType = 'json'\n return $.ajax(options)\n }\n\n $.fn.load = function(url, data, success){\n if (!this.length) return this\n var self = this, parts = url.split(/\\s/), selector,\n options = parseArguments(url, data, success),\n callback = options.success\n if (parts.length > 1) options.url = parts[0], selector = parts[1]\n options.success = function(response){\n self.html(selector ?\n $('<div>').html(response.replace(rscript, \"\")).find(selector)\n : response)\n callback && callback.apply(self, arguments)\n }\n $.ajax(options)\n return this\n }\n\n var escape = encodeURIComponent\n\n function serialize(params, obj, traditional, scope){\n var type, array = $.isArray(obj), hash = $.isPlainObject(obj)\n $.each(obj, function(key, value) {\n type = $.type(value)\n if (scope) key = traditional ? scope :\n scope + '[' + (hash || type == 'object' || type == 'array' ? key : '') + ']'\n // handle data in serializeArray() format\n if (!scope && array) params.add(value.name, value.value)\n // recurse into nested objects\n else if (type == \"array\" || (!traditional && type == \"object\"))\n serialize(params, value, traditional, key)\n else params.add(key, value)\n })\n }\n\n $.param = function(obj, traditional){\n var params = []\n params.add = function(key, value) {\n if ($.isFunction(value)) value = value()\n if (value == null) value = \"\"\n this.push(escape(key) + '=' + escape(value))\n }\n serialize(params, obj, traditional)\n return params.join('&').replace(/%20/g, '+')\n }\n})(Zepto)\n\n;(function($){\n // Create a collection of callbacks to be fired in a sequence, with configurable behaviour\n // Option flags:\n // - once: Callbacks fired at most one time.\n // - memory: Remember the most recent context and arguments\n // - stopOnFalse: Cease iterating over callback list\n // - unique: Permit adding at most one instance of the same callback\n $.Callbacks = function(options) {\n options = $.extend({}, options)\n\n var memory, // Last fire value (for non-forgettable lists)\n fired, // Flag to know if list was already fired\n firing, // Flag to know if list is currently firing\n firingStart, // First callback to fire (used internally by add and fireWith)\n firingLength, // End of the loop when firing\n firingIndex, // Index of currently firing callback (modified by remove if needed)\n list = [], // Actual callback list\n stack = !options.once && [], // Stack of fire calls for repeatable lists\n fire = function(data) {\n memory = options.memory && data\n fired = true\n firingIndex = firingStart || 0\n firingStart = 0\n firingLength = list.length\n firing = true\n for ( ; list && firingIndex < firingLength ; ++firingIndex ) {\n if (list[firingIndex].apply(data[0], data[1]) === false && options.stopOnFalse) {\n memory = false\n break\n }\n }\n firing = false\n if (list) {\n if (stack) stack.length && fire(stack.shift())\n else if (memory) list.length = 0\n else Callbacks.disable()\n }\n },\n\n Callbacks = {\n add: function() {\n if (list) {\n var start = list.length,\n add = function(args) {\n $.each(args, function(_, arg){\n if (typeof arg === \"function\") {\n if (!options.unique || !Callbacks.has(arg)) list.push(arg)\n }\n else if (arg && arg.length && typeof arg !== 'string') add(arg)\n })\n }\n add(arguments)\n if (firing) firingLength = list.length\n else if (memory) {\n firingStart = start\n fire(memory)\n }\n }\n return this\n },\n remove: function() {\n if (list) {\n $.each(arguments, function(_, arg){\n var index\n while ((index = $.inArray(arg, list, index)) > -1) {\n list.splice(index, 1)\n // Handle firing indexes\n if (firing) {\n if (index <= firingLength) --firingLength\n if (index <= firingIndex) --firingIndex\n }\n }\n })\n }\n return this\n },\n has: function(fn) {\n return !!(list && (fn ? $.inArray(fn, list) > -1 : list.length))\n },\n empty: function() {\n firingLength = list.length = 0\n return this\n },\n disable: function() {\n list = stack = memory = undefined\n return this\n },\n disabled: function() {\n return !list\n },\n lock: function() {\n stack = undefined\n if (!memory) Callbacks.disable()\n return this\n },\n locked: function() {\n return !stack\n },\n fireWith: function(context, args) {\n if (list && (!fired || stack)) {\n args = args || []\n args = [context, args.slice ? args.slice() : args]\n if (firing) stack.push(args)\n else fire(args)\n }\n return this\n },\n fire: function() {\n return Callbacks.fireWith(this, arguments)\n },\n fired: function() {\n return !!fired\n }\n }\n\n return Callbacks\n }\n})(Zepto)\n\n;(function($){\n var slice = Array.prototype.slice\n\n function Deferred(func) {\n var tuples = [\n // action, add listener, listener list, final state\n [ \"resolve\", \"done\", $.Callbacks({once:1, memory:1}), \"resolved\" ],\n [ \"reject\", \"fail\", $.Callbacks({once:1, memory:1}), \"rejected\" ],\n [ \"notify\", \"progress\", $.Callbacks({memory:1}) ]\n ],\n state = \"pending\",\n promise = {\n state: function() {\n return state\n },\n always: function() {\n deferred.done(arguments).fail(arguments)\n return this\n },\n then: function(/* fnDone [, fnFailed [, fnProgress]] */) {\n var fns = arguments\n return Deferred(function(defer){\n $.each(tuples, function(i, tuple){\n var fn = $.isFunction(fns[i]) && fns[i]\n deferred[tuple[1]](function(){\n var returned = fn && fn.apply(this, arguments)\n if (returned && $.isFunction(returned.promise)) {\n returned.promise()\n .done(defer.resolve)\n .fail(defer.reject)\n .progress(defer.notify)\n } else {\n var context = this === promise ? defer.promise() : this,\n values = fn ? [returned] : arguments\n defer[tuple[0] + \"With\"](context, values)\n }\n })\n })\n fns = null\n }).promise()\n },\n\n promise: function(obj) {\n return obj != null ? $.extend( obj, promise ) : promise\n }\n },\n deferred = {}\n\n $.each(tuples, function(i, tuple){\n var list = tuple[2],\n stateString = tuple[3]\n\n promise[tuple[1]] = list.add\n\n if (stateString) {\n list.add(function(){\n state = stateString\n }, tuples[i^1][2].disable, tuples[2][2].lock)\n }\n\n deferred[tuple[0]] = function(){\n deferred[tuple[0] + \"With\"](this === deferred ? promise : this, arguments)\n return this\n }\n deferred[tuple[0] + \"With\"] = list.fireWith\n })\n\n promise.promise(deferred)\n if (func) func.call(deferred, deferred)\n return deferred\n }\n\n $.when = function(sub) {\n var resolveValues = slice.call(arguments),\n len = resolveValues.length,\n i = 0,\n remain = len !== 1 || (sub && $.isFunction(sub.promise)) ? len : 0,\n deferred = remain === 1 ? sub : Deferred(),\n progressValues, progressContexts, resolveContexts,\n updateFn = function(i, ctx, val){\n return function(value){\n ctx[i] = this\n val[i] = arguments.length > 1 ? slice.call(arguments) : value\n if (val === progressValues) {\n deferred.notifyWith(ctx, val)\n } else if (!(--remain)) {\n deferred.resolveWith(ctx, val)\n }\n }\n }\n\n if (len > 1) {\n progressValues = new Array(len)\n progressContexts = new Array(len)\n resolveContexts = new Array(len)\n for ( ; i < len; ++i ) {\n if (resolveValues[i] && $.isFunction(resolveValues[i].promise)) {\n resolveValues[i].promise()\n .done(updateFn(i, resolveContexts, resolveValues))\n .fail(deferred.reject)\n .progress(updateFn(i, progressContexts, progressValues))\n } else {\n --remain\n }\n }\n }\n if (!remain) deferred.resolveWith(resolveContexts, resolveValues)\n return deferred.promise()\n }\n\n $.Deferred = Deferred\n})(Zepto)\n\n;(function($){\n var _zid = 1, undefined,\n slice = Array.prototype.slice,\n isFunction = $.isFunction,\n isString = function(obj){ return typeof obj == 'string' },\n handlers = {},\n specialEvents={},\n focusinSupported = 'onfocusin' in window,\n focus = { focus: 'focusin', blur: 'focusout' },\n hover = { mouseenter: 'mouseover', mouseleave: 'mouseout' }\n\n specialEvents.click = specialEvents.mousedown = specialEvents.mouseup = specialEvents.mousemove = 'MouseEvents'\n\n function zid(element) {\n return element._zid || (element._zid = _zid++)\n }\n function findHandlers(element, event, fn, selector) {\n event = parse(event)\n if (event.ns) var matcher = matcherFor(event.ns)\n return (handlers[zid(element)] || []).filter(function(handler) {\n return handler\n && (!event.e || handler.e == event.e)\n && (!event.ns || matcher.test(handler.ns))\n && (!fn || zid(handler.fn) === zid(fn))\n && (!selector || handler.sel == selector)\n })\n }\n function parse(event) {\n var parts = ('' + event).split('.')\n return {e: parts[0], ns: parts.slice(1).sort().join(' ')}\n }\n function matcherFor(ns) {\n return new RegExp('(?:^| )' + ns.replace(' ', ' .* ?') + '(?: |$)')\n }\n\n function eventCapture(handler, captureSetting) {\n return handler.del &&\n (!focusinSupported && (handler.e in focus)) ||\n !!captureSetting\n }\n\n function realEvent(type) {\n return hover[type] || (focusinSupported && focus[type]) || type\n }\n\n function add(element, events, fn, data, selector, delegator, capture){\n var id = zid(element), set = (handlers[id] || (handlers[id] = []))\n events.split(/\\s/).forEach(function(event){\n if (event == 'ready') return $(document).ready(fn)\n var handler = parse(event)\n handler.fn = fn\n handler.sel = selector\n // emulate mouseenter, mouseleave\n if (handler.e in hover) fn = function(e){\n var related = e.relatedTarget\n if (!related || (related !== this && !$.contains(this, related)))\n return handler.fn.apply(this, arguments)\n }\n handler.del = delegator\n var callback = delegator || fn\n handler.proxy = function(e){\n e = compatible(e)\n if (e.isImmediatePropagationStopped()) return\n e.data = data\n var result = callback.apply(element, e._args == undefined ? [e] : [e].concat(e._args))\n if (result === false) e.preventDefault(), e.stopPropagation()\n return result\n }\n handler.i = set.length\n set.push(handler)\n if ('addEventListener' in element)\n element.addEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n }\n function remove(element, events, fn, selector, capture){\n var id = zid(element)\n ;(events || '').split(/\\s/).forEach(function(event){\n findHandlers(element, event, fn, selector).forEach(function(handler){\n delete handlers[id][handler.i]\n if ('removeEventListener' in element)\n element.removeEventListener(realEvent(handler.e), handler.proxy, eventCapture(handler, capture))\n })\n })\n }\n\n $.event = { add: add, remove: remove }\n\n $.proxy = function(fn, context) {\n var args = (2 in arguments) && slice.call(arguments, 2)\n if (isFunction(fn)) {\n var proxyFn = function(){ return fn.apply(context, args ? args.concat(slice.call(arguments)) : arguments) }\n proxyFn._zid = zid(fn)\n return proxyFn\n } else if (isString(context)) {\n if (args) {\n args.unshift(fn[context], fn)\n return $.proxy.apply(null, args)\n } else {\n return $.proxy(fn[context], fn)\n }\n } else {\n throw new TypeError(\"expected function\")\n }\n }\n\n $.fn.bind = function(event, data, callback){\n return this.on(event, data, callback)\n }\n $.fn.unbind = function(event, callback){\n return this.off(event, callback)\n }\n $.fn.one = function(event, selector, data, callback){\n return this.on(event, selector, data, callback, 1)\n }\n\n var returnTrue = function(){return true},\n returnFalse = function(){return false},\n ignoreProperties = /^([A-Z]|returnValue$|layer[XY]$|webkitMovement[XY]$)/,\n eventMethods = {\n preventDefault: 'isDefaultPrevented',\n stopImmediatePropagation: 'isImmediatePropagationStopped',\n stopPropagation: 'isPropagationStopped'\n }\n\n function compatible(event, source) {\n if (source || !event.isDefaultPrevented) {\n source || (source = event)\n\n $.each(eventMethods, function(name, predicate) {\n var sourceMethod = source[name]\n event[name] = function(){\n this[predicate] = returnTrue\n return sourceMethod && sourceMethod.apply(source, arguments)\n }\n event[predicate] = returnFalse\n })\n\n event.timeStamp || (event.timeStamp = Date.now())\n\n if (source.defaultPrevented !== undefined ? source.defaultPrevented :\n 'returnValue' in source ? source.returnValue === false :\n source.getPreventDefault && source.getPreventDefault())\n event.isDefaultPrevented = returnTrue\n }\n return event\n }\n\n function createProxy(event) {\n var key, proxy = { originalEvent: event }\n for (key in event)\n if (!ignoreProperties.test(key) && event[key] !== undefined) proxy[key] = event[key]\n\n return compatible(proxy, event)\n }\n\n $.fn.delegate = function(selector, event, callback){\n return this.on(event, selector, callback)\n }\n $.fn.undelegate = function(selector, event, callback){\n return this.off(event, selector, callback)\n }\n\n $.fn.live = function(event, callback){\n $(document.body).delegate(this.selector, event, callback)\n return this\n }\n $.fn.die = function(event, callback){\n $(document.body).undelegate(this.selector, event, callback)\n return this\n }\n\n $.fn.on = function(event, selector, data, callback, one){\n var autoRemove, delegator, $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.on(type, selector, data, fn, one)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = data, data = selector, selector = undefined\n if (callback === undefined || data === false)\n callback = data, data = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(_, element){\n if (one) autoRemove = function(e){\n remove(element, e.type, callback)\n return callback.apply(this, arguments)\n }\n\n if (selector) delegator = function(e){\n var evt, match = $(e.target).closest(selector, element).get(0)\n if (match && match !== element) {\n evt = $.extend(createProxy(e), {currentTarget: match, liveFired: element})\n return (autoRemove || callback).apply(match, [evt].concat(slice.call(arguments, 1)))\n }\n }\n\n add(element, event, callback, data, selector, delegator || autoRemove)\n })\n }\n $.fn.off = function(event, selector, callback){\n var $this = this\n if (event && !isString(event)) {\n $.each(event, function(type, fn){\n $this.off(type, selector, fn)\n })\n return $this\n }\n\n if (!isString(selector) && !isFunction(callback) && callback !== false)\n callback = selector, selector = undefined\n\n if (callback === false) callback = returnFalse\n\n return $this.each(function(){\n remove(this, event, callback, selector)\n })\n }\n\n $.fn.trigger = function(event, args){\n event = (isString(event) || $.isPlainObject(event)) ? $.Event(event) : compatible(event)\n event._args = args\n return this.each(function(){\n // handle focus(), blur() by calling them directly\n if (event.type in focus && typeof this[event.type] == \"function\") this[event.type]()\n // items in the collection might not be DOM elements\n else if ('dispatchEvent' in this) this.dispatchEvent(event)\n else $(this).triggerHandler(event, args)\n })\n }\n\n // triggers event handlers on current element just as if an event occurred,\n // doesn't trigger an actual event, doesn't bubble\n $.fn.triggerHandler = function(event, args){\n var e, result\n this.each(function(i, element){\n e = createProxy(isString(event) ? $.Event(event) : event)\n e._args = args\n e.target = element\n $.each(findHandlers(element, event.type || event), function(i, handler){\n result = handler.proxy(e)\n if (e.isImmediatePropagationStopped()) return false\n })\n })\n return result\n }\n\n // shortcut methods for `.bind(event, fn)` for each event type\n ;('focusin focusout focus blur load resize scroll unload click dblclick '+\n 'mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave '+\n 'change select keydown keypress keyup error').split(' ').forEach(function(event) {\n $.fn[event] = function(callback) {\n return (0 in arguments) ?\n this.bind(event, callback) :\n this.trigger(event)\n }\n })\n\n $.Event = function(type, props) {\n if (!isString(type)) props = type, type = props.type\n var event = document.createEvent(specialEvents[type] || 'Events'), bubbles = true\n if (props) for (var name in props) (name == 'bubbles') ? (bubbles = !!props[name]) : (event[name] = props[name])\n event.initEvent(type, bubbles, true)\n return compatible(event)\n }\n\n})(Zepto)\n\n;(function(){\n // getComputedStyle shouldn't freak out when called\n // without a valid element as argument\n try {\n getComputedStyle(undefined)\n } catch(e) {\n var nativeGetComputedStyle = getComputedStyle\n window.getComputedStyle = function(element, pseudoElement){\n try {\n return nativeGetComputedStyle(element, pseudoElement)\n } catch(e) {\n return null\n }\n }\n }\n})()\n\n;(function($){\n var zepto = $.zepto, oldQsa = zepto.qsa, oldMatches = zepto.matches\n\n function visible(elem){\n elem = $(elem)\n return !!(elem.width() || elem.height()) && elem.css(\"display\") !== \"none\"\n }\n\n // Implements a subset from:\n // http://api.jquery.com/category/selectors/jquery-selector-extensions/\n //\n // Each filter function receives the current index, all nodes in the\n // considered set, and a value if there were parentheses. The value\n // of `this` is the node currently being considered. The function returns the\n // resulting node(s), null, or undefined.\n //\n // Complex selectors are not supported:\n // li:has(label:contains(\"foo\")) + li:has(label:contains(\"bar\"))\n // ul.inner:first > li\n var filters = $.expr[':'] = {\n visible: function(){ if (visible(this)) return this },\n hidden: function(){ if (!visible(this)) return this },\n selected: function(){ if (this.selected) return this },\n checked: function(){ if (this.checked) return this },\n parent: function(){ return this.parentNode },\n first: function(idx){ if (idx === 0) return this },\n last: function(idx, nodes){ if (idx === nodes.length - 1) return this },\n eq: function(idx, _, value){ if (idx === value) return this },\n contains: function(idx, _, text){ if ($(this).text().indexOf(text) > -1) return this },\n has: function(idx, _, sel){ if (zepto.qsa(this, sel).length) return this }\n }\n\n var filterRe = new RegExp('(.*):(\\\\w+)(?:\\\\(([^)]+)\\\\))?$\\\\s*'),\n childRe = /^\\s*>/,\n classTag = 'Zepto' + (+new Date())\n\n function process(sel, fn) {\n // quote the hash in `a[href^=#]` expression\n sel = sel.replace(/=#\\]/g, '=\"#\"]')\n var filter, arg, match = filterRe.exec(sel)\n if (match && match[2] in filters) {\n filter = filters[match[2]], arg = match[3]\n sel = match[1]\n if (arg) {\n var num = Number(arg)\n if (isNaN(num)) arg = arg.replace(/^[\"']|[\"']$/g, '')\n else arg = num\n }\n }\n return fn(sel, filter, arg)\n }\n\n zepto.qsa = function(node, selector) {\n return process(selector, function(sel, filter, arg){\n try {\n var taggedParent\n if (!sel && filter) sel = '*'\n else if (childRe.test(sel))\n // support \"> *\" child queries by tagging the parent node with a\n // unique class and prepending that classname onto the selector\n taggedParent = $(node).addClass(classTag), sel = '.'+classTag+' '+sel\n\n var nodes = oldQsa(node, sel)\n } catch(e) {\n console.error('error performing selector: %o', selector)\n throw e\n } finally {\n if (taggedParent) taggedParent.removeClass(classTag)\n }\n return !filter ? nodes :\n zepto.uniq($.map(nodes, function(n, i){ return filter.call(n, i, nodes, arg) }))\n })\n }\n\n zepto.matches = function(node, selector){\n return process(selector, function(sel, filter, arg){\n return (!sel || oldMatches(node, sel)) &&\n (!filter || filter.call(node, null, arg) === node)\n })\n }\n})(Zepto)\nmodule.exports = Zepto\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/clappr-zepto/zepto.js\n// module id = 6\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n// css base code, injected by the css-loader\nmodule.exports = function(useSourceMap) {\n\tvar list = [];\n\n\t// return the list of modules as css string\n\tlist.toString = function toString() {\n\t\treturn this.map(function (item) {\n\t\t\tvar content = cssWithMappingToString(item, useSourceMap);\n\t\t\tif(item[2]) {\n\t\t\t\treturn \"@media \" + item[2] + \"{\" + content + \"}\";\n\t\t\t} else {\n\t\t\t\treturn content;\n\t\t\t}\n\t\t}).join(\"\");\n\t};\n\n\t// import a list of modules into the list\n\tlist.i = function(modules, mediaQuery) {\n\t\tif(typeof modules === \"string\")\n\t\t\tmodules = [[null, modules, \"\"]];\n\t\tvar alreadyImportedModules = {};\n\t\tfor(var i = 0; i < this.length; i++) {\n\t\t\tvar id = this[i][0];\n\t\t\tif(typeof id === \"number\")\n\t\t\t\talreadyImportedModules[id] = true;\n\t\t}\n\t\tfor(i = 0; i < modules.length; i++) {\n\t\t\tvar item = modules[i];\n\t\t\t// skip already imported module\n\t\t\t// this implementation is not 100% perfect for weird media query combinations\n\t\t\t// when a module is imported multiple times with different media queries.\n\t\t\t// I hope this will never occur (Hey this way we have smaller bundles)\n\t\t\tif(typeof item[0] !== \"number\" || !alreadyImportedModules[item[0]]) {\n\t\t\t\tif(mediaQuery && !item[2]) {\n\t\t\t\t\titem[2] = mediaQuery;\n\t\t\t\t} else if(mediaQuery) {\n\t\t\t\t\titem[2] = \"(\" + item[2] + \") and (\" + mediaQuery + \")\";\n\t\t\t\t}\n\t\t\t\tlist.push(item);\n\t\t\t}\n\t\t}\n\t};\n\treturn list;\n};\n\nfunction cssWithMappingToString(item, useSourceMap) {\n\tvar content = item[1] || '';\n\tvar cssMapping = item[3];\n\tif (!cssMapping) {\n\t\treturn content;\n\t}\n\n\tif (useSourceMap && typeof btoa === 'function') {\n\t\tvar sourceMapping = toComment(cssMapping);\n\t\tvar sourceURLs = cssMapping.sources.map(function (source) {\n\t\t\treturn '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */'\n\t\t});\n\n\t\treturn [content].concat(sourceURLs).concat([sourceMapping]).join('\\n');\n\t}\n\n\treturn [content].join('\\n');\n}\n\n// Adapted from convert-source-map (MIT)\nfunction toComment(sourceMap) {\n\t// eslint-disable-next-line no-undef\n\tvar base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap))));\n\tvar data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64;\n\n\treturn '/*# ' + data + ' */';\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader/lib/css-base.js\n// module id = 7\n// module chunks = 0","var core = module.exports = {version: '2.4.0'};\nif(typeof __e == 'number')__e = core; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_core.js\n// module id = 8\n// module chunks = 0","/*\n\tMIT License http://www.opensource.org/licenses/mit-license.php\n\tAuthor Tobias Koppers @sokra\n*/\n\nvar stylesInDom = {};\n\nvar\tmemoize = function (fn) {\n\tvar memo;\n\n\treturn function () {\n\t\tif (typeof memo === \"undefined\") memo = fn.apply(this, arguments);\n\t\treturn memo;\n\t};\n};\n\nvar isOldIE = memoize(function () {\n\t// Test for IE <= 9 as proposed by Browserhacks\n\t// @see http://browserhacks.com/#hack-e71d8692f65334173fee715c222cb805\n\t// Tests for existence of standard globals is to allow style-loader\n\t// to operate correctly into non-standard environments\n\t// @see https://github.com/webpack-contrib/style-loader/issues/177\n\treturn window && document && document.all && !window.atob;\n});\n\nvar getTarget = function (target) {\n return document.querySelector(target);\n};\n\nvar getElement = (function (fn) {\n\tvar memo = {};\n\n\treturn function(target) {\n // If passing function in options, then use it for resolve \"head\" element.\n // Useful for Shadow Root style i.e\n // {\n // insertInto: function () { return document.querySelector(\"#foo\").shadowRoot }\n // }\n if (typeof target === 'function') {\n return target();\n }\n if (typeof memo[target] === \"undefined\") {\n\t\t\tvar styleTarget = getTarget.call(this, target);\n\t\t\t// Special case to return head of iframe instead of iframe itself\n\t\t\tif (window.HTMLIFrameElement && styleTarget instanceof window.HTMLIFrameElement) {\n\t\t\t\ttry {\n\t\t\t\t\t// This will throw an exception if access to iframe is blocked\n\t\t\t\t\t// due to cross-origin restrictions\n\t\t\t\t\tstyleTarget = styleTarget.contentDocument.head;\n\t\t\t\t} catch(e) {\n\t\t\t\t\tstyleTarget = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\tmemo[target] = styleTarget;\n\t\t}\n\t\treturn memo[target]\n\t};\n})();\n\nvar singleton = null;\nvar\tsingletonCounter = 0;\nvar\tstylesInsertedAtTop = [];\n\nvar\tfixUrls = require(\"./urls\");\n\nmodule.exports = function(list, options) {\n\tif (typeof DEBUG !== \"undefined\" && DEBUG) {\n\t\tif (typeof document !== \"object\") throw new Error(\"The style-loader cannot be used in a non-browser environment\");\n\t}\n\n\toptions = options || {};\n\n\toptions.attrs = typeof options.attrs === \"object\" ? options.attrs : {};\n\n\t// Force single-tag solution on IE6-9, which has a hard limit on the # of <style>\n\t// tags it will allow on a page\n\tif (!options.singleton && typeof options.singleton !== \"boolean\") options.singleton = isOldIE();\n\n\t// By default, add <style> tags to the <head> element\n if (!options.insertInto) options.insertInto = \"head\";\n\n\t// By default, add <style> tags to the bottom of the target\n\tif (!options.insertAt) options.insertAt = \"bottom\";\n\n\tvar styles = listToStyles(list, options);\n\n\taddStylesToDom(styles, options);\n\n\treturn function update (newList) {\n\t\tvar mayRemove = [];\n\n\t\tfor (var i = 0; i < styles.length; i++) {\n\t\t\tvar item = styles[i];\n\t\t\tvar domStyle = stylesInDom[item.id];\n\n\t\t\tdomStyle.refs--;\n\t\t\tmayRemove.push(domStyle);\n\t\t}\n\n\t\tif(newList) {\n\t\t\tvar newStyles = listToStyles(newList, options);\n\t\t\taddStylesToDom(newStyles, options);\n\t\t}\n\n\t\tfor (var i = 0; i < mayRemove.length; i++) {\n\t\t\tvar domStyle = mayRemove[i];\n\n\t\t\tif(domStyle.refs === 0) {\n\t\t\t\tfor (var j = 0; j < domStyle.parts.length; j++) domStyle.parts[j]();\n\n\t\t\t\tdelete stylesInDom[domStyle.id];\n\t\t\t}\n\t\t}\n\t};\n};\n\nfunction addStylesToDom (styles, options) {\n\tfor (var i = 0; i < styles.length; i++) {\n\t\tvar item = styles[i];\n\t\tvar domStyle = stylesInDom[item.id];\n\n\t\tif(domStyle) {\n\t\t\tdomStyle.refs++;\n\n\t\t\tfor(var j = 0; j < domStyle.parts.length; j++) {\n\t\t\t\tdomStyle.parts[j](item.parts[j]);\n\t\t\t}\n\n\t\t\tfor(; j < item.parts.length; j++) {\n\t\t\t\tdomStyle.parts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\t\t} else {\n\t\t\tvar parts = [];\n\n\t\t\tfor(var j = 0; j < item.parts.length; j++) {\n\t\t\t\tparts.push(addStyle(item.parts[j], options));\n\t\t\t}\n\n\t\t\tstylesInDom[item.id] = {id: item.id, refs: 1, parts: parts};\n\t\t}\n\t}\n}\n\nfunction listToStyles (list, options) {\n\tvar styles = [];\n\tvar newStyles = {};\n\n\tfor (var i = 0; i < list.length; i++) {\n\t\tvar item = list[i];\n\t\tvar id = options.base ? item[0] + options.base : item[0];\n\t\tvar css = item[1];\n\t\tvar media = item[2];\n\t\tvar sourceMap = item[3];\n\t\tvar part = {css: css, media: media, sourceMap: sourceMap};\n\n\t\tif(!newStyles[id]) styles.push(newStyles[id] = {id: id, parts: [part]});\n\t\telse newStyles[id].parts.push(part);\n\t}\n\n\treturn styles;\n}\n\nfunction insertStyleElement (options, style) {\n\tvar target = getElement(options.insertInto)\n\n\tif (!target) {\n\t\tthrow new Error(\"Couldn't find a style target. This probably means that the value for the 'insertInto' parameter is invalid.\");\n\t}\n\n\tvar lastStyleElementInsertedAtTop = stylesInsertedAtTop[stylesInsertedAtTop.length - 1];\n\n\tif (options.insertAt === \"top\") {\n\t\tif (!lastStyleElementInsertedAtTop) {\n\t\t\ttarget.insertBefore(style, target.firstChild);\n\t\t} else if (lastStyleElementInsertedAtTop.nextSibling) {\n\t\t\ttarget.insertBefore(style, lastStyleElementInsertedAtTop.nextSibling);\n\t\t} else {\n\t\t\ttarget.appendChild(style);\n\t\t}\n\t\tstylesInsertedAtTop.push(style);\n\t} else if (options.insertAt === \"bottom\") {\n\t\ttarget.appendChild(style);\n\t} else if (typeof options.insertAt === \"object\" && options.insertAt.before) {\n\t\tvar nextSibling = getElement(options.insertInto + \" \" + options.insertAt.before);\n\t\ttarget.insertBefore(style, nextSibling);\n\t} else {\n\t\tthrow new Error(\"[Style Loader]\\n\\n Invalid value for parameter 'insertAt' ('options.insertAt') found.\\n Must be 'top', 'bottom', or Object.\\n (https://github.com/webpack-contrib/style-loader#insertat)\\n\");\n\t}\n}\n\nfunction removeStyleElement (style) {\n\tif (style.parentNode === null) return false;\n\tstyle.parentNode.removeChild(style);\n\n\tvar idx = stylesInsertedAtTop.indexOf(style);\n\tif(idx >= 0) {\n\t\tstylesInsertedAtTop.splice(idx, 1);\n\t}\n}\n\nfunction createStyleElement (options) {\n\tvar style = document.createElement(\"style\");\n\n\toptions.attrs.type = \"text/css\";\n\n\taddAttrs(style, options.attrs);\n\tinsertStyleElement(options, style);\n\n\treturn style;\n}\n\nfunction createLinkElement (options) {\n\tvar link = document.createElement(\"link\");\n\n\toptions.attrs.type = \"text/css\";\n\toptions.attrs.rel = \"stylesheet\";\n\n\taddAttrs(link, options.attrs);\n\tinsertStyleElement(options, link);\n\n\treturn link;\n}\n\nfunction addAttrs (el, attrs) {\n\tObject.keys(attrs).forEach(function (key) {\n\t\tel.setAttribute(key, attrs[key]);\n\t});\n}\n\nfunction addStyle (obj, options) {\n\tvar style, update, remove, result;\n\n\t// If a transform function was defined, run it on the css\n\tif (options.transform && obj.css) {\n\t result = options.transform(obj.css);\n\n\t if (result) {\n\t \t// If transform returns a value, use that instead of the original css.\n\t \t// This allows running runtime transformations on the css.\n\t \tobj.css = result;\n\t } else {\n\t \t// If the transform function returns a falsy value, don't add this css.\n\t \t// This allows conditional loading of css\n\t \treturn function() {\n\t \t\t// noop\n\t \t};\n\t }\n\t}\n\n\tif (options.singleton) {\n\t\tvar styleIndex = singletonCounter++;\n\n\t\tstyle = singleton || (singleton = createStyleElement(options));\n\n\t\tupdate = applyToSingletonTag.bind(null, style, styleIndex, false);\n\t\tremove = applyToSingletonTag.bind(null, style, styleIndex, true);\n\n\t} else if (\n\t\tobj.sourceMap &&\n\t\ttypeof URL === \"function\" &&\n\t\ttypeof URL.createObjectURL === \"function\" &&\n\t\ttypeof URL.revokeObjectURL === \"function\" &&\n\t\ttypeof Blob === \"function\" &&\n\t\ttypeof btoa === \"function\"\n\t) {\n\t\tstyle = createLinkElement(options);\n\t\tupdate = updateLink.bind(null, style, options);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\n\t\t\tif(style.href) URL.revokeObjectURL(style.href);\n\t\t};\n\t} else {\n\t\tstyle = createStyleElement(options);\n\t\tupdate = applyToTag.bind(null, style);\n\t\tremove = function () {\n\t\t\tremoveStyleElement(style);\n\t\t};\n\t}\n\n\tupdate(obj);\n\n\treturn function updateStyle (newObj) {\n\t\tif (newObj) {\n\t\t\tif (\n\t\t\t\tnewObj.css === obj.css &&\n\t\t\t\tnewObj.media === obj.media &&\n\t\t\t\tnewObj.sourceMap === obj.sourceMap\n\t\t\t) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tupdate(obj = newObj);\n\t\t} else {\n\t\t\tremove();\n\t\t}\n\t};\n}\n\nvar replaceText = (function () {\n\tvar textStore = [];\n\n\treturn function (index, replacement) {\n\t\ttextStore[index] = replacement;\n\n\t\treturn textStore.filter(Boolean).join('\\n');\n\t};\n})();\n\nfunction applyToSingletonTag (style, index, remove, obj) {\n\tvar css = remove ? \"\" : obj.css;\n\n\tif (style.styleSheet) {\n\t\tstyle.styleSheet.cssText = replaceText(index, css);\n\t} else {\n\t\tvar cssNode = document.createTextNode(css);\n\t\tvar childNodes = style.childNodes;\n\n\t\tif (childNodes[index]) style.removeChild(childNodes[index]);\n\n\t\tif (childNodes.length) {\n\t\t\tstyle.insertBefore(cssNode, childNodes[index]);\n\t\t} else {\n\t\t\tstyle.appendChild(cssNode);\n\t\t}\n\t}\n}\n\nfunction applyToTag (style, obj) {\n\tvar css = obj.css;\n\tvar media = obj.media;\n\n\tif(media) {\n\t\tstyle.setAttribute(\"media\", media)\n\t}\n\n\tif(style.styleSheet) {\n\t\tstyle.styleSheet.cssText = css;\n\t} else {\n\t\twhile(style.firstChild) {\n\t\t\tstyle.removeChild(style.firstChild);\n\t\t}\n\n\t\tstyle.appendChild(document.createTextNode(css));\n\t}\n}\n\nfunction updateLink (link, options, obj) {\n\tvar css = obj.css;\n\tvar sourceMap = obj.sourceMap;\n\n\t/*\n\t\tIf convertToAbsoluteUrls isn't defined, but sourcemaps are enabled\n\t\tand there is no publicPath defined then lets turn convertToAbsoluteUrls\n\t\ton by default. Otherwise default to the convertToAbsoluteUrls option\n\t\tdirectly\n\t*/\n\tvar autoFixUrls = options.convertToAbsoluteUrls === undefined && sourceMap;\n\n\tif (options.convertToAbsoluteUrls || autoFixUrls) {\n\t\tcss = fixUrls(css);\n\t}\n\n\tif (sourceMap) {\n\t\t// http://stackoverflow.com/a/26603875\n\t\tcss += \"\\n/*# sourceMappingURL=data:application/json;base64,\" + btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))) + \" */\";\n\t}\n\n\tvar blob = new Blob([css], { type: \"text/css\" });\n\n\tvar oldSrc = link.href;\n\n\tlink.href = URL.createObjectURL(blob);\n\n\tif(oldSrc) URL.revokeObjectURL(oldSrc);\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/style-loader/lib/addStyles.js\n// module id = 9\n// module chunks = 0","/* eslint-disable no-var */\n// Simple JavaScript Templating\n// Paul Miller (http://paulmillr.com)\n// http://underscorejs.org\n// (c) 2009-2013 Jeremy Ashkenas, DocumentCloud and Investigative Reporters & Editors\n\n// By default, Underscore uses ERB-style template delimiters, change the\n// following template settings to use alternative delimiters.\nvar settings = {\n evaluate : /<%([\\s\\S]+?)%>/g,\n interpolate : /<%=([\\s\\S]+?)%>/g,\n escape : /<%-([\\s\\S]+?)%>/g\n}\n\n// When customizing `templateSettings`, if you don't want to define an\n// interpolation, evaluation or escaping regex, we need one that is\n// guaranteed not to match.\nvar noMatch = /(.)^/\n\n// Certain characters need to be escaped so that they can be put into a\n// string literal.\nvar escapes = {\n '\\'': '\\'',\n '\\\\': '\\\\',\n '\\r': 'r',\n '\\n': 'n',\n '\\t': 't',\n '\\u2028': 'u2028',\n '\\u2029': 'u2029'\n}\n\nvar escaper = /\\\\|'|\\r|\\n|\\t|\\u2028|\\u2029/g\n\n// List of HTML entities for escaping.\nvar htmlEntities = {\n '&': '&',\n '<': '<',\n '>': '>',\n '\"': '"',\n '\\'': '''\n}\n\nvar entityRe = new RegExp('[&<>\"\\']', 'g')\n\nvar escapeExpr = function(string) {\n if (string === null) return ''\n return ('' + string).replace(entityRe, function(match) {\n return htmlEntities[match]\n })\n}\n\nvar counter = 0\n\n// JavaScript micro-templating, similar to John Resig's implementation.\n// Underscore templating handles arbitrary delimiters, preserves whitespace,\n// and correctly escapes quotes within interpolated code.\nvar tmpl = function(text, data) {\n var render\n\n // Combine delimiters into one regular expression via alternation.\n var matcher = new RegExp([\n (settings.escape || noMatch).source,\n (settings.interpolate || noMatch).source,\n (settings.evaluate || noMatch).source\n ].join('|') + '|$', 'g')\n\n // Compile the template source, escaping string literals appropriately.\n var index = 0\n var source = '__p+=\\''\n text.replace(matcher, function(match, escape, interpolate, evaluate, offset) {\n source += text.slice(index, offset)\n .replace(escaper, function(match) { return '\\\\' + escapes[match] })\n\n if (escape)\n source += '\\'+\\n((__t=(' + escape + '))==null?\\'\\':escapeExpr(__t))+\\n\\''\n\n if (interpolate)\n source += '\\'+\\n((__t=(' + interpolate + '))==null?\\'\\':__t)+\\n\\''\n\n if (evaluate)\n source += '\\';\\n' + evaluate + '\\n__p+=\\''\n\n index = offset + match.length\n return match\n })\n source += '\\';\\n'\n\n // If a variable is not specified, place data values in local scope.\n if (!settings.variable) source = 'with(obj||{}){\\n' + source + '}\\n'\n\n source = 'var __t,__p=\\'\\',__j=Array.prototype.join,' +\n 'print=function(){__p+=__j.call(arguments,\\'\\');};\\n' +\n source + 'return __p;\\n//# sourceURL=/microtemplates/source[' + counter++ + ']'\n\n try {\n /*jshint -W054 */\n // TODO: find a way to avoid eval\n render = new Function(settings.variable || 'obj', 'escapeExpr', source)\n } catch (e) {\n e.source = source\n throw e\n }\n\n if (data) return render(data, escapeExpr)\n var template = function(data) {\n return render.call(this, data, escapeExpr)\n }\n\n // Provide the compiled function source as a convenience for precompilation.\n template.source = 'function(' + (settings.variable || 'obj') + '){\\n' + source + '}'\n\n return template\n}\ntmpl.settings = settings\n\nexport default tmpl\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/template.js","module.exports = { \"default\": require(\"core-js/library/fn/object/assign\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/assign.js\n// module id = 11\n// module chunks = 0","var store = require('./_shared')('wks')\n , uid = require('./_uid')\n , Symbol = require('./_global').Symbol\n , USE_SYMBOL = typeof Symbol == 'function';\n\nvar $exports = module.exports = function(name){\n return store[name] || (store[name] =\n USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name));\n};\n\n$exports.store = store;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_wks.js\n// module id = 12\n// module chunks = 0","import { extend } from './utils'\nimport UIObject from './ui_object'\nimport ErrorMixin from './error_mixin'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a generic playback, it's like an interface to be implemented by subclasses.\n * @class Playback\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Playback extends UIObject {\n /**\n * Determine if the playback does not contain video/has video but video should be ignored.\n * @property isAudioOnly\n * @type Boolean\n */\n get isAudioOnly() {\n return false\n }\n\n get isAdaptive() {\n return false\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return false\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return false\n }\n\n /**\n * Determine if the playback has user consent.\n * @property consented\n * @type Boolean\n */\n get consented() {\n return this._consented\n }\n\n /**\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n, playerError) {\n super(options)\n this.settings = {}\n this._i18n = i18n\n this.playerError = playerError\n this._consented = false\n }\n\n /**\n * Gives user consent to playback (mobile devices).\n * @method consent\n */\n consent() {\n this._consented = true\n }\n\n /**\n * plays the playback.\n * @method play\n */\n play() {}\n\n /**\n * pauses the playback.\n * @method pause\n */\n pause() {}\n\n /**\n * stops the playback.\n * @method stop\n */\n stop() {}\n\n /**\n * seeks the playback to a given `time` in seconds\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration\n */\n seek(time) {} // eslint-disable-line no-unused-vars\n\n /**\n * seeks the playback to a given `percentage` in percentage\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100\n */\n seekPercentage(percentage) {} // eslint-disable-line no-unused-vars\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() { return 0 }\n\n /**\n * gets the duration in seconds\n * @method getDuration\n * @return {Number} duration (in seconds) of the current source\n */\n getDuration() { return 0 }\n\n /**\n * checks if the playback is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current playback is playing, otherwise `false`\n */\n isPlaying() {\n return false\n }\n\n /**\n * checks if the playback is ready.\n * @property isReady\n * @type {Boolean} `true` if the current playback is ready, otherwise `false`\n */\n get isReady() {\n return false\n }\n\n /**\n * checks if the playback has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.closedCaptionsTracks.length > 0\n }\n\n /**\n * gets the playback available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return []\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return -1\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {} // eslint-disable-line no-unused-vars\n\n /**\n * gets the playback type (`'vod', 'live', 'aod'`)\n * @method getPlaybackType\n * @return {String} you should write the playback type otherwise it'll assume `'no_op'`\n * @example\n * ```javascript\n * html5VideoPlayback.getPlaybackType() //vod\n * html5AudioPlayback.getPlaybackType() //aod\n * html5VideoPlayback.getPlaybackType() //live\n * flashHlsPlayback.getPlaybackType() //live\n * ```\n */\n getPlaybackType() {\n return Playback.NO_OP\n }\n\n /**\n * checks if the playback is in HD.\n * @method isHighDefinitionInUse\n * @return {Boolean} `true` if the playback is playing in HD, otherwise `false`\n */\n isHighDefinitionInUse() {\n return false\n }\n\n /**\n * sets the volume for the playback\n * @method volume\n * @param {Number} value a number between 0 (`muted`) to 100 (`max`)\n */\n volume(value) {} // eslint-disable-line no-unused-vars\n\n /**\n * enables to configure the playback after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n }\n\n /**\n * attempt to autoplays the playback.\n * @method attemptAutoPlay\n */\n attemptAutoPlay() {\n this.canAutoPlay((result, error) => { // eslint-disable-line no-unused-vars\n result && this.play()\n })\n }\n\n /**\n * checks if the playback can autoplay.\n * @method canAutoPlay\n * @param {Function} callback function where first param is Boolean and second param is playback Error or null\n */\n canAutoPlay(cb) {\n cb(true, null) // Assume playback can autoplay by default\n }\n}\n\nObject.assign(Playback.prototype, ErrorMixin)\n\nPlayback.extend = function(properties) {\n return extend(Playback, properties)\n}\n\n/**\n * checks if the playback can play a given `source`\n * If a mimeType is provided then this will be used instead of inferring the mimetype\n * from the source extension.\n * @method canPlay\n * @static\n * @param {String} source the given source ex: `http://example.com/play.mp4`\n * @param {String} [mimeType] the given mime type, ex: `'application/vnd.apple.mpegurl'`\n * @return {Boolean} `true` if the playback is playable, otherwise `false`\n */\nPlayback.canPlay = (source, mimeType) => { // eslint-disable-line no-unused-vars\n return false\n}\n\n/**\n * a playback type for video on demand\n *\n * @property VOD\n * @static\n * @type String\n */\nPlayback.VOD = 'vod'\n/**\n * a playback type for audio on demand\n *\n * @property AOD\n * @static\n * @type String\n */\nPlayback.AOD = 'aod'\n/**\n * a playback type for live video\n *\n * @property LIVE\n * @static\n * @type String\n */\nPlayback.LIVE = 'live'\n/**\n * a default playback type\n *\n * @property NO_OP\n * @static\n * @type String\n */\nPlayback.NO_OP = 'no_op'\n/**\n * the plugin type\n *\n * @property type\n * @static\n * @type String\n */\nPlayback.type = 'playback'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/playback.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId } from './utils'\nimport Events from './events'\n\n/**\n * @class BaseObject\n * @constructor\n * @extends Events\n * @module base\n */\nexport default class BaseObject extends Events {\n /**\n * returns the object options\n * @property options\n * @type Object\n */\n get options() { return this._options }\n\n /**\n * @method constructor\n * @param {Object} options\n */\n constructor(options={}) {\n super(options)\n this._options = options\n this.uniqueId = uniqueId('o')\n }\n /**\n * a unique id prefixed with `'o'`, `o1, o232`\n *\n * @property uniqueId\n * @type String\n */\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/base_object.js","var global = require('./_global')\n , core = require('./_core')\n , ctx = require('./_ctx')\n , hide = require('./_hide')\n , PROTOTYPE = 'prototype';\n\nvar $export = function(type, name, source){\n var IS_FORCED = type & $export.F\n , IS_GLOBAL = type & $export.G\n , IS_STATIC = type & $export.S\n , IS_PROTO = type & $export.P\n , IS_BIND = type & $export.B\n , IS_WRAP = type & $export.W\n , exports = IS_GLOBAL ? core : core[name] || (core[name] = {})\n , expProto = exports[PROTOTYPE]\n , target = IS_GLOBAL ? global : IS_STATIC ? global[name] : (global[name] || {})[PROTOTYPE]\n , key, own, out;\n if(IS_GLOBAL)source = name;\n for(key in source){\n // contains in native\n own = !IS_FORCED && target && target[key] !== undefined;\n if(own && key in exports)continue;\n // export native or passed\n out = own ? target[key] : source[key];\n // prevent global pollution for namespaces\n exports[key] = IS_GLOBAL && typeof target[key] != 'function' ? source[key]\n // bind timers to global for call from export context\n : IS_BIND && own ? ctx(out, global)\n // wrap global constructors for prevent change them in library\n : IS_WRAP && target[key] == out ? (function(C){\n var F = function(a, b, c){\n if(this instanceof C){\n switch(arguments.length){\n case 0: return new C;\n case 1: return new C(a);\n case 2: return new C(a, b);\n } return new C(a, b, c);\n } return C.apply(this, arguments);\n };\n F[PROTOTYPE] = C[PROTOTYPE];\n return F;\n // make static versions for prototype methods\n })(out) : IS_PROTO && typeof out == 'function' ? ctx(Function.call, out) : out;\n // export proto methods to core.%CONSTRUCTOR%.methods.%NAME%\n if(IS_PROTO){\n (exports.virtual || (exports.virtual = {}))[key] = out;\n // export proto methods to core.%CONSTRUCTOR%.prototype.%NAME%\n if(type & $export.R && expProto && !expProto[key])hide(expProto, key, out);\n }\n }\n};\n// type bitmap\n$export.F = 1; // forced\n$export.G = 2; // global\n$export.S = 4; // static\n$export.P = 8; // proto\n$export.B = 16; // bind\n$export.W = 32; // wrap\n$export.U = 64; // safe\n$export.R = 128; // real proto method for `library` \nmodule.exports = $export;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_export.js\n// module id = 15\n// module chunks = 0","// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nvar global = module.exports = typeof window != 'undefined' && window.Math == Math\n ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();\nif(typeof __g == 'number')__g = global; // eslint-disable-line no-undef\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_global.js\n// module id = 16\n// module chunks = 0","var anObject = require('./_an-object')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , toPrimitive = require('./_to-primitive')\n , dP = Object.defineProperty;\n\nexports.f = require('./_descriptors') ? Object.defineProperty : function defineProperty(O, P, Attributes){\n anObject(O);\n P = toPrimitive(P, true);\n anObject(Attributes);\n if(IE8_DOM_DEFINE)try {\n return dP(O, P, Attributes);\n } catch(e){ /* empty */ }\n if('get' in Attributes || 'set' in Attributes)throw TypeError('Accessors not supported!');\n if('value' in Attributes)O[P] = Attributes.value;\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dp.js\n// module id = 17\n// module chunks = 0","// to indexed object, toObject with fallback for non-array-like ES3 strings\nvar IObject = require('./_iobject')\n , defined = require('./_defined');\nmodule.exports = function(it){\n return IObject(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-iobject.js\n// module id = 18\n// module chunks = 0","import Log from '../plugins/log'\nimport PlayerError from '../components/error'\n\nconst ErrorMixin = {\n /**\n * creates an error.\n * @method createError\n * @param {Object} error should be an object with code, description, level and raw error.\n * @return {Object} Object with formatted error data including origin and scope\n */\n createError(error, options = { useCodePrefix: true }) {\n const scope = this.constructor && this.constructor.type || ''\n const origin = this.name || scope\n const i18n = this.i18n || this.core && this.core.i18n || this.container && this.container.i18n\n\n const prefixedCode = `${origin}:${error && error.code || 'unknown'}`\n const defaultError = {\n description: '',\n level: PlayerError.Levels.FATAL,\n origin,\n scope,\n raw: {},\n }\n\n const errorData = Object.assign({}, defaultError, error, {\n code: options.useCodePrefix ? prefixedCode : error.code\n })\n\n if (i18n && errorData.level == PlayerError.Levels.FATAL && !errorData.UI) {\n const defaultUI = {\n title: i18n.t('default_error_title'),\n message: i18n.t('default_error_message')\n }\n errorData.UI = defaultUI\n }\n\n if (this.playerError)\n this.playerError.createError(errorData)\n else\n Log.warn(origin, 'PlayerError is not defined. Error: ', errorData)\n\n return errorData\n }\n}\n\nexport default ErrorMixin\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/error_mixin.js","// Thank's IE8 for his funny defineProperty\nmodule.exports = !require('./_fails')(function(){\n return Object.defineProperty({}, 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_descriptors.js\n// module id = 20\n// module chunks = 0","var hasOwnProperty = {}.hasOwnProperty;\nmodule.exports = function(it, key){\n return hasOwnProperty.call(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_has.js\n// module id = 21\n// module chunks = 0","import { extend } from './utils'\nimport UIObject from './ui_object'\nimport ErrorMixin from './error_mixin'\n\nexport default class UICorePlugin extends UIObject {\n get playerError() { return this.core.playerError }\n\n constructor(core) {\n super(core.options)\n this.core = core\n this.enabled = true\n this.bindEvents()\n this.render()\n }\n\n bindEvents() {}\n\n getExternalInterface() { return {} }\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.$el.show()\n this.enabled = true\n }\n }\n\n disable() {\n this.stopListening()\n this.$el.hide()\n this.enabled = false\n }\n\n render() {\n return this\n }\n}\n\nObject.assign(UICorePlugin.prototype, ErrorMixin)\n\nUICorePlugin.extend = function(properties) {\n return extend(UICorePlugin, properties)\n}\n\nUICorePlugin.type = 'core'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/ui_core_plugin.js","module.exports = void 0\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/void.js","var dP = require('./_object-dp')\n , createDesc = require('./_property-desc');\nmodule.exports = require('./_descriptors') ? function(object, key, value){\n return dP.f(object, key, createDesc(1, value));\n} : function(object, key, value){\n object[key] = value;\n return object;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_hide.js\n// module id = 24\n// module chunks = 0","var isObject = require('./_is-object');\nmodule.exports = function(it){\n if(!isObject(it))throw TypeError(it + ' is not an object!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_an-object.js\n// module id = 25\n// module chunks = 0","module.exports = function(exec){\n try {\n return !!exec();\n } catch(e){\n return true;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_fails.js\n// module id = 26\n// module chunks = 0","// 19.1.2.14 / 15.2.3.14 Object.keys(O)\nvar $keys = require('./_object-keys-internal')\n , enumBugKeys = require('./_enum-bug-keys');\n\nmodule.exports = Object.keys || function keys(O){\n return $keys(O, enumBugKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-keys.js\n// module id = 27\n// module chunks = 0","import Browser from './browser'\nexport default Browser\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/browser/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport $ from 'clappr-zepto'\nimport { uniqueId, DomRecycler } from './utils'\nimport BaseObject from './base_object'\n\nconst delegateEventSplitter = /^(\\S+)\\s*(.*)$/\n\n/**\n * A base class to create ui object.\n * @class UIObject\n * @constructor\n * @extends BaseObject\n * @module base\n */\nexport default class UIObject extends BaseObject {\n /**\n * a unique id prefixed with `'c'`, `c1, c232`\n *\n * @property cid\n * @type String\n */\n /**\n * the dom element itself\n *\n * @property el\n * @type HTMLElement\n */\n /**\n * the dom element wrapped by `$`\n *\n * @property $el\n * @type HTMLElement\n */\n\n /**\n * gets the tag name for the ui component\n * @method tagName\n * @default div\n * @return {String} tag's name\n */\n get tagName() { return 'div' }\n /**\n * a literal object mapping element's events to methods\n * @property events\n * @type Object\n * @example\n *\n *```javascript\n *\n * class MyButton extends UIObject {\n * constructor(options) {\n * super(options)\n * this.myId = 0\n * }\n * get events() { return { 'click': 'myClick' } }\n * myClick(){ this.myId = 42 }\n * }\n *\n * // when you click on MyButton the method `myClick` will be called\n *```\n */\n get events() { return {} }\n /**\n * a literal object mapping attributes and values to the element\n * element's attribute name and the value the attribute value\n * @property attributes\n * @type Object\n * @example\n *\n *```javascript\n *\n * class MyButton extends UIObject {\n * constructor(options) { super(options) }\n * get attributes() { return { class: 'my-button'} }\n * }\n *\n * // MyButton.el.className will be 'my-button'\n * ```\n */\n get attributes() { return {} }\n\n /**\n * it builds an ui component by:\n * * creating an id for the component `cid`\n * * making sure the element is created `$el`\n * * delegating all `events` to the element\n * @method constructor\n * @param {Object} options the options object\n */\n constructor(options) {\n super(options)\n this.cid = uniqueId('c')\n this._ensureElement()\n this.delegateEvents()\n }\n\n /**\n * selects within the component.\n * @method $\n * @param {String} selector a selector to find within the component.\n * @return {HTMLElement} an element, if it exists.\n * @example\n * ```javascript\n * fullScreenBarUIComponent.$('.button-full') //will return only `.button-full` within the component\n * ```\n */\n $(selector) {\n return this.$el.find(selector)\n }\n\n /**\n * render the component, usually attach it to a real existent `element`\n * @method render\n * @return {UIObject} itself\n */\n render() {\n return this\n }\n\n /**\n * removes the ui component from DOM\n * @method destroy\n * @return {UIObject} itself\n */\n destroy() {\n this.$el.remove()\n this.stopListening()\n this.undelegateEvents()\n return this\n }\n\n /**\n * set element to `el` and `$el`\n * @method setElement\n * @param {HTMLElement} element\n * @param {Boolean} delegate whether is delegate or not\n * @return {UIObject} itself\n */\n setElement(element, delegate) {\n if (this.$el) this.undelegateEvents()\n this.$el = $.zepto.isZ(element) ? element : $(element)\n this.el = this.$el[0]\n if (delegate !== false) this.delegateEvents()\n return this\n }\n\n /**\n * delegates all the original `events` on `element` to its callbacks\n * @method delegateEvents\n * @param {Object} events\n * @return {UIObject} itself\n */\n delegateEvents(events) {\n if (!(events || (events = this.events))) return this\n this.undelegateEvents()\n for (const key in events) {\n let method = events[key]\n if ((method && method.constructor !== Function)) method = this[events[key]]\n if (!method) continue\n\n const match = key.match(delegateEventSplitter)\n let eventName = match[1], selector = match[2]\n eventName += '.delegateEvents' + this.cid\n if (selector === '')\n this.$el.on(eventName, method.bind(this))\n else\n this.$el.on(eventName, selector, method.bind(this))\n\n }\n return this\n }\n\n /**\n * undelegats all the `events`\n * @method undelegateEvents\n * @return {UIObject} itself\n */\n undelegateEvents() {\n this.$el.off('.delegateEvents' + this.cid)\n return this\n }\n\n /**\n * ensures the creation of this ui component\n * @method _ensureElement\n * @private\n */\n _ensureElement() {\n if (!this.el) {\n const attrs = $.extend({}, this.attributes)\n if (this.id) attrs.id = this.id\n if (this.className) attrs['class'] = this.className\n const $el = DomRecycler.create(this.tagName).attr(attrs)\n this.setElement($el, false)\n } else { this.setElement(this.el, false) }\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/ui_object.js","module.exports = function(it){\n return typeof it === 'object' ? it !== null : typeof it === 'function';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-object.js\n// module id = 30\n// module chunks = 0","module.exports = function(bitmap, value){\n return {\n enumerable : !(bitmap & 1),\n configurable: !(bitmap & 2),\n writable : !(bitmap & 4),\n value : value\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_property-desc.js\n// module id = 31\n// module chunks = 0","module.exports = {};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iterators.js\n// module id = 32\n// module chunks = 0","import Log from './log'\nexport default Log\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/log/index.js","import Error from './error'\nexport default Error\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/error/index.js","import { extend } from './utils'\nimport BaseObject from './base_object'\nimport ErrorMixin from './error_mixin'\n\nexport default class CorePlugin extends BaseObject {\n get playerError() { return this.core.playerError }\n\n constructor(core) {\n super(core.options)\n this.core = core\n this.enabled = true\n this.bindEvents()\n }\n\n bindEvents() {}\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.enabled = true\n }\n }\n\n disable() {\n if (this.enabled) {\n this.stopListening()\n this.enabled = false\n }\n }\n\n getExternalInterface() { return {} }\n\n destroy() {\n this.stopListening()\n }\n}\n\nObject.assign(CorePlugin.prototype, ErrorMixin)\n\nCorePlugin.extend = function(properties) {\n return extend(CorePlugin, properties)\n}\n\nCorePlugin.type = 'core'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/core_plugin.js","var id = 0\n , px = Math.random();\nmodule.exports = function(key){\n return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_uid.js\n// module id = 36\n// module chunks = 0","exports.f = {}.propertyIsEnumerable;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-pie.js\n// module id = 37\n// module chunks = 0","// 7.1.13 ToObject(argument)\nvar defined = require('./_defined');\nmodule.exports = function(it){\n return Object(defined(it));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-object.js\n// module id = 38\n// module chunks = 0","\"use strict\";\n\nexports.__esModule = true;\n\nvar _iterator = require(\"../core-js/symbol/iterator\");\n\nvar _iterator2 = _interopRequireDefault(_iterator);\n\nvar _symbol = require(\"../core-js/symbol\");\n\nvar _symbol2 = _interopRequireDefault(_symbol);\n\nvar _typeof = typeof _symbol2.default === \"function\" && typeof _iterator2.default === \"symbol\" ? function (obj) { return typeof obj; } : function (obj) { return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj; };\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = typeof _symbol2.default === \"function\" && _typeof(_iterator2.default) === \"symbol\" ? function (obj) {\n return typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n} : function (obj) {\n return obj && typeof _symbol2.default === \"function\" && obj.constructor === _symbol2.default && obj !== _symbol2.default.prototype ? \"symbol\" : typeof obj === \"undefined\" ? \"undefined\" : _typeof(obj);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/typeof.js\n// module id = 39\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nclass PlayerInfo {\n constructor() {\n this.options = {}\n this.playbackPlugins = []\n this.currentSize = { width: 0, height: 0 }\n }\n}\n\nPlayerInfo._players = {}\n\nPlayerInfo.getInstance = (playerId) => {\n return PlayerInfo._players[playerId] || (PlayerInfo._players[playerId] = new PlayerInfo())\n}\n\nexport default PlayerInfo\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/player_info.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { extend } from './utils'\nimport UIObject from './ui_object'\nimport ErrorMixin from './error_mixin'\n\n/**\n * The base class for an ui container plugin\n * @class UIContainerPlugin\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class UIContainerPlugin extends UIObject {\n get playerError() { return this.container.playerError }\n\n constructor(container) {\n super(container.options)\n this.container = container\n this.enabled = true\n this.bindEvents()\n }\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.$el.show()\n this.enabled = true\n }\n }\n\n disable() {\n this.stopListening()\n this.$el.hide()\n this.enabled = false\n }\n\n bindEvents() {}\n\n}\n\nObject.assign(UIContainerPlugin.prototype, ErrorMixin)\n\nUIContainerPlugin.extend = function(properties) {\n return extend(UIContainerPlugin, properties)\n}\n\nUIContainerPlugin.type = 'container'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/ui_container_plugin.js","import BaseObject from './base_object'\nimport { extend } from './utils'\nimport ErrorMixin from './error_mixin'\n\n/**\n * The base class for a container plugin\n * @class ContainerPlugin\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class ContainerPlugin extends BaseObject {\n get playerError() { return this.container.playerError }\n\n constructor(container) {\n super(container.options)\n this.container = container\n this.enabled = true\n this.bindEvents()\n }\n\n enable() {\n if (!this.enabled) {\n this.bindEvents()\n this.enabled = true\n }\n }\n\n disable() {\n if (this.enabled) {\n this.stopListening()\n this.enabled = false\n }\n }\n\n bindEvents() {}\n\n destroy() {\n this.stopListening()\n }\n}\n\nObject.assign(ContainerPlugin.prototype, ErrorMixin)\n\nContainerPlugin.extend = function(properties) {\n return extend(ContainerPlugin, properties)\n}\n\nContainerPlugin.type = 'container'\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/container_plugin.js","// optional / simple context binding\nvar aFunction = require('./_a-function');\nmodule.exports = function(fn, that, length){\n aFunction(fn);\n if(that === undefined)return fn;\n switch(length){\n case 1: return function(a){\n return fn.call(that, a);\n };\n case 2: return function(a, b){\n return fn.call(that, a, b);\n };\n case 3: return function(a, b, c){\n return fn.call(that, a, b, c);\n };\n }\n return function(/* ...args */){\n return fn.apply(that, arguments);\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ctx.js\n// module id = 43\n// module chunks = 0","// 7.1.1 ToPrimitive(input [, PreferredType])\nvar isObject = require('./_is-object');\n// instead of the ES6 spec version, we didn't implement @@toPrimitive case\n// and the second argument - flag - preferred type is a string\nmodule.exports = function(it, S){\n if(!isObject(it))return it;\n var fn, val;\n if(S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n if(typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it)))return val;\n if(!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it)))return val;\n throw TypeError(\"Can't convert object to primitive value\");\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-primitive.js\n// module id = 44\n// module chunks = 0","var toString = {}.toString;\n\nmodule.exports = function(it){\n return toString.call(it).slice(8, -1);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_cof.js\n// module id = 45\n// module chunks = 0","// 7.2.1 RequireObjectCoercible(argument)\nmodule.exports = function(it){\n if(it == undefined)throw TypeError(\"Can't call method on \" + it);\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_defined.js\n// module id = 46\n// module chunks = 0","// 7.1.4 ToInteger\nvar ceil = Math.ceil\n , floor = Math.floor;\nmodule.exports = function(it){\n return isNaN(it = +it) ? 0 : (it > 0 ? floor : ceil)(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-integer.js\n// module id = 47\n// module chunks = 0","var shared = require('./_shared')('keys')\n , uid = require('./_uid');\nmodule.exports = function(key){\n return shared[key] || (shared[key] = uid(key));\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared-key.js\n// module id = 48\n// module chunks = 0","var global = require('./_global')\n , SHARED = '__core-js_shared__'\n , store = global[SHARED] || (global[SHARED] = {});\nmodule.exports = function(key){\n return store[key] || (store[key] = {});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_shared.js\n// module id = 49\n// module chunks = 0","// IE 8- don't enum bug keys\nmodule.exports = (\n 'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'\n).split(',');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-bug-keys.js\n// module id = 50\n// module chunks = 0","exports.f = Object.getOwnPropertySymbols;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gops.js\n// module id = 51\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/keys\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/keys.js\n// module id = 52\n// module chunks = 0","module.exports = true;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_library.js\n// module id = 53\n// module chunks = 0","// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\nvar anObject = require('./_an-object')\n , dPs = require('./_object-dps')\n , enumBugKeys = require('./_enum-bug-keys')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , Empty = function(){ /* empty */ }\n , PROTOTYPE = 'prototype';\n\n// Create object with fake `null` prototype: use iframe Object with cleared prototype\nvar createDict = function(){\n // Thrash, waste and sodomy: IE GC bug\n var iframe = require('./_dom-create')('iframe')\n , i = enumBugKeys.length\n , lt = '<'\n , gt = '>'\n , iframeDocument;\n iframe.style.display = 'none';\n require('./_html').appendChild(iframe);\n iframe.src = 'javascript:'; // eslint-disable-line no-script-url\n // createDict = iframe.contentWindow.Object;\n // html.removeChild(iframe);\n iframeDocument = iframe.contentWindow.document;\n iframeDocument.open();\n iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt);\n iframeDocument.close();\n createDict = iframeDocument.F;\n while(i--)delete createDict[PROTOTYPE][enumBugKeys[i]];\n return createDict();\n};\n\nmodule.exports = Object.create || function create(O, Properties){\n var result;\n if(O !== null){\n Empty[PROTOTYPE] = anObject(O);\n result = new Empty;\n Empty[PROTOTYPE] = null;\n // add \"__proto__\" for Object.getPrototypeOf polyfill\n result[IE_PROTO] = O;\n } else result = createDict();\n return Properties === undefined ? result : dPs(result, Properties);\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-create.js\n// module id = 54\n// module chunks = 0","var def = require('./_object-dp').f\n , has = require('./_has')\n , TAG = require('./_wks')('toStringTag');\n\nmodule.exports = function(it, tag, stat){\n if(it && !has(it = stat ? it : it.prototype, TAG))def(it, TAG, {configurable: true, value: tag});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-to-string-tag.js\n// module id = 55\n// module chunks = 0","exports.f = require('./_wks');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_wks-ext.js\n// module id = 56\n// module chunks = 0","var global = require('./_global')\n , core = require('./_core')\n , LIBRARY = require('./_library')\n , wksExt = require('./_wks-ext')\n , defineProperty = require('./_object-dp').f;\nmodule.exports = function(name){\n var $Symbol = core.Symbol || (core.Symbol = LIBRARY ? {} : global.Symbol || {});\n if(name.charAt(0) != '_' && !(name in $Symbol))defineProperty($Symbol, name, {value: wksExt.f(name)});\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_wks-define.js\n// module id = 57\n// module chunks = 0","var pIE = require('./_object-pie')\n , createDesc = require('./_property-desc')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , has = require('./_has')\n , IE8_DOM_DEFINE = require('./_ie8-dom-define')\n , gOPD = Object.getOwnPropertyDescriptor;\n\nexports.f = require('./_descriptors') ? gOPD : function getOwnPropertyDescriptor(O, P){\n O = toIObject(O);\n P = toPrimitive(P, true);\n if(IE8_DOM_DEFINE)try {\n return gOPD(O, P);\n } catch(e){ /* empty */ }\n if(has(O, P))return createDesc(!pIE.f.call(O, P), O[P]);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopd.js\n// module id = 58\n// module chunks = 0","import Kibo from './kibo'\n\nexport default { Kibo }\n\n\n\n// WEBPACK FOOTER //\n// ./src/vendor/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The mediator is a singleton for handling global events.\n */\n\nimport Events from '../base/events'\n\nconst events = new Events()\n\nexport default class Mediator {\n}\n\nMediator.on = function(name, callback, context) {\n events.on(name, callback, context)\n return\n}\n\nMediator.once = function(name, callback, context) {\n events.once(name, callback, context)\n return\n}\n\nMediator.off = function(name, callback, context) {\n events.off(name, callback, context)\n return\n}\n\nMediator.trigger = function(name, ...opts) {\n events.trigger.apply(events, [name, ...opts])\n return\n}\n\nMediator.stopListening = function(obj, name, callback) {\n events.stopListening(obj, name, callback)\n return\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/mediator.js","import HTML5Video from './html5_video'\nexport default HTML5Video\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_video/index.js","// shim for using process in browser\nvar process = module.exports = {};\n\n// cached from whatever global is present so that test runners that stub it\n// don't break things. But we need to wrap it in a try catch in case it is\n// wrapped in strict mode code which doesn't define any globals. It's inside a\n// function because try/catches deoptimize in certain engines.\n\nvar cachedSetTimeout;\nvar cachedClearTimeout;\n\nfunction defaultSetTimout() {\n throw new Error('setTimeout has not been defined');\n}\nfunction defaultClearTimeout () {\n throw new Error('clearTimeout has not been defined');\n}\n(function () {\n try {\n if (typeof setTimeout === 'function') {\n cachedSetTimeout = setTimeout;\n } else {\n cachedSetTimeout = defaultSetTimout;\n }\n } catch (e) {\n cachedSetTimeout = defaultSetTimout;\n }\n try {\n if (typeof clearTimeout === 'function') {\n cachedClearTimeout = clearTimeout;\n } else {\n cachedClearTimeout = defaultClearTimeout;\n }\n } catch (e) {\n cachedClearTimeout = defaultClearTimeout;\n }\n} ())\nfunction runTimeout(fun) {\n if (cachedSetTimeout === setTimeout) {\n //normal enviroments in sane situations\n return setTimeout(fun, 0);\n }\n // if setTimeout wasn't available but was latter defined\n if ((cachedSetTimeout === defaultSetTimout || !cachedSetTimeout) && setTimeout) {\n cachedSetTimeout = setTimeout;\n return setTimeout(fun, 0);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedSetTimeout(fun, 0);\n } catch(e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedSetTimeout.call(null, fun, 0);\n } catch(e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error\n return cachedSetTimeout.call(this, fun, 0);\n }\n }\n\n\n}\nfunction runClearTimeout(marker) {\n if (cachedClearTimeout === clearTimeout) {\n //normal enviroments in sane situations\n return clearTimeout(marker);\n }\n // if clearTimeout wasn't available but was latter defined\n if ((cachedClearTimeout === defaultClearTimeout || !cachedClearTimeout) && clearTimeout) {\n cachedClearTimeout = clearTimeout;\n return clearTimeout(marker);\n }\n try {\n // when when somebody has screwed with setTimeout but no I.E. maddness\n return cachedClearTimeout(marker);\n } catch (e){\n try {\n // When we are in I.E. but the script has been evaled so I.E. doesn't trust the global object when called normally\n return cachedClearTimeout.call(null, marker);\n } catch (e){\n // same as above but when it's a version of I.E. that must have the global object for 'this', hopfully our context correct otherwise it will throw a global error.\n // Some versions of I.E. have different rules for clearTimeout vs setTimeout\n return cachedClearTimeout.call(this, marker);\n }\n }\n\n\n\n}\nvar queue = [];\nvar draining = false;\nvar currentQueue;\nvar queueIndex = -1;\n\nfunction cleanUpNextTick() {\n if (!draining || !currentQueue) {\n return;\n }\n draining = false;\n if (currentQueue.length) {\n queue = currentQueue.concat(queue);\n } else {\n queueIndex = -1;\n }\n if (queue.length) {\n drainQueue();\n }\n}\n\nfunction drainQueue() {\n if (draining) {\n return;\n }\n var timeout = runTimeout(cleanUpNextTick);\n draining = true;\n\n var len = queue.length;\n while(len) {\n currentQueue = queue;\n queue = [];\n while (++queueIndex < len) {\n if (currentQueue) {\n currentQueue[queueIndex].run();\n }\n }\n queueIndex = -1;\n len = queue.length;\n }\n currentQueue = null;\n draining = false;\n runClearTimeout(timeout);\n}\n\nprocess.nextTick = function (fun) {\n var args = new Array(arguments.length - 1);\n if (arguments.length > 1) {\n for (var i = 1; i < arguments.length; i++) {\n args[i - 1] = arguments[i];\n }\n }\n queue.push(new Item(fun, args));\n if (queue.length === 1 && !draining) {\n runTimeout(drainQueue);\n }\n};\n\n// v8 likes predictible objects\nfunction Item(fun, array) {\n this.fun = fun;\n this.array = array;\n}\nItem.prototype.run = function () {\n this.fun.apply(null, this.array);\n};\nprocess.title = 'browser';\nprocess.browser = true;\nprocess.env = {};\nprocess.argv = [];\nprocess.version = ''; // empty string to avoid regexp issues\nprocess.versions = {};\n\nfunction noop() {}\n\nprocess.on = noop;\nprocess.addListener = noop;\nprocess.once = noop;\nprocess.off = noop;\nprocess.removeListener = noop;\nprocess.removeAllListeners = noop;\nprocess.emit = noop;\n\nprocess.binding = function (name) {\n throw new Error('process.binding is not supported');\n};\n\nprocess.cwd = function () { return '/' };\nprocess.chdir = function (dir) {\n throw new Error('process.chdir is not supported');\n};\nprocess.umask = function() { return 0; };\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/node-libs-browser/node_modules/process/browser.js\n// module id = 62\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M1.425.35L14.575 8l-13.15 7.65V.35z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/01-play.svg\n// module id = 63\n// module chunks = 0","module.exports = !require('./_descriptors') && !require('./_fails')(function(){\n return Object.defineProperty(require('./_dom-create')('div'), 'a', {get: function(){ return 7; }}).a != 7;\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_ie8-dom-define.js\n// module id = 64\n// module chunks = 0","var isObject = require('./_is-object')\n , document = require('./_global').document\n // in old IE typeof document.createElement is 'object'\n , is = isObject(document) && isObject(document.createElement);\nmodule.exports = function(it){\n return is ? document.createElement(it) : {};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_dom-create.js\n// module id = 65\n// module chunks = 0","var has = require('./_has')\n , toIObject = require('./_to-iobject')\n , arrayIndexOf = require('./_array-includes')(false)\n , IE_PROTO = require('./_shared-key')('IE_PROTO');\n\nmodule.exports = function(object, names){\n var O = toIObject(object)\n , i = 0\n , result = []\n , key;\n for(key in O)if(key != IE_PROTO)has(O, key) && result.push(key);\n // Don't enum bug & hidden keys\n while(names.length > i)if(has(O, key = names[i++])){\n ~arrayIndexOf(result, key) || result.push(key);\n }\n return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-keys-internal.js\n// module id = 66\n// module chunks = 0","// fallback for non-array-like ES3 and non-enumerable old V8 strings\nvar cof = require('./_cof');\nmodule.exports = Object('z').propertyIsEnumerable(0) ? Object : function(it){\n return cof(it) == 'String' ? it.split('') : Object(it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iobject.js\n// module id = 67\n// module chunks = 0","// 7.1.15 ToLength\nvar toInteger = require('./_to-integer')\n , min = Math.min;\nmodule.exports = function(it){\n return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-length.js\n// module id = 68\n// module chunks = 0","// most Object methods by ES6 should accept primitives\nvar $export = require('./_export')\n , core = require('./_core')\n , fails = require('./_fails');\nmodule.exports = function(KEY, exec){\n var fn = (core.Object || {})[KEY] || Object[KEY]\n , exp = {};\n exp[KEY] = exec(fn);\n $export($export.S + $export.F * fails(function(){ fn(1); }), 'Object', exp);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-sap.js\n// module id = 69\n// module chunks = 0","'use strict';\nvar $at = require('./_string-at')(true);\n\n// 21.1.3.27 String.prototype[@@iterator]()\nrequire('./_iter-define')(String, 'String', function(iterated){\n this._t = String(iterated); // target\n this._i = 0; // next index\n// 21.1.5.2.1 %StringIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , index = this._i\n , point;\n if(index >= O.length)return {value: undefined, done: true};\n point = $at(O, index);\n this._i += point.length;\n return {value: point, done: false};\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.string.iterator.js\n// module id = 70\n// module chunks = 0","'use strict';\nvar LIBRARY = require('./_library')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , hide = require('./_hide')\n , has = require('./_has')\n , Iterators = require('./_iterators')\n , $iterCreate = require('./_iter-create')\n , setToStringTag = require('./_set-to-string-tag')\n , getPrototypeOf = require('./_object-gpo')\n , ITERATOR = require('./_wks')('iterator')\n , BUGGY = !([].keys && 'next' in [].keys()) // Safari has buggy iterators w/o `next`\n , FF_ITERATOR = '@@iterator'\n , KEYS = 'keys'\n , VALUES = 'values';\n\nvar returnThis = function(){ return this; };\n\nmodule.exports = function(Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED){\n $iterCreate(Constructor, NAME, next);\n var getMethod = function(kind){\n if(!BUGGY && kind in proto)return proto[kind];\n switch(kind){\n case KEYS: return function keys(){ return new Constructor(this, kind); };\n case VALUES: return function values(){ return new Constructor(this, kind); };\n } return function entries(){ return new Constructor(this, kind); };\n };\n var TAG = NAME + ' Iterator'\n , DEF_VALUES = DEFAULT == VALUES\n , VALUES_BUG = false\n , proto = Base.prototype\n , $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]\n , $default = $native || getMethod(DEFAULT)\n , $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined\n , $anyNative = NAME == 'Array' ? proto.entries || $native : $native\n , methods, key, IteratorPrototype;\n // Fix native\n if($anyNative){\n IteratorPrototype = getPrototypeOf($anyNative.call(new Base));\n if(IteratorPrototype !== Object.prototype){\n // Set @@toStringTag to native iterators\n setToStringTag(IteratorPrototype, TAG, true);\n // fix for some old engines\n if(!LIBRARY && !has(IteratorPrototype, ITERATOR))hide(IteratorPrototype, ITERATOR, returnThis);\n }\n }\n // fix Array#{values, @@iterator}.name in V8 / FF\n if(DEF_VALUES && $native && $native.name !== VALUES){\n VALUES_BUG = true;\n $default = function values(){ return $native.call(this); };\n }\n // Define iterator\n if((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])){\n hide(proto, ITERATOR, $default);\n }\n // Plug for library\n Iterators[NAME] = $default;\n Iterators[TAG] = returnThis;\n if(DEFAULT){\n methods = {\n values: DEF_VALUES ? $default : getMethod(VALUES),\n keys: IS_SET ? $default : getMethod(KEYS),\n entries: $entries\n };\n if(FORCED)for(key in methods){\n if(!(key in proto))redefine(proto, key, methods[key]);\n } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods);\n }\n return methods;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-define.js\n// module id = 71\n// module chunks = 0","module.exports = require('./_hide');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_redefine.js\n// module id = 72\n// module chunks = 0","// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)\nvar $keys = require('./_object-keys-internal')\n , hiddenKeys = require('./_enum-bug-keys').concat('length', 'prototype');\n\nexports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O){\n return $keys(O, hiddenKeys);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn.js\n// module id = 73\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/define-property\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/define-property.js\n// module id = 74\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/create\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/create.js\n// module id = 75\n// module chunks = 0","import Core from './core'\nexport default Core\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport $ from 'clappr-zepto'\nimport template from './template'\n\nconst Styler = {\n getStyleFor: function(style, options={ baseUrl: '' }) {\n return $('<style class=\"clappr-style\"></style>').html(template(style.toString())(options))\n }\n}\n\nexport default Styler\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/styler.js","import Events from '../../base/events'\nimport BaseObject from '../../base/base_object'\nimport Log from '../../plugins/log'\n\n/**\n * The PlayerError is responsible to receive and propagate errors.\n * @class PlayerError\n * @constructor\n * @extends BaseObject\n * @module components\n */\nclass PlayerError extends BaseObject {\n get name() { return 'error' }\n\n /**\n * @property Levels\n * @type {Object} object with error levels\n */\n static get Levels() {\n return {\n FATAL: 'FATAL',\n WARN: 'WARN',\n INFO: 'INFO',\n }\n }\n\n constructor(options={}, core) {\n super(options)\n this.core = core\n }\n\n /**\n * creates and trigger an error.\n * @method createError\n * @param {Object} err should be an object with code, description, level, origin, scope and raw error.\n */\n createError(err) {\n if (!this.core) {\n Log.warn(this.name, 'Core is not set. Error: ', err)\n return\n }\n this.core.trigger(Events.ERROR, err)\n }\n}\n\nexport default PlayerError\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/error/error.js","import Container from './container'\nexport default Container\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container/index.js","module.exports = function escape(url) {\n if (typeof url !== 'string') {\n return url\n }\n // If url is already wrapped in quotes, remove them\n if (/^['\"].*['\"]$/.test(url)) {\n url = url.slice(1, -1);\n }\n // Should url be wrapped?\n // See https://drafts.csswg.org/css-values-3/#urls\n if (/[\"'() \\t\\n]/.test(url)) {\n return '\"' + url.replace(/\"/g, '\\\\\"').replace(/\\n/g, '\\\\n') + '\"'\n }\n\n return url\n}\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader/lib/url/escape.js\n// module id = 80\n// module chunks = 0","import Loader from './loader'\nexport default Loader\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loader/index.js","\"use strict\";\n\nexports.__esModule = true;\n\nvar _from = require(\"../core-js/array/from\");\n\nvar _from2 = _interopRequireDefault(_from);\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }\n\nexports.default = function (arr) {\n if (Array.isArray(arr)) {\n for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n } else {\n return (0, _from2.default)(arr);\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/helpers/toConsumableArray.js\n// module id = 82\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/array/from\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/array/from.js\n// module id = 83\n// module chunks = 0","import HTML5Audio from './html5_audio'\nexport default HTML5Audio\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_audio/index.js","import HTMLImg from './html_img'\nexport default HTMLImg\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html_img/index.js","import NoOp from './no_op'\nexport default NoOp\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/no_op/index.js","import SpinnerThreeBouncePlugin from './spinner_three_bounce'\nexport default SpinnerThreeBouncePlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/spinner_three_bounce/index.js","import WaterMarkPlugin from './watermark'\nexport default WaterMarkPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/watermark/index.js","import PosterPlugin from './poster'\nexport default PosterPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/index.js","import ClickToPausePlugin from './click_to_pause'\nexport default ClickToPausePlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/click_to_pause/index.js","import MediaControl from './media_control'\nexport default MediaControl\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/media_control/index.js","module.exports = \"<%=baseUrl%>/a8c874b93b3d848f39a71260c57e3863.cur\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/media_control/public/closed-hand.cur\n// module id = 92\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M1.712 14.76H6.43V1.24H1.71v13.52zm7.86-13.52v13.52h4.716V1.24H9.573z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/02-pause.svg\n// module id = 93\n// module chunks = 0","import DVRControls from './dvr_controls'\nexport default DVRControls\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/dvr_controls/index.js","import Favicon from './favicon.js'\nexport default Favicon\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/favicon/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Player from './components/player'\nimport Utils from './base/utils'\nimport Events from './base/events'\nimport Playback from './base/playback'\nimport ContainerPlugin from './base/container_plugin'\nimport CorePlugin from './base/core_plugin'\nimport UICorePlugin from './base/ui_core_plugin'\nimport UIContainerPlugin from './base/ui_container_plugin'\nimport BaseObject from './base/base_object'\nimport UIObject from './base/ui_object'\nimport Browser from './components/browser'\nimport Container from './components/container'\nimport Core from './components/core'\nimport PlayerError from './components/error'\nimport Loader from './components/loader'\nimport Mediator from './components/mediator'\nimport PlayerInfo from './components/player_info'\nimport BaseFlashPlayback from './playbacks/base_flash_playback'\nimport Flash from './playbacks/flash'\nimport FlasHLS from './playbacks/flashls'\nimport HLS from './playbacks/hls'\nimport HTML5Audio from './playbacks/html5_audio'\nimport HTML5Video from './playbacks/html5_video'\nimport HTMLImg from './playbacks/html_img'\nimport NoOp from './playbacks/no_op'\nimport MediaControl from './plugins/media_control'\nimport ClickToPausePlugin from './plugins/click_to_pause'\nimport DVRControls from './plugins/dvr_controls'\nimport Favicon from './plugins/favicon'\nimport Log from './plugins/log'\nimport Poster from './plugins/poster'\nimport SpinnerThreeBouncePlugin from './plugins/spinner_three_bounce'\nimport WaterMarkPlugin from './plugins/watermark'\nimport Styler from './base/styler'\nimport Vendor from './vendor'\nimport template from './base/template'\n\nimport $ from 'clappr-zepto'\n\nconst version = VERSION\n\nexport default {\n Player,\n Mediator,\n Events,\n Browser,\n PlayerInfo,\n MediaControl,\n ContainerPlugin,\n UIContainerPlugin,\n CorePlugin,\n UICorePlugin,\n Playback,\n Container,\n Core,\n PlayerError,\n Loader,\n BaseObject,\n UIObject,\n Utils,\n BaseFlashPlayback,\n Flash,\n FlasHLS,\n HLS,\n HTML5Audio,\n HTML5Video,\n HTMLImg,\n NoOp,\n ClickToPausePlugin,\n DVRControls,\n Favicon,\n Log,\n Poster,\n SpinnerThreeBouncePlugin,\n WaterMarkPlugin,\n Styler,\n Vendor,\n version,\n template,\n $\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/main.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { uniqueId, currentScriptUrl } from '../base/utils'\n\nimport BaseObject from '../base/base_object'\nimport Events from '../base/events'\nimport Browser from './browser'\nimport CoreFactory from './core_factory'\nimport Loader from './loader'\nimport PlayerInfo from './player_info'\nimport ErrorMixin from '../base/error_mixin'\nimport $ from 'clappr-zepto'\n\nconst baseUrl = currentScriptUrl().replace(/\\/[^/]+$/, '')\n\n/**\n * @class Player\n * @constructor\n * @extends BaseObject\n * @module components\n * @example\n * ### Using the Player\n *\n * Add the following script on your HTML:\n * ```html\n * <head>\n * <script type=\"text/javascript\" src=\"http://cdn.clappr.io/latest/clappr.min.js\"></script>\n * </head>\n * ```\n * Now, create the player:\n * ```html\n * <body>\n * <div id=\"player\"></div>\n * <script>\n * var player = new Clappr.Player({source: \"http://your.video/here.mp4\", parentId: \"#player\"});\n * </script>\n * </body>\n * ```\n */\nexport default class Player extends BaseObject {\n\n set loader(loader) { this._loader = loader }\n get loader() {\n if (!this._loader)\n this._loader = new Loader(this.options.plugins || {}, this.options.playerId)\n\n return this._loader\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.core.activeContainer.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.core.activeContainer.buffering\n }\n\n /*\n * determine if the player is ready.\n * @property isReady\n * @type {Boolean} `true` if the player is ready. ie PLAYER_READY event has fired\n */\n get isReady() {\n return !!this._ready\n }\n\n /**\n * An events map that allows the user to add custom callbacks in player's options.\n * @property eventsMapping\n * @type {Object}\n */\n get eventsMapping() {\n return {\n onReady: Events.PLAYER_READY,\n onResize: Events.PLAYER_RESIZE,\n onPlay: Events.PLAYER_PLAY,\n onPause: Events.PLAYER_PAUSE,\n onStop: Events.PLAYER_STOP,\n onEnded: Events.PLAYER_ENDED,\n onSeek: Events.PLAYER_SEEK,\n onError: Events.PLAYER_ERROR,\n onTimeUpdate: Events.PLAYER_TIMEUPDATE,\n onVolumeUpdate: Events.PLAYER_VOLUMEUPDATE,\n onSubtitleAvailable: Events.PLAYER_SUBTITLE_AVAILABLE\n }\n }\n\n /**\n * @typedef {Object} PlaybackConfig\n * @prop {boolean} disableContextMenu\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @prop {boolean} preload\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @prop {boolean} controls\n * enabled/disables displaying controls\n * @prop {boolean} crossOrigin\n * enables cross-origin capability for media-resources\n * @prop {boolean} playInline\n * enables in-line video elements\n * @prop {boolean} audioOnly\n * enforce audio-only playback (when possible)\n * @prop {Object} externalTracks\n * pass externaly loaded track to playback\n * @prop {Number} [maxBufferLength]\n * The default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @prop {Number} [maxBackBufferLength]\n * After how much distance of the playhead data should be pruned from the buffer (influences memory consumption\n * of adaptive media-engines like Hls.js or Shaka)\n * @prop {Number} [minBufferLength]\n * After how much data in the buffer at least we attempt to consume it (influences QoS-related behavior\n * of adaptive media-engines like Hls.js or Shaka). If this is too low, and the available bandwidth is varying a lot\n * and too close to the streamed bitrate, we may continuously hit under-runs.\n * @prop {Number} [initialBandwidthEstimate]\n * define an initial bandwidth \"guess\" (or previously stored/established value) for underlying adaptive-bitreate engines\n * of adaptive playback implementations, like Hls.js or Shaka\n * @prop {Number} [maxAdaptiveBitrate]\n * Limits the streamed bitrate (for adaptive media-engines in underlying playback implementations)\n * @prop {Object} [maxAdaptiveVideoDimensions]\n * Limits the video dimensions in adaptive media-engines. Should be a literal object with `height` and `width`.\n * @prop {Boolean}[enableAutomaticABR] **default**: `true`\n * Allows to enable/disable automatic bitrate switching in adaptive media-engines\n * @prop {String} [preferredTextLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred text language, that may be enabled by the media-engine if available.\n * @prop {String} [preferredAudioLanguage] **default**: `'pt-BR'`\n * Allows to set a preferred audio language, that may be enabled by the media-engine if available.\n */\n\n /**\n * ## Player's constructor\n *\n * You might pass the options object to build the player.\n * ```javascript\n * var options = {source: \"http://example.com/video.mp4\", param1: \"val1\"};\n * var player = new Clappr.Player(options);\n * ```\n *\n * @method constructor\n * @param {Object} options Data\n * options to build a player instance\n * @param {Number} [options.width]\n * player's width **default**: `640`\n * @param {Number} [options.height]\n * player's height **default**: `360`\n * @param {String} [options.parentId]\n * the id of the element on the page that the player should be inserted into\n * @param {Object} [options.parent]\n * a reference to a dom element that the player should be inserted into\n * @param {String} [options.source]\n * The media source URL, or {source: <<source URL>>, mimeType: <<source mime type>>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <<source URL>>, mimeType: <<source mime type>>}\n * @param {Boolean} [options.autoPlay]\n * automatically play after page load **default**: `false`\n * @param {Boolean} [options.loop]\n * automatically replay after it ends **default**: `false`\n * @param {Boolean} [options.chromeless]\n * player acts in chromeless mode **default**: `false`\n * @param {Boolean} [options.allowUserInteraction]\n * whether or not the player should handle click events when in chromeless mode **default**: `false` on desktops browsers, `true` on mobile.\n * @param {Boolean} [options.disableKeyboardShortcuts]\n * disable keyboard shortcuts. **default**: `false`. `true` if `allowUserInteraction` is `false`.\n * @param {Boolean} [options.mute]\n * start the video muted **default**: `false`\n * @param {String} [options.mimeType]\n * add `mimeType: \"application/vnd.apple.mpegurl\"` if you need to use a url without extension.\n * @param {Boolean} [options.actualLiveTime]\n * show duration and seek time relative to actual time.\n * @param {String} [options.actualLiveServerTime]\n * specify server time as a string, format: \"2015/11/26 06:01:03\". This option is meant to be used with actualLiveTime.\n * @param {Boolean} [options.persistConfig]\n * persist player's settings (volume) through the same domain **default**: `true`\n * @param {String} [options.preload] @deprecated\n * video will be preloaded according to `preload` attribute options **default**: `'metadata'`\n * @param {Number} [options.maxBufferLength] @deprecated\n * the default behavior for the **HLS playback** is to keep buffering indefinitely, even on VoD.\n * This replicates the behavior for progressive download, which continues buffering when pausing the video, thus making the video available for playback even on slow networks.\n * To change this behavior use `maxBufferLength` where **value is in seconds**.\n * @param {String} [options.gaAccount]\n * enable Google Analytics events dispatch **(play/pause/stop/buffering/etc)** by adding your `gaAccount`\n * @param {String} [options.gaTrackerName]\n * besides `gaAccount` you can optionally, pass your favorite trackerName as `gaTrackerName`\n * @param {Object} [options.mediacontrol]\n * customize control bar colors, example: `mediacontrol: {seekbar: \"#E113D3\", buttons: \"#66B2FF\"}`\n * @param {Boolean} [options.hideMediaControl]\n * control media control auto hide **default**: `true`\n * @param {Boolean} [options.hideVolumeBar]\n * when embedded with width less than 320, volume bar will hide. You can force this behavior for all sizes by adding `true` **default**: `false`\n * @param {String} [options.watermark]\n * put `watermark: 'http://url/img.png'` on your embed parameters to automatically add watermark on your video.\n * You can customize corner position by defining position parameter. Positions can be `bottom-left`, `bottom-right`, `top-left` and `top-right`.\n * @param {String} [options.watermarkLink]\n * `watermarkLink: 'http://example.net/'` - define URL to open when the watermark is clicked. If not provided watermark will not be clickable.\n * @param {Boolean} [options.disableVideoTagContextMenu] @deprecated\n * disables the context menu (right click) on the video element if a HTML5Video playback is used.\n * @param {Boolean} [options.autoSeekFromUrl]\n * Automatically seek to the seconds provided in the url (e.g example.com?t=100) **default**: `true`\n * @param {Boolean} [options.exitFullscreenOnEnd]\n * Automatically exit full screen when the media finishes. **default**: `true`\n * @param {String} [options.poster]\n * define a poster by adding its address `poster: 'http://url/img.png'`. It will appear after video embed, disappear on play and go back when user stops the video.\n * @param {String} [options.playbackNotSupportedMessage]\n * define a custom message to be displayed when a playback is not supported.\n * @param {Object} [options.events]\n * Specify listeners which will be registered with their corresponding player events.\n * E.g. onReady -> \"PLAYER_READY\", onTimeUpdate -> \"PLAYER_TIMEUPDATE\"\n * @param {PlaybackConfig} [options.playback]\n * Generic `Playback` component related configuration\n * @param {Boolean} [options.disableErrorScreen]\n * disables the error screen plugin.\n * @param {Number} [options.autoPlayTimeout]\n * autoplay check timeout.\n */\n\n constructor(options) {\n super(options)\n const playbackDefaultOptions = { recycleVideo : true }\n const defaultOptions = {\n playerId: uniqueId(''),\n persistConfig: true,\n width: 640,\n height: 360,\n baseUrl: baseUrl,\n allowUserInteraction: Browser.isMobile,\n playback: playbackDefaultOptions\n }\n this._options = $.extend(defaultOptions, options)\n this.options.sources = this._normalizeSources(options)\n if (!this.options.chromeless) {\n // \"allowUserInteraction\" cannot be false if not in chromeless mode.\n this.options.allowUserInteraction = true\n }\n if (!this.options.allowUserInteraction) {\n // if user iteraction is not allowed ensure keyboard shortcuts are disabled\n this.options.disableKeyboardShortcuts = true\n }\n this._registerOptionEventListeners(this.options.events)\n this._coreFactory = new CoreFactory(this)\n this.playerInfo = PlayerInfo.getInstance(this.options.playerId)\n this.playerInfo.currentSize = { width: options.width, height: options.height }\n this.playerInfo.options = this.options\n if (this.options.parentId)\n this.setParentId(this.options.parentId)\n\n else if (this.options.parent)\n this.attachTo(this.options.parent)\n\n }\n\n /**\n * Specify a `parentId` to the player.\n * @method setParentId\n * @param {String} parentId the element parent id.\n * @return {Player} itself\n */\n setParentId(parentId) {\n const el = document.querySelector(parentId)\n if (el)\n this.attachTo(el)\n\n return this\n }\n\n /**\n * You can use this method to attach the player to a given element. You don't need to do this when you specify it during the player instantiation passing the `parentId` param.\n * @method attachTo\n * @param {Object} element a given element.\n * @return {Player} itself\n */\n attachTo(element) {\n this.options.parentElement = element\n this.core = this._coreFactory.create()\n this._addEventListeners()\n return this\n }\n\n _addEventListeners() {\n if (!this.core.isReady)\n this.listenToOnce(this.core, Events.CORE_READY, this._onReady)\n else\n this._onReady()\n\n this.listenTo(this.core.activeContainer, Events.CORE_ACTIVE_CONTAINER_CHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n this.listenTo(this.core, Events.CORE_RESIZE, this._onResize)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_PLAY, this._onPlay)\n this.listenTo(container, Events.CONTAINER_PAUSE, this._onPause)\n this.listenTo(container, Events.CONTAINER_STOP, this._onStop)\n this.listenTo(container, Events.CONTAINER_ENDED, this._onEnded)\n this.listenTo(container, Events.CONTAINER_SEEK, this._onSeek)\n this.listenTo(container, Events.CONTAINER_ERROR, this._onError)\n this.listenTo(container, Events.CONTAINER_TIMEUPDATE, this._onTimeUpdate)\n this.listenTo(container, Events.CONTAINER_VOLUME, this._onVolumeUpdate)\n this.listenTo(container, Events.CONTAINER_SUBTITLE_AVAILABLE, this._onSubtitleAvailable)\n }\n return this\n }\n\n _registerOptionEventListeners(newEvents = {}, events = {}) {\n const hasNewEvents = Object.keys(newEvents).length > 0\n hasNewEvents && Object.keys(events).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n eventType && this.off(eventType, events[userEvent])\n })\n\n Object.keys(newEvents).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n if (eventType) {\n let eventFunction = newEvents[userEvent]\n eventFunction = typeof eventFunction === 'function' && eventFunction\n eventFunction && this.on(eventType, eventFunction)\n }\n })\n return this\n }\n\n _containerChanged() {\n this.stopListening()\n this._addEventListeners()\n }\n\n _onReady() {\n this._ready = true\n this._addContainerEventListeners()\n this.trigger(Events.PLAYER_READY)\n }\n\n _onFullscreenChange(fullscreen) {\n this.trigger(Events.PLAYER_FULLSCREEN, fullscreen)\n }\n\n _onVolumeUpdate(volume) {\n this.trigger(Events.PLAYER_VOLUMEUPDATE, volume)\n }\n\n _onSubtitleAvailable() {\n this.trigger(Events.PLAYER_SUBTITLE_AVAILABLE)\n }\n\n _onResize(size) {\n this.trigger(Events.PLAYER_RESIZE, size)\n }\n\n _onPlay() {\n this.trigger(Events.PLAYER_PLAY)\n }\n\n _onPause() {\n this.trigger(Events.PLAYER_PAUSE)\n }\n\n _onStop() {\n this.trigger(Events.PLAYER_STOP, this.getCurrentTime())\n }\n\n _onEnded() {\n this.trigger(Events.PLAYER_ENDED)\n }\n\n _onSeek(time) {\n this.trigger(Events.PLAYER_SEEK, time)\n }\n\n _onTimeUpdate(timeProgress) {\n this.trigger(Events.PLAYER_TIMEUPDATE, timeProgress)\n }\n\n _onError(error) {\n this.trigger(Events.PLAYER_ERROR, error)\n }\n\n _normalizeSources(options) {\n const sources = options.sources || (options.source !== undefined? [options.source] : [])\n return sources.length === 0 ? [{ source:'', mimeType:'' }] : sources\n }\n\n /**\n * resizes the current player canvas.\n * @method resize\n * @param {Object} size should be a literal object with `height` and `width`.\n * @return {Player} itself\n * @example\n * ```javascript\n * player.resize({height: 360, width: 640})\n * ```\n */\n resize(size) {\n this.core.resize(size)\n return this\n }\n\n /**\n * loads a new source.\n * @method load\n * @param {Array|String} sources source or sources of video.\n * An array item can be a string or {source: <<source URL>>, mimeType: <<source mime type>>}\n * @param {String} mimeType a mime type, example: `'application/vnd.apple.mpegurl'`\n * @param {Boolean} [autoPlay=false] whether playing should be started immediately\n * @return {Player} itself\n */\n load(sources, mimeType, autoPlay) {\n if (autoPlay !== undefined)\n this.configure({ autoPlay: !!autoPlay })\n\n this.core.load(sources, mimeType)\n return this\n }\n\n /**\n * destroys the current player and removes it from the DOM.\n * @method destroy\n * @return {Player} itself\n */\n destroy() {\n this.stopListening()\n this.core.destroy()\n return this\n }\n\n /**\n * Gives user consent to playback. Required by mobile device after a click event before Player.load().\n * @method consent\n * @return {Player} itself\n */\n consent() {\n this.core.getCurrentPlayback().consent()\n return this\n }\n\n /**\n * plays the current video (`source`).\n * @method play\n * @return {Player} itself\n */\n play() {\n this.core.activeContainer.play()\n return this\n }\n\n /**\n * pauses the current video (`source`).\n * @method pause\n * @return {Player} itself\n */\n pause() {\n this.core.activeContainer.pause()\n return this\n }\n\n /**\n * stops the current video (`source`).\n * @method stop\n * @return {Player} itself\n */\n stop() {\n this.core.activeContainer.stop()\n return this\n }\n\n\n /**\n * seeks the current video (`source`). For example, `player.seek(120)` will seek to second 120 (2minutes) of the current video.\n * @method seek\n * @param {Number} time should be a number between 0 and the video duration.\n * @return {Player} itself\n */\n seek(time) {\n this.core.activeContainer.seek(time)\n return this\n }\n\n /**\n * seeks the current video (`source`). For example, `player.seek(50)` will seek to the middle of the current video.\n * @method seekPercentage\n * @param {Number} time should be a number between 0 and 100.\n * @return {Player} itself\n */\n seekPercentage(percentage) {\n this.core.activeContainer.seekPercentage(percentage)\n return this\n }\n\n /**\n * mutes the current video (`source`).\n * @method mute\n * @return {Player} itself\n */\n mute() {\n this._mutedVolume = this.getVolume()\n this.setVolume(0)\n return this\n }\n\n /**\n * unmutes the current video (`source`).\n * @method unmute\n * @return {Player} itself\n */\n unmute() {\n this.setVolume(typeof this._mutedVolume === 'number' ? this._mutedVolume : 100)\n this._mutedVolume = null\n return this\n }\n\n /**\n * checks if the player is playing.\n * @method isPlaying\n * @return {Boolean} `true` if the current source is playing, otherwise `false`\n */\n isPlaying() {\n return this.core.activeContainer.isPlaying()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return this.core.activeContainer.isDvrEnabled()\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return this.core.activeContainer.isDvrInUse()\n }\n\n /**\n * enables to configure a player after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n * @return {Player} itself\n */\n configure(options = {}) {\n this._registerOptionEventListeners(options.events, this.options.events)\n this.core.configure(options)\n return this\n }\n\n /**\n * get a plugin by its name.\n * @method getPlugin\n * @param {String} name of the plugin.\n * @return {Object} the plugin instance\n * @example\n * ```javascript\n * var poster = player.getPlugin('poster');\n * poster.hidePlayButton();\n * ```\n */\n getPlugin(name) {\n const plugins = this.core.plugins.concat(this.core.activeContainer.plugins)\n return plugins.filter(plugin => plugin.name === name)[0]\n }\n\n /**\n * the current time in seconds.\n * @method getCurrentTime\n * @return {Number} current time (in seconds) of the current source\n */\n getCurrentTime() {\n return this.core.activeContainer.getCurrentTime()\n }\n\n /**\n * The time that \"0\" now represents relative to when playback started.\n * For a stream with a sliding window this will increase as content is\n * removed from the beginning.\n * @method getStartTimeOffset\n * @return {Number} time (in seconds) that time \"0\" represents.\n */\n getStartTimeOffset() {\n return this.core.activeContainer.getStartTimeOffset()\n }\n\n /**\n * the duration time in seconds.\n * @method getDuration\n * @return {Number} duration time (in seconds) of the current source\n */\n getDuration() {\n return this.core.activeContainer.getDuration()\n }\n}\n\nObject.assign(Player.prototype, ErrorMixin)\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/player.js","require('../../modules/es6.object.assign');\nmodule.exports = require('../../modules/_core').Object.assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/assign.js\n// module id = 98\n// module chunks = 0","// 19.1.3.1 Object.assign(target, source)\nvar $export = require('./_export');\n\n$export($export.S + $export.F, 'Object', {assign: require('./_object-assign')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.assign.js\n// module id = 99\n// module chunks = 0","module.exports = function(it){\n if(typeof it != 'function')throw TypeError(it + ' is not a function!');\n return it;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_a-function.js\n// module id = 100\n// module chunks = 0","'use strict';\n// 19.1.2.1 Object.assign(target, source, ...)\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie')\n , toObject = require('./_to-object')\n , IObject = require('./_iobject')\n , $assign = Object.assign;\n\n// should work with symbols and should have deterministic property order (V8 bug)\nmodule.exports = !$assign || require('./_fails')(function(){\n var A = {}\n , B = {}\n , S = Symbol()\n , K = 'abcdefghijklmnopqrst';\n A[S] = 7;\n K.split('').forEach(function(k){ B[k] = k; });\n return $assign({}, A)[S] != 7 || Object.keys($assign({}, B)).join('') != K;\n}) ? function assign(target, source){ // eslint-disable-line no-unused-vars\n var T = toObject(target)\n , aLen = arguments.length\n , index = 1\n , getSymbols = gOPS.f\n , isEnum = pIE.f;\n while(aLen > index){\n var S = IObject(arguments[index++])\n , keys = getSymbols ? getKeys(S).concat(getSymbols(S)) : getKeys(S)\n , length = keys.length\n , j = 0\n , key;\n while(length > j)if(isEnum.call(S, key = keys[j++]))T[key] = S[key];\n } return T;\n} : $assign;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-assign.js\n// module id = 101\n// module chunks = 0","// false -> Array#indexOf\n// true -> Array#includes\nvar toIObject = require('./_to-iobject')\n , toLength = require('./_to-length')\n , toIndex = require('./_to-index');\nmodule.exports = function(IS_INCLUDES){\n return function($this, el, fromIndex){\n var O = toIObject($this)\n , length = toLength(O.length)\n , index = toIndex(fromIndex, length)\n , value;\n // Array#includes uses SameValueZero equality algorithm\n if(IS_INCLUDES && el != el)while(length > index){\n value = O[index++];\n if(value != value)return true;\n // Array#toIndex ignores holes, Array#includes - not\n } else for(;length > index; index++)if(IS_INCLUDES || index in O){\n if(O[index] === el)return IS_INCLUDES || index || 0;\n } return !IS_INCLUDES && -1;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_array-includes.js\n// module id = 102\n// module chunks = 0","var toInteger = require('./_to-integer')\n , max = Math.max\n , min = Math.min;\nmodule.exports = function(index, length){\n index = toInteger(index);\n return index < 0 ? max(index + length, 0) : min(index, length);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_to-index.js\n// module id = 103\n// module chunks = 0","require('../../modules/es6.object.keys');\nmodule.exports = require('../../modules/_core').Object.keys;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/keys.js\n// module id = 104\n// module chunks = 0","// 19.1.2.14 Object.keys(O)\nvar toObject = require('./_to-object')\n , $keys = require('./_object-keys');\n\nrequire('./_object-sap')('keys', function(){\n return function keys(it){\n return $keys(toObject(it));\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.keys.js\n// module id = 105\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol/iterator\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol/iterator.js\n// module id = 106\n// module chunks = 0","require('../../modules/es6.string.iterator');\nrequire('../../modules/web.dom.iterable');\nmodule.exports = require('../../modules/_wks-ext').f('iterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/iterator.js\n// module id = 107\n// module chunks = 0","var toInteger = require('./_to-integer')\n , defined = require('./_defined');\n// true -> String#at\n// false -> String#codePointAt\nmodule.exports = function(TO_STRING){\n return function(that, pos){\n var s = String(defined(that))\n , i = toInteger(pos)\n , l = s.length\n , a, b;\n if(i < 0 || i >= l)return TO_STRING ? '' : undefined;\n a = s.charCodeAt(i);\n return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff\n ? TO_STRING ? s.charAt(i) : a\n : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000;\n };\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_string-at.js\n// module id = 108\n// module chunks = 0","'use strict';\nvar create = require('./_object-create')\n , descriptor = require('./_property-desc')\n , setToStringTag = require('./_set-to-string-tag')\n , IteratorPrototype = {};\n\n// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()\nrequire('./_hide')(IteratorPrototype, require('./_wks')('iterator'), function(){ return this; });\n\nmodule.exports = function(Constructor, NAME, next){\n Constructor.prototype = create(IteratorPrototype, {next: descriptor(1, next)});\n setToStringTag(Constructor, NAME + ' Iterator');\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-create.js\n// module id = 109\n// module chunks = 0","var dP = require('./_object-dp')\n , anObject = require('./_an-object')\n , getKeys = require('./_object-keys');\n\nmodule.exports = require('./_descriptors') ? Object.defineProperties : function defineProperties(O, Properties){\n anObject(O);\n var keys = getKeys(Properties)\n , length = keys.length\n , i = 0\n , P;\n while(length > i)dP.f(O, P = keys[i++], Properties[P]);\n return O;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-dps.js\n// module id = 110\n// module chunks = 0","module.exports = require('./_global').document && document.documentElement;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_html.js\n// module id = 111\n// module chunks = 0","// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)\nvar has = require('./_has')\n , toObject = require('./_to-object')\n , IE_PROTO = require('./_shared-key')('IE_PROTO')\n , ObjectProto = Object.prototype;\n\nmodule.exports = Object.getPrototypeOf || function(O){\n O = toObject(O);\n if(has(O, IE_PROTO))return O[IE_PROTO];\n if(typeof O.constructor == 'function' && O instanceof O.constructor){\n return O.constructor.prototype;\n } return O instanceof Object ? ObjectProto : null;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gpo.js\n// module id = 112\n// module chunks = 0","require('./es6.array.iterator');\nvar global = require('./_global')\n , hide = require('./_hide')\n , Iterators = require('./_iterators')\n , TO_STRING_TAG = require('./_wks')('toStringTag');\n\nfor(var collections = ['NodeList', 'DOMTokenList', 'MediaList', 'StyleSheetList', 'CSSRuleList'], i = 0; i < 5; i++){\n var NAME = collections[i]\n , Collection = global[NAME]\n , proto = Collection && Collection.prototype;\n if(proto && !proto[TO_STRING_TAG])hide(proto, TO_STRING_TAG, NAME);\n Iterators[NAME] = Iterators.Array;\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/web.dom.iterable.js\n// module id = 113\n// module chunks = 0","'use strict';\nvar addToUnscopables = require('./_add-to-unscopables')\n , step = require('./_iter-step')\n , Iterators = require('./_iterators')\n , toIObject = require('./_to-iobject');\n\n// 22.1.3.4 Array.prototype.entries()\n// 22.1.3.13 Array.prototype.keys()\n// 22.1.3.29 Array.prototype.values()\n// 22.1.3.30 Array.prototype[@@iterator]()\nmodule.exports = require('./_iter-define')(Array, 'Array', function(iterated, kind){\n this._t = toIObject(iterated); // target\n this._i = 0; // next index\n this._k = kind; // kind\n// 22.1.5.2.1 %ArrayIteratorPrototype%.next()\n}, function(){\n var O = this._t\n , kind = this._k\n , index = this._i++;\n if(!O || index >= O.length){\n this._t = undefined;\n return step(1);\n }\n if(kind == 'keys' )return step(0, index);\n if(kind == 'values')return step(0, O[index]);\n return step(0, [index, O[index]]);\n}, 'values');\n\n// argumentsList[@@iterator] is %ArrayProto_values% (9.4.4.6, 9.4.4.7)\nIterators.Arguments = Iterators.Array;\n\naddToUnscopables('keys');\naddToUnscopables('values');\naddToUnscopables('entries');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.iterator.js\n// module id = 114\n// module chunks = 0","module.exports = function(){ /* empty */ };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_add-to-unscopables.js\n// module id = 115\n// module chunks = 0","module.exports = function(done, value){\n return {value: value, done: !!done};\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-step.js\n// module id = 116\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/symbol\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/symbol.js\n// module id = 117\n// module chunks = 0","require('../../modules/es6.symbol');\nrequire('../../modules/es6.object.to-string');\nrequire('../../modules/es7.symbol.async-iterator');\nrequire('../../modules/es7.symbol.observable');\nmodule.exports = require('../../modules/_core').Symbol;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/symbol/index.js\n// module id = 118\n// module chunks = 0","'use strict';\n// ECMAScript 6 symbols shim\nvar global = require('./_global')\n , has = require('./_has')\n , DESCRIPTORS = require('./_descriptors')\n , $export = require('./_export')\n , redefine = require('./_redefine')\n , META = require('./_meta').KEY\n , $fails = require('./_fails')\n , shared = require('./_shared')\n , setToStringTag = require('./_set-to-string-tag')\n , uid = require('./_uid')\n , wks = require('./_wks')\n , wksExt = require('./_wks-ext')\n , wksDefine = require('./_wks-define')\n , keyOf = require('./_keyof')\n , enumKeys = require('./_enum-keys')\n , isArray = require('./_is-array')\n , anObject = require('./_an-object')\n , toIObject = require('./_to-iobject')\n , toPrimitive = require('./_to-primitive')\n , createDesc = require('./_property-desc')\n , _create = require('./_object-create')\n , gOPNExt = require('./_object-gopn-ext')\n , $GOPD = require('./_object-gopd')\n , $DP = require('./_object-dp')\n , $keys = require('./_object-keys')\n , gOPD = $GOPD.f\n , dP = $DP.f\n , gOPN = gOPNExt.f\n , $Symbol = global.Symbol\n , $JSON = global.JSON\n , _stringify = $JSON && $JSON.stringify\n , PROTOTYPE = 'prototype'\n , HIDDEN = wks('_hidden')\n , TO_PRIMITIVE = wks('toPrimitive')\n , isEnum = {}.propertyIsEnumerable\n , SymbolRegistry = shared('symbol-registry')\n , AllSymbols = shared('symbols')\n , OPSymbols = shared('op-symbols')\n , ObjectProto = Object[PROTOTYPE]\n , USE_NATIVE = typeof $Symbol == 'function'\n , QObject = global.QObject;\n// Don't use setters in Qt Script, https://github.com/zloirock/core-js/issues/173\nvar setter = !QObject || !QObject[PROTOTYPE] || !QObject[PROTOTYPE].findChild;\n\n// fallback for old Android, https://code.google.com/p/v8/issues/detail?id=687\nvar setSymbolDesc = DESCRIPTORS && $fails(function(){\n return _create(dP({}, 'a', {\n get: function(){ return dP(this, 'a', {value: 7}).a; }\n })).a != 7;\n}) ? function(it, key, D){\n var protoDesc = gOPD(ObjectProto, key);\n if(protoDesc)delete ObjectProto[key];\n dP(it, key, D);\n if(protoDesc && it !== ObjectProto)dP(ObjectProto, key, protoDesc);\n} : dP;\n\nvar wrap = function(tag){\n var sym = AllSymbols[tag] = _create($Symbol[PROTOTYPE]);\n sym._k = tag;\n return sym;\n};\n\nvar isSymbol = USE_NATIVE && typeof $Symbol.iterator == 'symbol' ? function(it){\n return typeof it == 'symbol';\n} : function(it){\n return it instanceof $Symbol;\n};\n\nvar $defineProperty = function defineProperty(it, key, D){\n if(it === ObjectProto)$defineProperty(OPSymbols, key, D);\n anObject(it);\n key = toPrimitive(key, true);\n anObject(D);\n if(has(AllSymbols, key)){\n if(!D.enumerable){\n if(!has(it, HIDDEN))dP(it, HIDDEN, createDesc(1, {}));\n it[HIDDEN][key] = true;\n } else {\n if(has(it, HIDDEN) && it[HIDDEN][key])it[HIDDEN][key] = false;\n D = _create(D, {enumerable: createDesc(0, false)});\n } return setSymbolDesc(it, key, D);\n } return dP(it, key, D);\n};\nvar $defineProperties = function defineProperties(it, P){\n anObject(it);\n var keys = enumKeys(P = toIObject(P))\n , i = 0\n , l = keys.length\n , key;\n while(l > i)$defineProperty(it, key = keys[i++], P[key]);\n return it;\n};\nvar $create = function create(it, P){\n return P === undefined ? _create(it) : $defineProperties(_create(it), P);\n};\nvar $propertyIsEnumerable = function propertyIsEnumerable(key){\n var E = isEnum.call(this, key = toPrimitive(key, true));\n if(this === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return false;\n return E || !has(this, key) || !has(AllSymbols, key) || has(this, HIDDEN) && this[HIDDEN][key] ? E : true;\n};\nvar $getOwnPropertyDescriptor = function getOwnPropertyDescriptor(it, key){\n it = toIObject(it);\n key = toPrimitive(key, true);\n if(it === ObjectProto && has(AllSymbols, key) && !has(OPSymbols, key))return;\n var D = gOPD(it, key);\n if(D && has(AllSymbols, key) && !(has(it, HIDDEN) && it[HIDDEN][key]))D.enumerable = true;\n return D;\n};\nvar $getOwnPropertyNames = function getOwnPropertyNames(it){\n var names = gOPN(toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(!has(AllSymbols, key = names[i++]) && key != HIDDEN && key != META)result.push(key);\n } return result;\n};\nvar $getOwnPropertySymbols = function getOwnPropertySymbols(it){\n var IS_OP = it === ObjectProto\n , names = gOPN(IS_OP ? OPSymbols : toIObject(it))\n , result = []\n , i = 0\n , key;\n while(names.length > i){\n if(has(AllSymbols, key = names[i++]) && (IS_OP ? has(ObjectProto, key) : true))result.push(AllSymbols[key]);\n } return result;\n};\n\n// 19.4.1.1 Symbol([description])\nif(!USE_NATIVE){\n $Symbol = function Symbol(){\n if(this instanceof $Symbol)throw TypeError('Symbol is not a constructor!');\n var tag = uid(arguments.length > 0 ? arguments[0] : undefined);\n var $set = function(value){\n if(this === ObjectProto)$set.call(OPSymbols, value);\n if(has(this, HIDDEN) && has(this[HIDDEN], tag))this[HIDDEN][tag] = false;\n setSymbolDesc(this, tag, createDesc(1, value));\n };\n if(DESCRIPTORS && setter)setSymbolDesc(ObjectProto, tag, {configurable: true, set: $set});\n return wrap(tag);\n };\n redefine($Symbol[PROTOTYPE], 'toString', function toString(){\n return this._k;\n });\n\n $GOPD.f = $getOwnPropertyDescriptor;\n $DP.f = $defineProperty;\n require('./_object-gopn').f = gOPNExt.f = $getOwnPropertyNames;\n require('./_object-pie').f = $propertyIsEnumerable;\n require('./_object-gops').f = $getOwnPropertySymbols;\n\n if(DESCRIPTORS && !require('./_library')){\n redefine(ObjectProto, 'propertyIsEnumerable', $propertyIsEnumerable, true);\n }\n\n wksExt.f = function(name){\n return wrap(wks(name));\n }\n}\n\n$export($export.G + $export.W + $export.F * !USE_NATIVE, {Symbol: $Symbol});\n\nfor(var symbols = (\n // 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\n 'hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables'\n).split(','), i = 0; symbols.length > i; )wks(symbols[i++]);\n\nfor(var symbols = $keys(wks.store), i = 0; symbols.length > i; )wksDefine(symbols[i++]);\n\n$export($export.S + $export.F * !USE_NATIVE, 'Symbol', {\n // 19.4.2.1 Symbol.for(key)\n 'for': function(key){\n return has(SymbolRegistry, key += '')\n ? SymbolRegistry[key]\n : SymbolRegistry[key] = $Symbol(key);\n },\n // 19.4.2.5 Symbol.keyFor(sym)\n keyFor: function keyFor(key){\n if(isSymbol(key))return keyOf(SymbolRegistry, key);\n throw TypeError(key + ' is not a symbol!');\n },\n useSetter: function(){ setter = true; },\n useSimple: function(){ setter = false; }\n});\n\n$export($export.S + $export.F * !USE_NATIVE, 'Object', {\n // 19.1.2.2 Object.create(O [, Properties])\n create: $create,\n // 19.1.2.4 Object.defineProperty(O, P, Attributes)\n defineProperty: $defineProperty,\n // 19.1.2.3 Object.defineProperties(O, Properties)\n defineProperties: $defineProperties,\n // 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\n getOwnPropertyDescriptor: $getOwnPropertyDescriptor,\n // 19.1.2.7 Object.getOwnPropertyNames(O)\n getOwnPropertyNames: $getOwnPropertyNames,\n // 19.1.2.8 Object.getOwnPropertySymbols(O)\n getOwnPropertySymbols: $getOwnPropertySymbols\n});\n\n// 24.3.2 JSON.stringify(value [, replacer [, space]])\n$JSON && $export($export.S + $export.F * (!USE_NATIVE || $fails(function(){\n var S = $Symbol();\n // MS Edge converts symbol values to JSON as {}\n // WebKit converts symbol values to JSON as null\n // V8 throws on boxed symbols\n return _stringify([S]) != '[null]' || _stringify({a: S}) != '{}' || _stringify(Object(S)) != '{}';\n})), 'JSON', {\n stringify: function stringify(it){\n if(it === undefined || isSymbol(it))return; // IE8 returns string on undefined\n var args = [it]\n , i = 1\n , replacer, $replacer;\n while(arguments.length > i)args.push(arguments[i++]);\n replacer = args[1];\n if(typeof replacer == 'function')$replacer = replacer;\n if($replacer || !isArray(replacer))replacer = function(key, value){\n if($replacer)value = $replacer.call(this, key, value);\n if(!isSymbol(value))return value;\n };\n args[1] = replacer;\n return _stringify.apply($JSON, args);\n }\n});\n\n// 19.4.3.4 Symbol.prototype[@@toPrimitive](hint)\n$Symbol[PROTOTYPE][TO_PRIMITIVE] || require('./_hide')($Symbol[PROTOTYPE], TO_PRIMITIVE, $Symbol[PROTOTYPE].valueOf);\n// 19.4.3.5 Symbol.prototype[@@toStringTag]\nsetToStringTag($Symbol, 'Symbol');\n// 20.2.1.9 Math[@@toStringTag]\nsetToStringTag(Math, 'Math', true);\n// 24.3.3 JSON[@@toStringTag]\nsetToStringTag(global.JSON, 'JSON', true);\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.symbol.js\n// module id = 119\n// module chunks = 0","var META = require('./_uid')('meta')\n , isObject = require('./_is-object')\n , has = require('./_has')\n , setDesc = require('./_object-dp').f\n , id = 0;\nvar isExtensible = Object.isExtensible || function(){\n return true;\n};\nvar FREEZE = !require('./_fails')(function(){\n return isExtensible(Object.preventExtensions({}));\n});\nvar setMeta = function(it){\n setDesc(it, META, {value: {\n i: 'O' + ++id, // object ID\n w: {} // weak collections IDs\n }});\n};\nvar fastKey = function(it, create){\n // return primitive with prefix\n if(!isObject(it))return typeof it == 'symbol' ? it : (typeof it == 'string' ? 'S' : 'P') + it;\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return 'F';\n // not necessary to add metadata\n if(!create)return 'E';\n // add missing metadata\n setMeta(it);\n // return object ID\n } return it[META].i;\n};\nvar getWeak = function(it, create){\n if(!has(it, META)){\n // can't set metadata to uncaught frozen object\n if(!isExtensible(it))return true;\n // not necessary to add metadata\n if(!create)return false;\n // add missing metadata\n setMeta(it);\n // return hash weak collections IDs\n } return it[META].w;\n};\n// add metadata on freeze-family methods calling\nvar onFreeze = function(it){\n if(FREEZE && meta.NEED && isExtensible(it) && !has(it, META))setMeta(it);\n return it;\n};\nvar meta = module.exports = {\n KEY: META,\n NEED: false,\n fastKey: fastKey,\n getWeak: getWeak,\n onFreeze: onFreeze\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_meta.js\n// module id = 120\n// module chunks = 0","var getKeys = require('./_object-keys')\n , toIObject = require('./_to-iobject');\nmodule.exports = function(object, el){\n var O = toIObject(object)\n , keys = getKeys(O)\n , length = keys.length\n , index = 0\n , key;\n while(length > index)if(O[key = keys[index++]] === el)return key;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_keyof.js\n// module id = 121\n// module chunks = 0","// all enumerable object keys, includes symbols\nvar getKeys = require('./_object-keys')\n , gOPS = require('./_object-gops')\n , pIE = require('./_object-pie');\nmodule.exports = function(it){\n var result = getKeys(it)\n , getSymbols = gOPS.f;\n if(getSymbols){\n var symbols = getSymbols(it)\n , isEnum = pIE.f\n , i = 0\n , key;\n while(symbols.length > i)if(isEnum.call(it, key = symbols[i++]))result.push(key);\n } return result;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_enum-keys.js\n// module id = 122\n// module chunks = 0","// 7.2.2 IsArray(argument)\nvar cof = require('./_cof');\nmodule.exports = Array.isArray || function isArray(arg){\n return cof(arg) == 'Array';\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array.js\n// module id = 123\n// module chunks = 0","// fallback for IE11 buggy Object.getOwnPropertyNames with iframe and window\nvar toIObject = require('./_to-iobject')\n , gOPN = require('./_object-gopn').f\n , toString = {}.toString;\n\nvar windowNames = typeof window == 'object' && window && Object.getOwnPropertyNames\n ? Object.getOwnPropertyNames(window) : [];\n\nvar getWindowNames = function(it){\n try {\n return gOPN(it);\n } catch(e){\n return windowNames.slice();\n }\n};\n\nmodule.exports.f = function getOwnPropertyNames(it){\n return windowNames && toString.call(it) == '[object Window]' ? getWindowNames(it) : gOPN(toIObject(it));\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_object-gopn-ext.js\n// module id = 124\n// module chunks = 0","require('./_wks-define')('asyncIterator');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.async-iterator.js\n// module id = 126\n// module chunks = 0","require('./_wks-define')('observable');\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es7.symbol.observable.js\n// module id = 127\n// module chunks = 0","require('../../modules/es6.object.define-property');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function defineProperty(it, key, desc){\n return $Object.defineProperty(it, key, desc);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/define-property.js\n// module id = 128\n// module chunks = 0","var $export = require('./_export');\n// 19.1.2.4 / 15.2.3.6 Object.defineProperty(O, P, Attributes)\n$export($export.S + $export.F * !require('./_descriptors'), 'Object', {defineProperty: require('./_object-dp').f});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.define-property.js\n// module id = 129\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/set-prototype-of\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/set-prototype-of.js\n// module id = 130\n// module chunks = 0","require('../../modules/es6.object.set-prototype-of');\nmodule.exports = require('../../modules/_core').Object.setPrototypeOf;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/set-prototype-of.js\n// module id = 131\n// module chunks = 0","// 19.1.3.19 Object.setPrototypeOf(O, proto)\nvar $export = require('./_export');\n$export($export.S, 'Object', {setPrototypeOf: require('./_set-proto').set});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.set-prototype-of.js\n// module id = 132\n// module chunks = 0","// Works with __proto__ only. Old v8 can't work with null proto objects.\n/* eslint-disable no-proto */\nvar isObject = require('./_is-object')\n , anObject = require('./_an-object');\nvar check = function(O, proto){\n anObject(O);\n if(!isObject(proto) && proto !== null)throw TypeError(proto + \": can't set as prototype!\");\n};\nmodule.exports = {\n set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line\n function(test, buggy, set){\n try {\n set = require('./_ctx')(Function.call, require('./_object-gopd').f(Object.prototype, '__proto__').set, 2);\n set(test, []);\n buggy = !(test instanceof Array);\n } catch(e){ buggy = true; }\n return function setPrototypeOf(O, proto){\n check(O, proto);\n if(buggy)O.__proto__ = proto;\n else set(O, proto);\n return O;\n };\n }({}, false) : undefined),\n check: check\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_set-proto.js\n// module id = 133\n// module chunks = 0","require('../../modules/es6.object.create');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function create(P, D){\n return $Object.create(P, D);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/create.js\n// module id = 134\n// module chunks = 0","var $export = require('./_export')\n// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])\n$export($export.S, 'Object', {create: require('./_object-create')});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.create.js\n// module id = 135\n// module chunks = 0","module.exports = { \"default\": require(\"core-js/library/fn/object/get-own-property-descriptor\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/object/get-own-property-descriptor.js\n// module id = 136\n// module chunks = 0","require('../../modules/es6.object.get-own-property-descriptor');\nvar $Object = require('../../modules/_core').Object;\nmodule.exports = function getOwnPropertyDescriptor(it, key){\n return $Object.getOwnPropertyDescriptor(it, key);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/object/get-own-property-descriptor.js\n// module id = 137\n// module chunks = 0","// 19.1.2.6 Object.getOwnPropertyDescriptor(O, P)\nvar toIObject = require('./_to-iobject')\n , $getOwnPropertyDescriptor = require('./_object-gopd').f;\n\nrequire('./_object-sap')('getOwnPropertyDescriptor', function(){\n return function getOwnPropertyDescriptor(it, key){\n return $getOwnPropertyDescriptor(toIObject(it), key);\n };\n});\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.object.get-own-property-descriptor.js\n// module id = 138\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Array.prototype.find\n *\n * Original source : https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Array/find\n * See also : https://tc39.github.io/ecma262/#sec-array.prototype.find\n */\nif (!Array.prototype.find) {\n // eslint-disable-next-line\n Object.defineProperty(Array.prototype, 'find', {\n // Note: ES6 arrow function syntax is not used on purpose to avoid this to be undefined\n value: function(predicate) {\n // 1. Let O be ? ToObject(this value).\n if (this == null)\n throw new TypeError('\"this\" is null or not defined')\n\n\n let o = Object(this)\n\n // 2. Let len be ? ToLength(? Get(O, \"length\")).\n let len = o.length >>> 0\n\n // 3. If IsCallable(predicate) is false, throw a TypeError exception.\n if (typeof predicate !== 'function')\n throw new TypeError('predicate must be a function')\n\n\n // 4. If thisArg was supplied, let T be thisArg; else let T be undefined.\n let thisArg = arguments[1]\n\n // 5. Let k be 0.\n let k = 0\n\n // 6. Repeat, while k < len\n while (k < len) {\n // a. Let Pk be ! ToString(k).\n // b. Let kValue be ? Get(O, Pk).\n // c. Let testResult be ToBoolean(? Call(predicate, T, « kValue, k, O »)).\n // d. If testResult is true, return kValue.\n let kValue = o[k]\n if (predicate.call(thisArg, kValue, k, o))\n return kValue\n\n // e. Increase k by 1.\n k++\n }\n\n // 7. Return undefined.\n return undefined\n }\n })\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/polyfills.js","import $ from 'clappr-zepto'\nimport BROWSER_DATA from './browser_data'\nimport OS_DATA from './os_data'\n\nconst Browser = {}\n\nconst hasLocalstorage = function() {\n try {\n localStorage.setItem('clappr', 'clappr')\n localStorage.removeItem('clappr')\n return true\n } catch (e) {\n return false\n }\n}\n\nconst hasFlash = function() {\n try {\n const fo = new ActiveXObject('ShockwaveFlash.ShockwaveFlash')\n return !!fo\n } catch (e) {\n return !!(navigator.mimeTypes && navigator.mimeTypes['application/x-shockwave-flash'] !== undefined &&\n navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin)\n }\n}\n\nexport const getBrowserInfo = function(ua) {\n let parts = ua.match(/\\b(playstation 4|nx|opera|chrome|safari|firefox|msie|trident(?=\\/))\\/?\\s*(\\d+)/i) || [],\n extra\n if (/trident/i.test(parts[1])) {\n extra = /\\brv[ :]+(\\d+)/g.exec(ua) || []\n return {\n name: 'IE',\n version: parseInt(extra[1] || '')\n }\n } else if (parts[1] === 'Chrome') {\n extra = ua.match(/\\bOPR\\/(\\d+)/)\n if (extra != null) return { name: 'Opera', version: parseInt(extra[1]) }\n\n extra = ua.match(/\\bEdge\\/(\\d+)/)\n if (extra != null) return { name: 'Edge', version: parseInt(extra[1]) }\n\n } else if (/android/i.test(ua) && (extra = ua.match(/version\\/(\\d+)/i))) {\n parts.splice(1, 1, 'Android WebView')\n parts.splice(2, 1, extra[1])\n }\n parts = parts[2] ? [parts[1], parts[2]] : [navigator.appName, navigator.appVersion, '-?']\n\n return {\n name: parts[0],\n version: parseInt(parts[1])\n }\n}\n\n// Get browser data\nexport const getBrowserData = function() {\n let browserObject = {}\n let userAgent = Browser.userAgent.toLowerCase()\n\n // Check browser type\n for (let i in BROWSER_DATA) {\n let browserRegExp = new RegExp(BROWSER_DATA[i].identifier.toLowerCase())\n let browserRegExpResult = browserRegExp.exec(userAgent)\n\n if (browserRegExpResult != null && browserRegExpResult[1]) {\n browserObject.name = BROWSER_DATA[i].name\n browserObject.group = BROWSER_DATA[i].group\n\n // Check version\n if (BROWSER_DATA[i].versionIdentifier) {\n let versionRegExp = new RegExp(BROWSER_DATA[i].versionIdentifier.toLowerCase())\n let versionRegExpResult = versionRegExp.exec(userAgent)\n\n if (versionRegExpResult != null && versionRegExpResult[1])\n setBrowserVersion(versionRegExpResult[1], browserObject)\n\n } else {\n setBrowserVersion(browserRegExpResult[1], browserObject)\n }\n break\n }\n }\n return browserObject\n}\n\n// Set browser version\nconst setBrowserVersion = function(version, browserObject) {\n let splitVersion = version.split('.', 2)\n browserObject.fullVersion = version\n\n // Major version\n if (splitVersion[0]) browserObject.majorVersion = parseInt(splitVersion[0])\n\n // Minor version\n if (splitVersion[1]) browserObject.minorVersion = parseInt(splitVersion[1])\n}\n\n// Get OS data\nexport const getOsData = function() {\n let osObject = {}\n let userAgent = Browser.userAgent.toLowerCase()\n\n // Check browser type\n for (let i in OS_DATA) {\n let osRegExp = new RegExp(OS_DATA[i].identifier.toLowerCase())\n let osRegExpResult = osRegExp.exec(userAgent)\n\n if (osRegExpResult != null) {\n osObject.name = OS_DATA[i].name\n osObject.group = OS_DATA[i].group\n\n // Version defined\n if (OS_DATA[i].version) {\n setOsVersion(OS_DATA[i].version, (OS_DATA[i].versionSeparator) ? OS_DATA[i].versionSeparator : '.', osObject)\n\n // Version detected\n } else if (osRegExpResult[1]) {\n setOsVersion(osRegExpResult[1], (OS_DATA[i].versionSeparator) ? OS_DATA[i].versionSeparator : '.', osObject)\n\n // Version identifier\n } else if (OS_DATA[i].versionIdentifier) {\n let versionRegExp = new RegExp(OS_DATA[i].versionIdentifier.toLowerCase())\n let versionRegExpResult = versionRegExp.exec(userAgent)\n\n if (versionRegExpResult != null && versionRegExpResult[1])\n setOsVersion(versionRegExpResult[1], (OS_DATA[i].versionSeparator) ? OS_DATA[i].versionSeparator : '.', osObject)\n\n }\n break\n }\n }\n return osObject\n}\n\n// Set OS version\nconst setOsVersion = function(version, separator, osObject) {\n let finalSeparator = separator.substr(0, 1) == '[' ? new RegExp(separator, 'g') : separator\n const splitVersion = version.split(finalSeparator, 2)\n\n if (separator != '.') version = version.replace(new RegExp(separator, 'g'), '.')\n\n osObject.fullVersion = version\n\n // Major version\n if (splitVersion && splitVersion[0])\n osObject.majorVersion = parseInt(splitVersion[0])\n\n // Minor version\n if (splitVersion && splitVersion[1])\n osObject.minorVersion = parseInt(splitVersion[1])\n}\n\n// Set viewport size\nexport const getViewportSize = function() {\n let viewportObject = {}\n\n viewportObject.width = $(window).width()\n viewportObject.height = $(window).height()\n\n return viewportObject\n}\n\n// Set viewport orientation\nconst setViewportOrientation = function() {\n switch (window.orientation) {\n case -90:\n case 90:\n Browser.viewport.orientation = 'landscape'\n break\n default:\n Browser.viewport.orientation = 'portrait'\n break\n }\n}\n\nexport const getDevice = function(ua) {\n let platformRegExp = /\\((iP(?:hone|ad|od))?(?:[^;]*; ){0,2}([^)]+(?=\\)))/\n let matches = platformRegExp.exec(ua)\n let device = matches && (matches[1] || matches[2]) || ''\n return device\n}\n\nconst browserInfo = getBrowserInfo(navigator.userAgent)\n\nBrowser.isEdge = /edge/i.test(navigator.userAgent)\nBrowser.isChrome = /chrome|CriOS/i.test(navigator.userAgent) && !Browser.isEdge\nBrowser.isSafari = /safari/i.test(navigator.userAgent) && !Browser.isChrome && !Browser.isEdge\nBrowser.isFirefox = /firefox/i.test(navigator.userAgent)\nBrowser.isLegacyIE = !!(window.ActiveXObject)\nBrowser.isIE = Browser.isLegacyIE || /trident.*rv:1\\d/i.test(navigator.userAgent)\nBrowser.isIE11 = /trident.*rv:11/i.test(navigator.userAgent)\nBrowser.isChromecast = Browser.isChrome && /CrKey/i.test(navigator.userAgent)\nBrowser.isMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|Windows Phone|IEMobile|Mobile Safari|Opera Mini/i.test(navigator.userAgent)\nBrowser.isiOS = /iPad|iPhone|iPod/i.test(navigator.userAgent)\nBrowser.isAndroid = /Android/i.test(navigator.userAgent)\nBrowser.isWindowsPhone = /Windows Phone/i.test(navigator.userAgent)\nBrowser.isWin8App = /MSAppHost/i.test(navigator.userAgent)\nBrowser.isWiiU = /WiiU/i.test(navigator.userAgent)\nBrowser.isPS4 = /PlayStation 4/i.test(navigator.userAgent)\nBrowser.hasLocalstorage = hasLocalstorage()\nBrowser.hasFlash = hasFlash()\n\n/**\n* @deprecated\n* This parameter currently exists for retrocompatibility reasons.\n* Use Browser.data.name instead.\n*/\nBrowser.name = browserInfo.name\n\n/**\n* @deprecated\n* This parameter currently exists for retrocompatibility reasons.\n* Use Browser.data.fullVersion instead.\n*/\nBrowser.version = browserInfo.version\n\nBrowser.userAgent = navigator.userAgent\nBrowser.data = getBrowserData()\nBrowser.os = getOsData()\nBrowser.viewport = getViewportSize()\nBrowser.device = getDevice(Browser.userAgent)\ntypeof window.orientation !== 'undefined' && setViewportOrientation()\n\nexport default Browser\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/browser/browser.js","/* eslint-disable no-useless-escape */\n// The order of the following arrays is important, be careful if you change it.\n\nconst BROWSER_DATA = [{\n name: 'Chromium',\n group: 'Chrome',\n identifier: 'Chromium/([0-9\\.]*)'\n}, {\n name: 'Chrome Mobile',\n group: 'Chrome',\n identifier: 'Chrome/([0-9\\.]*) Mobile',\n versionIdentifier: 'Chrome/([0-9\\.]*)'\n}, {\n name: 'Chrome',\n group: 'Chrome',\n identifier: 'Chrome/([0-9\\.]*)'\n}, {\n name: 'Chrome for iOS',\n group: 'Chrome',\n identifier: 'CriOS/([0-9\\.]*)'\n}, {\n name: 'Android Browser',\n group: 'Chrome',\n identifier: 'CrMo/([0-9\\.]*)'\n}, {\n name: 'Firefox',\n group: 'Firefox',\n identifier: 'Firefox/([0-9\\.]*)'\n}, {\n name: 'Opera Mini',\n group: 'Opera',\n identifier: 'Opera Mini/([0-9\\.]*)'\n}, {\n name: 'Opera',\n group: 'Opera',\n identifier: 'Opera ([0-9\\.]*)'\n}, {\n name: 'Opera',\n group: 'Opera',\n identifier: 'Opera/([0-9\\.]*)',\n versionIdentifier: 'Version/([0-9\\.]*)'\n}, {\n name: 'IEMobile',\n group: 'Explorer',\n identifier: 'IEMobile/([0-9\\.]*)'\n}, {\n name: 'Internet Explorer',\n group: 'Explorer',\n identifier: 'MSIE ([a-zA-Z0-9\\.]*)'\n}, {\n name: 'Internet Explorer',\n group: 'Explorer',\n identifier: 'Trident/([0-9\\.]*)',\n versionIdentifier: 'rv:([0-9\\.]*)'\n}, {\n name: 'Spartan',\n group: 'Spartan',\n identifier: 'Edge/([0-9\\.]*)',\n versionIdentifier: 'Edge/([0-9\\.]*)'\n}, {\n name: 'Safari',\n group: 'Safari',\n identifier: 'Safari/([0-9\\.]*)',\n versionIdentifier: 'Version/([0-9\\.]*)'\n}]\n\nexport default BROWSER_DATA\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/browser/browser_data.js","/* eslint-disable no-useless-escape */\n// The order of the following arrays is important, be careful if you change it.\n\nconst OS_DATA = [{\n name: 'Windows 2000',\n group: 'Windows',\n identifier: 'Windows NT 5.0',\n version: '5.0'\n}, {\n name: 'Windows XP',\n group: 'Windows',\n identifier: 'Windows NT 5.1',\n version: '5.1'\n}, {\n name: 'Windows Vista',\n group: 'Windows',\n identifier: 'Windows NT 6.0',\n version: '6.0'\n}, {\n name: 'Windows 7',\n group: 'Windows',\n identifier: 'Windows NT 6.1',\n version: '7.0'\n}, {\n name: 'Windows 8',\n group: 'Windows',\n identifier: 'Windows NT 6.2',\n version: '8.0'\n}, {\n name: 'Windows 8.1',\n group: 'Windows',\n identifier: 'Windows NT 6.3',\n version: '8.1'\n}, {\n name: 'Windows 10',\n group: 'Windows',\n identifier: 'Windows NT 10.0',\n version: '10.0'\n}, {\n name: 'Windows Phone',\n group: 'Windows Phone',\n identifier: 'Windows Phone ([0-9\\.]*)'\n}, {\n name: 'Windows Phone',\n group: 'Windows Phone',\n identifier: 'Windows Phone OS ([0-9\\.]*)'\n}, {\n name: 'Windows',\n group: 'Windows',\n identifier: 'Windows'\n}, {\n name: 'Chrome OS',\n group: 'Chrome OS',\n identifier: 'CrOS'\n}, {\n name: 'Android',\n group: 'Android',\n identifier: 'Android',\n versionIdentifier: 'Android ([a-zA-Z0-9\\.-]*)'\n}, {\n name: 'iPad',\n group: 'iOS',\n identifier: 'iPad',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'iPod',\n group: 'iOS',\n identifier: 'iPod',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'iPhone',\n group: 'iOS',\n identifier: 'iPhone OS',\n versionIdentifier: 'OS ([0-9_]*)',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X High Sierra',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])13([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Sierra',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])12([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X El Capitan',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])11([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Yosemite',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])10([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Mavericks',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])9([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Mountain Lion',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])8([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Lion',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])7([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Snow Leopard',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])6([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Leopard',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])5([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Tiger',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])4([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Panther',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])3([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Jaguar',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])2([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Puma',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])1([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS X Cheetah',\n group: 'Mac OS',\n identifier: 'Mac OS X (10([_|\\.])0([0-9_\\.]*))',\n versionSeparator: '[_|\\.]'\n}, {\n name: 'Mac OS',\n group: 'Mac OS',\n identifier: 'Mac OS'\n}, {\n name: 'Ubuntu',\n group: 'Linux',\n identifier: 'Ubuntu',\n versionIdentifier: 'Ubuntu/([0-9\\.]*)'\n}, {\n name: 'Debian',\n group: 'Linux',\n identifier: 'Debian'\n}, {\n name: 'Gentoo',\n group: 'Linux',\n identifier: 'Gentoo'\n}, {\n name: 'Linux',\n group: 'Linux',\n identifier: 'Linux'\n}, {\n name: 'BlackBerry',\n group: 'BlackBerry',\n identifier: 'BlackBerry'\n}]\n\nexport default OS_DATA\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/browser/os_data.js","// https://github.com/mathiasbynens/small\nexport const mp4 = 'data:video/mp4;base64,AAAAHGZ0eXBpc29tAAACAGlzb21pc28ybXA0MQAAAAhmcmVlAAAC721kYXQhEAUgpBv/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3pwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcCEQBSCkG//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADengAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcAAAAsJtb292AAAAbG12aGQAAAAAAAAAAAAAAAAAAAPoAAAALwABAAABAAAAAAAAAAAAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAB7HRyYWsAAABcdGtoZAAAAAMAAAAAAAAAAAAAAAIAAAAAAAAALwAAAAAAAAAAAAAAAQEAAAAAAQAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAACRlZHRzAAAAHGVsc3QAAAAAAAAAAQAAAC8AAAAAAAEAAAAAAWRtZGlhAAAAIG1kaGQAAAAAAAAAAAAAAAAAAKxEAAAIAFXEAAAAAAAtaGRscgAAAAAAAAAAc291bgAAAAAAAAAAAAAAAFNvdW5kSGFuZGxlcgAAAAEPbWluZgAAABBzbWhkAAAAAAAAAAAAAAAkZGluZgAAABxkcmVmAAAAAAAAAAEAAAAMdXJsIAAAAAEAAADTc3RibAAAAGdzdHNkAAAAAAAAAAEAAABXbXA0YQAAAAAAAAABAAAAAAAAAAAAAgAQAAAAAKxEAAAAAAAzZXNkcwAAAAADgICAIgACAASAgIAUQBUAAAAAAfQAAAHz+QWAgIACEhAGgICAAQIAAAAYc3R0cwAAAAAAAAABAAAAAgAABAAAAAAcc3RzYwAAAAAAAAABAAAAAQAAAAIAAAABAAAAHHN0c3oAAAAAAAAAAAAAAAIAAAFzAAABdAAAABRzdGNvAAAAAAAAAAEAAAAsAAAAYnVkdGEAAABabWV0YQAAAAAAAAAhaGRscgAAAAAAAAAAbWRpcmFwcGwAAAAAAAAAAAAAAAAtaWxzdAAAACWpdG9vAAAAHWRhdGEAAAABAAAAAExhdmY1Ni40MC4xMDE='\n\nexport default {\n mp4: mp4,\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/media.js","\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { Kibo } from '../../vendor'\n\nconst BOLD = 'font-weight: bold; font-size: 13px;'\nconst INFO = 'color: #006600;' + BOLD\nconst DEBUG = 'color: #0000ff;' + BOLD\nconst WARN = 'color: #ff8000;' + BOLD\nconst ERROR = 'color: #ff0000;' + BOLD\n\nconst LEVEL_DEBUG = 0\nconst LEVEL_INFO = 1\nconst LEVEL_WARN = 2\nconst LEVEL_ERROR = 3\nconst LEVEL_DISABLED = LEVEL_ERROR\n\nconst COLORS = [DEBUG, INFO, WARN, ERROR, ERROR]\nconst DESCRIPTIONS = ['debug', 'info', 'warn', 'error', 'disabled']\n\nexport default class Log {\n constructor(level = LEVEL_INFO, offLevel = LEVEL_DISABLED) {\n this.kibo = new Kibo()\n this.kibo.down(['ctrl shift d'], () => this.onOff())\n this.BLACKLIST = ['timeupdate', 'playback:timeupdate', 'playback:progress', 'container:hover', 'container:timeupdate', 'container:progress']\n this.level = level\n this.offLevel = offLevel\n }\n\n debug(klass) { this.log(klass, LEVEL_DEBUG, Array.prototype.slice.call(arguments, 1)) }\n info(klass) { this.log(klass, LEVEL_INFO, Array.prototype.slice.call(arguments, 1)) }\n warn(klass) { this.log(klass, LEVEL_WARN, Array.prototype.slice.call(arguments, 1)) }\n error(klass) { this.log(klass, LEVEL_ERROR, Array.prototype.slice.call(arguments, 1)) }\n\n onOff() {\n if (this.level === this.offLevel) { this.level = this.previousLevel } else {\n this.previousLevel = this.level\n this.level = this.offLevel\n }\n // handle instances where console.log is unavailable\n if (window.console && window.console.log)\n window.console.log('%c[Clappr.Log] set log level to ' + DESCRIPTIONS[this.level], WARN)\n\n }\n\n level(newLevel) {\n this.level = newLevel\n }\n\n log(klass, level, message) {\n if (this.BLACKLIST.indexOf(message[0]) >= 0) return\n if (level < this.level) return\n\n if (!message) {\n message = klass\n klass = null\n }\n const color = COLORS[level]\n let klassDescription = ''\n if (klass)\n klassDescription = '[' + klass + ']'\n\n if (window.console && window.console.log)\n window.console.log.apply(console, ['%c[' + DESCRIPTIONS[level] + ']' + klassDescription, color].concat(message))\n\n }\n}\n\nLog.LEVEL_DEBUG = LEVEL_DEBUG\nLog.LEVEL_INFO = LEVEL_INFO\nLog.LEVEL_WARN = LEVEL_WARN\nLog.LEVEL_ERROR = LEVEL_ERROR\n\nLog.getInstance = function() {\n if (this._instance === undefined) {\n this._instance = new this()\n this._instance.previousLevel = this._instance.level\n this._instance.level = this._instance.offLevel\n }\n return this._instance\n}\n\nLog.setLevel = function(level) { this.getInstance().level = level }\n\nLog.debug = function() { this.getInstance().debug.apply(this.getInstance(), arguments) }\nLog.info = function() { this.getInstance().info.apply(this.getInstance(), arguments) }\nLog.warn = function() { this.getInstance().warn.apply(this.getInstance(), arguments) }\nLog.error = function() { this.getInstance().error.apply(this.getInstance(), arguments) }\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/log/log.js","/* eslint-disable */\n// Kibo is released under the MIT License. Copyright (c) 2013 marquete.\n// see https://github.com/marquete/kibo\n\nvar Kibo = function(element) {\n this.element = element || window.document;\n this.initialize();\n};\n\nKibo.KEY_NAMES_BY_CODE = {\n 8: 'backspace', 9: 'tab', 13: 'enter',\n 16: 'shift', 17: 'ctrl', 18: 'alt',\n 20: 'caps_lock',\n 27: 'esc',\n 32: 'space',\n 37: 'left', 38: 'up', 39: 'right', 40: 'down',\n 48: '0', 49: '1', 50: '2', 51: '3', 52: '4', 53: '5', 54: '6', 55: '7', 56: '8', 57: '9',\n 65: 'a', 66: 'b', 67: 'c', 68: 'd', 69: 'e', 70: 'f', 71: 'g', 72: 'h', 73: 'i', 74: 'j',\n 75: 'k', 76: 'l', 77: 'm', 78: 'n', 79: 'o', 80: 'p', 81: 'q', 82: 'r', 83: 's', 84: 't',\n 85: 'u', 86: 'v', 87: 'w', 88: 'x', 89: 'y', 90: 'z', 112: 'f1', 113: 'f2', 114: 'f3',\n 115: 'f4', 116: 'f5', 117: 'f6', 118: 'f7', 119: 'f8', 120: 'f9', 121: 'f10', 122: 'f11', 123: 'f12'\n};\n\nKibo.KEY_CODES_BY_NAME = {};\n(function() {\n for(var key in Kibo.KEY_NAMES_BY_CODE) {\n if(Object.prototype.hasOwnProperty.call(Kibo.KEY_NAMES_BY_CODE, key)) {\n Kibo.KEY_CODES_BY_NAME[Kibo.KEY_NAMES_BY_CODE[key]] = +key;\n }\n }\n})();\n\nKibo.MODIFIERS = ['shift', 'ctrl', 'alt'];\n\nKibo.registerEvent = (function() {\n if(document.addEventListener) {\n return function(element, eventName, func) {\n element.addEventListener(eventName, func, false);\n };\n }\n else if(document.attachEvent) {\n return function(element, eventName, func) {\n element.attachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.unregisterEvent = (function() {\n if(document.removeEventListener) {\n return function(element, eventName, func) {\n element.removeEventListener(eventName, func, false);\n };\n }\n else if(document.detachEvent) {\n return function(element, eventName, func) {\n element.detachEvent('on' + eventName, func);\n };\n }\n})();\n\nKibo.stringContains = function(string, substring) {\n return string.indexOf(substring) !== -1;\n};\n\nKibo.neatString = function(string) {\n return string.replace(/^\\s+|\\s+$/g, '').replace(/\\s+/g, ' ');\n};\n\nKibo.capitalize = function(string) {\n return string.toLowerCase().replace(/^./, function(match) { return match.toUpperCase(); });\n};\n\nKibo.isString = function(what) {\n return Kibo.stringContains(Object.prototype.toString.call(what), 'String');\n};\n\nKibo.arrayIncludes = (function() {\n if(Array.prototype.indexOf) {\n return function(haystack, needle) {\n return haystack.indexOf(needle) !== -1;\n };\n }\n else {\n return function(haystack, needle) {\n for(var i = 0; i < haystack.length; i++) {\n if(haystack[i] === needle) {\n return true;\n }\n }\n return false;\n };\n }\n})();\n\nKibo.extractModifiers = function(keyCombination) {\n var modifiers, i\n modifiers = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(Kibo.stringContains(keyCombination, Kibo.MODIFIERS[i])) {\n modifiers.push(Kibo.MODIFIERS[i]);\n }\n }\n return modifiers;\n}\n\nKibo.extractKey = function(keyCombination) {\n var keys, i;\n keys = Kibo.neatString(keyCombination).split(' ');\n for(i = 0; i < keys.length; i++) {\n if(!Kibo.arrayIncludes(Kibo.MODIFIERS, keys[i])) {\n return keys[i];\n }\n }\n};\n\nKibo.modifiersAndKey = function(keyCombination) {\n var result, key;\n\n if(Kibo.stringContains(keyCombination, 'any')) {\n return Kibo.neatString(keyCombination).split(' ').slice(0, 2).join(' ');\n }\n\n result = Kibo.extractModifiers(keyCombination);\n\n key = Kibo.extractKey(keyCombination);\n if(key && !Kibo.arrayIncludes(Kibo.MODIFIERS, key)) {\n result.push(key);\n }\n\n return result.join(' ');\n}\n\nKibo.keyName = function(keyCode) {\n return Kibo.KEY_NAMES_BY_CODE[keyCode + ''];\n};\n\nKibo.keyCode = function(keyName) {\n return +Kibo.KEY_CODES_BY_NAME[keyName];\n};\n\nKibo.prototype.initialize = function() {\n var i, that = this;\n\n this.lastKeyCode = -1;\n this.lastModifiers = {};\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n this.lastModifiers[Kibo.MODIFIERS[i]] = false;\n }\n\n this.keysDown = { any: [] };\n this.keysUp = { any: [] };\n this.downHandler = this.handler('down');\n this.upHandler = this.handler('up');\n\n Kibo.registerEvent(this.element, 'keydown', this.downHandler);\n Kibo.registerEvent(this.element, 'keyup', this.upHandler);\n Kibo.registerEvent(window, 'unload', function unloader() {\n Kibo.unregisterEvent(that.element, 'keydown', that.downHandler);\n Kibo.unregisterEvent(that.element, 'keyup', that.upHandler);\n Kibo.unregisterEvent(window, 'unload', unloader);\n });\n};\n\nKibo.prototype.handler = function(upOrDown) {\n var that = this;\n return function(e) {\n var i, registeredKeys, lastModifiersAndKey;\n\n e = e || window.event;\n\n that.lastKeyCode = e.keyCode;\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n that.lastModifiers[Kibo.MODIFIERS[i]] = e[Kibo.MODIFIERS[i] + 'Key'];\n }\n if(Kibo.arrayIncludes(Kibo.MODIFIERS, Kibo.keyName(that.lastKeyCode))) {\n that.lastModifiers[Kibo.keyName(that.lastKeyCode)] = true;\n }\n\n registeredKeys = that['keys' + Kibo.capitalize(upOrDown)];\n\n for(i = 0; i < registeredKeys.any.length; i++) {\n if((registeredKeys.any[i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n\n lastModifiersAndKey = that.lastModifiersAndKey();\n if(registeredKeys[lastModifiersAndKey]) {\n for(i = 0; i < registeredKeys[lastModifiersAndKey].length; i++) {\n if((registeredKeys[lastModifiersAndKey][i](e) === false) && e.preventDefault) {\n e.preventDefault();\n }\n }\n }\n };\n};\n\nKibo.prototype.registerKeys = function(upOrDown, newKeys, func) {\n var i, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(registeredKeys[keys]) {\n registeredKeys[keys].push(func);\n } else {\n registeredKeys[keys] = [func];\n }\n }\n\n return this;\n};\n\n// jshint maxdepth:5\nKibo.prototype.unregisterKeys = function(upOrDown, newKeys, func) {\n var i, j, keys, registeredKeys = this['keys' + Kibo.capitalize(upOrDown)];\n\n if(Kibo.isString(newKeys)) {\n newKeys = [newKeys];\n }\n\n for(i = 0; i < newKeys.length; i++) {\n keys = newKeys[i];\n keys = Kibo.modifiersAndKey(keys + '');\n\n if(func === null) {\n delete registeredKeys[keys];\n } else {\n if(registeredKeys[keys]) {\n for(j = 0; j < registeredKeys[keys].length; j++) {\n if(String(registeredKeys[keys][j]) === String(func)) {\n registeredKeys[keys].splice(j, 1);\n break;\n }\n }\n }\n }\n }\n\n return this;\n};\n\nKibo.prototype.off = function(keys) {\n return this.unregisterKeys('down', keys, null);\n}\n\nKibo.prototype.delegate = function(upOrDown, keys, func) {\n return (func !== null || func !== undefined) ? this.registerKeys(upOrDown, keys, func) : this.unregisterKeys(upOrDown, keys, func);\n};\n\nKibo.prototype.down = function(keys, func) {\n return this.delegate('down', keys, func);\n};\n\nKibo.prototype.up = function(keys, func) {\n return this.delegate('up', keys, func);\n};\n\nKibo.prototype.lastKey = function(modifier) {\n if(!modifier) {\n return Kibo.keyName(this.lastKeyCode);\n }\n\n return this.lastModifiers[modifier];\n};\n\nKibo.prototype.lastModifiersAndKey = function() {\n var result, i;\n\n result = [];\n for(i = 0; i < Kibo.MODIFIERS.length; i++) {\n if(this.lastKey(Kibo.MODIFIERS[i])) {\n result.push(Kibo.MODIFIERS[i]);\n }\n }\n\n if(!Kibo.arrayIncludes(result, this.lastKey())) {\n result.push(this.lastKey());\n }\n\n return result.join(' ');\n};\n\nexport default Kibo\n\n\n\n// WEBPACK FOOTER //\n// ./src/vendor/kibo.js","import CoreFactory from './core_factory'\nexport default CoreFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport Core from '../core'\n\n/**\n * The Core Factory is responsible for instantiate the core and it's plugins.\n * @class CoreFactory\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class CoreFactory extends BaseObject {\n\n get loader() { return this.player.loader }\n\n /**\n * it builds the core factory\n * @method constructor\n * @param {Player} player the player object\n */\n constructor(player) {\n super()\n this.player = player\n this._options = player.options\n }\n\n /**\n * creates a core and its plugins\n * @method create\n * @return {Core} created core\n */\n create() {\n this.options.loader = this.loader\n this.core = new Core(this.options)\n this.addCorePlugins()\n this.core.createContainers(this.options)\n return this.core\n }\n\n /**\n * given the core plugins (`loader.corePlugins`) it builds each one\n * @method addCorePlugins\n * @return {Core} the core with all plugins\n */\n addCorePlugins() {\n this.loader.corePlugins.forEach((Plugin) => {\n const plugin = new Plugin(this.core)\n this.core.addPlugin(plugin)\n this.setupExternalInterface(plugin)\n })\n return this.core\n }\n\n setupExternalInterface(plugin) {\n const externalFunctions = plugin.getExternalInterface()\n for (const key in externalFunctions) {\n this.player[key] = externalFunctions[key].bind(plugin)\n this.core[key] = externalFunctions[key].bind(plugin)\n }\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core_factory/core_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, Fullscreen, DomRecycler } from '../../base/utils'\n\nimport Styler from '../../base/styler'\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\nimport PlayerError from '../../components/error'\nimport ErrorMixin from '../../base/error_mixin'\n\nimport $ from 'clappr-zepto'\n\nimport './public/style.scss'\nimport fontStyle from './public/fonts.css'\n\nlet style\n\n/**\n * The Core is responsible to manage Containers, the mediator, MediaControl\n * and the player state.\n * @class Core\n * @constructor\n * @extends UIObject\n * @module components\n */\nexport default class Core extends UIObject {\n get events() {\n return {\n 'webkitfullscreenchange': 'handleFullscreenChange',\n 'mousemove': 'onMouseMove',\n 'mouseleave': 'onMouseLeave'\n }\n }\n\n get attributes() {\n return {\n 'data-player': '',\n tabindex: 9999\n }\n }\n\n /**\n * checks if the core is ready.\n * @property isReady\n * @type {Boolean} `true` if the core is ready, otherwise `false`\n */\n get isReady() {\n return !!this.ready\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this.getPlugin('strings') || { t: (key) => key }\n }\n\n /**\n * @deprecated\n * This property currently exists for retrocompatibility reasons.\n * If you want to access the media control instance, use the method getPlugin('media_control').\n */\n get mediaControl() {\n return this.getPlugin('media_control') || this.dummyMediaControl\n }\n\n get dummyMediaControl() {\n if (this._dummyMediaControl) return this._dummyMediaControl\n this._dummyMediaControl = new UICorePlugin(this)\n return this._dummyMediaControl\n }\n\n /**\n * gets the active container reference.\n * @property activeContainer\n * @type {Object}\n */\n get activeContainer() {\n return this._activeContainer\n }\n\n /**\n * sets the active container reference and trigger a event with the new reference.\n * @property activeContainer\n * @type {Object}\n */\n set activeContainer(container) {\n this._activeContainer = container\n this.trigger(Events.CORE_ACTIVE_CONTAINER_CHANGED, this._activeContainer)\n }\n\n /**\n * gets the active playback reference.\n * @property activePlayback\n * @type {Object}\n */\n get activePlayback() {\n return this.activeContainer && this.activeContainer.playback\n }\n\n constructor(options) {\n super(options)\n this.playerError = new PlayerError(options, this)\n this.configureDomRecycler()\n this.playerInfo = PlayerInfo.getInstance(options.playerId)\n this.firstResize = true\n this.plugins = []\n this.containers = []\n //FIXME fullscreen api sucks\n this._boundFullscreenHandler = () => this.handleFullscreenChange()\n $(document).bind('fullscreenchange', this._boundFullscreenHandler)\n $(document).bind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).bind('mozfullscreenchange', this._boundFullscreenHandler)\n Browser.isMobile && $(window).bind('resize', (o) => { this.handleWindowResize(o) })\n }\n\n configureDomRecycler() {\n let recycleVideo = this.options && this.options.playback && this.options.playback.recycleVideo\n DomRecycler.configure({ recycleVideo })\n }\n\n createContainers(options) {\n this.defer = $.Deferred()\n this.defer.promise(this)\n this.containerFactory = new ContainerFactory(options, options.loader, this.i18n, this.playerError)\n this.prepareContainers()\n }\n\n prepareContainers() {\n this.containerFactory.createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n Fullscreen.isFullscreen() ? this.setFullscreen() : this.setPlayerSize()\n }\n\n setFullscreen() {\n if (!Browser.isiOS) {\n this.$el.addClass('fullscreen')\n this.$el.removeAttr('style')\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.playerInfo.currentSize = { width: $(window).width(), height: $(window).height() }\n }\n }\n\n setPlayerSize() {\n this.$el.removeClass('fullscreen')\n this.playerInfo.currentSize = this.playerInfo.previousSize\n this.playerInfo.previousSize = { width: $(window).width(), height: $(window).height() }\n this.resize(this.playerInfo.currentSize)\n }\n\n resize(options) {\n if (!isNumber(options.height) && !isNumber(options.width)) {\n this.el.style.height = `${options.height}`\n this.el.style.width = `${options.width}`\n } else {\n this.el.style.height = `${options.height}px`\n this.el.style.width = `${options.width}px`\n }\n this.playerInfo.previousSize = { width: this.options.width, height: this.options.height }\n this.options.width = options.width\n this.options.height = options.height\n this.playerInfo.currentSize = options\n this.triggerResize(this.playerInfo.currentSize)\n }\n\n enableResizeObserver() {\n const checkSizeCallback = () => {\n this.triggerResize({ width: this.el.clientWidth, height: this.el.clientHeight })\n }\n this.resizeObserverInterval = setInterval(checkSizeCallback, 500)\n }\n\n triggerResize(newSize) {\n const thereWasChange = this.firstResize || this.oldHeight !== newSize.height || this.oldWidth !== newSize.width\n if (thereWasChange) {\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.playerInfo.computedSize = newSize\n this.firstResize = false\n Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.trigger(Events.CORE_RESIZE, newSize)\n }\n }\n\n disableResizeObserver() {\n this.resizeObserverInterval && clearInterval(this.resizeObserverInterval)\n }\n\n resolveOnContainersReady(containers) {\n $.when.apply($, containers).done(() => {\n this.defer.resolve(this)\n this.ready = true\n this.trigger(Events.CORE_READY)\n })\n }\n\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n load(sources, mimeType) {\n this.options.mimeType = mimeType\n sources = sources && sources.constructor === Array ? sources : [sources]\n this.options.sources = sources\n this.containers.forEach((container) => container.destroy())\n this.containerFactory.options = $.extend(this.options, { sources })\n this.prepareContainers()\n }\n\n destroy() {\n this.disableResizeObserver()\n this.containers.forEach((container) => container.destroy())\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n $(document).unbind('fullscreenchange', this._boundFullscreenHandler)\n $(document).unbind('MSFullscreenChange', this._boundFullscreenHandler)\n $(document).unbind('mozfullscreenchange', this._boundFullscreenHandler)\n this.stopListening()\n }\n\n handleFullscreenChange() {\n this.trigger(Events.CORE_FULLSCREEN, Fullscreen.isFullscreen())\n this.updateSize()\n }\n\n handleWindowResize(event) {\n const orientation = (window.innerWidth > window.innerHeight) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n this.triggerResize({ width: this.el.clientWidth, height: this.el.clientHeight })\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n removeContainer(container) {\n this.stopListening(container)\n this.containers = this.containers.filter((c) => c !== container)\n }\n\n setupContainer(container) {\n this.listenTo(container, Events.CONTAINER_DESTROYED, this.removeContainer)\n this.containers.push(container)\n }\n\n setupContainers(containers) {\n containers.forEach(this.setupContainer.bind(this))\n this.trigger(Events.CORE_CONTAINERS_CREATED)\n this.renderContainers()\n this.activeContainer = containers[0]\n this.render()\n this.appendToParent()\n return this.containers\n }\n\n renderContainers() {\n this.containers.forEach((container) => this.el.appendChild(container.render().el))\n }\n\n createContainer(source, options) {\n const container = this.containerFactory.createContainer(source, options)\n this.setupContainer(container)\n this.el.appendChild(container.render().el)\n return container\n }\n\n /**\n * @deprecated\n * This method currently exists for retrocompatibility reasons.\n * If you want the current container reference, use the activeContainer getter.\n */\n getCurrentContainer() {\n return this.activeContainer\n }\n\n /**\n * @deprecated\n * This method currently exists for retrocompatibility reasons.\n * If you want the current playback reference, use the activePlayback getter.\n */\n getCurrentPlayback() {\n return this.activePlayback\n }\n\n getPlaybackType() {\n return this.activeContainer && this.activeContainer.getPlaybackType()\n }\n\n toggleFullscreen() {\n if (!Fullscreen.isFullscreen()) {\n Fullscreen.requestFullscreen(Browser.isiOS ? this.activeContainer.el : this.el)\n !Browser.isiOS && this.$el.addClass('fullscreen')\n } else {\n Fullscreen.cancelFullscreen()\n !Browser.isiOS && this.$el.removeClass('fullscreen nocursor')\n }\n }\n\n onMouseMove(event) {\n this.trigger(Events.CORE_MOUSE_MOVE, event)\n }\n\n onMouseLeave(event) {\n this.trigger(Events.CORE_MOUSE_LEAVE, event)\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.configureDomRecycler()\n\n const sources = options.source || options.sources\n sources && this.load(sources, options.mimeType || this.options.mimeType)\n\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n this.containers.forEach((container) => container.configure(this.options))\n }\n\n appendToParent() {\n let hasCoreParent = this.$el.parent() && this.$el.parent().length\n !hasCoreParent && this.$el.appendTo(this.options.parentElement)\n }\n\n render() {\n if (!style)\n style = Styler.getStyleFor(fontStyle, { baseUrl: this.options.baseUrl })\n\n $('head').append(style)\n\n this.options.width = this.options.width || this.$el.width()\n this.options.height = this.options.height || this.$el.height()\n const size = { width: this.options.width, height: this.options.height }\n this.playerInfo.previousSize = this.playerInfo.currentSize = this.playerInfo.computedSize = size\n this.updateSize()\n\n this.previousSize = { width: this.$el.width(), height: this.$el.height() }\n\n this.enableResizeObserver()\n\n return this\n }\n}\n\nObject.assign(Core.prototype, ErrorMixin)\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/core/core.js","import ContainerFactory from './container_factory'\nexport default ContainerFactory\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The ContainerFactory is responsible for manage playback bootstrap and create containers.\n */\n\nimport BaseObject from '../../base/base_object'\nimport Events from '../../base/events'\nimport Container from '../../components/container'\nimport $ from 'clappr-zepto'\n\nexport default class ContainerFactory extends BaseObject {\n get options() { return this._options }\n set options(options) { this._options = options }\n\n constructor(options, loader, i18n, playerError) {\n super(options)\n this._i18n = i18n\n this.loader = loader\n this.playerError = playerError\n }\n\n createContainers() {\n return $.Deferred((promise) => {\n promise.resolve(this.options.sources.map((source) => {\n return this.createContainer(source)\n }))\n })\n }\n\n findPlaybackPlugin(source, mimeType) {\n return this.loader.playbackPlugins.filter(p => p.canPlay(source, mimeType))[0]\n }\n\n createContainer(source) {\n let resolvedSource = null,\n mimeType = this.options.mimeType\n if (typeof source === 'object') {\n resolvedSource = source.source.toString()\n if (source.mimeType)\n mimeType = source.mimeType\n\n } else { resolvedSource = source.toString() }\n\n\n if (resolvedSource.match(/^\\/\\//)) resolvedSource = window.location.protocol + resolvedSource\n\n let options = $.extend({}, this.options, {\n src: resolvedSource,\n mimeType: mimeType\n })\n const playbackPlugin = this.findPlaybackPlugin(resolvedSource, mimeType)\n const playback = new playbackPlugin(options, this._i18n, this.playerError)\n\n options = $.extend({}, options, { playback: playback })\n\n const container = new Container(options, this._i18n, this.playerError)\n const defer = $.Deferred()\n defer.promise(container)\n this.addContainerPlugins(container)\n this.listenToOnce(container, Events.CONTAINER_READY, () => defer.resolve(container))\n return container\n }\n\n addContainerPlugins(container) {\n this.loader.containerPlugins.forEach((Plugin) => {\n container.addPlugin(new Plugin(container))\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container_factory/container_factory.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * Container is responsible for the video rendering and state\n */\n\nimport Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport ErrorMixin from '../../base/error_mixin'\n\nimport './public/style.scss'\n\nimport $ from 'clappr-zepto'\n\n/**\n * An abstraction to represent a container for a given playback\n * TODO: describe its responsabilities\n * @class Container\n * @constructor\n * @extends UIObject\n * @module base\n */\nexport default class Container extends UIObject {\n /**\n * container's name\n * @method name\n * @default Container\n * @return {String} container's name\n */\n get name() { return 'Container' }\n get attributes() { return { class: 'container', 'data-container': '' } }\n get events() {\n return {\n 'click': 'clicked',\n 'dblclick': 'dblClicked',\n 'doubleTap': 'dblClicked',\n 'contextmenu': 'onContextMenu',\n 'mouseenter': 'mouseEnter',\n 'mouseleave': 'mouseLeave'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.playback.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * (i.e if a live stream is playing smoothly, this will be false)\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this.playback.buffering\n }\n\n /**\n * The internationalization plugin.\n * @property i18n\n * @type {Strings}\n */\n get i18n() {\n return this._i18n\n }\n\n /**\n * checks if has closed caption tracks.\n * @property hasClosedCaptionsTracks\n * @type {Boolean}\n */\n get hasClosedCaptionsTracks() {\n return this.playback.hasClosedCaptionsTracks\n }\n\n /**\n * gets the available closed caption tracks.\n * @property closedCaptionsTracks\n * @type {Array} an array of objects with at least 'id' and 'name' properties\n */\n get closedCaptionsTracks() {\n return this.playback.closedCaptionsTracks\n }\n\n /**\n * gets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n get closedCaptionsTrackId() {\n return this.playback.closedCaptionsTrackId\n }\n\n /**\n * sets the selected closed caption track index. (-1 is disabled)\n * @property closedCaptionsTrackId\n * @type {Number}\n */\n set closedCaptionsTrackId(trackId) {\n this.playback.closedCaptionsTrackId = trackId\n }\n\n /**\n * it builds a container\n * @method constructor\n * @param {Object} options the options object\n * @param {Strings} i18n the internationalization component\n */\n constructor(options, i18n, playerError) {\n super(options)\n this._i18n = i18n\n this.currentTime = 0\n this.volume = 100\n this.playback = options.playback\n this.playerError = playerError\n this.settings = $.extend({}, this.playback.settings)\n this.isReady = false\n this.mediaControlDisabled = false\n this.plugins = [this.playback]\n this.bindEvents()\n }\n\n /**\n * binds playback events to the methods of the container.\n * it listens to playback's events and triggers them as container events.\n *\n * | Playback |\n * |----------|\n * | progress |\n * | timeupdate |\n * | ready |\n * | buffering |\n * | bufferfull |\n * | settingsupdate |\n * | loadedmetadata |\n * | highdefinitionupdate |\n * | bitrate |\n * | playbackstate |\n * | dvr |\n * | mediacontrol_disable |\n * | mediacontrol_enable |\n * | ended |\n * | play |\n * | pause |\n * | error |\n *\n * ps: the events usually translate from PLABACK_x to CONTAINER_x, you can check all the events at `Event` class.\n *\n * @method bindEvents\n */\n bindEvents() {\n this.listenTo(this.playback, Events.PLAYBACK_PROGRESS, this.progress)\n this.listenTo(this.playback, Events.PLAYBACK_TIMEUPDATE, this.timeUpdated)\n this.listenTo(this.playback, Events.PLAYBACK_READY, this.ready)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERING, this.onBuffering)\n this.listenTo(this.playback, Events.PLAYBACK_BUFFERFULL, this.bufferfull)\n this.listenTo(this.playback, Events.PLAYBACK_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_LOADEDMETADATA, this.loadedMetadata)\n this.listenTo(this.playback, Events.PLAYBACK_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.playback, Events.PLAYBACK_BITRATE, this.updateBitrate)\n this.listenTo(this.playback, Events.PLAYBACK_PLAYBACKSTATE, this.playbackStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_DVR, this.playbackDvrStateChanged)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_DISABLE, this.disableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_MEDIACONTROL_ENABLE, this.enableMediaControl)\n this.listenTo(this.playback, Events.PLAYBACK_SEEKED, this.onSeeked)\n this.listenTo(this.playback, Events.PLAYBACK_ENDED, this.onEnded)\n this.listenTo(this.playback, Events.PLAYBACK_PLAY, this.playing)\n this.listenTo(this.playback, Events.PLAYBACK_PAUSE, this.paused)\n this.listenTo(this.playback, Events.PLAYBACK_STOP, this.stopped)\n this.listenTo(this.playback, Events.PLAYBACK_ERROR, this.error)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_AVAILABLE, this.subtitleAvailable)\n this.listenTo(this.playback, Events.PLAYBACK_SUBTITLE_CHANGED, this.subtitleChanged)\n }\n\n subtitleAvailable() {\n this.trigger(Events.CONTAINER_SUBTITLE_AVAILABLE)\n }\n\n subtitleChanged(track) {\n this.trigger(Events.CONTAINER_SUBTITLE_CHANGED, track)\n }\n\n playbackStateChanged(state) {\n this.trigger(Events.CONTAINER_PLAYBACKSTATE, state)\n }\n\n playbackDvrStateChanged(dvrInUse) {\n this.settings = this.playback.settings\n this.dvrInUse = dvrInUse\n this.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, dvrInUse)\n }\n\n updateBitrate(newBitrate) {\n this.trigger(Events.CONTAINER_BITRATE, newBitrate)\n }\n\n statsReport(metrics) {\n this.trigger(Events.CONTAINER_STATS_REPORT, metrics)\n }\n\n getPlaybackType() {\n return this.playback.getPlaybackType()\n }\n\n /**\n * returns `true` if DVR is enable otherwise `false`.\n * @method isDvrEnabled\n * @return {Boolean}\n */\n isDvrEnabled() {\n return !!this.playback.dvrEnabled\n }\n\n /**\n * returns `true` if DVR is in use otherwise `false`.\n * @method isDvrInUse\n * @return {Boolean}\n */\n isDvrInUse() {\n return !!this.dvrInUse\n }\n\n /**\n * destroys the container\n * @method destroy\n */\n destroy() {\n this.trigger(Events.CONTAINER_DESTROYED, this, this.name)\n this.stopListening()\n this.plugins.forEach((plugin) => plugin.destroy())\n this.$el.remove()\n }\n\n setStyle(style) {\n this.$el.css(style)\n }\n\n animate(style, duration) {\n return this.$el.animate(style, duration).promise()\n }\n\n ready() {\n this.isReady = true\n this.trigger(Events.CONTAINER_READY, this.name)\n }\n\n isPlaying() {\n return this.playback.isPlaying()\n }\n\n getStartTimeOffset() {\n return this.playback.getStartTimeOffset()\n }\n\n getCurrentTime() {\n return this.currentTime\n }\n\n getDuration() {\n return this.playback.getDuration()\n }\n\n error(error) {\n if (!this.isReady)\n this.ready()\n\n this.trigger(Events.CONTAINER_ERROR, error, this.name)\n }\n\n loadedMetadata(metadata) {\n this.trigger(Events.CONTAINER_LOADEDMETADATA, metadata)\n }\n\n timeUpdated(timeProgress) {\n this.currentTime = timeProgress.current\n this.trigger(Events.CONTAINER_TIMEUPDATE, timeProgress, this.name)\n }\n\n progress(...args) {\n this.trigger(Events.CONTAINER_PROGRESS, ...args, this.name)\n }\n\n playing() {\n this.trigger(Events.CONTAINER_PLAY, this.name)\n }\n\n paused() {\n this.trigger(Events.CONTAINER_PAUSE, this.name)\n }\n\n /**\n * plays the playback\n * @method play\n */\n play() {\n this.playback.play()\n }\n\n /**\n * stops the playback\n * @method stop\n */\n stop() {\n this.playback.stop()\n this.currentTime = 0\n }\n\n /**\n * pauses the playback\n * @method pause\n */\n pause() {\n this.playback.pause()\n }\n\n onEnded() {\n this.trigger(Events.CONTAINER_ENDED, this, this.name)\n this.currentTime = 0\n }\n\n stopped() {\n this.trigger(Events.CONTAINER_STOP)\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CLICK, this, this.name)\n\n }\n\n dblClicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_DBLCLICK, this, this.name)\n\n }\n\n onContextMenu(event) {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_CONTEXTMENU, event, this.name)\n\n }\n\n seek(time) {\n this.trigger(Events.CONTAINER_SEEK, time, this.name)\n this.playback.seek(time)\n }\n\n onSeeked() {\n this.trigger(Events.CONTAINER_SEEKED, this.name)\n }\n\n seekPercentage(percentage) {\n const duration = this.getDuration()\n if (percentage >= 0 && percentage <= 100) {\n const time = duration * (percentage / 100)\n this.seek(time)\n }\n }\n\n setVolume(value) {\n this.volume = parseInt(value, 10)\n this.trigger(Events.CONTAINER_VOLUME, value, this.name)\n this.playback.volume(value)\n }\n\n fullscreen() {\n this.trigger(Events.CONTAINER_FULLSCREEN, this.name)\n }\n\n onBuffering() {\n this.trigger(Events.CONTAINER_STATE_BUFFERING, this.name)\n }\n\n bufferfull() {\n this.trigger(Events.CONTAINER_STATE_BUFFERFULL, this.name)\n }\n\n /**\n * adds plugin to the container\n * @method addPlugin\n * @param {Object} plugin\n */\n addPlugin(plugin) {\n this.plugins.push(plugin)\n }\n\n /**\n * checks if a plugin, given its name, exist\n * @method hasPlugin\n * @param {String} name\n * @return {Boolean}\n */\n hasPlugin(name) {\n return !!this.getPlugin(name)\n }\n\n /**\n * get the plugin given its name\n * @method getPlugin\n * @param {String} name\n */\n getPlugin(name) {\n return this.plugins.filter(plugin => plugin.name === name)[0]\n }\n\n mouseEnter() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_ENTER)\n\n }\n\n mouseLeave() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.trigger(Events.CONTAINER_MOUSE_LEAVE)\n\n }\n\n settingsUpdate() {\n this.settings = this.playback.settings\n this.trigger(Events.CONTAINER_SETTINGSUPDATE)\n }\n\n highDefinitionUpdate(isHD) {\n this.trigger(Events.CONTAINER_HIGHDEFINITIONUPDATE, isHD)\n }\n\n isHighDefinitionInUse() {\n return this.playback.isHighDefinitionInUse()\n }\n\n disableMediaControl() {\n if (!this.mediaControlDisabled) {\n this.mediaControlDisabled = true\n this.trigger(Events.CONTAINER_MEDIACONTROL_DISABLE)\n }\n }\n\n enableMediaControl() {\n if (this.mediaControlDisabled) {\n this.mediaControlDisabled = false\n this.trigger(Events.CONTAINER_MEDIACONTROL_ENABLE)\n }\n }\n\n updateStyle() {\n if (!this.options.chromeless || this.options.allowUserInteraction)\n this.$el.removeClass('chromeless')\n else\n this.$el.addClass('chromeless')\n\n }\n\n /**\n * enables to configure the container after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure(options) {\n this._options = $.extend(this._options, options)\n this.updateStyle()\n this.playback.configure(this.options)\n this.trigger(Events.CONTAINER_OPTIONS_CHANGE)\n }\n\n render() {\n this.$el.append(this.playback.render().el)\n this.updateStyle()\n return this\n }\n}\n\nObject.assign(Container.prototype, ErrorMixin)\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/container/container.js","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/container/public/style.scss\n// module id = 152\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".container[data-container] {\\n position: absolute;\\n background-color: black;\\n height: 100%;\\n width: 100%; }\\n .container[data-container] .chromeless {\\n cursor: default; }\\n\\n[data-player]:not(.nocursor) .container[data-container]:not(.chromeless).pointer-enabled {\\n cursor: pointer; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/components/container/public/style.scss\n// module id = 153\n// module chunks = 0","\n/**\n * When source maps are enabled, `style-loader` uses a link element with a data-uri to\n * embed the css on the page. This breaks all relative urls because now they are relative to a\n * bundle instead of the current page.\n *\n * One solution is to only use full urls, but that may be impossible.\n *\n * Instead, this function \"fixes\" the relative urls to be absolute according to the current page location.\n *\n * A rudimentary test suite is located at `test/fixUrls.js` and can be run via the `npm test` command.\n *\n */\n\nmodule.exports = function (css) {\n // get current location\n var location = typeof window !== \"undefined\" && window.location;\n\n if (!location) {\n throw new Error(\"fixUrls requires window.location\");\n }\n\n\t// blank or null?\n\tif (!css || typeof css !== \"string\") {\n\t return css;\n }\n\n var baseUrl = location.protocol + \"//\" + location.host;\n var currentDir = baseUrl + location.pathname.replace(/\\/[^\\/]*$/, \"/\");\n\n\t// convert each url(...)\n\t/*\n\tThis regular expression is just a way to recursively match brackets within\n\ta string.\n\n\t /url\\s*\\( = Match on the word \"url\" with any whitespace after it and then a parens\n\t ( = Start a capturing group\n\t (?: = Start a non-capturing group\n\t [^)(] = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t (?: = Start another non-capturing groups\n\t [^)(]+ = Match anything that isn't a parentheses\n\t | = OR\n\t \\( = Match a start parentheses\n\t [^)(]* = Match anything that isn't a parentheses\n\t \\) = Match a end parentheses\n\t ) = End Group\n *\\) = Match anything and then a close parens\n ) = Close non-capturing group\n * = Match anything\n ) = Close capturing group\n\t \\) = Match a close parens\n\n\t /gi = Get all matches, not the first. Be case insensitive.\n\t */\n\tvar fixedCss = css.replace(/url\\s*\\(((?:[^)(]|\\((?:[^)(]+|\\([^)(]*\\))*\\))*)\\)/gi, function(fullMatch, origUrl) {\n\t\t// strip quotes (if they exist)\n\t\tvar unquotedOrigUrl = origUrl\n\t\t\t.trim()\n\t\t\t.replace(/^\"(.*)\"$/, function(o, $1){ return $1; })\n\t\t\t.replace(/^'(.*)'$/, function(o, $1){ return $1; });\n\n\t\t// already a full url? no change\n\t\tif (/^(#|data:|http:\\/\\/|https:\\/\\/|file:\\/\\/\\/|\\s*$)/i.test(unquotedOrigUrl)) {\n\t\t return fullMatch;\n\t\t}\n\n\t\t// convert the url to a full url\n\t\tvar newUrl;\n\n\t\tif (unquotedOrigUrl.indexOf(\"//\") === 0) {\n\t\t \t//TODO: should we add protocol?\n\t\t\tnewUrl = unquotedOrigUrl;\n\t\t} else if (unquotedOrigUrl.indexOf(\"/\") === 0) {\n\t\t\t// path should be relative to the base url\n\t\t\tnewUrl = baseUrl + unquotedOrigUrl; // already starts with '/'\n\t\t} else {\n\t\t\t// path should be relative to current directory\n\t\t\tnewUrl = currentDir + unquotedOrigUrl.replace(/^\\.\\//, \"\"); // Strip leading './'\n\t\t}\n\n\t\t// send back the fixed url(...)\n\t\treturn \"url(\" + JSON.stringify(newUrl) + \")\";\n\t});\n\n\t// send back the fixed css\n\treturn fixedCss;\n};\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/style-loader/lib/urls.js\n// module id = 154\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/core/public/style.scss\n// module id = 155\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-player] {\\n -webkit-touch-callout: none;\\n -webkit-user-select: none;\\n -moz-user-select: none;\\n -ms-user-select: none;\\n -o-user-select: none;\\n user-select: none;\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n -webkit-transform: translate3d(0, 0, 0);\\n transform: translate3d(0, 0, 0);\\n position: relative;\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font-style: normal;\\n font-weight: normal;\\n text-align: center;\\n overflow: hidden;\\n font-size: 100%;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-shadow: 0 0 0;\\n box-sizing: border-box; }\\n [data-player] div, [data-player] span, [data-player] applet, [data-player] object, [data-player] iframe,\\n [data-player] h1, [data-player] h2, [data-player] h3, [data-player] h4, [data-player] h5, [data-player] h6, [data-player] p, [data-player] blockquote, [data-player] pre,\\n [data-player] a, [data-player] abbr, [data-player] acronym, [data-player] address, [data-player] big, [data-player] cite, [data-player] code,\\n [data-player] del, [data-player] dfn, [data-player] em, [data-player] img, [data-player] ins, [data-player] kbd, [data-player] q, [data-player] s, [data-player] samp,\\n [data-player] small, [data-player] strike, [data-player] strong, [data-player] sub, [data-player] sup, [data-player] tt, [data-player] var,\\n [data-player] b, [data-player] u, [data-player] i, [data-player] center,\\n [data-player] dl, [data-player] dt, [data-player] dd, [data-player] ol, [data-player] ul, [data-player] li,\\n [data-player] fieldset, [data-player] form, [data-player] label, [data-player] legend,\\n [data-player] table, [data-player] caption, [data-player] tbody, [data-player] tfoot, [data-player] thead, [data-player] tr, [data-player] th, [data-player] td,\\n [data-player] article, [data-player] aside, [data-player] canvas, [data-player] details, [data-player] embed,\\n [data-player] figure, [data-player] figcaption, [data-player] footer, [data-player] header, [data-player] hgroup,\\n [data-player] menu, [data-player] nav, [data-player] output, [data-player] ruby, [data-player] section, [data-player] summary,\\n [data-player] time, [data-player] mark, [data-player] audio, [data-player] video {\\n margin: 0;\\n padding: 0;\\n border: 0;\\n font: inherit;\\n font-size: 100%;\\n vertical-align: baseline; }\\n [data-player] table {\\n border-collapse: collapse;\\n border-spacing: 0; }\\n [data-player] caption, [data-player] th, [data-player] td {\\n text-align: left;\\n font-weight: normal;\\n vertical-align: middle; }\\n [data-player] q, [data-player] blockquote {\\n quotes: none; }\\n [data-player] q:before, [data-player] q:after, [data-player] blockquote:before, [data-player] blockquote:after {\\n content: \\\"\\\";\\n content: none; }\\n [data-player] a img {\\n border: none; }\\n [data-player]:focus {\\n outline: 0; }\\n [data-player] * {\\n max-width: none;\\n box-sizing: inherit;\\n float: none; }\\n [data-player] div {\\n display: block; }\\n [data-player].fullscreen {\\n width: 100% !important;\\n height: 100% !important;\\n top: 0;\\n left: 0; }\\n [data-player].nocursor {\\n cursor: none; }\\n\\n.clappr-style {\\n display: none !important; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/components/core/public/style.scss\n// module id = 156\n// module chunks = 0","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"@font-face {\\n font-family: \\\"Roboto\\\";\\n font-style: normal;\\n font-weight: 400;\\n src: local(\\\"Roboto\\\"), local(\\\"Roboto-Regular\\\"), url(\" + escape(require(\"./Roboto.ttf\")) + \") format(\\\"truetype\\\");\\n}\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/core/public/fonts.css\n// module id = 157\n// module chunks = 0","module.exports = \"<%=baseUrl%>/38861cba61c66739c1452c3a71e39852.ttf\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/core/public/Roboto.ttf\n// module id = 158\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport BaseObject from '../../base/base_object'\nimport PlayerInfo from '../player_info'\n\n/* Playback Plugins */\nimport HTML5VideoPlayback from '../../playbacks/html5_video'\nimport FlashVideoPlayback from '../../playbacks/flash'\nimport HTML5AudioPlayback from '../../playbacks/html5_audio'\nimport FlasHLSVideoPlayback from '../../playbacks/flashls'\nimport HLSVideoPlayback from '../../playbacks/hls'\nimport HTMLImgPlayback from '../../playbacks/html_img'\nimport NoOp from '../../playbacks/no_op'\n\n/* Container Plugins */\nimport SpinnerThreeBouncePlugin from '../../plugins/spinner_three_bounce'\nimport StatsPlugin from '../../plugins/stats'\nimport WaterMarkPlugin from '../../plugins/watermark'\nimport PosterPlugin from '../../plugins/poster'\nimport GoogleAnalyticsPlugin from '../../plugins/google_analytics'\nimport ClickToPausePlugin from '../../plugins/click_to_pause'\n\n/* Core Plugins */\nimport MediaControl from '../../plugins/media_control'\nimport DVRControls from '../../plugins/dvr_controls'\nimport ClosedCaptions from '../../plugins/closed_captions'\nimport Favicon from '../../plugins/favicon'\nimport SeekTime from '../../plugins/seek_time'\nimport SourcesPlugin from '../../plugins/sources'\nimport EndVideo from '../../plugins/end_video'\nimport Strings from '../../plugins/strings'\nimport ErrorScreen from '../../plugins/error_screen'\n\n/**\n * It keeps a list of the default plugins (playback, container, core) and it merges external plugins with its internals.\n * @class Loader\n * @constructor\n * @extends BaseObject\n * @module components\n */\nexport default class Loader extends BaseObject {\n /**\n * builds the loader\n * @method constructor\n * @param {Object} externalPlugins the external plugins\n * @param {Number} playerId you can embed multiple instances of clappr, therefore this is the unique id of each one.\n */\n constructor(externalPlugins = [], playerId = 0, useOnlyPlainHtml5Plugins = PLAIN_HTML5_ONLY) {\n super()\n this.playerId = playerId\n this.playbackPlugins = []\n\n if (!useOnlyPlainHtml5Plugins) {\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HLSVideoPlayback,\n ]\n }\n\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HTML5VideoPlayback,\n HTML5AudioPlayback,\n ]\n\n if (!useOnlyPlainHtml5Plugins) {\n this.playbackPlugins = [\n ...this.playbackPlugins,\n FlashVideoPlayback,\n FlasHLSVideoPlayback\n ]\n }\n\n this.playbackPlugins = [\n ...this.playbackPlugins,\n HTMLImgPlayback,\n NoOp\n ]\n\n this.containerPlugins = [SpinnerThreeBouncePlugin, WaterMarkPlugin, PosterPlugin, StatsPlugin, GoogleAnalyticsPlugin, ClickToPausePlugin]\n this.corePlugins = [MediaControl, DVRControls, ClosedCaptions, Favicon, SeekTime, SourcesPlugin, EndVideo, ErrorScreen, Strings]\n\n if (!Array.isArray(externalPlugins))\n this.validateExternalPluginsType(externalPlugins)\n\n this.addExternalPlugins(externalPlugins)\n }\n\n /**\n * groups by type the external plugins that were passed through `options.plugins` it they're on a flat array\n * @method addExternalPlugins\n * @private\n * @param {Object} an config object or an array of plugins\n * @return {Object} plugins the config object with the plugins separated by type\n */\n groupPluginsByType(plugins) {\n if (Array.isArray(plugins)) {\n plugins = plugins.reduce(function(memo, plugin) {\n memo[plugin.type] || (memo[plugin.type] = [])\n memo[plugin.type].push(plugin)\n return memo\n }, {})\n }\n return plugins\n }\n\n removeDups(list) {\n const groupUp = (plugins, plugin) => {\n plugins[plugin.prototype.name] && delete plugins[plugin.prototype.name]\n plugins[plugin.prototype.name] = plugin\n return plugins\n }\n const pluginsMap = list.reduceRight(groupUp, Object.create(null))\n\n const plugins = []\n for (let key in pluginsMap)\n plugins.unshift(pluginsMap[key])\n\n return plugins\n }\n\n /**\n * adds all the external plugins that were passed through `options.plugins`\n * @method addExternalPlugins\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n addExternalPlugins(plugins) {\n plugins = this.groupPluginsByType(plugins)\n if (plugins.playback)\n this.playbackPlugins = this.removeDups(plugins.playback.concat(this.playbackPlugins))\n\n if (plugins.container)\n this.containerPlugins = this.removeDups(plugins.container.concat(this.containerPlugins))\n\n if (plugins.core)\n this.corePlugins = this.removeDups(plugins.core.concat(this.corePlugins))\n\n\n PlayerInfo.getInstance(this.playerId).playbackPlugins = this.playbackPlugins\n }\n\n /**\n * validate if the external plugins that were passed through `options.plugins` are associated to the correct type\n * @method validateExternalPluginsType\n * @private\n * @param {Object} plugins the config object with all plugins\n */\n validateExternalPluginsType(plugins) {\n const plugintypes = ['playback', 'container', 'core']\n plugintypes.forEach((type) => {\n (plugins[type] || []).forEach((el) => {\n const errorMessage = 'external ' + el.type + ' plugin on ' + type + ' array'\n if (el.type !== type) throw new ReferenceError(errorMessage)\n })\n })\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/components/loader/loader.js","require('../../modules/es6.string.iterator');\nrequire('../../modules/es6.array.from');\nmodule.exports = require('../../modules/_core').Array.from;\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/array/from.js\n// module id = 160\n// module chunks = 0","'use strict';\nvar ctx = require('./_ctx')\n , $export = require('./_export')\n , toObject = require('./_to-object')\n , call = require('./_iter-call')\n , isArrayIter = require('./_is-array-iter')\n , toLength = require('./_to-length')\n , createProperty = require('./_create-property')\n , getIterFn = require('./core.get-iterator-method');\n\n$export($export.S + $export.F * !require('./_iter-detect')(function(iter){ Array.from(iter); }), 'Array', {\n // 22.1.2.1 Array.from(arrayLike, mapfn = undefined, thisArg = undefined)\n from: function from(arrayLike/*, mapfn = undefined, thisArg = undefined*/){\n var O = toObject(arrayLike)\n , C = typeof this == 'function' ? this : Array\n , aLen = arguments.length\n , mapfn = aLen > 1 ? arguments[1] : undefined\n , mapping = mapfn !== undefined\n , index = 0\n , iterFn = getIterFn(O)\n , length, result, step, iterator;\n if(mapping)mapfn = ctx(mapfn, aLen > 2 ? arguments[2] : undefined, 2);\n // if object isn't iterable or it's array with default iterator - use simple case\n if(iterFn != undefined && !(C == Array && isArrayIter(iterFn))){\n for(iterator = iterFn.call(O), result = new C; !(step = iterator.next()).done; index++){\n createProperty(result, index, mapping ? call(iterator, mapfn, [step.value, index], true) : step.value);\n }\n } else {\n length = toLength(O.length);\n for(result = new C(length); length > index; index++){\n createProperty(result, index, mapping ? mapfn(O[index], index) : O[index]);\n }\n }\n result.length = index;\n return result;\n }\n});\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/es6.array.from.js\n// module id = 161\n// module chunks = 0","// call something on iterator step with safe closing on error\nvar anObject = require('./_an-object');\nmodule.exports = function(iterator, fn, value, entries){\n try {\n return entries ? fn(anObject(value)[0], value[1]) : fn(value);\n // 7.4.6 IteratorClose(iterator, completion)\n } catch(e){\n var ret = iterator['return'];\n if(ret !== undefined)anObject(ret.call(iterator));\n throw e;\n }\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-call.js\n// module id = 162\n// module chunks = 0","// check on default Array iterator\nvar Iterators = require('./_iterators')\n , ITERATOR = require('./_wks')('iterator')\n , ArrayProto = Array.prototype;\n\nmodule.exports = function(it){\n return it !== undefined && (Iterators.Array === it || ArrayProto[ITERATOR] === it);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_is-array-iter.js\n// module id = 163\n// module chunks = 0","'use strict';\nvar $defineProperty = require('./_object-dp')\n , createDesc = require('./_property-desc');\n\nmodule.exports = function(object, index, value){\n if(index in object)$defineProperty.f(object, index, createDesc(0, value));\n else object[index] = value;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_create-property.js\n// module id = 164\n// module chunks = 0","var classof = require('./_classof')\n , ITERATOR = require('./_wks')('iterator')\n , Iterators = require('./_iterators');\nmodule.exports = require('./_core').getIteratorMethod = function(it){\n if(it != undefined)return it[ITERATOR]\n || it['@@iterator']\n || Iterators[classof(it)];\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/core.get-iterator-method.js\n// module id = 165\n// module chunks = 0","// getting tag from 19.1.3.6 Object.prototype.toString()\nvar cof = require('./_cof')\n , TAG = require('./_wks')('toStringTag')\n // ES3 wrong here\n , ARG = cof(function(){ return arguments; }()) == 'Arguments';\n\n// fallback for IE11 Script Access Denied error\nvar tryGet = function(it, key){\n try {\n return it[key];\n } catch(e){ /* empty */ }\n};\n\nmodule.exports = function(it){\n var O, T, B;\n return it === undefined ? 'Undefined' : it === null ? 'Null'\n // @@toStringTag case\n : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T\n // builtinTag case\n : ARG ? cof(O)\n // ES3 arguments fallback\n : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_classof.js\n// module id = 166\n// module chunks = 0","var ITERATOR = require('./_wks')('iterator')\n , SAFE_CLOSING = false;\n\ntry {\n var riter = [7][ITERATOR]();\n riter['return'] = function(){ SAFE_CLOSING = true; };\n Array.from(riter, function(){ throw 2; });\n} catch(e){ /* empty */ }\n\nmodule.exports = function(exec, skipClosing){\n if(!skipClosing && !SAFE_CLOSING)return false;\n var safe = false;\n try {\n var arr = [7]\n , iter = arr[ITERATOR]();\n iter.next = function(){ return {done: safe = true}; };\n arr[ITERATOR] = function(){ return iter; };\n exec(arr);\n } catch(e){ /* empty */ }\n return safe;\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/modules/_iter-detect.js\n// module id = 167\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { isNumber, seekStringToSeconds, DomRecycler, canAutoPlayMedia } from '../../base/utils'\n\nimport Playback from '../../base/playback'\nimport Browser from '../../components/browser'\nimport PlayerError from '../../components/error'\nimport Events from '../../base/events'\nimport Log from '../../plugins/log'\nimport $ from 'clappr-zepto'\nimport template from '../../base/template'\nimport tracksHTML from './public/tracks.html'\nimport './public/style.scss'\n\nconst MIMETYPES = {\n 'mp4': ['avc1.42E01E', 'avc1.58A01E', 'avc1.4D401E', 'avc1.64001E', 'mp4v.20.8', 'mp4v.20.240', 'mp4a.40.2'].map(\n (codec) => { return 'video/mp4; codecs=\"' + codec + ', mp4a.40.2\"' }),\n 'ogg': ['video/ogg; codecs=\"theora, vorbis\"', 'video/ogg; codecs=\"dirac\"', 'video/ogg; codecs=\"theora, speex\"'],\n '3gpp': ['video/3gpp; codecs=\"mp4v.20.8, samr\"'],\n 'webm': ['video/webm; codecs=\"vp8, vorbis\"'],\n 'mkv': ['video/x-matroska; codecs=\"theora, vorbis\"'],\n 'm3u8': ['application/x-mpegurl']\n}\nMIMETYPES['ogv'] = MIMETYPES['ogg']\nMIMETYPES['3gp'] = MIMETYPES['3gpp']\n\nconst AUDIO_MIMETYPES = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n}\n\nconst KNOWN_AUDIO_MIMETYPES = Object.keys(AUDIO_MIMETYPES).reduce((acc, k) => [...acc, ...AUDIO_MIMETYPES[k]], [])\n\nconst UNKNOWN_ERROR = { code: 'unknown', message: 'unknown' }\n\n// TODO: rename this Playback to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Video extends Playback {\n get name() { return 'html5_video' }\n get tagName() { return this.isAudioOnly ? 'audio' : 'video' }\n\n get isAudioOnly() {\n const resourceUrl = this.options.src\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, AUDIO_MIMETYPES, this.options.mimeType)\n return this.options.playback && this.options.playback.audioOnly || this.options.audioOnly || KNOWN_AUDIO_MIMETYPES.indexOf(mimeTypes[0]) >= 0\n }\n\n get attributes() {\n return {\n 'data-html5-video': ''\n }\n }\n\n get events() {\n return {\n 'canplay': '_onCanPlay',\n 'canplaythrough': '_handleBufferingEvents',\n 'durationchange': '_onDurationChange',\n 'ended': '_onEnded',\n 'error': '_onError',\n 'loadeddata': '_onLoadedData',\n 'loadedmetadata': '_onLoadedMetadata',\n 'pause': '_onPause',\n 'playing': '_onPlaying',\n 'progress': '_onProgress',\n 'seeking': '_onSeeking',\n 'seeked': '_onSeeked',\n 'stalled': '_handleBufferingEvents',\n 'timeupdate': '_onTimeUpdate',\n 'waiting': '_onWaiting'\n }\n }\n\n /**\n * Determine if the playback has ended.\n * @property ended\n * @type Boolean\n */\n get ended() {\n return this.el.ended\n }\n\n /**\n * Determine if the playback is having to buffer in order for\n * playback to be smooth.\n * This is related to the PLAYBACK_BUFFERING and PLAYBACK_BUFFERFULL events\n * @property buffering\n * @type Boolean\n */\n get buffering() {\n return this._isBuffering\n }\n\n constructor(...args) {\n super(...args)\n this._destroyed = false\n this._loadStarted = false\n this._isBuffering = false\n this._playheadMoving = false\n this._playheadMovingTimer = null\n this._stopped = false\n this._ccTrackId = -1\n this._setupSrc(this.options.src)\n // backwards compatibility (TODO: remove on 0.3.0)\n this.options.playback || (this.options.playback = this.options || {})\n this.options.playback.disableContextMenu = this.options.playback.disableContextMenu || this.options.disableVideoTagContextMenu\n\n const playbackConfig = this.options.playback\n const preload = playbackConfig.preload || (Browser.isSafari ? 'auto' : this.options.preload)\n\n let posterUrl // FIXME: poster plugin should always convert poster to object with expected properties ?\n if (this.options.poster) {\n if (typeof this.options.poster === 'string')\n posterUrl = this.options.poster\n else if (typeof this.options.poster.url === 'string')\n posterUrl = this.options.poster.url\n\n }\n\n $.extend(this.el, {\n muted: this.options.mute,\n defaultMuted: this.options.mute,\n loop: this.options.loop,\n poster: posterUrl,\n preload: preload || 'metadata',\n controls: (playbackConfig.controls || this.options.useVideoTagDefaultControls) && 'controls',\n crossOrigin: playbackConfig.crossOrigin,\n 'x-webkit-playsinline': playbackConfig.playInline\n })\n\n playbackConfig.playInline && (this.$el.attr({ playsinline: 'playsinline' }))\n playbackConfig.crossOrigin && (this.$el.attr({ crossorigin: playbackConfig.crossOrigin }))\n\n // TODO should settings be private?\n this.settings = { default: ['seekbar'] }\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.right = ['fullscreen', 'volume', 'hd-indicator']\n\n playbackConfig.externalTracks && (this._setupExternalTracks(playbackConfig.externalTracks))\n\n this.options.autoPlay && this.attemptAutoPlay()\n }\n\n // See Playback.attemptAutoPlay()\n attemptAutoPlay() {\n this.canAutoPlay((result, error) => {\n error && Log.warn(this.name, 'autoplay error.', { result, error })\n\n // https://github.com/clappr/clappr/issues/1076\n result && process.nextTick(() => !this._destroyed && this.play())\n })\n }\n\n // See Playback.canAutoPlay()\n canAutoPlay(cb) {\n if (this.options.disableCanAutoPlay)\n cb(true, null)\n\n let opts = {\n timeout: this.options.autoPlayTimeout || 500,\n inline: this.options.playback.playInline || false,\n muted: this.options.mute || false, // Known issue: mediacontrols may asynchronously mute video\n }\n\n // Use current video element if recycling feature enabled with mobile devices\n if (Browser.isMobile && DomRecycler.options.recycleVideo)\n opts.element = this.el\n\n // Desktop browser autoplay policy may require user action\n // Mobile browser autoplay require user consent and video recycling feature enabled\n // It may returns a false positive with source-less player consent\n canAutoPlayMedia(cb, opts)\n }\n\n _setupExternalTracks(tracks) {\n this._externalTracks = tracks.map(track => {\n return {\n kind: track.kind || 'subtitles', // Default is 'subtitles'\n label: track.label,\n lang: track.lang,\n src: track.src,\n }\n })\n }\n\n /**\n * Sets the source url on the <video> element, and also the 'src' property.\n * @method setupSrc\n * @private\n * @param {String} srcUrl The source URL.\n */\n _setupSrc(srcUrl) {\n if (this.el.src === srcUrl)\n return\n\n this._ccIsSetup = false\n this.el.src = srcUrl\n this._src = this.el.src\n }\n\n _onLoadedMetadata(e) {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_LOADEDMETADATA, { duration: e.target.duration, data: e })\n this._updateSettings()\n const autoSeekFromUrl = typeof (this._options.autoSeekFromUrl) === 'undefined' || this._options.autoSeekFromUrl\n if (this.getPlaybackType() !== Playback.LIVE && autoSeekFromUrl)\n this._checkInitialSeek()\n\n }\n\n _onDurationChange() {\n this._updateSettings()\n this._onTimeUpdate()\n // onProgress uses the duration\n this._onProgress()\n }\n\n _updateSettings() {\n // we can't figure out if hls resource is VoD or not until it is being loaded or duration has changed.\n // that's why we check it again and update media control accordingly.\n if (this.getPlaybackType() === Playback.VOD || this.getPlaybackType() === Playback.AOD)\n this.settings.left = ['playpause', 'position', 'duration']\n else\n this.settings.left = ['playstop']\n\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n isSeekEnabled() {\n return isFinite(this.getDuration())\n }\n\n getPlaybackType() {\n const onDemandType = this.tagName === 'audio' ? Playback.AOD : Playback.VOD\n return [0, undefined, Infinity].indexOf(this.el.duration) >= 0 ? Playback.LIVE : onDemandType\n }\n\n isHighDefinitionInUse() {\n return false\n }\n\n // On mobile device, HTML5 video element \"retains\" user action consent if\n // load() method is called. See Player.consent().\n consent() {\n if (!this.isPlaying()) {\n super.consent()\n this.el.load()\n }\n }\n\n play() {\n this.trigger(Events.PLAYBACK_PLAY_INTENT)\n this._stopped = false\n this._setupSrc(this._src)\n this._handleBufferingEvents()\n let promise = this.el.play()\n // For more details, see https://developers.google.com/web/updates/2016/03/play-returns-promise\n if (promise && promise.catch)\n promise.catch(() => {})\n\n }\n\n pause() {\n this.el.pause()\n }\n\n stop() {\n this.pause()\n this._stopped = true\n // src will be added again in play()\n this.el.removeAttribute('src')\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_STOP)\n }\n\n volume(value) {\n if (value === 0) {\n this.$el.attr({ muted: 'true' })\n this.el.muted = true\n } else {\n this.$el.attr({ muted: null })\n this.el.muted = false\n this.el.volume = value / 100\n }\n }\n\n /**\n * @deprecated\n * @private\n */\n mute() {\n this.el.muted = true\n }\n\n /**\n * @deprecated\n * @private\n */\n unmute() {\n this.el.muted = false\n }\n\n isMuted() {\n return !!this.el.volume\n }\n\n isPlaying() {\n return !this.el.paused && !this.el.ended\n }\n\n get isReady() {\n return this._isReadyState\n }\n\n _startPlayheadMovingChecks() {\n if (this._playheadMovingTimer !== null)\n return\n\n this._playheadMovingTimeOnCheck = null\n this._determineIfPlayheadMoving()\n this._playheadMovingTimer = setInterval(this._determineIfPlayheadMoving.bind(this), 500)\n }\n\n _stopPlayheadMovingChecks() {\n if (this._playheadMovingTimer === null)\n return\n\n clearInterval(this._playheadMovingTimer)\n this._playheadMovingTimer = null\n this._playheadMoving = false\n }\n\n _determineIfPlayheadMoving() {\n const before = this._playheadMovingTimeOnCheck\n const now = this.el.currentTime\n this._playheadMoving = before !== now\n this._playheadMovingTimeOnCheck = now\n this._handleBufferingEvents()\n }\n\n // this seems to happen when the user is having to wait\n // for something to happen AFTER A USER INTERACTION\n // e.g the player might be buffering, but when `play()` is called\n // only at this point will this be called.\n // Or the user may seek somewhere but the new area requires buffering,\n // so it will fire then as well.\n // On devices where playing is blocked until requested with a user action,\n // buffering may start, but never finish until the user initiates a play,\n // but this only happens when play is actually requested\n _onWaiting() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // called after the first frame has loaded\n // note this doesn't fire on ios before the user has requested play\n // ideally the \"loadstart\" event would be used instead, but this fires\n // before a user has requested play on iOS, and also this is always fired\n // even if the preload setting is \"none\". In both these cases this causes\n // infinite buffering until the user does something which isn't great.\n _onLoadedData() {\n this._loadStarted = true\n this._handleBufferingEvents()\n }\n\n // note this doesn't fire on ios before user has requested play\n _onCanPlay() {\n this._handleBufferingEvents()\n }\n\n _onPlaying() {\n this._checkForClosedCaptions()\n this._startPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PLAY)\n }\n\n _onPause() {\n this._stopPlayheadMovingChecks()\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_PAUSE)\n }\n\n _onSeeking() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEK)\n }\n\n _onSeeked() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_SEEKED)\n }\n\n _onEnded() {\n this._handleBufferingEvents()\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n // The playback should be classed as buffering if the following are true:\n // - the ready state is less then HAVE_FUTURE_DATA or the playhead isn't moving and it should be\n // - the media hasn't \"ended\",\n // - the media hasn't been stopped\n // - loading has started\n _handleBufferingEvents() {\n const playheadShouldBeMoving = !this.el.ended && !this.el.paused\n const buffering = this._loadStarted && !this.el.ended && !this._stopped && ((playheadShouldBeMoving && !this._playheadMoving) || this.el.readyState < this.el.HAVE_FUTURE_DATA)\n if (this._isBuffering !== buffering) {\n this._isBuffering = buffering\n if (buffering)\n this.trigger(Events.PLAYBACK_BUFFERING, this.name)\n else\n this.trigger(Events.PLAYBACK_BUFFERFULL, this.name)\n\n }\n }\n\n _onError() {\n const { code, message } = this.el.error || UNKNOWN_ERROR\n const isUnknownError = code === UNKNOWN_ERROR.code\n\n const formattedError = this.createError({\n code,\n description: message,\n raw: this.el.error,\n level: isUnknownError ? PlayerError.Levels.WARN : PlayerError.Levels.FATAL\n })\n\n if (isUnknownError)\n Log.warn(this.name, 'HTML5 unknown error: ', formattedError)\n else\n this.trigger(Events.PLAYBACK_ERROR, formattedError)\n }\n\n destroy() {\n this._destroyed = true\n this.handleTextTrackChange && this.el.textTracks.removeEventListener('change', this.handleTextTrackChange)\n super.destroy()\n this.el.removeAttribute('src')\n this._src = null\n DomRecycler.garbage(this.$el)\n }\n\n seek(time) {\n this.el.currentTime = time\n }\n\n seekPercentage(percentage) {\n const time = this.el.duration * (percentage / 100)\n this.seek(time)\n }\n\n _checkInitialSeek() {\n const seekTime = seekStringToSeconds()\n if (seekTime !== 0)\n this.seek(seekTime)\n\n }\n\n getCurrentTime() {\n return this.el.currentTime\n }\n\n getDuration() {\n return this.el.duration\n }\n\n _onTimeUpdate() {\n if (this.getPlaybackType() === Playback.LIVE)\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: 1, total: 1 }, this.name)\n else\n this.trigger(Events.PLAYBACK_TIMEUPDATE, { current: this.el.currentTime, total: this.el.duration }, this.name)\n\n }\n\n _onProgress() {\n if (!this.el.buffered.length)\n return\n\n let buffered = []\n let bufferedPos = 0\n for (let i = 0; i < this.el.buffered.length; i++) {\n buffered = [...buffered, { start: this.el.buffered.start(i), end: this.el.buffered.end(i) }]\n if (this.el.currentTime >= buffered[i].start && this.el.currentTime <= buffered[i].end)\n bufferedPos = i\n\n }\n const progress = {\n start: buffered[bufferedPos].start,\n current: buffered[bufferedPos].end,\n total: this.el.duration\n }\n this.trigger(Events.PLAYBACK_PROGRESS, progress, buffered)\n }\n\n _typeFor(src) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(src, MIMETYPES, this.options.mimeType)\n if (mimeTypes.length === 0)\n mimeTypes = HTML5Video._mimeTypesForUrl(src, AUDIO_MIMETYPES, this.options.mimeType)\n\n const mimeType = mimeTypes[0] || ''\n return mimeType.split(';')[0]\n }\n\n _ready() {\n if (this._isReadyState)\n return\n\n this._isReadyState = true\n this.trigger(Events.PLAYBACK_READY, this.name)\n }\n\n _checkForClosedCaptions() {\n // Check if CC available only if current playback is HTML5Video\n if (this.isHTML5Video && !this._ccIsSetup) {\n if (this.hasClosedCaptionsTracks) {\n this.trigger(Events.PLAYBACK_SUBTITLE_AVAILABLE)\n const trackId = this.closedCaptionsTrackId\n this.closedCaptionsTrackId = trackId\n this.handleTextTrackChange = this._handleTextTrackChange.bind(this)\n this.el.textTracks.addEventListener('change', this.handleTextTrackChange)\n }\n this._ccIsSetup = true\n }\n }\n\n _handleTextTrackChange() {\n let tracks = this.closedCaptionsTracks\n let track = tracks.find(track => track.track.mode === 'showing') || { id: -1 }\n\n if (this._ccTrackId !== track.id) {\n this._ccTrackId = track.id\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: track.id\n })\n }\n }\n\n get isHTML5Video() {\n return this.name === HTML5Video.prototype.name\n }\n\n get closedCaptionsTracks() {\n let id = 0\n let trackId = () => { return id++ }\n let textTracks = this.el.textTracks ? Array.from(this.el.textTracks) : []\n\n return textTracks\n .filter(track => track.kind === 'subtitles' || track.kind === 'captions')\n .map(track => { return { id: trackId(), name: track.label, track: track } })\n }\n\n get closedCaptionsTrackId() {\n return this._ccTrackId\n }\n\n set closedCaptionsTrackId(trackId) {\n if (!isNumber(trackId))\n return\n\n\n let tracks = this.closedCaptionsTracks\n let showingTrack\n\n // Note: -1 is for hide all tracks\n if (trackId !== -1) {\n showingTrack = tracks.find(track => track.id === trackId)\n if (!showingTrack)\n return // Track id not found\n\n if (showingTrack.track.mode === 'showing')\n return // Track already showing\n\n }\n\n // Since it is possible to display multiple tracks,\n // ensure that all tracks are hidden.\n tracks\n .filter(track => track.track.mode !== 'hidden')\n .forEach(track => track.track.mode = 'hidden')\n\n showingTrack && (showingTrack.track.mode = 'showing')\n\n this._ccTrackId = trackId\n this.trigger(Events.PLAYBACK_SUBTITLE_CHANGED, {\n id: trackId\n })\n }\n\n get template() { return template(tracksHTML) }\n\n render() {\n if (this.options.playback.disableContextMenu) {\n this.$el.on('contextmenu', () => {\n return false\n })\n }\n\n if (this._externalTracks && this._externalTracks.length > 0) {\n this.$el.html(this.template({\n tracks: this._externalTracks,\n }))\n }\n\n this._ready()\n return this\n }\n}\n\nHTML5Video._mimeTypesForUrl = function(resourceUrl, mimeTypesByExtension, mimeType) {\n const extension = (resourceUrl.split('?')[0].match(/.*\\.(.*)$/) || [])[1]\n let mimeTypes = mimeType || (extension && mimeTypesByExtension[extension.toLowerCase()]) || []\n return (mimeTypes.constructor === Array) ? mimeTypes : [mimeTypes]\n}\n\nHTML5Video._canPlay = function(type, mimeTypesByExtension, resourceUrl, mimeType) {\n let mimeTypes = HTML5Video._mimeTypesForUrl(resourceUrl, mimeTypesByExtension, mimeType)\n const media = document.createElement(type)\n return !!(mimeTypes.filter(mediaType => !!media.canPlayType(mediaType).replace(/no/, ''))[0])\n}\n\nHTML5Video.canPlay = function(resourceUrl, mimeType) {\n return HTML5Video._canPlay('audio', AUDIO_MIMETYPES, resourceUrl, mimeType) ||\n HTML5Video._canPlay('video', MIMETYPES, resourceUrl, mimeType)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_video/html5_video.js","module.exports = \"<% for (var i = 0; i < tracks.length; i++) { %>\\n <track data-html5-video-track=\\\"<%= i %>\\\" kind=\\\"<%= tracks[i].kind %>\\\" label=\\\"<%= tracks[i].label %>\\\" srclang=\\\"<%= tracks[i].lang %>\\\" src=\\\"<%= tracks[i].src %>\\\" />\\n<% }; %>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/playbacks/html5_video/public/tracks.html\n// module id = 169\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/playbacks/html5_video/public/style.scss\n// module id = 170\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-html5-video] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n display: block; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/playbacks/html5_video/public/style.scss\n// module id = 171\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport HTML5Video from '../../playbacks/html5_video'\n\n// TODO: remove this playback and change HTML5Video to HTML5Playback (breaking change, only after 0.3.0)\nexport default class HTML5Audio extends HTML5Video {\n get name() { return 'html5_audio' }\n get tagName() { return 'audio' }\n\n get isAudioOnly() {\n return true\n }\n\n updateSettings() {\n this.settings.left = ['playpause', 'position', 'duration']\n this.settings.seekEnabled = this.isSeekEnabled()\n this.trigger(Events.PLAYBACK_SETTINGSUPDATE)\n }\n\n getPlaybackType() {\n return Playback.AOD\n }\n}\n\nHTML5Audio.canPlay = function(resourceUrl, mimeType) {\n const mimetypes = {\n 'wav': ['audio/wav'],\n 'mp3': ['audio/mp3', 'audio/mpeg;codecs=\"mp3\"'],\n 'aac': ['audio/mp4;codecs=\"mp4a.40.5\"'],\n 'oga': ['audio/ogg']\n }\n return HTML5Video._canPlay('audio', mimetypes, resourceUrl, mimeType)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html5_audio/html5_audio.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport './public/style.scss'\n\nexport default class HTMLImg extends Playback {\n get name() { return 'html_img' }\n get tagName() { return 'img' }\n get attributes() {\n return {\n 'data-html-img': ''\n }\n }\n\n get events() {\n return {\n 'load': '_onLoad',\n 'abort': '_onError',\n 'error': '_onError'\n }\n }\n\n getPlaybackType() {\n return Playback.NO_OP\n }\n\n constructor(params) {\n super(params)\n this.el.src = params.src\n }\n\n render() {\n this.trigger(Events.PLAYBACK_READY, this.name)\n return this\n }\n\n _onLoad() {\n this.trigger(Events.PLAYBACK_ENDED, this.name)\n }\n\n _onError(evt) {\n const m = (evt.type === 'error') ? 'load error' : 'loading aborted'\n this.trigger(Events.PLAYBACK_ERROR, { message: m }, this.name)\n }\n}\n\nHTMLImg.canPlay = function(resource) {\n return /\\.(png|jpg|jpeg|gif|bmp|tiff|pgm|pnm|webp)(|\\?.*)$/i.test(resource)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/html_img/html_img.js","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/playbacks/html_img/public/style.scss\n// module id = 174\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-html-img] {\\n max-width: 100%;\\n max-height: 100%; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/playbacks/html_img/public/style.scss\n// module id = 175\n// module chunks = 0","import { requestAnimationFrame, cancelAnimationFrame } from '../../base/utils'\nimport Playback from '../../base/playback'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport noOpHTML from './public/error.html'\nimport './public/style.scss'\n\nexport default class NoOp extends Playback {\n get name() { return 'no_op' }\n get template() { return template(noOpHTML) }\n get attributes() {\n return { 'data-no-op': '' }\n }\n\n constructor(...args) {\n super(...args)\n this._noiseFrameNum = -1\n }\n\n render() {\n const playbackNotSupported = this.options.playbackNotSupportedMessage || this.i18n.t('playback_not_supported')\n this.$el.html(this.template({ message: playbackNotSupported }))\n this.trigger(Events.PLAYBACK_READY, this.name)\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n if (this.options.autoPlay || !showForNoOp)\n this._animate()\n\n return this\n }\n\n _noise() {\n this._noiseFrameNum = (this._noiseFrameNum+1)%5\n if (this._noiseFrameNum) {\n // only update noise every 5 frames to save cpu\n return\n }\n\n const idata = this.context.createImageData(this.context.canvas.width, this.context.canvas.height)\n let buffer32\n try {\n buffer32 = new Uint32Array(idata.data.buffer)\n } catch (err) {\n buffer32 = new Uint32Array(this.context.canvas.width * this.context.canvas.height * 4)\n const data=idata.data\n for (let i = 0; i < data.length; i++)\n buffer32[i]=data[i]\n\n }\n\n const len = buffer32.length,\n m = Math.random() * 6 + 4\n let run = 0,\n color = 0\n for (let i = 0; i < len;) {\n if (run < 0) {\n run = m * Math.random()\n const p = Math.pow(Math.random(), 0.4)\n color = (255 * p) << 24\n }\n run -= 1\n buffer32[i++] = color\n }\n this.context.putImageData(idata, 0, 0)\n }\n\n _loop() {\n if (this._stop)\n return\n\n this._noise()\n this._animationHandle = requestAnimationFrame(() => this._loop())\n }\n\n destroy() {\n if (this._animationHandle) {\n cancelAnimationFrame(this._animationHandle)\n this._stop = true\n }\n }\n\n _animate() {\n this.canvas = this.$el.find('canvas[data-no-op-canvas]')[0]\n this.context = this.canvas.getContext('2d')\n this._loop()\n }\n}\n\nNoOp.canPlay = (source) => { // eslint-disable-line no-unused-vars\n return true\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/playbacks/no_op/no_op.js","module.exports = \"<canvas data-no-op-canvas></canvas>\\n<p data-no-op-msg><%=message%><p>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/playbacks/no_op/public/error.html\n// module id = 177\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./style.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/playbacks/no_op/public/style.scss\n// module id = 178\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-no-op] {\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n text-align: center; }\\n\\n[data-no-op] p[data-no-op-msg] {\\n position: absolute;\\n text-align: center;\\n font-size: 25px;\\n left: 0;\\n right: 0;\\n color: white;\\n padding: 10px;\\n /* center vertically */\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%);\\n max-height: 100%;\\n overflow: auto; }\\n\\n[data-no-op] canvas[data-no-op-canvas] {\\n background-color: #777;\\n height: 100%;\\n width: 100%; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/playbacks/no_op/public/style.scss\n// module id = 179\n// module chunks = 0","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport spinnerHTML from './public/spinner.html'\nimport './public/spinner.scss'\n\nexport default class SpinnerThreeBouncePlugin extends UIContainerPlugin {\n get name() { return 'spinner' }\n get attributes() {\n return {\n 'data-spinner':'',\n 'class': 'spinner-three-bounce'\n }\n }\n\n constructor(container) {\n super(container)\n this.template = template(spinnerHTML)\n this.showTimeout = null\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onStop)\n this.render()\n }\n\n onBuffering() {\n this.show()\n }\n\n onBufferFull() {\n this.hide()\n }\n\n onStop() {\n this.hide()\n }\n\n show() {\n if (this.showTimeout === null)\n this.showTimeout = setTimeout(() => this.$el.show(), 300)\n\n }\n\n hide() {\n if (this.showTimeout !== null) {\n clearTimeout(this.showTimeout)\n this.showTimeout = null\n }\n this.$el.hide()\n }\n\n render() {\n this.$el.html(this.template())\n this.container.$el.append(this.$el)\n this.$el.hide()\n if (this.container.buffering)\n this.onBuffering()\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/spinner_three_bounce/spinner_three_bounce.js","module.exports = \"<div data-bounce1></div><div data-bounce2></div><div data-bounce3></div>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/spinner_three_bounce/public/spinner.html\n// module id = 181\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./spinner.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./spinner.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./spinner.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/spinner_three_bounce/public/spinner.scss\n// module id = 182\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".spinner-three-bounce[data-spinner] {\\n position: absolute;\\n margin: 0 auto;\\n width: 70px;\\n text-align: center;\\n z-index: 999;\\n left: 0;\\n right: 0;\\n margin-left: auto;\\n margin-right: auto;\\n /* center vertically */\\n top: 50%;\\n -webkit-transform: translateY(-50%);\\n transform: translateY(-50%); }\\n .spinner-three-bounce[data-spinner] > div {\\n width: 18px;\\n height: 18px;\\n background-color: #FFFFFF;\\n border-radius: 100%;\\n display: inline-block;\\n -webkit-animation: bouncedelay 1.4s infinite ease-in-out;\\n animation: bouncedelay 1.4s infinite ease-in-out;\\n /* Prevent first frame from flickering when animation starts */\\n -webkit-animation-fill-mode: both;\\n animation-fill-mode: both; }\\n .spinner-three-bounce[data-spinner] [data-bounce1] {\\n -webkit-animation-delay: -0.32s;\\n animation-delay: -0.32s; }\\n .spinner-three-bounce[data-spinner] [data-bounce2] {\\n -webkit-animation-delay: -0.16s;\\n animation-delay: -0.16s; }\\n\\n@-webkit-keyframes bouncedelay {\\n 0%, 80%, 100% {\\n -webkit-transform: scale(0);\\n transform: scale(0); }\\n 40% {\\n -webkit-transform: scale(1);\\n transform: scale(1); } }\\n\\n@keyframes bouncedelay {\\n 0%, 80%, 100% {\\n -webkit-transform: scale(0);\\n transform: scale(0); }\\n 40% {\\n -webkit-transform: scale(1);\\n transform: scale(1); } }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/plugins/spinner_three_bounce/public/spinner.scss\n// module id = 183\n// module chunks = 0","import StatsPlugin from './stats'\nexport default StatsPlugin\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/stats/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nexport default class StatsPlugin extends ContainerPlugin {\n get name() { return 'stats' }\n\n constructor(container) {\n super(container)\n this.setInitialAttrs()\n this.reportInterval = this.options.reportInterval || 5000\n this.state = 'IDLE'\n }\n\n bindEvents() {\n this.listenTo(this.container.playback, Events.PLAYBACK_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_DESTROYED, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_STATS_ADD, this.onStatsAdd)\n this.listenTo(this.container, Events.CONTAINER_BITRATE, this.onStatsAdd)\n this.listenTo(this.container.playback, Events.PLAYBACK_STATS_ADD, this.onStatsAdd)\n }\n\n setInitialAttrs() {\n this.firstPlay = true\n this.startupTime = 0\n this.rebufferingTime = 0\n this.watchingTime = 0\n this.rebuffers = 0\n this.externalMetrics = {}\n }\n\n onPlay() {\n this.state = 'PLAYING'\n this.watchingTimeInit = Date.now()\n if (!this.intervalId)\n this.intervalId = setInterval(this.report.bind(this), this.reportInterval)\n\n }\n\n onStop() {\n clearInterval(this.intervalId)\n this.report()\n this.intervalId = undefined\n this.state = 'STOPPED'\n }\n\n onBuffering() {\n if (this.firstPlay)\n this.startupTimeInit = Date.now()\n else\n this.rebufferingTimeInit = Date.now()\n\n this.state = 'BUFFERING'\n this.rebuffers++\n }\n\n onBufferFull() {\n if (this.firstPlay && this.startupTimeInit) {\n this.firstPlay = false\n this.startupTime = Date.now() - this.startupTimeInit\n this.watchingTimeInit = Date.now()\n } else if (this.rebufferingTimeInit) { this.rebufferingTime += this.getRebufferingTime() }\n\n this.rebufferingTimeInit = undefined\n this.state = 'PLAYING'\n }\n\n getRebufferingTime() {\n return Date.now() - this.rebufferingTimeInit\n }\n\n getWatchingTime() {\n const totalTime = (Date.now() - this.watchingTimeInit)\n return totalTime - this.rebufferingTime\n }\n\n isRebuffering() {\n return !!this.rebufferingTimeInit\n }\n\n onStatsAdd(metric) {\n $.extend(this.externalMetrics, metric)\n }\n\n getStats() {\n const metrics = {\n startupTime: this.startupTime,\n rebuffers: this.rebuffers,\n rebufferingTime: this.isRebuffering()? this.rebufferingTime + this.getRebufferingTime(): this.rebufferingTime,\n watchingTime: this.isRebuffering()? this.getWatchingTime() - this.getRebufferingTime(): this.getWatchingTime()\n }\n $.extend(metrics, this.externalMetrics)\n return metrics\n }\n\n report() {\n this.container.statsReport(this.getStats())\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/stats/stats.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport watermarkHTML from './public/watermark.html'\nimport './public/watermark.scss'\n\nexport default class WaterMarkPlugin extends UIContainerPlugin {\n get name() { return 'watermark' }\n\n get template() { return template(watermarkHTML) }\n\n constructor(container) {\n super(container)\n this.configure()\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.configure)\n }\n\n configure() {\n this.position = this.options.position || 'bottom-right'\n if (this.options.watermark) {\n this.imageUrl = this.options.watermark\n this.imageLink = this.options.watermarkLink\n this.render()\n } else { this.$el.remove() }\n\n }\n\n onPlay() {\n if (!this.hidden)\n this.$el.show()\n }\n\n onStop() {\n this.$el.hide()\n }\n\n render() {\n this.$el.hide()\n const templateOptions = { position: this.position, imageUrl: this.imageUrl, imageLink: this.imageLink }\n this.$el.html(this.template(templateOptions))\n this.container.$el.append(this.$el)\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/watermark/watermark.js","module.exports = \"<div data-watermark data-watermark-<%=position %>>\\n<% if(typeof imageLink !== 'undefined') { %>\\n<a target=_blank href=\\\"<%= imageLink %>\\\">\\n<% } %>\\n<img src=\\\"<%= imageUrl %>\\\">\\n<% if(typeof imageLink !== 'undefined') { %>\\n</a>\\n<% } %>\\n</div>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/watermark/public/watermark.html\n// module id = 187\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./watermark.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./watermark.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./watermark.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/watermark/public/watermark.scss\n// module id = 188\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"[data-watermark] {\\n position: absolute;\\n min-width: 70px;\\n max-width: 200px;\\n width: 12%;\\n text-align: center;\\n z-index: 10; }\\n\\n[data-watermark] a {\\n outline: none;\\n cursor: pointer; }\\n\\n[data-watermark] img {\\n max-width: 100%; }\\n\\n[data-watermark-bottom-left] {\\n bottom: 10px;\\n left: 10px; }\\n\\n[data-watermark-bottom-right] {\\n bottom: 10px;\\n right: 42px; }\\n\\n[data-watermark-top-left] {\\n top: 10px;\\n left: 10px; }\\n\\n[data-watermark-top-right] {\\n top: 10px;\\n right: 37px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/plugins/watermark/public/watermark.scss\n// module id = 189\n// module chunks = 0","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport UIContainerPlugin from '../../base/ui_container_plugin'\nimport Events from '../../base/events'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport PlayerError from '../../components/error/error'\nimport posterHTML from './public/poster.html'\nimport playIcon from '../../icons/01-play.svg'\nimport './public/poster.scss'\n\nexport default class PosterPlugin extends UIContainerPlugin {\n get name() { return 'poster' }\n get template() { return template(posterHTML) }\n get shouldRender() {\n const showForNoOp = !!(this.options.poster && this.options.poster.showForNoOp)\n return this.container.playback.name !== 'html_img' && (this.container.playback.getPlaybackType() !== Playback.NO_OP || showForNoOp)\n }\n\n get attributes() {\n return {\n 'class': 'player-poster',\n 'data-poster': ''\n }\n }\n\n get events() {\n return {\n 'click': 'clicked'\n }\n }\n\n get showOnVideoEnd() {\n return !this.options.poster || this.options.poster.showOnVideoEnd || this.options.poster.showOnVideoEnd === undefined\n }\n\n constructor(container) {\n super(container)\n this.hasStartedPlaying = false\n this.playRequested = false\n this.render()\n process.nextTick(() => this.update())\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.update)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.update)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.render)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.showOnVideoEnd && this.listenTo(this.container, Events.CONTAINER_ENDED, this.onStop)\n }\n\n onError(error) {\n this.hasFatalError = error.level === PlayerError.Levels.FATAL\n\n if (this.hasFatalError) {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.showPlayButton()\n }\n }\n\n onPlay() {\n this.hasStartedPlaying = true\n this.update()\n }\n\n onStop() {\n this.hasStartedPlaying = false\n this.playRequested = false\n this.update()\n }\n\n updatePlayButton(show) {\n if (show && (!this.options.chromeless || this.options.allowUserInteraction))\n this.showPlayButton()\n else\n this.hidePlayButton()\n }\n\n showPlayButton() {\n if (this.hasFatalError && !this.options.disableErrorScreen) return\n\n this.$playButton.show()\n this.$el.addClass('clickable')\n }\n\n hidePlayButton() {\n this.$playButton.hide()\n this.$el.removeClass('clickable')\n }\n\n clicked() {\n if (!this.options.chromeless || this.options.allowUserInteraction) {\n this.playRequested = true\n this.update()\n this.container.play()\n }\n return false\n }\n\n shouldHideOnPlay() {\n // Audio broadcasts should keep the poster up; video should hide poster while playing.\n return !this.container.playback.isAudioOnly\n }\n\n update() {\n if (!this.shouldRender)\n return\n\n let showPlayButton = !this.playRequested && !this.hasStartedPlaying && !this.container.buffering\n this.updatePlayButton(showPlayButton)\n this.updatePoster()\n }\n\n updatePoster() {\n if (!this.hasStartedPlaying) this.showPoster()\n else this.hidePoster()\n }\n\n showPoster() {\n this.container.disableMediaControl()\n this.$el.show()\n }\n\n hidePoster() {\n this.container.enableMediaControl()\n if (this.shouldHideOnPlay())\n this.$el.hide()\n }\n\n render() {\n if (!this.shouldRender)\n return\n\n this.$el.html(this.template())\n\n const isRegularPoster = this.options.poster && this.options.poster.custom === undefined\n\n if (isRegularPoster) {\n const posterUrl = this.options.poster.url || this.options.poster\n this.$el.css({ 'background-image': 'url(' + posterUrl + ')' })\n } else if (this.options.poster) { this.$el.css({ 'background': this.options.poster.custom }) }\n\n this.container.$el.append(this.el)\n this.$playWrapper = this.$el.find('.play-wrapper')\n this.$playWrapper.append(playIcon)\n this.$playButton = this.$playWrapper.find('svg')\n this.$playButton.addClass('poster-icon')\n this.$playButton.attr('data-poster', '')\n\n let buttonsColor = this.options.mediacontrol && this.options.mediacontrol.buttons\n if (buttonsColor)\n this.$el.find('svg path').css('fill', buttonsColor)\n\n if (this.options.mediacontrol && this.options.mediacontrol.buttons) {\n buttonsColor = this.options.mediacontrol.buttons\n this.$playButton.css('color', buttonsColor)\n }\n this.update()\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/poster/poster.js","module.exports = \"<div class=\\\"play-wrapper\\\" data-poster></div>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/poster/public/poster.html\n// module id = 191\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./poster.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./poster.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./poster.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/poster/public/poster.scss\n// module id = 192\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".player-poster[data-poster] {\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center;\\n -webkit-box-align: center;\\n -ms-flex-align: center;\\n align-items: center;\\n position: absolute;\\n height: 100%;\\n width: 100%;\\n z-index: 998;\\n top: 0;\\n left: 0;\\n background-color: #000;\\n background-size: cover;\\n background-repeat: no-repeat;\\n background-position: 50% 50%; }\\n .player-poster[data-poster].clickable {\\n cursor: pointer; }\\n .player-poster[data-poster]:hover .play-wrapper[data-poster] {\\n opacity: 1; }\\n .player-poster[data-poster] .play-wrapper[data-poster] {\\n width: 100%;\\n height: 25%;\\n margin: 0 auto;\\n opacity: 0.75;\\n transition: opacity 0.1s ease; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg {\\n height: 100%; }\\n .player-poster[data-poster] .play-wrapper[data-poster] svg path {\\n fill: #fff; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/plugins/poster/public/poster.scss\n// module id = 193\n// module chunks = 0","import GoogleAnalytics from './google_analytics'\nexport default GoogleAnalytics\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/google_analytics/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\n\nexport default class GoogleAnalytics extends ContainerPlugin {\n get name() { return 'google_analytics' }\n constructor(container) {\n super(container)\n if (this.container.options.gaAccount) {\n this.account = this.container.options.gaAccount\n this.trackerName = (this.container.options.gaTrackerName) ? this.container.options.gaTrackerName + '.' : 'Clappr.'\n this.domainName = this.container.options.gaDomainName\n this.currentHDState = undefined\n this.embedScript()\n }\n }\n\n embedScript() {\n if (!window._gat) {\n const script = document.createElement('script')\n script.setAttribute('type', 'text/javascript')\n script.setAttribute('async', 'async')\n script.setAttribute('src', '//www.google-analytics.com/ga.js')\n script.onload = () => this.addEventListeners()\n document.body.appendChild(script)\n } else { this.addEventListeners() }\n\n }\n\n addEventListeners() {\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_READY, this.onReady)\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.onPlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onStop)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.onPause)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.onEnded)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERING, this.onBuffering)\n this.listenTo(this.container, Events.CONTAINER_STATE_BUFFERFULL, this.onBufferFull)\n this.listenTo(this.container, Events.CONTAINER_ERROR, this.onError)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKSTATE, this.onPlaybackChanged)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, (event) => this.onVolumeChanged(event))\n this.listenTo(this.container, Events.CONTAINER_SEEK, (event) => this.onSeek(event))\n this.listenTo(this.container, Events.CONTAINER_FULL_SCREEN, this.onFullscreen)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.onHD)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.onDVR)\n }\n _gaq.push([this.trackerName + '_setAccount', this.account])\n if (this.domainName)\n _gaq.push([this.trackerName + '_setDomainName', this.domainName])\n }\n\n onReady() {\n this.push(['Video', 'Playback', this.container.playback.name])\n }\n\n onPlay() {\n this.push(['Video', 'Play', this.container.playback.src])\n }\n\n onStop() {\n this.push(['Video', 'Stop', this.container.playback.src])\n }\n\n onEnded() {\n this.push(['Video', 'Ended', this.container.playback.src])\n }\n\n onBuffering() {\n this.push(['Video', 'Buffering', this.container.playback.src])\n }\n\n onBufferFull() {\n this.push(['Video', 'Bufferfull', this.container.playback.src])\n }\n\n onError() {\n this.push(['Video', 'Error', this.container.playback.src])\n }\n\n onHD(isHD) {\n const status = isHD ? 'ON': 'OFF'\n if (status !== this.currentHDState) {\n this.currentHDState = status\n this.push(['Video', 'HD - ' + status, this.container.playback.src])\n }\n }\n\n onPlaybackChanged(playbackState) {\n if (playbackState.type !== null)\n this.push(['Video', 'Playback Type - ' + playbackState.type, this.container.playback.src])\n\n }\n\n onDVR(dvrInUse) {\n const status = dvrInUse? 'ON': 'OFF'\n this.push(['Interaction', 'DVR - ' + status, this.container.playback.src])\n }\n\n onPause() {\n this.push(['Video', 'Pause', this.container.playback.src])\n }\n\n onSeek() {\n this.push(['Video', 'Seek', this.container.playback.src])\n }\n\n onVolumeChanged() {\n this.push(['Interaction', 'Volume', this.container.playback.src])\n }\n\n onFullscreen() {\n this.push(['Interaction', 'Fullscreen', this.container.playback.src])\n }\n\n\n push(array) {\n const res = [this.trackerName + '_trackEvent'].concat(array)\n _gaq.push(res)\n }\n\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/google_analytics/google_analytics.js","//Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport ContainerPlugin from '../../base/container_plugin'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\n\nexport default class ClickToPausePlugin extends ContainerPlugin {\n get name() { return 'click_to_pause' }\n\n constructor(container) {\n super(container)\n }\n\n bindEvents() {\n this.listenTo(this.container, Events.CONTAINER_CLICK, this.click)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n }\n\n click() {\n if (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()) {\n if (this.container.isPlaying())\n this.container.pause()\n else\n this.container.play()\n\n }\n }\n\n settingsUpdate() {\n const pointerEnabled = this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrEnabled()\n if (pointerEnabled === this.pointerEnabled) return\n\n const method = pointerEnabled ? 'addClass' : 'removeClass'\n this.container.$el[method]('pointer-enabled')\n this.pointerEnabled = pointerEnabled\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/click_to_pause/click_to_pause.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\n/**\n * The MediaControl is responsible for displaying the Player controls.\n */\n\nimport { Config, Fullscreen, formatTime, extend, removeArrayItem } from '../../base/utils'\nimport { Kibo } from '../../vendor'\n\nimport Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport Browser from '../../components/browser'\nimport Mediator from '../../components/mediator'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\n\nimport $ from 'clappr-zepto'\n\nimport './public/media-control.scss'\nimport mediaControlHTML from './public/media-control.html'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\nimport stopIcon from '../../icons/03-stop.svg'\nimport volumeIcon from '../../icons/04-volume.svg'\nimport volumeMuteIcon from '../../icons/05-mute.svg'\nimport fullscreenIcon from '../../icons/06-expand.svg'\nimport exitFullscreenIcon from '../../icons/07-shrink.svg'\nimport hdIcon from '../../icons/08-hd.svg'\n\nexport default class MediaControl extends UICorePlugin {\n get name() { return 'media_control' }\n get disabled() {\n let playbackIsNOOP = this.container && this.container.getPlaybackType() === Playback.NO_OP\n return this.userDisabled || playbackIsNOOP\n }\n\n get container() { return this.core && this.core.activeContainer }\n\n get playback() { return this.core && this.core.activePlayback }\n\n get attributes() {\n return {\n 'class': 'media-control',\n 'data-media-control': ''\n }\n }\n\n get events() {\n return {\n 'click [data-play]': 'play',\n 'click [data-pause]': 'pause',\n 'click [data-playpause]': 'togglePlayPause',\n 'click [data-stop]': 'stop',\n 'click [data-playstop]': 'togglePlayStop',\n 'click [data-fullscreen]': 'toggleFullscreen',\n 'click .bar-container[data-seekbar]': 'seek',\n 'click .bar-container[data-volume]': 'onVolumeClick',\n 'click .drawer-icon[data-volume]': 'toggleMute',\n 'mouseenter .drawer-container[data-volume]': 'showVolumeBar',\n 'mouseleave .drawer-container[data-volume]': 'hideVolumeBar',\n 'mousedown .bar-container[data-volume]': 'startVolumeDrag',\n 'mousemove .bar-container[data-volume]': 'mousemoveOnVolumeBar',\n 'mousedown .bar-scrubber[data-seekbar]': 'startSeekDrag',\n 'mousemove .bar-container[data-seekbar]': 'mousemoveOnSeekBar',\n 'mouseleave .bar-container[data-seekbar]': 'mouseleaveOnSeekBar',\n 'mouseenter .media-control-layer[data-controls]': 'setUserKeepVisible',\n 'mouseleave .media-control-layer[data-controls]': 'resetUserKeepVisible'\n }\n }\n\n get template() { return template(mediaControlHTML) }\n\n get volume() { return (this.container && this.container.isReady) ? this.container.volume : this.intendedVolume }\n get muted() { return this.volume === 0 }\n\n constructor(core) {\n super(core)\n this.persistConfig = this.options.persistConfig\n this.currentPositionValue = null\n this.currentDurationValue = null\n this.keepVisible = false\n this.fullScreenOnVideoTagSupported = null // unknown\n this.setInitialVolume()\n this.settings = {\n left: ['play', 'stop', 'pause'],\n right: ['volume'],\n default: ['position', 'seekbar', 'duration']\n }\n this.kibo = new Kibo(this.options.focusElement)\n this.bindKeyEvents()\n\n if (this.container) {\n if (!$.isEmptyObject(this.container.settings))\n this.settings = $.extend({}, this.container.settings)\n } else {\n this.settings = {}\n }\n\n this.userDisabled = false\n if ((this.container && this.container.mediaControlDisabled) || this.options.chromeless)\n this.disable()\n\n this.stopDragHandler = (event) => this.stopDrag(event)\n this.updateDragHandler = (event) => this.updateDrag(event)\n $(document).bind('mouseup', this.stopDragHandler)\n $(document).bind('mousemove', this.updateDragHandler)\n }\n\n getExternalInterface() {\n return {\n setVolume: this.setVolume,\n getVolume: () => this.volume,\n }\n }\n\n bindEvents() {\n this.stopListening()\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onActiveContainerChanged)\n this.listenTo(this.core, Events.CORE_MOUSE_MOVE, this.show)\n this.listenTo(this.core, Events.CORE_MOUSE_LEAVE, () => this.hide(this.options.hideMediaControlDelay))\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this.show)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n Mediator.on(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n this.bindContainerEvents()\n }\n\n bindContainerEvents() {\n if (!this.container) return\n this.listenTo(this.container, Events.CONTAINER_PLAY, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_PAUSE, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.changeTogglePlay)\n this.listenTo(this.container, Events.CONTAINER_DBLCLICK, this.toggleFullscreen)\n this.listenTo(this.container, Events.CONTAINER_TIMEUPDATE, this.onTimeUpdate)\n this.listenTo(this.container, Events.CONTAINER_PROGRESS, this.updateProgressBar)\n this.listenTo(this.container, Events.CONTAINER_SETTINGSUPDATE, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.settingsUpdate)\n this.listenTo(this.container, Events.CONTAINER_HIGHDEFINITIONUPDATE, this.highDefinitionUpdate)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_DISABLE, this.disable)\n this.listenTo(this.container, Events.CONTAINER_MEDIACONTROL_ENABLE, this.enable)\n this.listenTo(this.container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(this.container, Events.CONTAINER_VOLUME, this.onVolumeChanged)\n this.listenTo(this.container, Events.CONTAINER_OPTIONS_CHANGE, this.setInitialVolume)\n if (this.container.playback.el.nodeName.toLowerCase() === 'video') {\n // wait until the metadata has loaded and then check if fullscreen on video tag is supported\n this.listenToOnce(this.container, Events.CONTAINER_LOADEDMETADATA, this.onLoadedMetadataOnVideoTag)\n }\n }\n\n disable() {\n this.userDisabled = true\n this.hide()\n this.unbindKeyEvents()\n this.$el.hide()\n }\n\n enable() {\n if (this.options.chromeless) return\n this.userDisabled = false\n this.bindKeyEvents()\n this.show()\n }\n\n play() {\n this.container && this.container.play()\n }\n\n pause() {\n this.container && this.container.pause()\n }\n\n stop() {\n this.container && this.container.stop()\n }\n\n setInitialVolume() {\n const initialVolume = (this.persistConfig) ? Config.restore('volume') : 100\n const options = this.container && this.container.options || this.options\n this.setVolume(options.mute ? 0 : initialVolume, true)\n }\n\n onVolumeChanged() {\n this.updateVolumeUI()\n }\n\n onLoadedMetadataOnVideoTag() {\n let video = this.playback && this.playback.el\n // video.webkitSupportsFullscreen is deprecated but iOS appears to only use this\n // see https://github.com/clappr/clappr/issues/1127\n if (!Fullscreen.fullscreenEnabled() && video.webkitSupportsFullscreen) {\n this.fullScreenOnVideoTagSupported = true\n this.settingsUpdate()\n }\n }\n\n updateVolumeUI() {\n // this will be called after a render\n if (!this.rendered) return\n\n // update volume bar scrubber/fill on bar mode\n this.$volumeBarContainer.find('.bar-fill-2').css({})\n const containerWidth = this.$volumeBarContainer.width()\n const barWidth = this.$volumeBarBackground.width()\n const offset = (containerWidth - barWidth) / 2.0\n const pos = barWidth * this.volume / 100.0 + offset\n this.$volumeBarFill.css({ width: `${this.volume}%` })\n this.$volumeBarScrubber.css({ left: pos })\n\n // update volume bar segments on segmented bar mode\n this.$volumeBarContainer.find('.segmented-bar-element').removeClass('fill')\n const item = Math.ceil(this.volume / 10.0)\n this.$volumeBarContainer.find('.segmented-bar-element').slice(0, item).addClass('fill')\n this.$volumeIcon.html('')\n this.$volumeIcon.removeClass('muted')\n if (!this.muted) {\n this.$volumeIcon.append(volumeIcon)\n } else {\n this.$volumeIcon.append(volumeMuteIcon)\n this.$volumeIcon.addClass('muted')\n }\n this.applyButtonStyle(this.$volumeIcon)\n }\n\n changeTogglePlay() {\n this.$playPauseToggle.html('')\n this.$playStopToggle.html('')\n if (this.container && this.container.isPlaying()) {\n this.$playPauseToggle.append(pauseIcon)\n this.$playStopToggle.append(stopIcon)\n this.trigger(Events.MEDIACONTROL_PLAYING)\n } else {\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.trigger(Events.MEDIACONTROL_NOTPLAYING)\n Browser.isMobile && this.show()\n }\n this.applyButtonStyle(this.$playPauseToggle)\n this.applyButtonStyle(this.$playStopToggle)\n }\n\n mousemoveOnSeekBar(event) {\n if (this.settings.seekEnabled) {\n const offsetX = event.pageX - this.$seekBarContainer.offset().left - (this.$seekBarHover.width() / 2)\n this.$seekBarHover.css({ left: offsetX })\n }\n this.trigger(Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, event)\n }\n\n mouseleaveOnSeekBar(event) {\n this.trigger(Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, event)\n }\n\n onVolumeClick(event) {\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n mousemoveOnVolumeBar(event) {\n this.draggingVolumeBar && this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n playerResize(size) {\n this.$fullscreenToggle.html('')\n let icon = Fullscreen.isFullscreen() ? exitFullscreenIcon : fullscreenIcon\n this.$fullscreenToggle.append(icon)\n this.applyButtonStyle(this.$fullscreenToggle)\n this.$el.find('.media-control').length !== 0 && this.$el.removeClass('w320')\n if (size.width <= 320 || this.options.hideVolumeBar) this.$el.addClass('w320')\n }\n\n togglePlayPause() {\n this.container.isPlaying() ? this.container.pause() : this.container.play()\n return false\n }\n\n togglePlayStop() {\n this.container.isPlaying() ? this.container.stop() : this.container.play()\n }\n\n startSeekDrag(event) {\n if (!this.settings.seekEnabled) return\n this.draggingSeekBar = true\n this.$el.addClass('dragging')\n this.$seekBarLoaded.addClass('media-control-notransition')\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n event && event.preventDefault()\n }\n\n startVolumeDrag(event) {\n this.draggingVolumeBar = true\n this.$el.addClass('dragging')\n event && event.preventDefault()\n }\n\n stopDrag(event) {\n this.draggingSeekBar && this.seek(event)\n this.$el.removeClass('dragging')\n this.$seekBarLoaded.removeClass('media-control-notransition')\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition dragging')\n this.draggingSeekBar = false\n this.draggingVolumeBar = false\n }\n\n updateDrag(event) {\n if (this.draggingSeekBar) {\n event.preventDefault()\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.setSeekPercentage(pos)\n } else if (this.draggingVolumeBar) {\n event.preventDefault()\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n }\n\n getVolumeFromUIEvent(event) {\n const offsetY = event.pageX - this.$volumeBarContainer.offset().left\n const volumeFromUI = (offsetY / this.$volumeBarContainer.width()) * 100\n return volumeFromUI\n }\n\n toggleMute() {\n this.setVolume(this.muted ? 100 : 0)\n }\n\n setVolume(value, isInitialVolume = false) {\n value = Math.min(100, Math.max(value, 0))\n // this will hold the intended volume\n // it may not actually get set to this straight away\n // if the container is not ready etc\n this.intendedVolume = value\n this.persistConfig && !isInitialVolume && Config.persist('volume', value)\n const setWhenContainerReady = () => {\n if (this.container && this.container.isReady) {\n this.container.setVolume(value)\n } else {\n this.listenToOnce(this.container, Events.CONTAINER_READY, () => {\n this.container.setVolume(value)\n })\n }\n }\n\n if (!this.container)\n this.listenToOnce(this, Events.MEDIACONTROL_CONTAINERCHANGED, () => setWhenContainerReady())\n else\n setWhenContainerReady()\n\n }\n\n toggleFullscreen() {\n this.trigger(Events.MEDIACONTROL_FULLSCREEN, this.name)\n this.container.fullscreen()\n this.core.toggleFullscreen()\n this.resetUserKeepVisible()\n }\n\n onActiveContainerChanged() {\n this.fullScreenOnVideoTagSupported = null\n this.bindEvents()\n Mediator.off(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n // set the new container to match the volume of the last one\n this.setInitialVolume()\n this.changeTogglePlay()\n this.bindContainerEvents()\n this.settingsUpdate()\n this.container && this.container.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.container.isDvrInUse())\n this.container && this.container.mediaControlDisabled && this.disable()\n this.trigger(Events.MEDIACONTROL_CONTAINERCHANGED)\n }\n\n showVolumeBar() {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.$volumeBarContainer.removeClass('volume-bar-hide')\n }\n\n hideVolumeBar(timeout = 400) {\n if (!this.$volumeBarContainer) return\n if (this.draggingVolumeBar) {\n this.hideVolumeId = setTimeout(() => this.hideVolumeBar(), timeout)\n } else {\n this.hideVolumeId && clearTimeout(this.hideVolumeId)\n this.hideVolumeId = setTimeout(() => this.$volumeBarContainer.addClass('volume-bar-hide'), timeout)\n }\n }\n\n ended() {\n this.changeTogglePlay()\n }\n\n updateProgressBar(progress) {\n const loadedStart = progress.start / progress.total * 100\n const loadedEnd = progress.current / progress.total * 100\n this.$seekBarLoaded.css({ left: `${loadedStart}%`, width: `${loadedEnd - loadedStart}%` })\n }\n\n onTimeUpdate(timeProgress) {\n if (this.draggingSeekBar) return\n // TODO why should current time ever be negative?\n const position = (timeProgress.current < 0) ? timeProgress.total : timeProgress.current\n\n this.currentPositionValue = position\n this.currentDurationValue = timeProgress.total\n this.renderSeekBar()\n }\n\n renderSeekBar() {\n // this will be triggered as soon as these become available\n if (this.currentPositionValue === null || this.currentDurationValue === null) return\n\n // default to 100%\n this.currentSeekBarPercentage = 100\n if (this.container && (this.container.getPlaybackType() !== Playback.LIVE || this.container.isDvrInUse()))\n this.currentSeekBarPercentage = (this.currentPositionValue / this.currentDurationValue) * 100\n\n this.setSeekPercentage(this.currentSeekBarPercentage)\n\n const newPosition = formatTime(this.currentPositionValue)\n const newDuration = formatTime(this.currentDurationValue)\n if (newPosition !== this.displayedPosition) {\n this.$position.text(newPosition)\n this.displayedPosition = newPosition\n }\n if (newDuration !== this.displayedDuration) {\n this.$duration.text(newDuration)\n this.displayedDuration = newDuration\n }\n }\n\n seek(event) {\n if (!this.settings.seekEnabled) return\n const offsetX = event.pageX - this.$seekBarContainer.offset().left\n let pos = offsetX / this.$seekBarContainer.width() * 100\n pos = Math.min(100, Math.max(pos, 0))\n this.container && this.container.seekPercentage(pos)\n this.setSeekPercentage(pos)\n return false\n }\n\n setKeepVisible() {\n this.keepVisible = true\n }\n\n resetKeepVisible() {\n this.keepVisible = false\n }\n\n setUserKeepVisible() {\n this.userKeepVisible = true\n }\n\n resetUserKeepVisible() {\n this.userKeepVisible = false\n }\n\n isVisible() {\n return !this.$el.hasClass('media-control-hide')\n }\n\n show(event) {\n if (this.disabled) return\n\n const timeout = 2000\n let mousePointerMoved = event && (event.clientX !== this.lastMouseX && event.clientY !== this.lastMouseY)\n if (!event || mousePointerMoved || navigator.userAgent.match(/firefox/i)) {\n clearTimeout(this.hideId)\n this.$el.show()\n this.trigger(Events.MEDIACONTROL_SHOW, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_SHOW, this.name)\n this.$el.removeClass('media-control-hide')\n this.hideId = setTimeout(() => this.hide(), timeout)\n if (event) {\n this.lastMouseX = event.clientX\n this.lastMouseY = event.clientY\n }\n }\n const showing = true\n this.updateCursorStyle(showing)\n }\n\n hide(delay = 0) {\n if (!this.isVisible()) return\n\n const timeout = delay || 2000\n clearTimeout(this.hideId)\n if (!this.disabled && this.options.hideMediaControl === false) return\n\n let hasKeepVisibleRequested = this.userKeepVisible || this.keepVisible\n let hasDraggingAction = this.draggingSeekBar || this.draggingVolumeBar\n\n if (!this.disabled && (delay || hasKeepVisibleRequested || hasDraggingAction)) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n } else {\n this.trigger(Events.MEDIACONTROL_HIDE, this.name)\n this.container && this.container.trigger(Events.CONTAINER_MEDIACONTROL_HIDE, this.name)\n this.$el.addClass('media-control-hide')\n this.hideVolumeBar(0)\n const showing = false\n this.updateCursorStyle(showing)\n }\n }\n\n updateCursorStyle(showing) {\n if (showing)\n this.core.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.core.$el.addClass('nocursor')\n }\n\n settingsUpdate() {\n const newSettings = this.getSettings()\n if (newSettings && !this.fullScreenOnVideoTagSupported && !Fullscreen.fullscreenEnabled()) {\n // remove fullscreen from settings if it is present\n newSettings.default && removeArrayItem(newSettings.default, 'fullscreen')\n newSettings.left && removeArrayItem(newSettings.left, 'fullscreen')\n newSettings.right && removeArrayItem(newSettings.right, 'fullscreen')\n }\n const settingsChanged = JSON.stringify(this.settings) !== JSON.stringify(newSettings)\n if (settingsChanged) {\n this.settings = newSettings\n this.render()\n }\n }\n\n getSettings() {\n return $.extend(true, {}, this.container && this.container.settings)\n }\n\n highDefinitionUpdate(isHD) {\n this.isHD = isHD\n const method = isHD ? 'addClass' : 'removeClass'\n this.$hdIndicator[method]('enabled')\n }\n\n createCachedElements() {\n const $layer = this.$el.find('.media-control-layer')\n this.$duration = $layer.find('.media-control-indicator[data-duration]')\n this.$fullscreenToggle = $layer.find('button.media-control-button[data-fullscreen]')\n this.$playPauseToggle = $layer.find('button.media-control-button[data-playpause]')\n this.$playStopToggle = $layer.find('button.media-control-button[data-playstop]')\n this.$position = $layer.find('.media-control-indicator[data-position]')\n this.$seekBarContainer = $layer.find('.bar-container[data-seekbar]')\n this.$seekBarHover = $layer.find('.bar-hover[data-seekbar]')\n this.$seekBarLoaded = $layer.find('.bar-fill-1[data-seekbar]')\n this.$seekBarPosition = $layer.find('.bar-fill-2[data-seekbar]')\n this.$seekBarScrubber = $layer.find('.bar-scrubber[data-seekbar]')\n this.$volumeBarContainer = $layer.find('.bar-container[data-volume]')\n this.$volumeContainer = $layer.find('.drawer-container[data-volume]')\n this.$volumeIcon = $layer.find('.drawer-icon[data-volume]')\n this.$volumeBarBackground = this.$el.find('.bar-background[data-volume]')\n this.$volumeBarFill = this.$el.find('.bar-fill-1[data-volume]')\n this.$volumeBarScrubber = this.$el.find('.bar-scrubber[data-volume]')\n this.$hdIndicator = this.$el.find('button.media-control-button[data-hd-indicator]')\n this.resetIndicators()\n this.initializeIcons()\n }\n\n resetIndicators() {\n this.displayedPosition = this.$position.text()\n this.displayedDuration = this.$duration.text()\n }\n\n initializeIcons() {\n const $layer = this.$el.find('.media-control-layer')\n $layer.find('button.media-control-button[data-play]').append(playIcon)\n $layer.find('button.media-control-button[data-pause]').append(pauseIcon)\n $layer.find('button.media-control-button[data-stop]').append(stopIcon)\n this.$playPauseToggle.append(playIcon)\n this.$playStopToggle.append(playIcon)\n this.$volumeIcon.append(volumeIcon)\n this.$fullscreenToggle.append(fullscreenIcon)\n this.$hdIndicator.append(hdIcon)\n }\n\n setSeekPercentage(value) {\n value = Math.max(Math.min(value, 100.0), 0)\n // not changed since last update\n if (this.displayedSeekBarPercentage === value) return\n\n this.displayedSeekBarPercentage = value\n this.$seekBarPosition.removeClass('media-control-notransition')\n this.$seekBarScrubber.removeClass('media-control-notransition')\n this.$seekBarPosition.css({ width: `${value}%` })\n this.$seekBarScrubber.css({ left: `${value}%` })\n }\n\n seekRelative(delta) {\n if (!this.settings.seekEnabled) return\n\n const currentTime = this.container.getCurrentTime()\n const duration = this.container.getDuration()\n let position = Math.min(Math.max(currentTime + delta, 0), duration)\n position = Math.min(position * 100 / duration, 100)\n this.container.seekPercentage(position)\n }\n\n bindKeyAndShow(key, callback) {\n this.kibo.down(key, () => {\n this.show()\n return callback()\n })\n }\n\n bindKeyEvents() {\n if (Browser.isMobile || this.options.disableKeyboardShortcuts) return\n\n this.unbindKeyEvents()\n this.kibo = new Kibo(this.options.focusElement || this.options.parentElement)\n this.bindKeyAndShow('space', () => this.togglePlayPause())\n this.bindKeyAndShow('left', () => this.seekRelative(-5))\n this.bindKeyAndShow('right', () => this.seekRelative(5))\n this.bindKeyAndShow('shift left', () => this.seekRelative(-10))\n this.bindKeyAndShow('shift right', () => this.seekRelative(10))\n this.bindKeyAndShow('shift ctrl left', () => this.seekRelative(-15))\n this.bindKeyAndShow('shift ctrl right', () => this.seekRelative(15))\n const keys = ['1','2','3','4','5','6','7','8','9','0']\n keys.forEach((i) => {\n this.bindKeyAndShow(i, () => {\n this.settings.seekEnabled && this.container && this.container.seekPercentage(i * 10)\n })\n })\n }\n\n unbindKeyEvents() {\n if (this.kibo) {\n this.kibo.off('space')\n this.kibo.off('left')\n this.kibo.off('right')\n this.kibo.off('shift left')\n this.kibo.off('shift right')\n this.kibo.off('shift ctrl left')\n this.kibo.off('shift ctrl right')\n this.kibo.off(['1','2','3','4','5','6','7','8','9','0'])\n }\n }\n\n parseColors() {\n if (this.options.mediacontrol) {\n this.buttonsColor = this.options.mediacontrol.buttons\n const seekbarColor = this.options.mediacontrol.seekbar\n this.$el.find('.bar-fill-2[data-seekbar]').css('background-color', seekbarColor)\n this.$el.find('.media-control-icon svg path').css('fill', this.buttonsColor)\n this.$el.find('.segmented-bar-element[data-volume]').css('boxShadow', 'inset 2px 0 0 ' + this.buttonsColor)\n }\n }\n\n applyButtonStyle(element) {\n this.buttonsColor && element && $(element).find('svg path').css('fill', this.buttonsColor)\n }\n\n destroy() {\n $(document).unbind('mouseup', this.stopDragHandler)\n $(document).unbind('mousemove', this.updateDragHandler)\n this.unbindKeyEvents()\n this.stopListening()\n super.destroy()\n }\n\n /**\n * enables to configure the media control after its creation\n * @method configure\n * @param {Object} options all the options to change in form of a javascript object\n */\n configure() {\n this.options.chromeless ? this.disable() : this.enable()\n this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE)\n }\n\n render() {\n const timeout = this.options.hideMediaControlDelay || 2000\n this.settings && this.$el.html(this.template({ settings: this.settings }))\n this.createCachedElements()\n this.$playPauseToggle.addClass('paused')\n this.$playStopToggle.addClass('stopped')\n\n this.changeTogglePlay()\n\n if (this.container) {\n this.hideId = setTimeout(() => this.hide(), timeout)\n this.disabled && this.hide()\n }\n\n // Video volume cannot be changed with Safari on mobile devices\n // Display mute/unmute icon only if Safari version >= 10\n if (Browser.isSafari && Browser.isMobile) {\n if (Browser.version < 10)\n this.$volumeContainer.css('display','none')\n else\n this.$volumeBarContainer.css('display','none')\n\n }\n\n this.$seekBarPosition.addClass('media-control-notransition')\n this.$seekBarScrubber.addClass('media-control-notransition')\n\n let previousSeekPercentage = 0\n if (this.displayedSeekBarPercentage)\n previousSeekPercentage = this.displayedSeekBarPercentage\n\n this.displayedSeekBarPercentage = null\n this.setSeekPercentage(previousSeekPercentage)\n\n process.nextTick(() => {\n !this.settings.seekEnabled && this.$seekBarContainer.addClass('seek-disabled')\n !Browser.isMobile && !this.options.disableKeyboardShortcuts && this.bindKeyEvents()\n this.playerResize({ width: this.options.width, height: this.options.height })\n this.hideVolumeBar(0)\n })\n\n this.parseColors()\n this.highDefinitionUpdate(this.isHD)\n\n this.core.$el.append(this.el)\n\n this.rendered = true\n this.updateVolumeUI()\n this.trigger(Events.MEDIACONTROL_RENDERED)\n return this\n }\n}\n\nMediaControl.extend = function(properties) {\n return extend(MediaControl, properties)\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/media_control/media_control.js","module.exports = { \"default\": require(\"core-js/library/fn/json/stringify\"), __esModule: true };\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/babel-runtime/core-js/json/stringify.js\n// module id = 198\n// module chunks = 0","var core = require('../../modules/_core')\n , $JSON = core.JSON || (core.JSON = {stringify: JSON.stringify});\nmodule.exports = function stringify(it){ // eslint-disable-line no-unused-vars\n return $JSON.stringify.apply($JSON, arguments);\n};\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/core-js/library/fn/json/stringify.js\n// module id = 199\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./media-control.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./media-control.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./media-control.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/media_control/public/media-control.scss\n// module id = 200\n// module chunks = 0","var escape = require(\"../../../../node_modules/css-loader/lib/url/escape.js\");\nexports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".media-control-notransition {\\n transition: none !important; }\\n\\n.media-control[data-media-control] {\\n position: absolute;\\n width: 100%;\\n height: 100%;\\n z-index: 9999;\\n pointer-events: none; }\\n .media-control[data-media-control].dragging {\\n pointer-events: auto;\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\" + escape(require(\"./closed-hand.cur\")) + \"), move; }\\n .media-control[data-media-control].dragging * {\\n cursor: -webkit-grabbing !important;\\n cursor: grabbing !important;\\n cursor: url(\" + escape(require(\"./closed-hand.cur\")) + \"), move; }\\n .media-control[data-media-control] .media-control-background[data-background] {\\n position: absolute;\\n height: 40%;\\n width: 100%;\\n bottom: 0;\\n background: linear-gradient(transparent, rgba(0, 0, 0, 0.9));\\n transition: opacity 0.6s ease-out; }\\n .media-control[data-media-control] .media-control-icon {\\n line-height: 0;\\n letter-spacing: 0;\\n speak: none;\\n color: #fff;\\n opacity: 0.5;\\n vertical-align: middle;\\n text-align: left;\\n transition: all 0.1s ease; }\\n .media-control[data-media-control] .media-control-icon:hover {\\n color: white;\\n opacity: 0.75;\\n text-shadow: rgba(255, 255, 255, 0.8) 0 0 5px; }\\n .media-control[data-media-control].media-control-hide .media-control-background[data-background] {\\n opacity: 0; }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] {\\n bottom: -50px; }\\n .media-control[data-media-control].media-control-hide .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] {\\n position: absolute;\\n bottom: 7px;\\n width: 100%;\\n height: 32px;\\n font-size: 0;\\n vertical-align: middle;\\n pointer-events: auto;\\n transition: bottom 0.4s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-left-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n left: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-center-panel[data-media-control] {\\n height: 100%;\\n text-align: center;\\n line-height: 32px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-right-panel[data-media-control] {\\n position: absolute;\\n top: 0;\\n right: 4px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button {\\n background-color: transparent;\\n border: 0;\\n margin: 0 6px;\\n padding: 0;\\n cursor: pointer;\\n display: inline-block;\\n width: 32px;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg {\\n width: 100%;\\n height: 22px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button svg path {\\n fill: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button:focus {\\n outline: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-play] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-pause] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-stop] {\\n float: left;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-fullscreen] {\\n float: right;\\n background-color: transparent;\\n border: 0;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator] {\\n background-color: transparent;\\n border: 0;\\n cursor: default;\\n display: none;\\n float: right;\\n height: 100%; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled {\\n display: block;\\n opacity: 1.0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-hd-indicator].enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playpause] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] button.media-control-button[data-playstop] {\\n float: left; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position], .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n display: inline-block;\\n font-size: 10px;\\n color: white;\\n cursor: default;\\n line-height: 32px;\\n position: relative; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-position] {\\n margin: 0 6px 0 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration] {\\n color: rgba(255, 255, 255, 0.5);\\n margin-right: 6px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .media-control-indicator[data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] {\\n position: absolute;\\n top: -20px;\\n left: 0;\\n display: inline-block;\\n vertical-align: middle;\\n width: 100%;\\n height: 25px;\\n cursor: pointer; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] {\\n width: 100%;\\n height: 1px;\\n position: relative;\\n top: 12px;\\n background-color: #666666; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-1[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar]:hover .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled {\\n cursor: default; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar].seek-disabled:hover .bar-background[data-seekbar] .bar-hover[data-seekbar] {\\n opacity: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] {\\n position: absolute;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n top: 2px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-scrubber[data-seekbar] .bar-scrubber-icon[data-seekbar] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] {\\n float: right;\\n display: inline-block;\\n height: 32px;\\n cursor: pointer;\\n margin: 0 6px;\\n box-sizing: border-box; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] {\\n float: left;\\n bottom: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] {\\n background-color: transparent;\\n border: 0;\\n box-sizing: content-box;\\n width: 32px;\\n height: 32px;\\n opacity: 0.5; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume]:hover {\\n opacity: 0.75; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg {\\n height: 24px;\\n position: relative;\\n top: 3px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume] svg path {\\n fill: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .drawer-icon-container[data-volume] .drawer-icon[data-volume].muted svg {\\n margin-left: 2px; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] {\\n float: left;\\n position: relative;\\n overflow: hidden;\\n top: 6px;\\n width: 42px;\\n height: 18px;\\n padding: 3px 0;\\n transition: width .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] {\\n height: 1px;\\n position: relative;\\n top: 7px;\\n margin: 0 3px;\\n background-color: #666666; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-1[data-volume] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #c2c2c2;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-fill-2[data-volume] {\\n position: absolute;\\n top: 0;\\n left: 0;\\n width: 0;\\n height: 100%;\\n background-color: #005aff;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-background[data-volume] .bar-hover[data-volume] {\\n opacity: 0;\\n position: absolute;\\n top: -3px;\\n width: 5px;\\n height: 7px;\\n background-color: rgba(255, 255, 255, 0.5);\\n transition: opacity 0.1s ease; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] {\\n position: absolute;\\n -webkit-transform: translateX(-50%);\\n transform: translateX(-50%);\\n top: 0px;\\n left: 0;\\n width: 20px;\\n height: 20px;\\n opacity: 1;\\n transition: all 0.1s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .bar-scrubber[data-volume] .bar-scrubber-icon[data-volume] {\\n position: absolute;\\n left: 6px;\\n top: 6px;\\n width: 8px;\\n height: 8px;\\n border-radius: 10px;\\n box-shadow: 0 0 0 6px rgba(255, 255, 255, 0.2);\\n background-color: white; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume] {\\n float: left;\\n width: 4px;\\n padding-left: 2px;\\n height: 12px;\\n opacity: 0.5;\\n box-shadow: inset 2px 0 0 white;\\n transition: -webkit-transform .2s ease-out;\\n transition: transform .2s ease-out;\\n transition: transform .2s ease-out, -webkit-transform .2s ease-out; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume].fill {\\n box-shadow: inset 2px 0 0 #fff;\\n opacity: 1; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:nth-of-type(1) {\\n padding-left: 0; }\\n .media-control[data-media-control] .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume] .segmented-bar-element[data-volume]:hover {\\n -webkit-transform: scaleY(1.5);\\n transform: scaleY(1.5); }\\n .media-control[data-media-control].w320 .media-control-layer[data-controls] .drawer-container[data-volume] .bar-container[data-volume].volume-bar-hide {\\n width: 0;\\n height: 12px;\\n top: 9px;\\n padding: 0; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/plugins/media_control/public/media-control.scss\n// module id = 201\n// module chunks = 0","module.exports = \"<div class=\\\"media-control-background\\\" data-background></div>\\n<div class=\\\"media-control-layer\\\" data-controls>\\n <% var renderBar = function(name) { %>\\n <div class=\\\"bar-container\\\" data-<%= name %>>\\n <div class=\\\"bar-background\\\" data-<%= name %>>\\n <div class=\\\"bar-fill-1\\\" data-<%= name %>></div>\\n <div class=\\\"bar-fill-2\\\" data-<%= name %>></div>\\n <div class=\\\"bar-hover\\\" data-<%= name %>></div>\\n </div>\\n <div class=\\\"bar-scrubber\\\" data-<%= name %>>\\n <div class=\\\"bar-scrubber-icon\\\" data-<%= name %>></div>\\n </div>\\n </div>\\n <% }; %>\\n <% var renderSegmentedBar = function(name, segments) {\\n segments = segments || 10; %>\\n <div class=\\\"bar-container\\\" data-<%= name %>>\\n <% for (var i = 0; i < segments; i++) { %>\\n <div class=\\\"segmented-bar-element\\\" data-<%= name %>></div>\\n <% } %>\\n </div>\\n <% }; %>\\n <% var renderDrawer = function(name, renderContent) { %>\\n <div class=\\\"drawer-container\\\" data-<%= name %>>\\n <div class=\\\"drawer-icon-container\\\" data-<%= name %>>\\n <div class=\\\"drawer-icon media-control-icon\\\" data-<%= name %>></div>\\n <span class=\\\"drawer-text\\\" data-<%= name %>></span>\\n </div>\\n <% renderContent(name); %>\\n </div>\\n <% }; %>\\n <% var renderIndicator = function(name) { %>\\n <div class=\\\"media-control-indicator\\\" data-<%= name %>></div>\\n <% }; %>\\n <% var renderButton = function(name) { %>\\n <button type=\\\"button\\\" class=\\\"media-control-button media-control-icon\\\" data-<%= name %> aria-label=\\\"<%= name %>\\\"></button>\\n <% }; %>\\n <% var templates = {\\n bar: renderBar,\\n segmentedBar: renderSegmentedBar,\\n };\\n var render = function(settingsList) {\\n settingsList.forEach(function(setting) {\\n if(setting === \\\"seekbar\\\") {\\n renderBar(setting);\\n } else if (setting === \\\"volume\\\") {\\n renderDrawer(setting, settings.volumeBarTemplate ? templates[settings.volumeBarTemplate] : function(name) { return renderSegmentedBar(name); });\\n } else if (setting === \\\"duration\\\" || setting === \\\"position\\\") {\\n renderIndicator(setting);\\n } else {\\n renderButton(setting);\\n }\\n });\\n }; %>\\n <% if (settings.default && settings.default.length) { %>\\n <div class=\\\"media-control-center-panel\\\" data-media-control>\\n <% render(settings.default); %>\\n </div>\\n <% } %>\\n <% if (settings.left && settings.left.length) { %>\\n <div class=\\\"media-control-left-panel\\\" data-media-control>\\n <% render(settings.left); %>\\n </div>\\n <% } %>\\n <% if (settings.right && settings.right.length) { %>\\n <div class=\\\"media-control-right-panel\\\" data-media-control>\\n <% render(settings.right); %>\\n </div>\\n <% } %>\\n</div>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/media_control/public/media-control.html\n// module id = 202\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M1.712 1.24h12.6v13.52h-12.6z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/03-stop.svg\n// module id = 203\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M11.5 11h-.002v1.502L7.798 10H4.5V6h3.297l3.7-2.502V4.5h.003V11zM11 4.49L7.953 6.5H5v3h2.953L11 11.51V4.49z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/04-volume.svg\n// module id = 204\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill-rule=\\\"evenodd\\\" clip-rule=\\\"evenodd\\\" fill=\\\"#010101\\\" d=\\\"M9.75 11.51L6.7 9.5H3.75v-3H6.7L9.75 4.49v.664l.497.498V3.498L6.547 6H3.248v4h3.296l3.7 2.502v-2.154l-.497.5v.662zm3-5.165L12.404 6l-1.655 1.653L9.093 6l-.346.345L10.402 8 8.747 9.654l.346.347 1.655-1.653L12.403 10l.348-.346L11.097 8l1.655-1.655z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/05-mute.svg\n// module id = 205\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M7.156 8L4 11.156V8.5H3V13h4.5v-1H4.844L8 8.844 7.156 8zM8.5 3v1h2.657L8 7.157 8.846 8 12 4.844V7.5h1V3H8.5z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/06-expand.svg\n// module id = 206\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M13.5 3.344l-.844-.844L9.5 5.656V3h-1v4.5H13v-1h-2.656L13.5 3.344zM3 9.5h2.656L2.5 12.656l.844.844L6.5 10.344V13h1V8.5H3v1z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/07-shrink.svg\n// module id = 207\n// module chunks = 0","module.exports = \"<svg xmlns=\\\"http://www.w3.org/2000/svg\\\" viewBox=\\\"0 0 16 16\\\"><path fill=\\\"#010101\\\" d=\\\"M5.375 7.062H2.637V4.26H.502v7.488h2.135V8.9h2.738v2.848h2.133V4.26H5.375v2.802zm5.97-2.81h-2.84v7.496h2.798c2.65 0 4.195-1.607 4.195-3.77v-.022c0-2.162-1.523-3.704-4.154-3.704zm2.06 3.758c0 1.21-.81 1.896-2.03 1.896h-.83V6.093h.83c1.22 0 2.03.696 2.03 1.896v.02z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/08-hd.svg\n// module id = 208\n// module chunks = 0","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Playback from '../../base/playback'\nimport Events from '../../base/events'\nimport dvrHTML from './public/index.html'\nimport './public/dvr_controls.scss'\n\nexport default class DVRControls extends UICorePlugin {\n get template() { return template(dvrHTML) }\n get name() { return 'dvr_controls' }\n get events() {\n return {\n 'click .live-button': 'click'\n }\n }\n get attributes() {\n return {\n 'class': 'dvr-controls',\n 'data-dvr-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n this.settingsUpdate()\n }\n\n bindEvents() {\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.settingsUpdate)\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.render)\n if (this.core.getCurrentContainer()) {\n this.listenToOnce(this.core.getCurrentContainer(), Events.CONTAINER_TIMEUPDATE, this.render)\n this.listenTo(this.core.getCurrentContainer(), Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.dvrChanged)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n dvrChanged(dvrEnabled) {\n if (this.core.getPlaybackType() !== Playback.LIVE) return\n this.settingsUpdate()\n this.core.mediaControl.$el.addClass('live')\n if (dvrEnabled) {\n this.core.mediaControl.$el.addClass('dvr')\n this.core.mediaControl.$el.find('.media-control-indicator[data-position], .media-control-indicator[data-duration]').hide()\n } else { this.core.mediaControl.$el.removeClass('dvr') }\n\n }\n\n click() {\n const mediaControl = this.core.mediaControl\n const container = mediaControl.container\n if (!container.isPlaying())\n container.play()\n\n if (mediaControl.$el.hasClass('dvr'))\n container.seek(container.getDuration())\n\n }\n\n settingsUpdate() {\n this.stopListening()\n this.core.mediaControl.$el.removeClass('live')\n if (this.shouldRender()) {\n this.render()\n this.$el.click(() => this.click())\n }\n this.bindEvents()\n }\n\n shouldRender() {\n const useDvrControls = this.core.options.useDvrControls === undefined || !!this.core.options.useDvrControls\n return useDvrControls && this.core.getPlaybackType() === Playback.LIVE\n }\n\n render() {\n this.$el.html(this.template({\n live: this.core.i18n.t('live'),\n backToLive: this.core.i18n.t('back_to_live')\n }))\n if (this.shouldRender()) {\n this.core.mediaControl.$el.addClass('live')\n this.core.mediaControl.$('.media-control-left-panel[data-media-control]').append(this.$el)\n }\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/dvr_controls/dvr_controls.js","module.exports = \"<div class=\\\"live-info\\\"><%= live %></div>\\n<button type=\\\"button\\\" class=\\\"live-button\\\" aria-label=\\\"<%= backToLive %>\\\"><%= backToLive %></button>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/dvr_controls/public/index.html\n// module id = 210\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./dvr_controls.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/dvr_controls/public/dvr_controls.scss\n// module id = 211\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".dvr-controls[data-dvr-controls] {\\n display: inline-block;\\n float: left;\\n color: #fff;\\n line-height: 32px;\\n font-size: 10px;\\n font-weight: bold;\\n margin-left: 6px; }\\n .dvr-controls[data-dvr-controls] .live-info {\\n cursor: default;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase; }\\n .dvr-controls[data-dvr-controls] .live-info:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #ff0101; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled {\\n opacity: 0.3; }\\n .dvr-controls[data-dvr-controls] .live-info.disabled:before {\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button {\\n cursor: pointer;\\n outline: none;\\n display: none;\\n border: 0;\\n color: #fff;\\n background-color: transparent;\\n height: 32px;\\n padding: 0;\\n opacity: 0.7;\\n font-family: \\\"Roboto\\\", \\\"Open Sans\\\", Arial, sans-serif;\\n text-transform: uppercase;\\n transition: all 0.1s ease; }\\n .dvr-controls[data-dvr-controls] .live-button:before {\\n content: \\\"\\\";\\n display: inline-block;\\n position: relative;\\n width: 7px;\\n height: 7px;\\n border-radius: 3.5px;\\n margin-right: 3.5px;\\n background-color: #fff; }\\n .dvr-controls[data-dvr-controls] .live-button:hover {\\n opacity: 1;\\n text-shadow: rgba(255, 255, 255, 0.75) 0 0 5px; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-info {\\n display: none; }\\n\\n.dvr .dvr-controls[data-dvr-controls] .live-button {\\n display: block; }\\n\\n.dvr.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n background-color: #005aff; }\\n\\n.media-control.live[data-media-control] .media-control-layer[data-controls] .bar-container[data-seekbar] .bar-background[data-seekbar] .bar-fill-2[data-seekbar] {\\n background-color: #ff0101; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/plugins/dvr_controls/public/dvr_controls.scss\n// module id = 212\n// module chunks = 0","import ClosedCaptions from './closed_captions'\nexport default ClosedCaptions\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/closed_captions/index.js","import UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport ccIcon from '../../icons/09-cc.svg'\nimport ccHTML from './public/closed_captions.html'\nimport './public/closed_captions.scss'\n\nexport default class ClosedCaptions extends UICorePlugin {\n get name() { return 'closed_captions' }\n\n get template() { return template(ccHTML) }\n\n get events() {\n return {\n 'click [data-cc-button]': 'toggleContextMenu',\n 'click [data-cc-select]': 'onTrackSelect',\n }\n }\n\n get attributes() {\n return {\n 'class': 'cc-controls',\n 'data-cc-controls': ''\n }\n }\n\n constructor(core) {\n super(core)\n const config = core.options.closedCaptionsConfig\n this._title = config && config.title ? config.title : null\n this._ariaLabel = config && config.ariaLabel ? config.ariaLabel : 'cc-button'\n this._labelCb = config && config.labelCallback && typeof config.labelCallback === 'function'\n ? config.labelCallback\n : track => { return track.name }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.core.mediaControl, Events.MEDIACONTROL_HIDE, this.hideContextMenu)\n this.container = this.core.getCurrentContainer()\n if (this.container) {\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_AVAILABLE, this.onSubtitleAvailable)\n this.listenTo(this.container, Events.CONTAINER_SUBTITLE_CHANGED, this.onSubtitleChanged)\n this.listenTo(this.container, Events.CONTAINER_STOP, this.onContainerStop)\n }\n }\n\n onContainerStop() {\n this.ccAvailable(false)\n }\n\n containerChanged() {\n this.ccAvailable(false)\n this.stopListening()\n this.bindEvents()\n }\n\n onSubtitleAvailable() {\n this.renderCcButton()\n this.ccAvailable(true)\n }\n\n onSubtitleChanged(track) {\n this.setCurrentContextMenuElement(track.id)\n }\n\n onTrackSelect(event) {\n const trackId = parseInt(event.target.dataset.ccSelect, 10)\n this.container.closedCaptionsTrackId = trackId\n this.hideContextMenu()\n event.stopPropagation()\n return false\n }\n\n ccAvailable(hasCC) {\n const method = hasCC ? 'addClass' : 'removeClass'\n this.$el[method]('available')\n }\n\n toggleContextMenu() {\n this.$el.find('ul').toggle()\n }\n\n hideContextMenu() {\n this.$el.find('ul').hide()\n }\n\n contextMenuElement(id) {\n return this.$el.find('ul a'+(!isNaN(id) ? '[data-cc-select=\"'+id+'\"]' : '')).parent()\n }\n\n setCurrentContextMenuElement(trackId) {\n if (this._trackId !== trackId) {\n this.contextMenuElement().removeClass('current')\n this.contextMenuElement(trackId).addClass('current')\n const method = trackId > -1 ? 'addClass' : 'removeClass'\n this.$ccButton[method]('enabled')\n this._trackId = trackId\n }\n }\n\n renderCcButton() {\n let tracks = this.container ? this.container.closedCaptionsTracks : []\n for (let i = 0; i < tracks.length; i++)\n tracks[i].label = this._labelCb(tracks[i])\n\n\n this.$el.html(this.template({\n ariaLabel: this._ariaLabel,\n disabledLabel: this.core.i18n.t('disabled'),\n title: this._title,\n tracks: tracks\n }))\n\n this.$ccButton = this.$el.find('button.cc-button[data-cc-button]')\n this.$ccButton.append(ccIcon)\n this.$el.append(this.style)\n }\n\n render() {\n this.renderCcButton()\n\n const $fullscreen = this.core.mediaControl.$el.find('button[data-fullscreen]')\n if ($fullscreen[0])\n this.$el.insertAfter($fullscreen)\n else\n this.core.mediaControl.$el.find('.media-control-right-panel[data-media-control]').prepend(this.$el)\n\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/closed_captions/closed_captions.js","module.exports = \"<svg version=\\\"1.1\\\" id=\\\"Layer_1\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\" xmlns:xlink=\\\"http://www.w3.org/1999/xlink\\\" x=\\\"0px\\\" y=\\\"0px\\\" viewBox=\\\"0 0 49 41.8\\\" style=\\\"enable-background:new 0 0 49 41.8;\\\" xml:space=\\\"preserve\\\"><path d=\\\"M47.1,0H3.2C1.6,0,0,1.2,0,2.8v31.5C0,35.9,1.6,37,3.2,37h11.9l3.2,1.9l4.7,2.7c0.9,0.5,2-0.1,2-1.1V37h22.1 c1.6,0,1.9-1.1,1.9-2.7V2.8C49,1.2,48.7,0,47.1,0z M7.2,18.6c0-4.8,3.5-9.3,9.9-9.3c4.8,0,7.1,2.7,7.1,2.7l-2.5,4 c0,0-1.7-1.7-4.2-1.7c-2.8,0-4.3,2.1-4.3,4.3c0,2.1,1.5,4.4,4.5,4.4c2.5,0,4.9-2.1,4.9-2.1l2.2,4.2c0,0-2.7,2.9-7.6,2.9 C10.8,27.9,7.2,23.5,7.2,18.6z M36.9,27.9c-6.4,0-9.9-4.4-9.9-9.3c0-4.8,3.5-9.3,9.9-9.3C41.7,9.3,44,12,44,12l-2.5,4 c0,0-1.7-1.7-4.2-1.7c-2.8,0-4.3,2.1-4.3,4.3c0,2.1,1.5,4.4,4.5,4.4c2.5,0,4.9-2.1,4.9-2.1l2.2,4.2C44.5,25,41.9,27.9,36.9,27.9z\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/09-cc.svg\n// module id = 215\n// module chunks = 0","module.exports = \"<button type=\\\"button\\\" class=\\\"cc-button media-control-button media-control-icon\\\" data-cc-button aria-label=\\\"<%= ariaLabel %>\\\"></button>\\n<ul>\\n <% if (title) { %>\\n <li data-title><%= title %></li>\\n <% }; %>\\n <li><a href=\\\"#\\\" data-cc-select=\\\"-1\\\"><%= disabledLabel %></a></li>\\n <% for (var i = 0; i < tracks.length; i++) { %>\\n <li><a href=\\\"#\\\" data-cc-select=\\\"<%= tracks[i].id %>\\\"><%= tracks[i].label %></a></li>\\n <% }; %>\\n</ul>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/closed_captions/public/closed_captions.html\n// module id = 216\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./closed_captions.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/closed_captions/public/closed_captions.scss\n// module id = 217\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".cc-controls[data-cc-controls] {\\n float: right;\\n position: relative;\\n display: none; }\\n .cc-controls[data-cc-controls].available {\\n display: block; }\\n .cc-controls[data-cc-controls] .cc-button {\\n padding: 6px !important; }\\n .cc-controls[data-cc-controls] .cc-button.enabled {\\n display: block;\\n opacity: 1.0; }\\n .cc-controls[data-cc-controls] .cc-button.enabled:hover {\\n opacity: 1.0;\\n text-shadow: none; }\\n .cc-controls[data-cc-controls] > ul {\\n list-style-type: none;\\n position: absolute;\\n bottom: 25px;\\n border: 1px solid black;\\n display: none;\\n background-color: #e6e6e6; }\\n .cc-controls[data-cc-controls] li {\\n font-size: 10px; }\\n .cc-controls[data-cc-controls] li[data-title] {\\n background-color: #c3c2c2;\\n padding: 5px; }\\n .cc-controls[data-cc-controls] li a {\\n color: #444;\\n padding: 2px 10px;\\n display: block;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li a:hover {\\n background-color: #555;\\n color: white; }\\n .cc-controls[data-cc-controls] li a:hover a {\\n color: white;\\n text-decoration: none; }\\n .cc-controls[data-cc-controls] li.current a {\\n color: #f00; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/plugins/closed_captions/public/closed_captions.scss\n// module id = 218\n// module chunks = 0","import CorePlugin from '../../base/core_plugin'\nimport Events from '../../base/events'\nimport $ from 'clappr-zepto'\n\nimport playIcon from '../../icons/01-play.svg'\nimport pauseIcon from '../../icons/02-pause.svg'\n\nconst oldIcon = $('link[rel=\"shortcut icon\"]')\n\nexport default class Favicon extends CorePlugin {\n get name() { return 'favicon' }\n get oldIcon() { return oldIcon }\n\n constructor(core) {\n super(core)\n this._container = null\n this.configure()\n }\n\n configure() {\n if (this.core.options.changeFavicon) {\n if (!this.enabled) {\n this.stopListening(this.core, Events.CORE_OPTIONS_CHANGE)\n this.enable()\n }\n } else if (this.enabled) {\n this.disable()\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n }\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_OPTIONS_CHANGE, this.configure)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n this.core.activeContainer && this.containerChanged()\n }\n\n containerChanged() {\n this._container && this.stopListening(this._container)\n this._container = this.core.activeContainer\n this.listenTo(this._container, Events.CONTAINER_PLAY, this.setPlayIcon)\n this.listenTo(this._container, Events.CONTAINER_PAUSE, this.setPauseIcon)\n this.listenTo(this._container, Events.CONTAINER_STOP, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ENDED, this.resetIcon)\n this.listenTo(this._container, Events.CONTAINER_ERROR, this.resetIcon)\n this.resetIcon()\n }\n\n disable() {\n super.disable()\n this.resetIcon()\n }\n\n destroy() {\n super.destroy()\n this.resetIcon()\n }\n\n createIcon(svg) {\n const canvas = $('<canvas/>')\n canvas[0].width = 16\n canvas[0].height = 16\n const ctx = canvas[0].getContext('2d')\n ctx.fillStyle = '#000'\n const d = $(svg).find('path').attr('d')\n const path = new Path2D(d)\n ctx.fill(path)\n const icon = $('<link rel=\"shortcut icon\" type=\"image/png\"/>')\n icon.attr('href', canvas[0].toDataURL('image/png'))\n return icon\n }\n\n setPlayIcon() {\n if (!this.playIcon)\n this.playIcon = this.createIcon(playIcon)\n\n this.changeIcon(this.playIcon)\n }\n\n setPauseIcon() {\n if (!this.pauseIcon)\n this.pauseIcon = this.createIcon(pauseIcon)\n\n this.changeIcon(this.pauseIcon)\n }\n\n resetIcon() {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(this.oldIcon)\n }\n\n changeIcon(icon) {\n if (icon) {\n $('link[rel=\"shortcut icon\"]').remove()\n $('head').append(icon)\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/favicon/favicon.js","import SeekTime from './seek_time'\nexport default SeekTime\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/seek_time/index.js","// Copyright 2014 Globo.com Player authors. All rights reserved.\n// Use of this source code is governed by a BSD-style\n// license that can be found in the LICENSE file.\n\nimport { formatTime } from '../../base/utils'\n\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport Events from '../../base/events'\nimport Playback from '../../base/playback'\nimport seekTimeHTML from './public/seek_time.html'\nimport './public/seek_time.scss'\n\nexport default class SeekTime extends UICorePlugin {\n get name() { return 'seek_time' }\n get template() {\n return template(seekTimeHTML)\n }\n get attributes() {\n return {\n 'class': 'seek-time',\n 'data-seek-time': ''\n }\n }\n get mediaControl() { return this.core.mediaControl }\n get mediaControlContainer() { return this.mediaControl.container }\n get isLiveStreamWithDvr() { return this.mediaControlContainer && this.mediaControlContainer.getPlaybackType() === Playback.LIVE && this.mediaControlContainer.isDvrEnabled() }\n get durationShown() { return this.isLiveStreamWithDvr && !this.actualLiveTime }\n get useActualLiveTime() { return this.actualLiveTime && this.isLiveStreamWithDvr }\n constructor(core) {\n super(core)\n this.hoveringOverSeekBar = false\n this.hoverPosition = null\n this.duration = null\n this.firstFragDateTime = null\n this.actualLiveTime = !!this.mediaControl.options.actualLiveTime\n if (this.actualLiveTime) {\n if (this.mediaControl.options.actualLiveServerTime)\n this.actualLiveServerTimeDiff = new Date().getTime() - new Date(this.mediaControl.options.actualLiveServerTime).getTime()\n else\n this.actualLiveServerTimeDiff = 0\n }\n }\n\n bindEvents() {\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_RENDERED, this.render)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSEMOVE_SEEKBAR, this.showTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_MOUSELEAVE_SEEKBAR, this.hideTime)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this.onContainerChanged)\n if (this.mediaControlContainer) {\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.update)\n this.listenTo(this.mediaControlContainer, Events.CONTAINER_TIMEUPDATE, this.updateDuration)\n }\n }\n\n onContainerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n updateDuration(timeProgress) {\n this.duration = timeProgress.total\n this.firstFragDateTime = timeProgress.firstFragDateTime\n this.update()\n }\n\n showTime(event) {\n this.hoveringOverSeekBar = true\n this.calculateHoverPosition(event)\n this.update()\n }\n\n hideTime() {\n this.hoveringOverSeekBar = false\n this.update()\n }\n\n calculateHoverPosition(event) {\n const offset = event.pageX - this.mediaControl.$seekBarContainer.offset().left\n // proportion into the seek bar that the mouse is hovered over 0-1\n this.hoverPosition = Math.min(1, Math.max(offset/this.mediaControl.$seekBarContainer.width(), 0))\n }\n\n getSeekTime() {\n let seekTime, secondsSinceMidnight, d, e\n if (this.useActualLiveTime) {\n if (this.firstFragDateTime) {\n e = new Date(this.firstFragDateTime)\n d = new Date(this.firstFragDateTime)\n d.setHours(0,0,0,0)\n secondsSinceMidnight = ((e.getTime() - d.getTime()) / 1000) + this.duration\n } else {\n d = new Date(new Date().getTime() - this.actualLiveServerTimeDiff)\n e = new Date(d)\n secondsSinceMidnight = (e - d.setHours(0,0,0,0)) / 1000\n }\n seekTime = (secondsSinceMidnight - this.duration) + (this.hoverPosition * this.duration)\n if (seekTime < 0)\n seekTime += 86400\n\n } else { seekTime = this.hoverPosition * this.duration }\n\n return { seekTime, secondsSinceMidnight }\n }\n\n update() {\n if (!this.rendered) {\n // update() is always called after a render\n return\n }\n if (!this.shouldBeVisible()) {\n this.$el.hide()\n this.$el.css('left', '-100%')\n } else {\n const seekTime = this.getSeekTime()\n const currentSeekTime = formatTime(seekTime.seekTime, this.useActualLiveTime)\n // only update dom if necessary, ie time actually changed\n if (currentSeekTime !== this.displayedSeekTime) {\n this.$seekTimeEl.text(currentSeekTime)\n this.displayedSeekTime = currentSeekTime\n }\n\n if (this.durationShown) {\n this.$durationEl.show()\n const currentDuration = formatTime(this.actualLiveTime ? seekTime.secondsSinceMidnight : this.duration, this.actualLiveTime)\n if (currentDuration !== this.displayedDuration) {\n this.$durationEl.text(currentDuration)\n this.displayedDuration = currentDuration\n }\n } else { this.$durationEl.hide() }\n\n\n // the element must be unhidden before its width is requested, otherwise it's width will be reported as 0\n this.$el.show()\n const containerWidth = this.mediaControl.$seekBarContainer.width()\n const elWidth = this.$el.width()\n let elLeftPos = this.hoverPosition * containerWidth\n elLeftPos -= elWidth / 2\n elLeftPos = Math.max(0, Math.min(elLeftPos, containerWidth - elWidth))\n this.$el.css('left', elLeftPos)\n }\n }\n\n shouldBeVisible() {\n return this.mediaControlContainer && this.mediaControlContainer.settings.seekEnabled && this.hoveringOverSeekBar && this.hoverPosition !== null && this.duration !== null\n }\n\n render() {\n this.rendered = true\n this.displayedDuration = null\n this.displayedSeekTime = null\n this.$el.html(this.template())\n this.$el.hide()\n this.mediaControl.$el.append(this.el)\n this.$seekTimeEl = this.$el.find('[data-seek-time]')\n this.$durationEl = this.$el.find('[data-duration]')\n this.$durationEl.hide()\n this.update()\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/seek_time/seek_time.js","module.exports = \"<span data-seek-time></span>\\n<span data-duration></span>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/seek_time/public/seek_time.html\n// module id = 222\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./seek_time.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./seek_time.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./seek_time.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/seek_time/public/seek_time.scss\n// module id = 223\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \".seek-time[data-seek-time] {\\n position: absolute;\\n white-space: nowrap;\\n height: 20px;\\n line-height: 20px;\\n font-size: 0;\\n left: -100%;\\n bottom: 55px;\\n background-color: rgba(2, 2, 2, 0.5);\\n z-index: 9999;\\n transition: opacity 0.1s ease; }\\n .seek-time[data-seek-time].hidden[data-seek-time] {\\n opacity: 0; }\\n .seek-time[data-seek-time] [data-seek-time] {\\n display: inline-block;\\n color: white;\\n font-size: 10px;\\n padding-left: 7px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration] {\\n display: inline-block;\\n color: rgba(255, 255, 255, 0.5);\\n font-size: 10px;\\n padding-right: 7px;\\n vertical-align: top; }\\n .seek-time[data-seek-time] [data-duration]:before {\\n content: \\\"|\\\";\\n margin-right: 7px; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/plugins/seek_time/public/seek_time.scss\n// module id = 224\n// module chunks = 0","import CorePlugin from '../base/core_plugin'\n\nimport Events from '../base/events'\n\nexport default class SourcesPlugin extends CorePlugin {\n get name() { return 'sources' }\n\n bindEvents() {\n this.listenTo(this.core, Events.CORE_CONTAINERS_CREATED, this.onContainersCreated)\n }\n\n onContainersCreated() {\n const firstValidSource = this.core.containers.filter(container => container.playback.name !== 'no_op')[0] || this.core.containers[0]\n if (firstValidSource) {\n this.core.containers.forEach((container) => {\n if (container !== firstValidSource)\n container.destroy()\n\n })\n }\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/sources.js","import Events from '../base/events'\nimport CorePlugin from '../base/core_plugin'\nimport { Fullscreen } from '../base/utils'\n\nexport default class EndVideo extends CorePlugin {\n get name() { return 'end_video' }\n bindEvents() {\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.containerChanged)\n const container = this.core.activeContainer\n if (container) {\n this.listenTo(container, Events.CONTAINER_ENDED, this.ended)\n this.listenTo(container, Events.CONTAINER_STOP, this.ended)\n }\n }\n\n containerChanged() {\n this.stopListening()\n this.bindEvents()\n }\n\n ended() {\n const exitOnEnd = typeof (this.core.options.exitFullscreenOnEnd) === 'undefined' || this.core.options.exitFullscreenOnEnd\n if (exitOnEnd && Fullscreen.isFullscreen())\n this.core.toggleFullscreen()\n\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/end_video.js","import { getBrowserLanguage } from '../base/utils'\nimport $ from 'clappr-zepto'\nimport CorePlugin from '../base/core_plugin'\n\n/**\n * The internationalization (i18n) plugin\n * @class Strings\n * @constructor\n * @extends CorePlugin\n * @module plugins\n */\nexport default class Strings extends CorePlugin {\n get name() { return 'strings' }\n\n constructor(core) {\n super(core)\n this._initializeMessages()\n }\n /**\n * Gets a translated string for the given key.\n * @method t\n * @param {String} key the key to all messages\n * @return {String} translated label\n */\n t(key) {\n const lang = this._language()\n const fallbackLang = this._messages['en']\n const i18n = lang && this._messages[lang] || fallbackLang\n return i18n[key] || fallbackLang[key] || key\n }\n\n _language() { return this.core.options.language || getBrowserLanguage() }\n\n _initializeMessages() {\n const defaultMessages = {\n 'en': {\n 'live': 'live',\n 'back_to_live': 'back to live',\n 'disabled': 'Disabled',\n 'playback_not_supported': 'Your browser does not support the playback of this video. Please try using a different browser.',\n 'default_error_title': 'Could not play video.',\n 'default_error_message': 'There was a problem trying to load the video.',\n },\n 'pt': {\n 'live': 'ao vivo',\n 'back_to_live': 'voltar para o ao vivo',\n 'disabled': 'Desativado',\n 'playback_not_supported': 'Seu navegador não supporta a reprodução deste video. Por favor, tente usar um navegador diferente.',\n 'default_error_title': 'Não foi possível reproduzir o vídeo.',\n 'default_error_message': 'Ocorreu um problema ao tentar carregar o vídeo.',\n },\n 'es': {\n 'live': 'vivo',\n 'back_to_live': 'volver en vivo',\n 'disabled': 'Discapacitado',\n 'playback_not_supported': 'Su navegador no soporta la reproducción de un video. Por favor, trate de usar un navegador diferente.',\n },\n 'ru': {\n 'live': 'прямой эфир',\n 'back_to_live': 'к прямому эфиру',\n 'disabled': 'Отключено',\n 'playback_not_supported': 'Ваш браузер не поддерживает воспроизведение этого видео. Пожалуйста, попробуйте другой браузер.',\n },\n 'fr': {\n 'live': 'en direct',\n 'back_to_live': 'retour au direct',\n 'disabled': 'Désactivé',\n 'playback_not_supported': 'Votre navigateur ne supporte pas la lecture de cette vidéo. Merci de tenter sur un autre navigateur.',\n 'default_error_title': 'Impossible de lire la vidéo.',\n 'default_error_message': 'Un problème est survenu lors du chargement de la vidéo.',\n },\n 'tr': {\n 'live': 'canlı',\n 'back_to_live': 'canlı yayına dön',\n 'disabled': 'Engelli',\n 'playback_not_supported': 'Tarayıcınız bu videoyu oynatma desteğine sahip değil. Lütfen farklı bir tarayıcı ile deneyin.',\n },\n 'et': {\n 'live': 'Otseülekanne',\n 'back_to_live': 'Tagasi otseülekande juurde',\n 'disabled': 'Keelatud',\n 'playback_not_supported': 'Teie brauser ei toeta selle video taasesitust. Proovige kasutada muud brauserit.',\n },\n }\n\n this._messages = $.extend(true, defaultMessages, this.core.options.strings || {})\n this._messages['pt-BR'] = this._messages['pt']\n this._messages['en-US'] = this._messages['en']\n this._messages['es-419'] = this._messages['es']\n this._messages['fr-FR'] = this._messages['fr']\n this._messages['tr-TR'] = this._messages['tr']\n this._messages['et-EE'] = this._messages['et']\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/strings.js","import ErrorScreen from './error_screen'\nexport default ErrorScreen\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/error_screen/index.js","import Events from '../../base/events'\nimport UICorePlugin from '../../base/ui_core_plugin'\nimport template from '../../base/template'\nimport PlayerError from '../../components/error/'\n\nimport reloadIcon from '../../icons/10-reload.svg'\nimport templateHtml from './public/error_screen.html'\nimport './public/error_screen.scss'\n\nexport default class ErrorScreen extends UICorePlugin {\n get name() { return 'error_screen' }\n get template() { return template(templateHtml) }\n get container() { return this.core.getCurrentContainer() }\n get attributes() {\n return {\n 'class': 'player-error-screen',\n 'data-error-screen': '',\n }\n }\n\n constructor(core) {\n super(core)\n\n if (this.options.disableErrorScreen) return this.disable()\n }\n\n bindEvents() {\n this.listenTo(this.core, Events.ERROR, this.onError)\n this.listenTo(this.core, Events.CORE_ACTIVE_CONTAINER_CHANGED, this.onContainerChanged)\n }\n\n bindReload() {\n this.reloadButton = this.$el.find('.player-error-screen__reload')\n this.reloadButton && this.reloadButton.on('click', this.reload.bind(this))\n }\n\n reload() {\n this.listenToOnce(this.core, Events.CORE_READY, () => this.container.play())\n this.core.load(this.options.sources, this.options.mimeType)\n this.unbindReload()\n }\n\n unbindReload() {\n this.reloadButton && this.reloadButton.off('click')\n }\n\n onContainerChanged() {\n this.err = null\n this.unbindReload()\n this.hide()\n }\n\n onError(err = {}) {\n if (err.level === PlayerError.Levels.FATAL) {\n this.err = err\n this.container.disableMediaControl()\n this.container.stop()\n this.show()\n }\n }\n\n show() {\n this.render()\n this.$el.show()\n }\n\n hide() {\n this.$el.hide()\n }\n\n render() {\n if (!this.err) return\n\n this.$el.html(this.template({\n title: this.err.UI.title,\n message: this.err.UI.message,\n code: this.err.code,\n icon: this.err.UI.icon || '',\n reloadIcon,\n }))\n\n this.core.$el.append(this.el)\n\n this.bindReload()\n\n return this\n }\n}\n\n\n\n// WEBPACK FOOTER //\n// ./src/plugins/error_screen/error_screen.js","module.exports = \"<svg fill=\\\"#FFFFFF\\\" viewBox=\\\"0 0 24 24\\\" xmlns=\\\"http://www.w3.org/2000/svg\\\"><path d=\\\"M17.65 6.35C16.2 4.9 14.21 4 12 4c-4.42 0-7.99 3.58-7.99 8s3.57 8 7.99 8c3.73 0 6.84-2.55 7.73-6h-2.08c-.82 2.33-3.04 4-5.65 4-3.31 0-6-2.69-6-6s2.69-6 6-6c1.66 0 3.14.69 4.22 1.78L13 11h7V4l-2.35 2.35z\\\"></path><path d=\\\"M0 0h24v24H0z\\\" fill=\\\"none\\\"></path></svg>\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/10-reload.svg\n// module id = 230\n// module chunks = 0","module.exports = \"<div class=\\\"player-error-screen__content\\\" data-error-screen>\\n <% if (icon) { %>\\n <div class=\\\"player-error-screen__icon\\\" data-error-screen><%= icon %></div>\\n <% } %>\\n <div class=\\\"player-error-screen__title\\\" data-error-screen><%= title %></div>\\n <div class=\\\"player-error-screen__message\\\" data-error-screen><%= message %></div>\\n <div class=\\\"player-error-screen__code\\\" data-error-screen>Error code: <%= code %></div>\\n <div class=\\\"player-error-screen__reload\\\" data-error-screen><%= reloadIcon %></div>\\n</div>\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/error_screen/public/error_screen.html\n// module id = 231\n// module chunks = 0","\nvar content = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./error_screen.scss\");\n\nif(typeof content === 'string') content = [[module.id, content, '']];\n\nvar transform;\nvar insertInto;\n\n\n\nvar options = {\"singleton\":true,\"hmr\":true}\n\noptions.transform = transform\noptions.insertInto = undefined;\n\nvar update = require(\"!../../../../node_modules/style-loader/lib/addStyles.js\")(content, options);\n\nif(content.locals) module.exports = content.locals;\n\nif(module.hot) {\n\tmodule.hot.accept(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./error_screen.scss\", function() {\n\t\tvar newContent = require(\"!!../../../../node_modules/css-loader/index.js!../../../../node_modules/postcss-loader/lib/index.js!../../../../node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./error_screen.scss\");\n\n\t\tif(typeof newContent === 'string') newContent = [[module.id, newContent, '']];\n\n\t\tvar locals = (function(a, b) {\n\t\t\tvar key, idx = 0;\n\n\t\t\tfor(key in a) {\n\t\t\t\tif(!b || a[key] !== b[key]) return false;\n\t\t\t\tidx++;\n\t\t\t}\n\n\t\t\tfor(key in b) idx--;\n\n\t\t\treturn idx === 0;\n\t\t}(content.locals, newContent.locals));\n\n\t\tif(!locals) throw new Error('Aborting CSS HMR due to changed css-modules locals.');\n\n\t\tupdate(newContent);\n\t});\n\n\tmodule.hot.dispose(function() { update(); });\n}\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/plugins/error_screen/public/error_screen.scss\n// module id = 232\n// module chunks = 0","exports = module.exports = require(\"../../../../node_modules/css-loader/lib/css-base.js\")(false);\n// imports\n\n\n// module\nexports.push([module.id, \"div.player-error-screen {\\n -webkit-font-smoothing: antialiased;\\n -moz-osx-font-smoothing: grayscale;\\n color: #CCCACA;\\n position: absolute;\\n top: 0;\\n height: 100%;\\n width: 100%;\\n background-color: rgba(0, 0, 0, 0.7);\\n z-index: 2000;\\n display: -webkit-box;\\n display: -ms-flexbox;\\n display: flex;\\n -webkit-box-orient: vertical;\\n -webkit-box-direction: normal;\\n -ms-flex-direction: column;\\n flex-direction: column;\\n -webkit-box-pack: center;\\n -ms-flex-pack: center;\\n justify-content: center; }\\n div.player-error-screen__content[data-error-screen] {\\n font-size: 14px;\\n color: #CCCACA;\\n margin-top: 45px; }\\n div.player-error-screen__title[data-error-screen] {\\n font-weight: bold;\\n line-height: 30px;\\n font-size: 18px; }\\n div.player-error-screen__message[data-error-screen] {\\n width: 90%;\\n margin: 0 auto; }\\n div.player-error-screen__code[data-error-screen] {\\n font-size: 13px;\\n margin-top: 15px; }\\n div.player-error-screen__reload {\\n cursor: pointer;\\n width: 30px;\\n margin: 15px auto 0; }\\n\", \"\"]);\n\n// exports\n\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./node_modules/css-loader!./node_modules/postcss-loader/lib!./node_modules/sass-loader/lib/loader.js?includePaths[]=/Users/bruno.torres/workspace/clappr/clappr/src/base/scss!./src/plugins/error_screen/public/error_screen.scss\n// module id = 233\n// module chunks = 0"],"sourceRoot":""}