{"version":3,"sources":["webpack:///webpack/universalModuleDefinition","webpack:///webpack/bootstrap 079e1b3387e3a85f1152","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/core-js/library/modules/_wks.js","webpack:///./src/base/playback.js","webpack:///./node_modules/babel-runtime/core-js/object/assign.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_object.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:///./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/components/error/index.js","webpack:///./src/base/ui_core_plugin.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/plugins/log/index.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:///./node_modules/node-libs-browser/node_modules/process/browser.js","webpack:///./src/components/mediator.js","webpack:///./src/icons/01-play.svg","webpack:///./src/playbacks/html5_video/index.js","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/components/container/index.js","webpack:///./src/components/error/error.js","webpack:///./src/components/media_control/index.js","webpack:///./node_modules/css-loader/lib/url/escape.js","webpack:///./src/components/media_control/public/closed-hand.cur","webpack:///./src/icons/02-pause.svg","webpack:///./src/base/styler.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/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/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?d68b","webpack:///./src/components/container/public/style.scss","webpack:///./node_modules/style-loader/lib/urls.js","webpack:///./src/components/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/components/media_control/public/media-control.scss?0834","webpack:///./src/components/media_control/public/media-control.scss","webpack:///./src/components/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/components/core/public/style.scss?944e","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?1f65","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?4b63","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?965b","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?4d37","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?06f2","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?c7e5","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/dvr_controls/dvr_controls.js","webpack:///./src/plugins/dvr_controls/public/index.html","webpack:///./src/plugins/dvr_controls/public/dvr_controls.scss?caac","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?2378","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?af59","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?4579","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_OPTIONS_CHANGE","CORE_READY","CORE_FULLSCREEN","CORE_SCREEN_ORIENTATION_CHANGED","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","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","videoStack","DomRecycler","configure","options","create","recycleVideo","shift","garbage","$el","tagName","children","settings","evaluate","interpolate","escape","noMatch","escapes","escaper","htmlEntities","entityRe","RegExp","escapeExpr","string","counter","tmpl","text","data","render","matcher","offset","variable","Function","template","Playback","_i18n","i18n","playerError","consent","play","pause","stop","seek","seekPercentage","percentage","getStartTimeOffset","getDuration","isPlaying","getPlaybackType","NO_OP","isHighDefinitionInUse","destroy","closedCaptionsTracks","trackId","canPlay","mimeType","VOD","AOD","LIVE","type","BaseObject","_options","ErrorMixin","createError","useCodePrefix","scope","origin","core","container","prefixedCode","code","defaultError","description","level","Levels","FATAL","raw","errorData","UI","defaultUI","title","t","message","warn","delegateEventSplitter","UIObject","cid","_ensureElement","delegateEvents","$","selector","find","undelegateEvents","setElement","element","delegate","zepto","isZ","attrs","attributes","className","attr","module","exports","UICorePlugin","enabled","bindEvents","getExternalInterface","enable","show","disable","hide","CorePlugin","PlayerInfo","playbackPlugins","currentSize","width","height","_players","getInstance","playerId","UIContainerPlugin","ContainerPlugin","Kibo","Mediator","opts","PlayerError","WARN","INFO","err","Styler","getStyleFor","style","baseUrl","html","toString","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","mediaControl","ended","buffering","_ready","onReady","onResize","onPlay","onPause","onStop","onEnded","onSeek","onError","onTimeUpdate","onVolumeUpdate","onSubtitleAvailable","defaultOptions","persistConfig","allowUserInteraction","isMobile","sources","_normalizeSources","chromeless","disableKeyboardShortcuts","_registerOptionEventListeners","_coreFactory","playerInfo","parentId","setParentId","attachTo","parentElement","_addEventListeners","isReady","_onReady","_containerChanged","_onFullscreenChange","_addContainerEventListeners","_onPlay","_onPause","_onStop","_onEnded","_onSeek","_onError","_onTimeUpdate","_onVolumeUpdate","_onSubtitleAvailable","newEvents","userEvent","eventType","eventsMapping","eventFunction","fullscreen","getCurrentTime","timeProgress","resize","size","load","autoPlay","getCurrentPlayback","setVolume","getVolume","mute","_mutedVolume","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","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","result","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","configureDomRecycler","firstResize","containers","setupMediaControl","_boundFullscreenHandler","handleFullscreenChange","handleWindowResize","playback","defer","Deferred","promise","containerFactory","then","setupContainers","resolveOnContainersReady","updateSize","setFullscreen","setPlayerSize","addClass","removeAttr","previousSize","removeClass","triggerResize","enableResizeObserver","checkSizeCallback","computedSize","clientWidth","clientHeight","resizeObserverInterval","setInterval","newSize","thereWasChange","oldHeight","oldWidth","disableResizeObserver","clearInterval","when","done","resolve","hasPlugin","unbind","_screenOrientation","setMediaControlContainer","setContainer","disableMediaControl","enableMediaControl","removeContainer","c","setupContainer","renderContainers","getCurrentContainer","appendToParent","appendChild","createContainer","createMediaControl","focusElement","toggleFullscreen","onMediaControlShow","mediacontrol","external","showMediaControl","hideMediaControl","hideMediaControlDelay","showing","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","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","userDisabled","intendedVolume","currentPositionValue","currentDurationValue","keepVisible","fullScreenOnVideoTagSupported","setInitialVolume","addEventListeners","left","right","default","bindKeyEvents","isEmptyObject","stopDragHandler","stopDrag","updateDragHandler","updateDrag","playerResize","changeTogglePlay","updateProgressBar","onVolumeChanged","nodeName","onLoadedMetadataOnVideoTag","unbindKeyEvents","initialVolume","updateVolumeUI","video","webkitSupportsFullscreen","rendered","$volumeBarContainer","containerWidth","barWidth","$volumeBarBackground","pos","$volumeBarFill","$volumeBarScrubber","Math","ceil","$volumeIcon","muted","applyButtonStyle","$playPauseToggle","$playStopToggle","mousemoveOnSeekBar","seekEnabled","offsetX","pageX","$seekBarContainer","$seekBarHover","mouseleaveOnSeekBar","onVolumeClick","getVolumeFromUIEvent","mousemoveOnVolumeBar","draggingVolumeBar","$fullscreenToggle","hideVolumeBar","togglePlayPause","togglePlayStop","startSeekDrag","draggingSeekBar","$seekBarLoaded","$seekBarPosition","$seekBarScrubber","startVolumeDrag","min","max","setSeekPercentage","offsetY","volumeFromUI","toggleMute","isInitialVolume","setWhenContainerReady","resetUserKeepVisible","showVolumeBar","hideVolumeId","timeout","loadedStart","start","total","loadedEnd","position","renderSeekBar","currentSeekBarPercentage","newPosition","newDuration","displayedPosition","$position","displayedDuration","$duration","setKeepVisible","resetKeepVisible","setUserKeepVisible","userKeepVisible","isVisible","hasClass","disabled","clientX","lastMouseX","clientY","lastMouseY","hideId","delay","newSettings","getSettings","settingsChanged","$hdIndicator","createCachedElements","$layer","$volumeContainer","resetIndicators","initializeIcons","displayedSeekBarPercentage","seekRelative","delta","bindKeyAndShow","cb","parseColors","buttonsColor","buttons","seekbarColor","seekbar","previousSeekPercentage","process","nextTick","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","externalTracks","_setupExternalTracks","tracks","_externalTracks","kind","label","lang","srcUrl","_ccIsSetup","_src","_onLoadedMetadata","_handleBufferingEvents","target","_updateSettings","autoSeekFromUrl","_checkInitialSeek","_onDurationChange","_onProgress","isSeekEnabled","onDemandType","Infinity","catch","removeAttribute","_stopPlayheadMovingChecks","isMuted","_startPlayheadMovingChecks","_playheadMovingTimeOnCheck","_determineIfPlayheadMoving","before","_onWaiting","_onLoadedData","_onCanPlay","_onPlaying","_checkForClosedCaptions","_onSeeking","_onSeeked","playheadShouldBeMoving","readyState","HAVE_FUTURE_DATA","formattedError","handleTextTrackChange","textTracks","seekTime","buffered","bufferedPos","end","_typeFor","_isReadyState","isHTML5Video","_handleTextTrackChange","mode","showingTrack","mimeTypesByExtension","extension","_canPlay","media","createElement","canPlayType","mediaType","updateSettings","mimetypes","_onLoad","evt","m","resource","_noiseFrameNum","playbackNotSupported","playbackNotSupportedMessage","showForNoOp","_animate","_noise","idata","createImageData","canvas","buffer32","Uint32Array","buffer","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","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","GoogleAnalytics","gaAccount","account","trackerName","gaTrackerName","domainName","gaDomainName","currentHDState","embedScript","_gat","script","setAttribute","onload","body","onPlaybackChanged","CONTAINER_FULL_SCREEN","onFullscreen","onHD","onDVR","_gaq","status","playbackState","array","res","click","pointerEnabled","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","icon","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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ACA;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;AACA,MAAM;AACN;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;;AAEA;;AAEA;AACA;;AAEA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA;AACA,EAAE;AACF;AACA;AACA;AACA;AACA;AACA;;AAEA;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,GAAG;AACH;AACA;AACA;AACA;;AAEA;AACA;;AAEA;AACA;;AAEA;A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AAmD;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,EAAEgE,oBAAF,E;;;;;;;ACFf;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;;;;;;;;;;;;;;;;;;AC3KtC;;;;;;AAEA,IAAM3X,SAAS,sBAAf,C,CAVA;AACA;AACA;;AAEA;;;;IAQqB4X,Q;;;;kBAAAA,Q;;;AAGrBA,SAAS9W,EAAT,GAAc,UAAS1B,IAAT,EAAeoB,QAAf,EAAyBO,OAAzB,EAAkC;AAC9Cf,SAAOc,EAAP,CAAU1B,IAAV,EAAgBoB,QAAhB,EAA0BO,OAA1B;AACA;AACD,CAHD;;AAKA6W,SAAS1W,IAAT,GAAgB,UAAS9B,IAAT,EAAeoB,QAAf,EAAyBO,OAAzB,EAAkC;AAChDf,SAAOkB,IAAP,CAAY9B,IAAZ,EAAkBoB,QAAlB,EAA4BO,OAA5B;AACA;AACD,CAHD;;AAKA6W,SAASzW,GAAT,GAAe,UAAS/B,IAAT,EAAeoB,QAAf,EAAyBO,OAAzB,EAAkC;AAC/Cf,SAAOmB,GAAP,CAAW/B,IAAX,EAAiBoB,QAAjB,EAA2BO,OAA3B;AACA;AACD,CAHD;;AAKA6W,SAASnW,OAAT,GAAmB,UAASrC,IAAT,EAAwB;AAAA,oCAANyY,IAAM;AAANA,QAAM;AAAA;;AACzC7X,SAAOyB,OAAP,CAAelC,KAAf,CAAqBS,MAArB,GAA8BZ,IAA9B,SAAuCyY,IAAvC;AACA;AACD,CAHD;;AAKAD,SAAS9V,aAAT,GAAyB,UAAS5C,GAAT,EAAcE,IAAd,EAAoBoB,QAApB,EAA8B;AACrDR,SAAO8B,aAAP,CAAqB5C,GAArB,EAA0BE,IAA1B,EAAgCoB,QAAhC;AACA;AACD,CAHD;;;;;;;ACnCA,iK;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;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,4BAA4B,aAAa;;AAEzC;AACA;AACA;AACA;AACA;AACA,wCAAwC,oCAAoC;AAC5E,4CAA4C,oCAAoC;AAChF,KAAK,2BAA2B,oCAAoC;AACpE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,gBAAgB,mBAAmB;AACnC;AACA;AACA,iCAAiC,2BAA2B;AAC5D;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,KAAK;AACL;AACA;AACA,E;;;;;;ACrEA,yC;;;;;;ACAA;AACA;AACA;;AAEA;AACA;AACA,E;;;;;;ACNA,kBAAkB,yD;;;;;;ACAlB,kBAAkB,yD;;;;;;;;;;;;;ACAlB;;;;;;;;;;;;;;;;;;;;ACAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;ACAA;;;;AACA;;;;AACA;;;;;;AAEA;;;;;;;IAOMsX,W;;;;wBACO;AAAE,aAAO,OAAP;AAAgB;;AAE7B;;;;;;;wBAIoB;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CA;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;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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 079e1b3387e3a85f1152","\"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 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 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\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'\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// 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}\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>\")\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>/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 $('
').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 ').html(template(style.toString())(options))\n }\n}\n\nexport default Styler\n\n\n\n// WEBPACK FOOTER //\n// ./src/base/styler.js","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 = 85\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 = 86\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 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 MediaControl from './components/media_control'\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 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 * \n * \n * \n * ```\n * Now, create the player:\n * ```html\n * \n *
\n * \n * \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.mediaControl.container.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.mediaControl.container.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: <>, mimeType: <>}\n * @param {Object} [options.sources]\n * An array of media source URL's, or an array of {source: <>, mimeType: <>}\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 */\n\n constructor(options) {\n super(options)\n const defaultOptions = { playerId: uniqueId(''), persistConfig: true, width: 640, height: 360, baseUrl: baseUrl, allowUserInteraction: Browser.isMobile }\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.mediaControl, Events.MEDIACONTROL_CONTAINERCHANGED, this._containerChanged)\n this.listenTo(this.core, Events.CORE_FULLSCREEN, this._onFullscreenChange)\n return this\n }\n\n _addContainerEventListeners() {\n const container = this.core.mediaControl.container\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 Object.keys(events).forEach((userEvent) => {\n const eventType = this.eventsMapping[userEvent]\n eventType && this.off(eventType)\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 _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: <>, mimeType: <>}\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.mediaControl.container.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.mediaControl.container.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.mediaControl.container.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.mediaControl.container.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.mediaControl.container.seekPercentage(percentage)\n return this\n }\n\n /**\n * Set the volume for the current video (`source`).\n * @method setVolume\n * @param {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n * @return {Player} itself\n */\n setVolume(volume) {\n if (this.core && this.core.mediaControl)\n this.core.mediaControl.setVolume(volume)\n\n return this\n }\n\n /**\n * Get the volume for the current video\n * @method getVolume\n * @return {Number} volume should be a number between 0 and 100, 0 being mute and 100 the max volume.\n */\n getVolume() {\n return this.core && this.core.mediaControl ? this.core.mediaControl.volume : 0\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.mediaControl.container.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.mediaControl.container.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.mediaControl.container.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.mediaControl.container.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.mediaControl.container.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.mediaControl.container.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.mediaControl.container.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() {\n let platformRegExp = Browser.isMobile ? new RegExp(';[^;]+;([^\\)]+)') : new RegExp(';([^\\)]+)') // eslint-disable-line no-useless-escape\n let device = platformRegExp.exec(Browser.userAgent)[1].trim()\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()\n// Temporarily removing device info due to critical error on iOS\n// Browser.device = getDevice()\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","\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\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 Events from '../../base/events'\nimport UIObject from '../../base/ui_object'\nimport Browser from '../../components/browser'\nimport ContainerFactory from '../../components/container_factory'\nimport MediaControl from '../../components/media_control'\nimport Mediator from '../../components/mediator'\nimport PlayerInfo from '../../components/player_info'\nimport PlayerError from '../../components/error'\nimport ErrorMixin from '../../base/error_mixin'\n\nimport Styler from '../../base/styler'\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': 'showMediaControl',\n 'mouseleave': 'hideMediaControl'\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 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 this.setupMediaControl(null)\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) ? true : false\n DomRecycler.configure({\n recycleVideo: recycleVideo\n })\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.containerFactory\n .createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\n }\n\n updateSize() {\n if (Fullscreen.isFullscreen())\n this.setFullscreen()\n else\n this.setPlayerSize()\n\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 if (this.playerInfo.computedSize.width !== this.el.clientWidth ||\n this.playerInfo.computedSize.height !== this.el.clientHeight) {\n this.playerInfo.computedSize = { width: this.el.clientWidth, height: this.el.clientHeight }\n this.triggerResize(this.playerInfo.computedSize)\n }\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 Mediator.trigger(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, newSize)\n this.oldHeight = newSize.height\n this.oldWidth = newSize.width\n this.firstResize = false\n }\n }\n\n disableResizeObserver() {\n if (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.mediaControl.container = null\n this.containerFactory.options = $.extend(this.options, { sources })\n this.containerFactory.createContainers()\n .then((containers) => this.setupContainers(containers))\n .then((containers) => this.resolveOnContainersReady(containers))\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 this.mediaControl.destroy()\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 this.mediaControl.show()\n }\n\n handleWindowResize(event) {\n let orientation = ($(window).width() > $(window).height()) ? 'landscape' : 'portrait'\n if (this._screenOrientation === orientation) return\n this._screenOrientation = orientation\n\n this.trigger(Events.CORE_SCREEN_ORIENTATION_CHANGED, {\n event: event,\n orientation: this._screenOrientation\n })\n }\n\n setMediaControlContainer(container) {\n this.mediaControl.setContainer(container)\n this.mediaControl.render()\n }\n\n disableMediaControl() {\n this.mediaControl.disable()\n this.$el.removeClass('nocursor')\n }\n\n enableMediaControl() {\n this.mediaControl.enable()\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.setupMediaControl(this.getCurrentContainer())\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 setupMediaControl(container) {\n if (this.mediaControl) { this.mediaControl.setContainer(container) } else {\n this.mediaControl = this.createMediaControl($.extend({ container: container, focusElement: this.el }, this.options))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_FULLSCREEN, this.toggleFullscreen)\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_SHOW, this.onMediaControlShow.bind(this, true))\n this.listenTo(this.mediaControl, Events.MEDIACONTROL_HIDE, this.onMediaControlShow.bind(this, false))\n }\n }\n\n createMediaControl(options) {\n if (options.mediacontrol && options.mediacontrol.external)\n return new options.mediacontrol.external(options).render()\n else\n return new MediaControl(options).render()\n\n }\n\n getCurrentContainer() {\n if (!this.mediaControl || !this.mediaControl.container)\n return this.containers[0]\n\n return this.mediaControl.container\n }\n\n getCurrentPlayback() {\n const container = this.getCurrentContainer()\n return container && container.playback\n }\n\n getPlaybackType() {\n const container = this.getCurrentContainer()\n return container && container.getPlaybackType()\n }\n\n toggleFullscreen() {\n if (!Fullscreen.isFullscreen()) {\n Fullscreen.requestFullscreen(this.el)\n if (!Browser.isiOS)\n this.$el.addClass('fullscreen')\n\n } else {\n Fullscreen.cancelFullscreen()\n if (!Browser.isiOS)\n this.$el.removeClass('fullscreen nocursor')\n\n }\n this.mediaControl.show()\n }\n\n showMediaControl(event) {\n this.mediaControl.show(event)\n }\n\n hideMediaControl() {\n this.mediaControl.hide(this.options.hideMediaControlDelay)\n }\n\n onMediaControlShow(showing) {\n this.getCurrentContainer().trigger(showing?Events.CONTAINER_MEDIACONTROL_SHOW:Events.CONTAINER_MEDIACONTROL_HIDE)\n\n if (showing)\n this.$el.removeClass('nocursor')\n else if (Fullscreen.isFullscreen())\n this.$el.addClass('nocursor')\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 const sources = options.source || options.sources\n\n if (sources) this.load(sources, options.mimeType || this.options.mimeType)\n\n this.trigger(Events.CORE_OPTIONS_CHANGE)\n this.containers.forEach((container) => {\n container.configure(this.options)\n })\n this.mediaControl.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 this.$el.append(this.mediaControl.render().el)\n\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.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/workspace/player/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/workspace/player/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/workspace/player/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 = 151\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/workspace/player/clappr/clappr/src/base/scss!./src/components/container/public/style.scss\n// module id = 152\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 = 153\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 * 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 UIObject from '../../base/ui_object'\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 UIObject {\n get name() { return 'MediaControl' }\n get disabled() { return this.userDisabled || (this.container && this.container.getPlaybackType() === Playback.NO_OP) }\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(options) {\n super(options)\n this.persistConfig = this.options.persistConfig\n this.container = options.container\n this.currentPositionValue = null\n this.currentDurationValue = null\n this.keepVisible = false\n this.fullScreenOnVideoTagSupported = null // unknown\n this.setInitialVolume()\n this.addEventListeners()\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\n } else { 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 addEventListeners() {\n if (this.container) {\n Mediator.on(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\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\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.play()\n }\n\n pause() {\n this.container.pause()\n }\n\n stop() {\n 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.container.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 if (!this.rendered) {\n // this will be called after a render\n 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) { this.$volumeIcon.append(volumeIcon) } 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 if (Browser.isMobile)\n this.show()\n\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 if (this.draggingVolumeBar)\n this.setVolume(this.getVolumeFromUIEvent(event))\n }\n\n playerResize(size) {\n this.$fullscreenToggle.html('')\n if (Fullscreen.isFullscreen())\n this.$fullscreenToggle.append(exitFullscreenIcon)\n else\n this.$fullscreenToggle.append(fullscreenIcon)\n\n this.applyButtonStyle(this.$fullscreenToggle)\n this.$el.removeClass('w320')\n if (size.width <= 320 || this.options.hideVolumeBar)\n this.$el.addClass('w320')\n\n }\n\n togglePlayPause() {\n if (this.container.isPlaying())\n this.container.pause()\n else\n this.container.play()\n\n return false\n }\n\n togglePlayStop() {\n if (this.container.isPlaying())\n this.container.stop()\n else\n this.container.play()\n\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 if (event)\n event.preventDefault()\n\n }\n\n startVolumeDrag(event) {\n this.draggingVolumeBar = true\n this.$el.addClass('dragging')\n if (event)\n event.preventDefault()\n\n }\n\n stopDrag(event) {\n if (this.draggingSeekBar)\n this.seek(event)\n\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.isReady) { this.container.setVolume(value) } 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, () => {\n setWhenContainerReady()\n })\n } else { setWhenContainerReady() }\n\n }\n\n toggleFullscreen() {\n this.trigger(Events.MEDIACONTROL_FULLSCREEN, this.name)\n this.container.fullscreen()\n this.resetUserKeepVisible()\n }\n\n setContainer(container) {\n if (this.container) {\n this.stopListening(this.container)\n this.fullScreenOnVideoTagSupported = null\n }\n Mediator.off(`${this.options.playerId}:${Events.PLAYER_RESIZE}`, this.playerResize, this)\n this.container = container\n // set the new container to match the volume of the last one\n this.setVolume(this.intendedVolume, true)\n this.changeTogglePlay()\n this.addEventListeners()\n this.settingsUpdate()\n this.container.trigger(Events.CONTAINER_PLAYBACKDVRSTATECHANGED, this.container.isDvrInUse())\n if (this.container.mediaControlDisabled)\n this.disable()\n\n this.trigger(Events.MEDIACONTROL_CONTAINERCHANGED)\n }\n\n showVolumeBar() {\n if (this.hideVolumeId)\n clearTimeout(this.hideVolumeId)\n\n this.$volumeBarContainer.removeClass('volume-bar-hide')\n }\n\n hideVolumeBar(timeout = 400) {\n if (!this.$volumeBarContainer) return\n if (this.draggingVolumeBar) { this.hideVolumeId = setTimeout(() => this.hideVolumeBar(), timeout) } else {\n if (this.hideVolumeId)\n clearTimeout(this.hideVolumeId)\n\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 if (this.currentPositionValue === null || this.currentDurationValue === null) {\n // this will be triggered as soon as these beocome available\n return\n }\n\n // default to 100%\n this.currentSeekBarPercentage = 100\n if (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.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)\n return\n\n const timeout = 2000\n if (!event || (event.clientX !== this.lastMouseX && event.clientY !== this.lastMouseY) || navigator.userAgent.match(/firefox/i)) {\n clearTimeout(this.hideId)\n this.$el.show()\n this.trigger(Events.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 }\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)\n return\n\n if (!this.disabled && (delay || this.userKeepVisible || this.keepVisible || this.draggingSeekBar || this.draggingVolumeBar)) { this.hideId = setTimeout(() => this.hide(), timeout) } else {\n this.trigger(Events.MEDIACONTROL_HIDE, this.name)\n this.$el.addClass('media-control-hide')\n this.hideVolumeBar(0)\n }\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.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 if (this.displayedSeekBarPercentage === value) {\n // not changed since last update\n return\n }\n this.displayedSeekBarPercentage = value\n\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 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, cb) {\n this.kibo.down(key, () => {\n this.show()\n return cb()\n })\n }\n\n bindKeyEvents() {\n if (Browser.isMobile || this.options.disableKeyboardShortcuts) return\n\n this.unbindKeyEvents()\n\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) => { this.bindKeyAndShow(i, () => this.settings.seekEnabled && this.container.seekPercentage(i * 10)) })\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 if (this.buttonsColor && element)\n $(element).find('svg path').css('fill', this.buttonsColor)\n\n }\n\n destroy() {\n this.remove()\n $(document).unbind('mouseup', this.stopDragHandler)\n $(document).unbind('mousemove', this.updateDragHandler)\n this.unbindKeyEvents()\n this.stopListening()\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(options) {\n this._options = $.extend(this._options, options)\n this.trigger(Events.MEDIACONTROL_OPTIONS_CHANGE)\n }\n\n render() {\n const timeout = 1000\n 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 this.hideId = setTimeout(() => this.hide(), timeout)\n if (this.disabled)\n 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 if (!this.settings.seekEnabled)\n this.$seekBarContainer.addClass('seek-disabled')\n\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.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/components/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 = 155\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 = 156\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/workspace/player/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/workspace/player/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/workspace/player/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/components/media_control/public/media-control.scss\n// module id = 157\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/workspace/player/clappr/clappr/src/base/scss!./src/components/media_control/public/media-control.scss\n// module id = 158\n// module chunks = 0","module.exports = \"
\\n
\\n <% var renderBar = function(name) { %>\\n
>\\n
>\\n
>
\\n
>
\\n
>
\\n
\\n
>\\n
>
\\n
\\n
\\n <% }; %>\\n <% var renderSegmentedBar = function(name, segments) {\\n segments = segments || 10; %>\\n
>\\n <% for (var i = 0; i < segments; i++) { %>\\n
>
\\n <% } %>\\n
\\n <% }; %>\\n <% var renderDrawer = function(name, renderContent) { %>\\n
>\\n
>\\n
>
\\n >\\n
\\n <% renderContent(name); %>\\n
\\n <% }; %>\\n <% var renderIndicator = function(name) { %>\\n
>
\\n <% }; %>\\n <% var renderButton = function(name) { %>\\n \\n <% }; %>\\n <% var templates = {\\n bar: renderBar,\\n segmentedBar: renderSegmentedBar,\\n };\\n var render = function(settingsList) {\\n settingsList.forEach(function(setting) {\\n if(setting === \\\"seekbar\\\") {\\n renderBar(setting);\\n } else if (setting === \\\"volume\\\") {\\n renderDrawer(setting, settings.volumeBarTemplate ? templates[settings.volumeBarTemplate] : function(name) { return renderSegmentedBar(name); });\\n } else if (setting === \\\"duration\\\" || setting === \\\"position\\\") {\\n renderIndicator(setting);\\n } else {\\n renderButton(setting);\\n }\\n });\\n }; %>\\n <% if (settings.default && settings.default.length) { %>\\n
\\n <% render(settings.default); %>\\n
\\n <% } %>\\n <% if (settings.left && settings.left.length) { %>\\n
\\n <% render(settings.left); %>\\n
\\n <% } %>\\n <% if (settings.right && settings.right.length) { %>\\n
\\n <% render(settings.right); %>\\n
\\n <% } %>\\n
\\n\";\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/components/media_control/public/media-control.html\n// module id = 159\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/03-stop.svg\n// module id = 160\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/04-volume.svg\n// module id = 161\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/05-mute.svg\n// module id = 162\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/06-expand.svg\n// module id = 163\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/07-shrink.svg\n// module id = 164\n// module chunks = 0","module.exports = \"\"\n\n\n//////////////////\n// WEBPACK FOOTER\n// ./src/icons/08-hd.svg\n// module id = 165\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/workspace/player/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/workspace/player/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/workspace/player/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 = 166\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/workspace/player/clappr/clappr/src/base/scss!./src/components/core/public/style.scss\n// module id = 167\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 = 168\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 = 169\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 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 = [DVRControls, ClosedCaptions, Favicon, SeekTime, SourcesPlugin, EndVideo, Strings, ErrorScreen]\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 = 171\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 = 172\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 = 173\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 = 174\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 = 175\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 = 176\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 = 177\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 = 178\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 } 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 $ 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 // https://github.com/clappr/clappr/issues/1076\n this.options.autoPlay && process.nextTick(() => !this._destroyed && this.play())\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