{"version":3,"sources":["../bower_components/video.js/dist/video.js","../bower_components/BigVideo/lib/bigvideo.js"],"names":["f","exports","module","define","amd","g","window","global","self","this","videojs","e","t","n","r","s","o","u","a","require","i","Error","code","l","call","length","1","_dereq_","topLevel","minDoc","document","doccy","min-document","2","3","4","getNative","nativeNow","Date","now","getTime","../internal/getNative","5","debounce","func","wait","options","cancel","timeoutId","clearTimeout","maxTimeoutId","lastCalled","trailingCall","undefined","complete","isCalled","id","result","apply","thisArg","args","delayed","remaining","stamp","setTimeout","maxDelayed","trailing","debounced","arguments","leading","maxWait","leadingCall","TypeError","FUNC_ERROR_TEXT","isObject","nativeMax","Math","max","../date/now","../lang/isObject","6","restParam","start","index","rest","Array","otherArgs","7","throttle","./debounce","8","arrayCopy","source","array","9","arrayEach","iteratee","10","baseCopy","props","object","key","11","createBaseFor","baseFor","./createBaseFor","12","baseForIn","keysIn","../object/keysIn","./baseFor","13","baseMerge","customizer","stackA","stackB","isSrcArr","isArrayLike","isArray","isTypedArray","keys","srcValue","isObjectLike","baseMergeDeep","value","isCommon","../lang/isArray","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike","14","mergeFunc","isPlainObject","isArguments","toPlainObject","push","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy","15","baseProperty","toObject","./toObject","16","bindCallback","argCount","identity","collection","accumulator","other","../utility/identity","17","createAssigner","assigner","sources","guard","isIterateeCall","../function/restParam","./bindCallback","./isIterateeCall","18","fromRight","keysFunc","iterable","19","getLength","./baseProperty","20","isNative","../lang/isNative","21","isLength","./getLength","./isLength","22","isHostObject","Object","toString","23","isIndex","reIsUint","test","MAX_SAFE_INTEGER","24","type","./isIndex","25","26","27","shimKeys","propsLength","allowIndexes","isString","hasOwnProperty","objectProto","prototype","../lang/isString","28","support","unindexedChars","charAt","../support","29","propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike","30","arrayTag","objToString","nativeIsArray","../internal/isLength","31","isFunction","funcTag","./isObject","32","reIsNative","fnToString","reIsHostCtor","Function","RegExp","replace","../internal/isHostObject","./isFunction","33","34","Ctor","objectTag","constructor","ownLast","subValue","../internal/baseForIn","./isArguments","35","stringTag","36","typedArrayTags","argsTag","boolTag","dateTag","errorTag","mapTag","numberTag","regexpTag","setTag","weakMapTag","arrayBufferTag","float32Tag","float64Tag","int8Tag","int16Tag","int32Tag","uint8Tag","uint8ClampedTag","uint16Tag","uint32Tag","37","../internal/baseCopy","38","nativeKeys","enumPrototypes","../internal/shimKeys","39","proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","errorProto","skipProto","nonEnumShadows","tag","stringProto","nonEnums","nonEnumProps","shadowProps","nonEnum","String","toLocaleString","valueOf","../internal/arrayEach","../internal/isIndex","../lang/isFunction","40","merge","../internal/baseMerge","../internal/createAssigner","41","arrayProto","splice","x","0","y","spliceObjects","42","43","canBeObject","obj","hasSymbols","Symbol","defineProperties","propIsEnumerable","assignShim","target","source1","syms","objTarget","getOwnPropertySymbols","shim","assignHasPendingExceptions","assign","preventExtensions","thrower","define-properties","object-keys","44","foreach","toStr","fn","arePropertyDescriptorsSupported","defineProperty","enumerable","_","supportsDescriptors","name","predicate","configurable","writable","map","predicates","concat","45","hasOwn","ctx","k","46","has","slice","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$window","$console","$parent","$self","$frames","$webkitIndexedDB","$webkitStorageInfo","hasAutomationEqualityBug","equalsConstructorPrototypeIfNotBuggy","keysShim","theKeys","j","skipConstructor","keysWorksWithArguments","originalKeys","47","str","callee","48","SafeParseTuple","reviver","json","error","JSON","parse","err","49","clean","sa","50","isEmpty","createXHR","callback","readystatechange","xhr","readyState","loadFunc","getBody","body","response","responseType","responseText","responseXML","isJson","errorFunc","evt","timeoutTimer","statusCode","failureResponse","aborted","status","useXDR","method","headers","url","uri","rawRequest","getAllResponseHeaders","parseHeaders","once","cors","XDomainRequest","XMLHttpRequest","data","sync","stringify","onreadystatechange","onload","onerror","onprogress","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","beforeSend","send","noop","global/window","parse-headers","51","called","52","forEach","list","iterator","context","forEachArray","forEachString","forEachObject","len","string","is-function","53","alert","confirm","prompt","54","trim","left","right","55","arg","split","row","indexOf","toLowerCase","for-each","56","_interopRequireDefault","__esModule","default","_classCallCheck","instance","Constructor","_inherits","subClass","superClass","create","setPrototypeOf","__proto__","_buttonJs","_buttonJs2","_componentJs","_componentJs2","BigPlayButton","_Button","player","buildCSSClass","handleClick","player_","play","controlText_","registerComponent","./button.js","./component.js","57","_interopRequireWildcard","newObj","_component","_component2","_utilsDomJs","Dom","_utilsEventsJs","Events","_utilsFnJs","Fn","_globalDocument","_globalDocument2","_objectAssign","_objectAssign2","Button","_Component","emitTapEvents","on","handleFocus","handleBlur","createEl","attributes","className","tabIndex","role","aria-live","el","controlTextEl_","appendChild","controlText","text","innerHTML","localize","bind","handleKeyPress","event","which","preventDefault","off","./component","./utils/dom.js","./utils/events.js","./utils/fn.js","global/document","object.assign","58","_globalWindow","_globalWindow2","_utilsGuidJs","Guid","_utilsLogJs","_utilsLogJs2","_utilsToTitleCaseJs","_utilsToTitleCaseJs2","_utilsMergeOptionsJs","_utilsMergeOptionsJs2","Component","ready","options_","id_","newGUID","name_","el_","children_","childIndex_","childNameIndex_","initChildren","reportTouchActivity","enableTouchActivity","dispose","trigger","bubbles","parentNode","removeChild","removeElData","warn","tagName","properties","language","languages","primaryCode","primaryLang","contentEl","contentEl_","children","getChildById","getChild","addChild","child","component","componentName","componentClassName","componentClass","ComponentClass","getComponent","childFound","compEl","_this","parentOptions","handleAdd","opts","playerOptions","_name","getOwnPropertyNames","first","second","third","_this2","removeOnDispose","guid","cleanRemover","nodeName","one","_this3","_arguments","newFunc","hash","isReady_","readyQueue_","triggerReady","readyQueue","hasClass","classToCheck","hasElClass","addClass","classToAdd","addElClass","removeClass","classToRemove","removeElClass","show","hide","lockShowing","unlockShowing","width","num","skipListeners","dimension","height","dimensions","widthOrHeight","style","val","pxIndex","parseInt","touchStart","firstTouch","tapMovementThreshold","touchTimeThreshold","couldBeTap","touches","xdiff","pageX","ydiff","pageY","touchDistance","sqrt","noTap","touchTime","reportUserActivity","report","touchHolding","clearInterval","setInterval","touchEnd","disposeFn","interval","intervalId","comp","components_","extend","init","subObj","_name2","./utils/guid.js","./utils/log.js","./utils/merge-options.js","./utils/to-title-case.js","59","_playToggleJs","_timeControlsCurrentTimeDisplayJs","_timeControlsDurationDisplayJs","_timeControlsTimeDividerJs","_timeControlsRemainingTimeDisplayJs","_liveDisplayJs","_progressControlProgressControlJs","_fullscreenToggleJs","_volumeControlVolumeControlJs","_volumeMenuButtonJs","_muteToggleJs","_textTrackControlsChaptersButtonJs","_textTrackControlsSubtitlesButtonJs","_textTrackControlsCaptionsButtonJs","_playbackRateMenuPlaybackRateMenuButtonJs","_spacerControlsCustomControlSpacerJs","ControlBar","loadEvent","../component.js","./fullscreen-toggle.js","./live-display.js","./mute-toggle.js","./play-toggle.js","./playback-rate-menu/playback-rate-menu-button.js","./progress-control/progress-control.js","./spacer-controls/custom-control-spacer.js","./text-track-controls/captions-button.js","./text-track-controls/chapters-button.js","./text-track-controls/subtitles-button.js","./time-controls/current-time-display.js","./time-controls/duration-display.js","./time-controls/remaining-time-display.js","./time-controls/time-divider.js","./volume-control/volume-control.js","./volume-menu-button.js","60","FullscreenToggle","isFullscreen","exitFullscreen","requestFullscreen","../button.js","61","LiveDisplay","updateShowing","duration","Infinity","../component","../utils/dom.js","62","_button","_button2","MuteToggle","update","tech_","muted","vol","volume","level","toMute","localizedMute","../button","63","PlayToggle","handlePlay","handlePause","paused","pause","64","_menuMenuButtonJs","_menuMenuButtonJs2","_menuMenuJs","_menuMenuJs2","_playbackRateMenuItemJs","_playbackRateMenuItemJs2","PlaybackRateMenuButton","_MenuButton","updateVisibility","updateLabel","labelEl_","createMenu","menu","rates","playbackRates","rate","updateARIAAttributes","setAttribute","playbackRate","currentRate","newRate","playbackRateSupported","../../component.js","../../menu/menu-button.js","../../menu/menu.js","../../utils/dom.js","./playback-rate-menu-item.js","65","_menuMenuItemJs","_menuMenuItemJs2","PlaybackRateMenuItem","_MenuItem","label","parseFloat","selected","contentElType","../../menu/menu-item.js","66","LoadProgressBar","buffered","bufferedEnd","percentify","time","end","percent","part","67","_utilsFormatTimeJs","_utilsFormatTimeJs2","_lodashCompatFunctionThrottle","_lodashCompatFunctionThrottle2","MouseTimeDisplay","controlBar","progressControl","handleMouseMove","newTime","calculateDistance","position","findElPosition","getPointerPosition","../../utils/fn.js","../../utils/format-time.js","lodash-compat/function/throttle","68","PlayProgressBar","updateDataAttr","scrubbing","getCache","currentTime","69","_seekBarJs","_mouseTimeDisplayJs","ProgressControl","./mouse-time-display.js","./seek-bar.js","70","_sliderSliderJs","_sliderSliderJs2","_loadProgressBarJs","_playProgressBarJs","SeekBar","_Slider","aria-label","getPercent","toFixed","handleMouseDown","videoWasPlaying","handleMouseUp","stepForward","stepBack","barName","playerEvent","../../slider/slider.js","./load-progress-bar.js","./play-progress-bar.js","71","_spacerJs","_spacerJs2","CustomControlSpacer","_Spacer","./spacer.js","72","Spacer","73","_textTrackMenuItemJs","_textTrackMenuItemJs2","CaptionSettingsMenuItem","_TextTrackMenuItem","kind","mode","./text-track-menu-item.js","74","_textTrackButtonJs","_textTrackButtonJs2","_captionSettingsMenuItemJs","_captionSettingsMenuItemJs2","CaptionsButton","_TextTrackButton","threshold","items","createItems","kind_","./caption-settings-menu-item.js","./text-track-button.js","75","_chaptersTrackMenuItemJs","_chaptersTrackMenuItemJs2","ChaptersButton","tracks","textTracks","track","chaptersTrack","cues","cue","mi","../../utils/to-title-case.js","./chapters-track-menu-item.js","76","ChaptersTrackMenuItem","addEventListener","startTime","77","OffTextTrackMenuItem","handleTracksChange","78","SubtitlesButton","79","_offTextTrackMenuItemJs","_offTextTrackMenuItemJs2","TextTrackButton","updateHandler","removeEventListener","./off-text-track-menu-item.js","80","TextTrackMenuItem","changeHandler","onchange","Event","createEvent","initEvent","dispatchEvent","81","CurrentTimeDisplay","updateContent","localizedText","formattedTime","82","DurationDisplay","83","RemainingTimeDisplay","remainingTime","84","TimeDivider","85","_volumeLevelJs","VolumeBar","./volume-level.js","86","_volumeBarJs","VolumeControl","./volume-bar.js","87","VolumeLevel","88","_muteToggleJs2","_volumeControlVolumeBarJs","_volumeControlVolumeBarJs2","VolumeMenuButton","inline","vertical","volumeBar","volumeUpdate","orientationClass","vb","../menu/menu-button.js","../menu/menu.js","./volume-control/volume-bar.js","89","ErrorDisplay","message","90","EventTarget","allowedEvents_","ael","fixEvent","91","_utilsLog","_utilsLog2","super_","extendFn","subClassMethods","methods","./utils/log","92","FullscreenApi","apiMap","specApi","browserApi","93","LoadingSpinner","94","MediaError","defaultMessages","errorTypes","errNum","95","_menuJs","_menuJs2","MenuButton","buttonPressed_","title","addItem","menuButtonClass","blur","unpressButton","pressButton","focus","../utils/fn.js","../utils/to-title-case.js","./menu.js","96","MenuItem","attrs","_selected","97","Menu","append","stopImmediatePropagation","../utils/events.js","98","_utilsBrowserJs","_utilsTimeRangesJs","_utilsBufferJs","_utilsStylesheetJs","stylesheet","_fullscreenApiJs","_fullscreenApiJs2","_mediaErrorJs","_mediaErrorJs2","_safeJsonParseTuple","_safeJsonParseTuple2","_tracksTextTrackListConverterJs","_tracksTextTrackListConverterJs2","_techLoaderJs","_posterImageJs","_tracksTextTrackDisplayJs","_loadingSpinnerJs","_bigPlayButtonJs","_controlBarControlBarJs","_errorDisplayJs","_tracksTextTrackSettingsJs","_techHtml5Js","Player","getTagSettings","techOrder","tagAttributes","getElAttributes","languagesToLower","languages_","cache_","poster_","poster","controls_","controls","scrubbing_","playerOptionsCopy","plugins","isAudio","flexNotSupported_","players","userActive","listenForUserActivity_","handleFullscreenChange_","handleStageClick_","styleEl_","removeAttribute","attr","createStyleElement","defaultsStyleEl","querySelector","head","insertBefore","nextSibling","firstChild","fluid","aspectRatio","initNetworkState_","networkState","insertElFirst","_dimension","privDimension","parsedVal","isNaN","updateStyleEl_","bool","fluid_","ratio","aspectRatio_","videoWidth","videoHeight","ratioParts","ratioMultiplier","width_","height_","idClass","setTextContent","loadTech_","techName","unloadTech_","disposeMediaElement","techName_","techOptions","nativeControlsForTouch","playerId","techId","textTracks_","autoplay","preload","loop","vtt.js","currentType_","src","techComponent","handleTechReady_","jsonToTextTracks","textTracksJson_","handleTechLoadStart_","handleTechWaiting_","handleTechCanPlay_","handleTechCanPlayThrough_","handleTechPlaying_","handleTechEnded_","handleTechSeeking_","handleTechSeeked_","handleTechPlay_","handleTechFirstPlay_","handleTechPause_","handleTechProgress_","handleTechDurationChange_","handleTechFullscreenChange_","handleTechError_","handleTechSuspend_","handleTechAbort_","handleTechEmptied_","handleTechStalled_","handleTechLoadedMetaData_","handleTechLoadedData_","handleTechTimeUpdate_","handleTechRateChange_","handleTechVolumeChange_","handleTechTextTrackChange_","handleTechPosterChange_","usingNativeControls","techGet_","addTechControlsListeners_","textTracksToJson","removeTechControlsListeners_","handleTechClick_","handleTechTouchStart_","handleTechTouchMove_","handleTechTouchEnd_","handleTechTap_","techCall_","hasStarted","_hasStarted","hasStarted_","starttime","button","userWasActive","isScrubbing","seconds","createTimeRange","bufferedPercent","percentAsDecimal","min","_muted","supportsFullScreen","isFS","isFullscreen_","fsApi","fullscreenchange","documentFullscreenChange","fullscreenElement","enterFullWindow","exitFullWindow","isFullWindow","docOrigOverflow","documentElement","overflow","fullWindowOnEscKey","keyCode","selectSource","tech","isSupported","b","canPlaySource","currentTech","sourceList_","load","sourceTech","notSupportedMessage","currentSrc","currentType","usingNativeControls_","error_","ended","seeking","seekable","userActivity_","userActive_","stopPropagation","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","inactivityTimeout","isAudio_","remoteTextTracks","addTextTrack","addRemoteTextTrack","removeRemoteTextTrack","language_","toJSON","baseOptions","tagOptions","dataSetup","_safeParseTuple","hasChildNodes","childNodes","childName","navigator","html5","flash","defaultVolume","getElementsByTagName","getAttribute","userLanguage","handleLoadedMetaData_","handleLoadedData_","handleUserActive_","handleUserInactive_","handleTimeUpdate_","handleVolumeChange_","handleError_","elem","createElement","./big-play-button.js","./control-bar/control-bar.js","./error-display.js","./fullscreen-api.js","./loading-spinner.js","./media-error.js","./poster-image.js","./tech/html5.js","./tech/loader.js","./tracks/text-track-display.js","./tracks/text-track-list-converter.js","./tracks/text-track-settings.js","./utils/browser.js","./utils/buffer.js","./utils/stylesheet.js","./utils/time-ranges.js","safe-json-parse/tuple","99","_playerJs","_playerJs2","plugin","./player.js","100","browser","PosterImage","BACKGROUND_SIZE_SUPPORTED","fallbackImg_","setSrc","backgroundImage","101","_windowLoaded","autoSetup","vids","audios","mediaEls","mediaEl","autoSetupTimeout","vjs","hasLoaded","102","Slider","bar","aria-valuenow","aria-valuemin","aria-valuemax","blockTextSelection","unblockTextSelection","progress","percentage","vertical_","103","FlashRtmpDecorator","Flash","streamingFormats","rtmp/mp4","rtmp/flv","streamFromParts","connection","stream","streamToParts","parts","connEnd","streamBegin","lastIndexOf","substring","isStreamingType","srcType","RTMP_RE","isStreamingSrc","rtmpSourceHandler","canHandleSource","handleSource","srcParts","registerSourceHandler","104","_createSetter","attrUpper","toUpperCase","_api","vjs_setProperty","_createGetter","vjs_getProperty","_tech","_tech2","_utilsUrlJs","Url","_flashRtmp","_flashRtmp2","_Tech","setSource","onReady","onEvent","onError","lastSeekTarget_","swf","objId","flashVars","readyFunction","eventProxyFunction","errorEventProxyFunction","params","wmode","bgcolor","class","embed","setCurrentTime","vjs_play","vjs_pause","_src","getAbsoluteURL","vjs_src","currentSource_","vjs_load","setPoster","ranges","enterFullScreen","_readWrite","_readOnly","version","withSourceHandlers","nativeSourceHandler","guessMimeType","ext","getFileExtension","formats","video/flv","video/x-flv","video/mp4","video/m4v","currSwf","getEl","checkReady","swfID","eventName","ActiveXObject","GetVariable","match","mimeTypes","enabledPlugin","description","getEmbedCode","objTag","flashVarsString","paramsString","attrsString","movie","flashvars","allowScriptAccess","allowNetworking","../utils/time-ranges.js","../utils/url.js","./flash-rtmp","./tech","105","_techJs","_techJs2","Html5","handleLateInit_","nodes","nodesLength","removeNodes","node","featuresNativeTextTracks","addTrack_","handleTextTrackChange_","handleTextTrackChange","handleTextTrackAdd_","handleTextTrackAdd","handleTextTrackRemove_","handleTextTrackRemove","proxyNativeTextTracks_","TOUCH_ENABLED","IS_IPHONE","IS_NATIVE_ANDROID","setControls","tt","emulatedTt","removeTrack_","clone","cloneNode","setElAttributes","settingsAttrs","overwriteAttrs","_ret","loadstartFired","setLoadstartFired","triggerLoadstart","v","eventsToTrigger","currentTarget","srcElement","setVolume","setMuted","offsetWidth","offsetHeight","webkitEnterFullScreen","userAgent","video","HAVE_METADATA","exitFullScreen","webkitExitFullScreen","setPreload","setAutoplay","setLoop","defaultMuted","played","setPlaybackRate","querySelectorAll","TEST_VID","srclang","canPlayType","canControlVolume","canControlPlaybackRate","supportsNativeTextTracks","supportsTextTracks","IS_FIREFOX","IS_IOS","mpegurlRE","mp4RE","patchCanPlayType","ANDROID_VERSION","IS_OLD_ANDROID","unpatchCanPlayType","../utils/browser.js","../utils/log.js","../utils/merge-options.js","./tech.js","106","MediaLoader","107","_tracksTextTrack","_tracksTextTrack2","_tracksTextTrackList","_tracksTextTrackList2","Tech","featuresProgressEvents","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","emulateTextTracks","initTextTrackListeners","onDurationChange","manualProgress","trackProgress","manualProgressOff","stopTrackingProgress","progressInterval","numBufferedPercent","bufferedPercent_","duration_","manualTimeUpdates","trackCurrentTime","stopTrackingCurrentTime","manualTimeUpdatesOff","currentTimeInterval","manuallyTriggered","textTrackListChanges","script","textTracksChanges","updateDisplay","remoteTextTracks_","createTrackHelper","featuresVolumeControl","featuresFullscreenResize","featuresPlaybackRate","handler","handlers","sourceHandlers","selectSourceHandler","can","srcObj","sh","originalSeekable","sourceHandler_","disposeSourceHandler","../media-error.js","../tracks/text-track","../tracks/text-track-list","../utils/buffer.js","108","TextTrackCueList","IS_IE8","prop","setCues_","get","length_","oldLength","cues_","defineProp","getCueById","109","constructColor","color","opacity","tryUpdateStyle","rule","darkGray","lightGray","fontMap","monospace","sansSerif","serif","monospaceSansSerif","monospaceSerif","proportionalSansSerif","proportionalSerif","casual","smallcaps","TextTrackDisplay","toggleDisplay","clearDisplay","updateForTrack","overrides","getValues","_i","cueDiv","displayState","textOpacity","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","top","bottom","fontFamily","fontVariant","../menu/menu-item.js","110","TextTrackMode","disabled","hidden","showing","TextTrackKind","subtitles","captions","descriptions","chapters","metadata","111","trackToJson_","inBandMetadataTrackDispatchType","endTime","trackEls","trackObjs","trackEl","filter","addedTrack","addCue","112","_eventTarget","_eventTarget2","TextTrackList","tracks_","change","addtrack","removetrack","_event","rtrack","getTrackById","../event-target","113","getSelectedOptionValue","selectedOption","selectedOptions","selectedIndex","setSelectedOption","option","captionOptionsMenuTemplate","template","TextTrackSettings","persistTextTrackSettings","saveSettings","restoreSettings","textEdge","fgColor","bgColor","bgOpacity","setValues","values","localStorage","getItem","setItem","removeItem","ttDisplay","114","_textTrackCueList","_textTrackCueList2","_textTrackEnums","TextTrackEnum","_xhr","_xhr2","TextTrack","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","loaded_","ct","active","loadTrack","cuechange","removeCue","removed","parseCues","srcContent","parser","crossOrigin","isCrossOrigin","responseBody","searchElement","fromIndex","O","abs","../utils/guid.js","./text-track-cue-list","./text-track-enums","115","USER_AGENT","webkitVersionMap","exec","appleWebkitVersion","pop","IS_IPAD","IS_IPOD","IOS_VERSION","IS_ANDROID","major","minor","IS_CHROME","DocumentTouch","116","bufferedDuration","_timeRangesJs","./time-ranges.js","117","_logJs","_logJs2","defaultBehaviors","messages","Proxy","./log.js","118","_taggedTemplateLiteralLoose","strings","raw","getElementById","propName","_tsml2","_templateObject","attrName","parent","getElData","elIdAttr","elData","hasElData","element","classNames","join","attrValue","knownBooleans","attrVal","onselectstart","box","getBoundingClientRect","docEl","clientLeft","scrollLeft","pageXOffset","clientTop","scrollTop","pageYOffset","round","boxW","boxH","boxY","boxX","changedTouches","_guidJs","_tsml","./guid.js","tsml","119","_handleMultipleEvents","dispatcher","handlersCopy","m","isImmediatePropagationStopped","attachEvent","removeType","_cleanUpEvents","elemData","ownerDocument","isPropagationStopped","defaultPrevented","targetData","returnTrue","returnFalse","old","relatedTarget","fromElement","toElement","returnValue","cancelBubble","clientX","doc","clientY","charCode","detachEvent","types","_domJs","./dom.js","120","uid","ret","121","formatTime","guide","floor","h","gm","gh","122","_guid","123","_logType","argsArray","console","log","unshift","history","124","isPlain","mergeOptions","_lodashCompatObjectMerge2","_lodashCompatObjectMerge","destination","lodash-compat/object/merge","125","content","styleSheet","cssText","textContent","126","createTimeRanges","createTimeRangesObj","getRange","fnName","valueIndex","rangeIndex","rangeCheck","maxIndex","127","toTitleCase","128","parseUrl","href","addToBody","host","protocol","div","details","path","splitPathRe","pathParts","urlInfo","winLoc","location","srcProtocol","129","_setup","setup","_player","_player2","_pluginsJs","_pluginsJs2","_srcJsUtilsMergeOptionsJs","_srcJsUtilsMergeOptionsJs2","_tracksTextTrackJs","_tracksTextTrackJs2","_extendJs","_extendJs2","_utilsCreateDeprecationProxyJs","_utilsCreateDeprecationProxyJs2","_techFlashJs","HTMLVideoElement","getPlayers","VERSION","addLanguage","_merge","../../src/js/utils/merge-options.js","./event-target","./extend.js","./player","./plugins.js","./setup","./tech/flash.js","./tracks/text-track.js","./utils/create-deprecation-proxy.js","./utils/format-time.js","./utils/url.js","root","vttjs","cueShim","VTTCue","regionShim","VTTRegion","oldVTTCue","oldVTTRegion","restore","findDirectionSetting","dir","directionSetting","findAlignSetting","align","alignSetting","cobj","p","isIE8","baseObj","hasBeenReset","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","setting","SyntaxError","autoKeyword","","lr","rl","middle","getCueAsHTML","WebVTT","convertCueToDOMTree","findScrollSetting","scroll","scrollSetting","isValidPercentValue","_width","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","lines","regionAnchorY","regionAnchorX","viewportAnchorY","viewportAnchorX","up","ParsingError","errorData","parseTimeStamp","input","computeSeconds","Settings","_objCreate","parseOptions","keyValueDelim","groupDelim","groups","kv","parseCue","regionList","consumeTimeStamp","ts","Errors","BadTimeStamp","oInput","consumeCueSettings","settings","region","alt","vals","vals0","integer","line","lineAlign","snapToLines","size","positionAlign","skipWhitespace","substr","parseContent","nextToken","consume","unescape1","ESCAPE","unescape","shouldAdd","current","NEEDS_PARENT","localName","annotation","TAG_NAME","TAG_ANNOTATION","rootDiv","tagStack","createTextNode","createProcessingInstruction","determineBidi","pushNodes","nodeStack","nextTextNode","innerText","charCodeAt","strongRTLChars","computeLinePos","textTrackList","mediaElement","trackList","count","StyleBox","CueStyleBox","styleOptions","styles","display","writingMode","unicodeBidi","applyStyles","textAlign","font","whiteSpace","direction","stylesunicodeBidi","textPos","formatStyle","move","BoxPosition","lh","offsetTop","rects","getClientRects","lineHeight","moveBoxToLinePosition","styleBox","containerBox","boxPositions","findBestPosition","axis","bestPosition","specifiedPosition","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","boxPosition","linePos","step","maxPosition","initialAxis","ceil","reverse","calculatedPercentage","toCSSCompatValues","F","BadSignature","dflt","defaultKey","&","<",">","",""," ","c","ruby","rt","lang","unit","toMove","overlaps","b2","boxes","container","intersectArea","reference","getSimpleBoxPosition","StringDecoder","decode","decodeURIComponent","encodeURIComponent","cuetext","FONT_SIZE_PERCENT","FONT_STYLE","CUE_BACKGROUND_PADDING","processCues","overlay","shouldCompute","paddedOverlay","margin","Parser","decoder","state","buffer","TextDecoder","reportOrThrowError","onparsingerror","collectNextLine","pos","parseRegion","xy","anchor","onregion","parseHeader","alreadyCollectedLine","hasSubstring","oncue","flush","onflush","factory","jQuery","$","BigVideo","updateSize","containerW","outerWidth","containerH","outerHeight","containerAspect","is","css","mediaAspect","currMediaType","shrinkable","vidEl","initPlayControl","markup","slider","animate","slide","ui","isSeeking","stop","click","offsetX","playControl","currTime","minutes","vidDur","action","isPlaying","nextMedia","setUpAutoPlay","currMediaIndex","playlist","playVideo","isAmbient","doLoop","showPoster","remove","bgImage","wrap","imagesLoaded","defaults","useFlashForFirefox","forceAutoplay","isInitialized","isQueued","prepend","autoPlayString","videoTechOrder","ua","isFirefox","dur","durMinutes","durSeconds","ambient","onShown","showPlaylist","files","getPlayer","triggerPlayer"],"mappings":"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KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,IAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KAAA,KACA,KAAA,KAAA,KAAA,KAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,KAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MAAA,MACA,MAAA,MAAA,MAAA,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","file":"home-video.js","sourcesContent":["/**\n * @license\n * Video.js 5.0.0 \n * Copyright Brightcove, Inc. \n * Available under Apache License Version 2.0\n * \n *\n * Includes vtt.js \n * Available under Apache License Version 2.0\n * \n */\n\n(function(f){if(typeof exports===\"object\"&&typeof module!==\"undefined\"){module.exports=f()}else if(typeof define===\"function\"&&define.amd){define([],f)}else{var g;if(typeof window!==\"undefined\"){g=window}else if(typeof global!==\"undefined\"){g=global}else if(typeof self!==\"undefined\"){g=self}else{g=this}g.videojs = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require==\"function\"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error(\"Cannot find module '\"+o+\"'\");throw f.code=\"MODULE_NOT_FOUND\",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o logs the number of milliseconds it took for the deferred function to be invoked\n */\nvar now = nativeNow || function() {\n return new Date().getTime();\n};\n\nmodule.exports = now;\n\n},{\"../internal/getNative\":20}],5:[function(_dereq_,module,exports){\nvar isObject = _dereq_('../lang/isObject'),\n now = _dereq_('../date/now');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed invocations. Provide an options object to indicate that `func`\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\n * Subsequent calls to the debounced function return the result of the last\n * `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the debounced function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=false] Specify invoking on the leading\n * edge of the timeout.\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\n * delayed before it's invoked.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // avoid costly calculations while the window size is in flux\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\n * 'maxWait': 1000\n * }));\n *\n * // cancel a debounced call\n * var todoChanges = _.debounce(batchLog, 1000);\n * Object.observe(models.todo, todoChanges);\n *\n * Object.observe(models, function(changes) {\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\n * todoChanges.cancel();\n * }\n * }, ['delete']);\n *\n * // ...at some point `models.todo` is changed\n * models.todo.completed = true;\n *\n * // ...before 1 second has passed `models.todo` is deleted\n * // which cancels the debounced `todoChanges` call\n * delete models.todo;\n */\nfunction debounce(func, wait, options) {\n var args,\n maxTimeoutId,\n result,\n stamp,\n thisArg,\n timeoutId,\n trailingCall,\n lastCalled = 0,\n maxWait = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = wait < 0 ? 0 : (+wait || 0);\n if (options === true) {\n var leading = true;\n trailing = false;\n } else if (isObject(options)) {\n leading = !!options.leading;\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function cancel() {\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n if (maxTimeoutId) {\n clearTimeout(maxTimeoutId);\n }\n lastCalled = 0;\n maxTimeoutId = timeoutId = trailingCall = undefined;\n }\n\n function complete(isCalled, id) {\n if (id) {\n clearTimeout(id);\n }\n maxTimeoutId = timeoutId = trailingCall = undefined;\n if (isCalled) {\n lastCalled = now();\n result = func.apply(thisArg, args);\n if (!timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n }\n }\n\n function delayed() {\n var remaining = wait - (now() - stamp);\n if (remaining <= 0 || remaining > wait) {\n complete(trailingCall, maxTimeoutId);\n } else {\n timeoutId = setTimeout(delayed, remaining);\n }\n }\n\n function maxDelayed() {\n complete(trailing, timeoutId);\n }\n\n function debounced() {\n args = arguments;\n stamp = now();\n thisArg = this;\n trailingCall = trailing && (timeoutId || !leading);\n\n if (maxWait === false) {\n var leadingCall = leading && !timeoutId;\n } else {\n if (!maxTimeoutId && !leading) {\n lastCalled = stamp;\n }\n var remaining = maxWait - (stamp - lastCalled),\n isCalled = remaining <= 0 || remaining > maxWait;\n\n if (isCalled) {\n if (maxTimeoutId) {\n maxTimeoutId = clearTimeout(maxTimeoutId);\n }\n lastCalled = stamp;\n result = func.apply(thisArg, args);\n }\n else if (!maxTimeoutId) {\n maxTimeoutId = setTimeout(maxDelayed, remaining);\n }\n }\n if (isCalled && timeoutId) {\n timeoutId = clearTimeout(timeoutId);\n }\n else if (!timeoutId && wait !== maxWait) {\n timeoutId = setTimeout(delayed, wait);\n }\n if (leadingCall) {\n isCalled = true;\n result = func.apply(thisArg, args);\n }\n if (isCalled && !timeoutId && !maxTimeoutId) {\n args = thisArg = undefined;\n }\n return result;\n }\n debounced.cancel = cancel;\n return debounced;\n}\n\nmodule.exports = debounce;\n\n},{\"../date/now\":4,\"../lang/isObject\":33}],6:[function(_dereq_,module,exports){\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max;\n\n/**\n * Creates a function that invokes `func` with the `this` binding of the\n * created function and arguments from `start` and beyond provided as an array.\n *\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to apply a rest parameter to.\n * @param {number} [start=func.length-1] The start position of the rest parameter.\n * @returns {Function} Returns the new function.\n * @example\n *\n * var say = _.restParam(function(what, names) {\n * return what + ' ' + _.initial(names).join(', ') +\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\n * });\n *\n * say('hello', 'fred', 'barney', 'pebbles');\n * // => 'hello fred, barney, & pebbles'\n */\nfunction restParam(func, start) {\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\n return function() {\n var args = arguments,\n index = -1,\n length = nativeMax(args.length - start, 0),\n rest = Array(length);\n\n while (++index < length) {\n rest[index] = args[start + index];\n }\n switch (start) {\n case 0: return func.call(this, rest);\n case 1: return func.call(this, args[0], rest);\n case 2: return func.call(this, args[0], args[1], rest);\n }\n var otherArgs = Array(start + 1);\n index = -1;\n while (++index < start) {\n otherArgs[index] = args[index];\n }\n otherArgs[start] = rest;\n return func.apply(this, otherArgs);\n };\n}\n\nmodule.exports = restParam;\n\n},{}],7:[function(_dereq_,module,exports){\nvar debounce = _dereq_('./debounce'),\n isObject = _dereq_('../lang/isObject');\n\n/** Used as the `TypeError` message for \"Functions\" methods. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed invocations. Provide an options object to indicate\n * that `func` should be invoked on the leading and/or trailing edge of the\n * `wait` timeout. Subsequent calls to the throttled function return the\n * result of the last `func` call.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\n * on the trailing edge of the timeout only if the the throttled function is\n * invoked more than once during the `wait` timeout.\n *\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options] The options object.\n * @param {boolean} [options.leading=true] Specify invoking on the leading\n * edge of the timeout.\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\n * edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // avoid excessively updating the position while scrolling\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes\n * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\n * 'trailing': false\n * }));\n *\n * // cancel a trailing throttled call\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (options === false) {\n leading = false;\n } else if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\n}\n\nmodule.exports = throttle;\n\n},{\"../lang/isObject\":33,\"./debounce\":5}],8:[function(_dereq_,module,exports){\n/**\n * Copies the values of `source` to `array`.\n *\n * @private\n * @param {Array} source The array to copy values from.\n * @param {Array} [array=[]] The array to copy values to.\n * @returns {Array} Returns `array`.\n */\nfunction arrayCopy(source, array) {\n var index = -1,\n length = source.length;\n\n array || (array = Array(length));\n while (++index < length) {\n array[index] = source[index];\n }\n return array;\n}\n\nmodule.exports = arrayCopy;\n\n},{}],9:[function(_dereq_,module,exports){\n/**\n * A specialized version of `_.forEach` for arrays without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Array} array The array to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Array} Returns `array`.\n */\nfunction arrayEach(array, iteratee) {\n var index = -1,\n length = array.length;\n\n while (++index < length) {\n if (iteratee(array[index], index, array) === false) {\n break;\n }\n }\n return array;\n}\n\nmodule.exports = arrayEach;\n\n},{}],10:[function(_dereq_,module,exports){\n/**\n * Copies properties of `source` to `object`.\n *\n * @private\n * @param {Object} source The object to copy properties from.\n * @param {Array} props The property names to copy.\n * @param {Object} [object={}] The object to copy properties to.\n * @returns {Object} Returns `object`.\n */\nfunction baseCopy(source, props, object) {\n object || (object = {});\n\n var index = -1,\n length = props.length;\n\n while (++index < length) {\n var key = props[index];\n object[key] = source[key];\n }\n return object;\n}\n\nmodule.exports = baseCopy;\n\n},{}],11:[function(_dereq_,module,exports){\nvar createBaseFor = _dereq_('./createBaseFor');\n\n/**\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\n * each property. Iteratee functions may exit iteration early by explicitly\n * returning `false`.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @param {Function} keysFunc The function to get the keys of `object`.\n * @returns {Object} Returns `object`.\n */\nvar baseFor = createBaseFor();\n\nmodule.exports = baseFor;\n\n},{\"./createBaseFor\":18}],12:[function(_dereq_,module,exports){\nvar baseFor = _dereq_('./baseFor'),\n keysIn = _dereq_('../object/keysIn');\n\n/**\n * The base implementation of `_.forIn` without support for callback\n * shorthands and `this` binding.\n *\n * @private\n * @param {Object} object The object to iterate over.\n * @param {Function} iteratee The function invoked per iteration.\n * @returns {Object} Returns `object`.\n */\nfunction baseForIn(object, iteratee) {\n return baseFor(object, iteratee, keysIn);\n}\n\nmodule.exports = baseForIn;\n\n},{\"../object/keysIn\":39,\"./baseFor\":11}],13:[function(_dereq_,module,exports){\nvar arrayEach = _dereq_('./arrayEach'),\n baseMergeDeep = _dereq_('./baseMergeDeep'),\n isArray = _dereq_('../lang/isArray'),\n isArrayLike = _dereq_('./isArrayLike'),\n isObject = _dereq_('../lang/isObject'),\n isObjectLike = _dereq_('./isObjectLike'),\n isTypedArray = _dereq_('../lang/isTypedArray'),\n keys = _dereq_('../object/keys');\n\n/**\n * The base implementation of `_.merge` without support for argument juggling,\n * multiple sources, and `this` binding `customizer` functions.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {Object} Returns `object`.\n */\nfunction baseMerge(object, source, customizer, stackA, stackB) {\n if (!isObject(object)) {\n return object;\n }\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\n props = isSrcArr ? undefined : keys(source);\n\n arrayEach(props || source, function(srcValue, key) {\n if (props) {\n key = srcValue;\n srcValue = source[key];\n }\n if (isObjectLike(srcValue)) {\n stackA || (stackA = []);\n stackB || (stackB = []);\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\n }\n else {\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n }\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\n object[key] = result;\n }\n }\n });\n return object;\n}\n\nmodule.exports = baseMerge;\n\n},{\"../lang/isArray\":30,\"../lang/isObject\":33,\"../lang/isTypedArray\":36,\"../object/keys\":38,\"./arrayEach\":9,\"./baseMergeDeep\":14,\"./isArrayLike\":21,\"./isObjectLike\":26}],14:[function(_dereq_,module,exports){\nvar arrayCopy = _dereq_('./arrayCopy'),\n isArguments = _dereq_('../lang/isArguments'),\n isArray = _dereq_('../lang/isArray'),\n isArrayLike = _dereq_('./isArrayLike'),\n isPlainObject = _dereq_('../lang/isPlainObject'),\n isTypedArray = _dereq_('../lang/isTypedArray'),\n toPlainObject = _dereq_('../lang/toPlainObject');\n\n/**\n * A specialized version of `baseMerge` for arrays and objects which performs\n * deep merges and tracks traversed objects enabling objects with circular\n * references to be merged.\n *\n * @private\n * @param {Object} object The destination object.\n * @param {Object} source The source object.\n * @param {string} key The key of the value to merge.\n * @param {Function} mergeFunc The function to merge values.\n * @param {Function} [customizer] The function to customize merged values.\n * @param {Array} [stackA=[]] Tracks traversed source objects.\n * @param {Array} [stackB=[]] Associates values with source counterparts.\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\n */\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\n var length = stackA.length,\n srcValue = source[key];\n\n while (length--) {\n if (stackA[length] == srcValue) {\n object[key] = stackB[length];\n return;\n }\n }\n var value = object[key],\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\n isCommon = result === undefined;\n\n if (isCommon) {\n result = srcValue;\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\n result = isArray(value)\n ? value\n : (isArrayLike(value) ? arrayCopy(value) : []);\n }\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\n result = isArguments(value)\n ? toPlainObject(value)\n : (isPlainObject(value) ? value : {});\n }\n else {\n isCommon = false;\n }\n }\n // Add the source value to the stack of traversed objects and associate\n // it with its merged value.\n stackA.push(srcValue);\n stackB.push(result);\n\n if (isCommon) {\n // Recursively merge objects and arrays (susceptible to call stack limits).\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\n } else if (result === result ? (result !== value) : (value === value)) {\n object[key] = result;\n }\n}\n\nmodule.exports = baseMergeDeep;\n\n},{\"../lang/isArguments\":29,\"../lang/isArray\":30,\"../lang/isPlainObject\":34,\"../lang/isTypedArray\":36,\"../lang/toPlainObject\":37,\"./arrayCopy\":8,\"./isArrayLike\":21}],15:[function(_dereq_,module,exports){\nvar toObject = _dereq_('./toObject');\n\n/**\n * The base implementation of `_.property` without support for deep paths.\n *\n * @private\n * @param {string} key The key of the property to get.\n * @returns {Function} Returns the new function.\n */\nfunction baseProperty(key) {\n return function(object) {\n return object == null ? undefined : toObject(object)[key];\n };\n}\n\nmodule.exports = baseProperty;\n\n},{\"./toObject\":28}],16:[function(_dereq_,module,exports){\nvar identity = _dereq_('../utility/identity');\n\n/**\n * A specialized version of `baseCallback` which only supports `this` binding\n * and specifying the number of arguments to provide to `func`.\n *\n * @private\n * @param {Function} func The function to bind.\n * @param {*} thisArg The `this` binding of `func`.\n * @param {number} [argCount] The number of arguments to provide to `func`.\n * @returns {Function} Returns the callback.\n */\nfunction bindCallback(func, thisArg, argCount) {\n if (typeof func != 'function') {\n return identity;\n }\n if (thisArg === undefined) {\n return func;\n }\n switch (argCount) {\n case 1: return function(value) {\n return func.call(thisArg, value);\n };\n case 3: return function(value, index, collection) {\n return func.call(thisArg, value, index, collection);\n };\n case 4: return function(accumulator, value, index, collection) {\n return func.call(thisArg, accumulator, value, index, collection);\n };\n case 5: return function(value, other, key, object, source) {\n return func.call(thisArg, value, other, key, object, source);\n };\n }\n return function() {\n return func.apply(thisArg, arguments);\n };\n}\n\nmodule.exports = bindCallback;\n\n},{\"../utility/identity\":42}],17:[function(_dereq_,module,exports){\nvar bindCallback = _dereq_('./bindCallback'),\n isIterateeCall = _dereq_('./isIterateeCall'),\n restParam = _dereq_('../function/restParam');\n\n/**\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\n *\n * @private\n * @param {Function} assigner The function to assign values.\n * @returns {Function} Returns the new assigner function.\n */\nfunction createAssigner(assigner) {\n return restParam(function(object, sources) {\n var index = -1,\n length = object == null ? 0 : sources.length,\n customizer = length > 2 ? sources[length - 2] : undefined,\n guard = length > 2 ? sources[2] : undefined,\n thisArg = length > 1 ? sources[length - 1] : undefined;\n\n if (typeof customizer == 'function') {\n customizer = bindCallback(customizer, thisArg, 5);\n length -= 2;\n } else {\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\n length -= (customizer ? 1 : 0);\n }\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\n customizer = length < 3 ? undefined : customizer;\n length = 1;\n }\n while (++index < length) {\n var source = sources[index];\n if (source) {\n assigner(object, source, customizer);\n }\n }\n return object;\n });\n}\n\nmodule.exports = createAssigner;\n\n},{\"../function/restParam\":6,\"./bindCallback\":16,\"./isIterateeCall\":24}],18:[function(_dereq_,module,exports){\nvar toObject = _dereq_('./toObject');\n\n/**\n * Creates a base function for `_.forIn` or `_.forInRight`.\n *\n * @private\n * @param {boolean} [fromRight] Specify iterating from right to left.\n * @returns {Function} Returns the new base function.\n */\nfunction createBaseFor(fromRight) {\n return function(object, iteratee, keysFunc) {\n var iterable = toObject(object),\n props = keysFunc(object),\n length = props.length,\n index = fromRight ? length : -1;\n\n while ((fromRight ? index-- : ++index < length)) {\n var key = props[index];\n if (iteratee(iterable[key], key, iterable) === false) {\n break;\n }\n }\n return object;\n };\n}\n\nmodule.exports = createBaseFor;\n\n},{\"./toObject\":28}],19:[function(_dereq_,module,exports){\nvar baseProperty = _dereq_('./baseProperty');\n\n/**\n * Gets the \"length\" property value of `object`.\n *\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {*} Returns the \"length\" value.\n */\nvar getLength = baseProperty('length');\n\nmodule.exports = getLength;\n\n},{\"./baseProperty\":15}],20:[function(_dereq_,module,exports){\nvar isNative = _dereq_('../lang/isNative');\n\n/**\n * Gets the native function at `key` of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @param {string} key The key of the method to get.\n * @returns {*} Returns the function if it's native, else `undefined`.\n */\nfunction getNative(object, key) {\n var value = object == null ? undefined : object[key];\n return isNative(value) ? value : undefined;\n}\n\nmodule.exports = getNative;\n\n},{\"../lang/isNative\":32}],21:[function(_dereq_,module,exports){\nvar getLength = _dereq_('./getLength'),\n isLength = _dereq_('./isLength');\n\n/**\n * Checks if `value` is array-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\n */\nfunction isArrayLike(value) {\n return value != null && isLength(getLength(value));\n}\n\nmodule.exports = isArrayLike;\n\n},{\"./getLength\":19,\"./isLength\":25}],22:[function(_dereq_,module,exports){\n/**\n * Checks if `value` is a host object in IE < 9.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\n */\nvar isHostObject = (function() {\n try {\n Object({ 'toString': 0 } + '');\n } catch(e) {\n return function() { return false; };\n }\n return function(value) {\n // IE < 9 presents many host objects as `Object` objects that can coerce\n // to strings despite having improperly defined `toString` methods.\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\n };\n}());\n\nmodule.exports = isHostObject;\n\n},{}],23:[function(_dereq_,module,exports){\n/** Used to detect unsigned integer values. */\nvar reIsUint = /^\\d+$/;\n\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like index.\n *\n * @private\n * @param {*} value The value to check.\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\n */\nfunction isIndex(value, length) {\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\n length = length == null ? MAX_SAFE_INTEGER : length;\n return value > -1 && value % 1 == 0 && value < length;\n}\n\nmodule.exports = isIndex;\n\n},{}],24:[function(_dereq_,module,exports){\nvar isArrayLike = _dereq_('./isArrayLike'),\n isIndex = _dereq_('./isIndex'),\n isObject = _dereq_('../lang/isObject');\n\n/**\n * Checks if the provided arguments are from an iteratee call.\n *\n * @private\n * @param {*} value The potential iteratee value argument.\n * @param {*} index The potential iteratee index or key argument.\n * @param {*} object The potential iteratee object argument.\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\n */\nfunction isIterateeCall(value, index, object) {\n if (!isObject(object)) {\n return false;\n }\n var type = typeof index;\n if (type == 'number'\n ? (isArrayLike(object) && isIndex(index, object.length))\n : (type == 'string' && index in object)) {\n var other = object[index];\n return value === value ? (value === other) : (other !== other);\n }\n return false;\n}\n\nmodule.exports = isIterateeCall;\n\n},{\"../lang/isObject\":33,\"./isArrayLike\":21,\"./isIndex\":23}],25:[function(_dereq_,module,exports){\n/**\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\n * of an array-like value.\n */\nvar MAX_SAFE_INTEGER = 9007199254740991;\n\n/**\n * Checks if `value` is a valid array-like length.\n *\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\n */\nfunction isLength(value) {\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\n}\n\nmodule.exports = isLength;\n\n},{}],26:[function(_dereq_,module,exports){\n/**\n * Checks if `value` is object-like.\n *\n * @private\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n */\nfunction isObjectLike(value) {\n return !!value && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n\n},{}],27:[function(_dereq_,module,exports){\nvar isArguments = _dereq_('../lang/isArguments'),\n isArray = _dereq_('../lang/isArray'),\n isIndex = _dereq_('./isIndex'),\n isLength = _dereq_('./isLength'),\n isString = _dereq_('../lang/isString'),\n keysIn = _dereq_('../object/keysIn');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * A fallback implementation of `Object.keys` which creates an array of the\n * own enumerable property names of `object`.\n *\n * @private\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n */\nfunction shimKeys(object) {\n var props = keysIn(object),\n propsLength = props.length,\n length = propsLength && object.length;\n\n var allowIndexes = !!length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object));\n\n var index = -1,\n result = [];\n\n while (++index < propsLength) {\n var key = props[index];\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\n result.push(key);\n }\n }\n return result;\n}\n\nmodule.exports = shimKeys;\n\n},{\"../lang/isArguments\":29,\"../lang/isArray\":30,\"../lang/isString\":35,\"../object/keysIn\":39,\"./isIndex\":23,\"./isLength\":25}],28:[function(_dereq_,module,exports){\nvar isObject = _dereq_('../lang/isObject'),\n isString = _dereq_('../lang/isString'),\n support = _dereq_('../support');\n\n/**\n * Converts `value` to an object if it's not one.\n *\n * @private\n * @param {*} value The value to process.\n * @returns {Object} Returns the object.\n */\nfunction toObject(value) {\n if (support.unindexedChars && isString(value)) {\n var index = -1,\n length = value.length,\n result = Object(value);\n\n while (++index < length) {\n result[index] = value.charAt(index);\n }\n return result;\n }\n return isObject(value) ? value : Object(value);\n}\n\nmodule.exports = toObject;\n\n},{\"../lang/isObject\":33,\"../lang/isString\":35,\"../support\":41}],29:[function(_dereq_,module,exports){\nvar isArrayLike = _dereq_('../internal/isArrayLike'),\n isObjectLike = _dereq_('../internal/isObjectLike');\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\n\n/**\n * Checks if `value` is classified as an `arguments` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArguments(function() { return arguments; }());\n * // => true\n *\n * _.isArguments([1, 2, 3]);\n * // => false\n */\nfunction isArguments(value) {\n return isObjectLike(value) && isArrayLike(value) &&\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\n}\n\nmodule.exports = isArguments;\n\n},{\"../internal/isArrayLike\":21,\"../internal/isObjectLike\":26}],30:[function(_dereq_,module,exports){\nvar getNative = _dereq_('../internal/getNative'),\n isLength = _dereq_('../internal/isLength'),\n isObjectLike = _dereq_('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeIsArray = getNative(Array, 'isArray');\n\n/**\n * Checks if `value` is classified as an `Array` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isArray([1, 2, 3]);\n * // => true\n *\n * _.isArray(function() { return arguments; }());\n * // => false\n */\nvar isArray = nativeIsArray || function(value) {\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\n};\n\nmodule.exports = isArray;\n\n},{\"../internal/getNative\":20,\"../internal/isLength\":25,\"../internal/isObjectLike\":26}],31:[function(_dereq_,module,exports){\nvar isObject = _dereq_('./isObject');\n\n/** `Object#toString` result references. */\nvar funcTag = '[object Function]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `Function` object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isFunction(_);\n * // => true\n *\n * _.isFunction(/abc/);\n * // => false\n */\nfunction isFunction(value) {\n // The use of `Object#toString` avoids issues with the `typeof` operator\n // in older versions of Chrome and Safari which return 'function' for regexes\n // and Safari 8 which returns 'object' for typed array constructors.\n return isObject(value) && objToString.call(value) == funcTag;\n}\n\nmodule.exports = isFunction;\n\n},{\"./isObject\":33}],32:[function(_dereq_,module,exports){\nvar isFunction = _dereq_('./isFunction'),\n isHostObject = _dereq_('../internal/isHostObject'),\n isObjectLike = _dereq_('../internal/isObjectLike');\n\n/** Used to detect host constructors (Safari > 5). */\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to resolve the decompiled source of functions. */\nvar fnToString = Function.prototype.toString;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/** Used to detect if a method is native. */\nvar reIsNative = RegExp('^' +\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\n);\n\n/**\n * Checks if `value` is a native function.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\n * @example\n *\n * _.isNative(Array.prototype.push);\n * // => true\n *\n * _.isNative(_);\n * // => false\n */\nfunction isNative(value) {\n if (value == null) {\n return false;\n }\n if (isFunction(value)) {\n return reIsNative.test(fnToString.call(value));\n }\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\n}\n\nmodule.exports = isNative;\n\n},{\"../internal/isHostObject\":22,\"../internal/isObjectLike\":26,\"./isFunction\":31}],33:[function(_dereq_,module,exports){\n/**\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(1);\n * // => false\n */\nfunction isObject(value) {\n // Avoid a V8 JIT bug in Chrome 19-20.\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\n var type = typeof value;\n return !!value && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n\n},{}],34:[function(_dereq_,module,exports){\nvar baseForIn = _dereq_('../internal/baseForIn'),\n isArguments = _dereq_('./isArguments'),\n isHostObject = _dereq_('../internal/isHostObject'),\n isObjectLike = _dereq_('../internal/isObjectLike'),\n support = _dereq_('../support');\n\n/** `Object#toString` result references. */\nvar objectTag = '[object Object]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is a plain object, that is, an object created by the\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\n *\n * **Note:** This method assumes objects created by the `Object` constructor\n * have no inherited enumerable properties.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * }\n *\n * _.isPlainObject(new Foo);\n * // => false\n *\n * _.isPlainObject([1, 2, 3]);\n * // => false\n *\n * _.isPlainObject({ 'x': 0, 'y': 0 });\n * // => true\n *\n * _.isPlainObject(Object.create(null));\n * // => true\n */\nfunction isPlainObject(value) {\n var Ctor;\n\n // Exit early for non `Object` objects.\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\n return false;\n }\n // IE < 9 iterates inherited properties before own properties. If the first\n // iterated property is an object's own property then there are no inherited\n // enumerable properties.\n var result;\n if (support.ownLast) {\n baseForIn(value, function(subValue, key, object) {\n result = hasOwnProperty.call(object, key);\n return false;\n });\n return result !== false;\n }\n // In most environments an object's own properties are iterated before\n // its inherited properties. If the last iterated property is an object's\n // own property then there are no inherited enumerable properties.\n baseForIn(value, function(subValue, key) {\n result = key;\n });\n return result === undefined || hasOwnProperty.call(value, result);\n}\n\nmodule.exports = isPlainObject;\n\n},{\"../internal/baseForIn\":12,\"../internal/isHostObject\":22,\"../internal/isObjectLike\":26,\"../support\":41,\"./isArguments\":29}],35:[function(_dereq_,module,exports){\nvar isObjectLike = _dereq_('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar stringTag = '[object String]';\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a `String` primitive or object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isString('abc');\n * // => true\n *\n * _.isString(1);\n * // => false\n */\nfunction isString(value) {\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\n}\n\nmodule.exports = isString;\n\n},{\"../internal/isObjectLike\":26}],36:[function(_dereq_,module,exports){\nvar isLength = _dereq_('../internal/isLength'),\n isObjectLike = _dereq_('../internal/isObjectLike');\n\n/** `Object#toString` result references. */\nvar argsTag = '[object Arguments]',\n arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n mapTag = '[object Map]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n setTag = '[object Set]',\n stringTag = '[object String]',\n weakMapTag = '[object WeakMap]';\n\nvar arrayBufferTag = '[object ArrayBuffer]',\n float32Tag = '[object Float32Array]',\n float64Tag = '[object Float64Array]',\n int8Tag = '[object Int8Array]',\n int16Tag = '[object Int16Array]',\n int32Tag = '[object Int32Array]',\n uint8Tag = '[object Uint8Array]',\n uint8ClampedTag = '[object Uint8ClampedArray]',\n uint16Tag = '[object Uint16Array]',\n uint32Tag = '[object Uint32Array]';\n\n/** Used to identify `toStringTag` values of typed arrays. */\nvar typedArrayTags = {};\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\ntypedArrayTags[uint32Tag] = true;\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\n\n/** Used for native method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/**\n * Checks if `value` is classified as a typed array.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\n * @example\n *\n * _.isTypedArray(new Uint8Array);\n * // => true\n *\n * _.isTypedArray([]);\n * // => false\n */\nfunction isTypedArray(value) {\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\n}\n\nmodule.exports = isTypedArray;\n\n},{\"../internal/isLength\":25,\"../internal/isObjectLike\":26}],37:[function(_dereq_,module,exports){\nvar baseCopy = _dereq_('../internal/baseCopy'),\n keysIn = _dereq_('../object/keysIn');\n\n/**\n * Converts `value` to a plain object flattening inherited enumerable\n * properties of `value` to own properties of the plain object.\n *\n * @static\n * @memberOf _\n * @category Lang\n * @param {*} value The value to convert.\n * @returns {Object} Returns the converted plain object.\n * @example\n *\n * function Foo() {\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.assign({ 'a': 1 }, new Foo);\n * // => { 'a': 1, 'b': 2 }\n *\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\n * // => { 'a': 1, 'b': 2, 'c': 3 }\n */\nfunction toPlainObject(value) {\n return baseCopy(value, keysIn(value));\n}\n\nmodule.exports = toPlainObject;\n\n},{\"../internal/baseCopy\":10,\"../object/keysIn\":39}],38:[function(_dereq_,module,exports){\nvar getNative = _dereq_('../internal/getNative'),\n isArrayLike = _dereq_('../internal/isArrayLike'),\n isObject = _dereq_('../lang/isObject'),\n shimKeys = _dereq_('../internal/shimKeys'),\n support = _dereq_('../support');\n\n/* Native method references for those with the same name as other `lodash` methods. */\nvar nativeKeys = getNative(Object, 'keys');\n\n/**\n * Creates an array of the own enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects. See the\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\n * for more details.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keys(new Foo);\n * // => ['a', 'b'] (iteration order is not guaranteed)\n *\n * _.keys('hi');\n * // => ['0', '1']\n */\nvar keys = !nativeKeys ? shimKeys : function(object) {\n var Ctor = object == null ? undefined : object.constructor;\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\n return shimKeys(object);\n }\n return isObject(object) ? nativeKeys(object) : [];\n};\n\nmodule.exports = keys;\n\n},{\"../internal/getNative\":20,\"../internal/isArrayLike\":21,\"../internal/shimKeys\":27,\"../lang/isObject\":33,\"../support\":41}],39:[function(_dereq_,module,exports){\nvar arrayEach = _dereq_('../internal/arrayEach'),\n isArguments = _dereq_('../lang/isArguments'),\n isArray = _dereq_('../lang/isArray'),\n isFunction = _dereq_('../lang/isFunction'),\n isIndex = _dereq_('../internal/isIndex'),\n isLength = _dereq_('../internal/isLength'),\n isObject = _dereq_('../lang/isObject'),\n isString = _dereq_('../lang/isString'),\n support = _dereq_('../support');\n\n/** `Object#toString` result references. */\nvar arrayTag = '[object Array]',\n boolTag = '[object Boolean]',\n dateTag = '[object Date]',\n errorTag = '[object Error]',\n funcTag = '[object Function]',\n numberTag = '[object Number]',\n objectTag = '[object Object]',\n regexpTag = '[object RegExp]',\n stringTag = '[object String]';\n\n/** Used to fix the JScript `[[DontEnum]]` bug. */\nvar shadowProps = [\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\n 'toLocaleString', 'toString', 'valueOf'\n];\n\n/** Used for native method references. */\nvar errorProto = Error.prototype,\n objectProto = Object.prototype,\n stringProto = String.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar objToString = objectProto.toString;\n\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\nvar nonEnumProps = {};\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\nnonEnumProps[objectTag] = { 'constructor': true };\n\narrayEach(shadowProps, function(key) {\n for (var tag in nonEnumProps) {\n if (hasOwnProperty.call(nonEnumProps, tag)) {\n var props = nonEnumProps[tag];\n props[key] = hasOwnProperty.call(props, key);\n }\n }\n});\n\n/**\n * Creates an array of the own and inherited enumerable property names of `object`.\n *\n * **Note:** Non-object values are coerced to objects.\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The object to query.\n * @returns {Array} Returns the array of property names.\n * @example\n *\n * function Foo() {\n * this.a = 1;\n * this.b = 2;\n * }\n *\n * Foo.prototype.c = 3;\n *\n * _.keysIn(new Foo);\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\n */\nfunction keysIn(object) {\n if (object == null) {\n return [];\n }\n if (!isObject(object)) {\n object = Object(object);\n }\n var length = object.length;\n\n length = (length && isLength(length) &&\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\n\n var Ctor = object.constructor,\n index = -1,\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\n isProto = proto === object,\n result = Array(length),\n skipIndexes = length > 0,\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\n skipProto = support.enumPrototypes && isFunction(object);\n\n while (++index < length) {\n result[index] = (index + '');\n }\n // lodash skips the `constructor` property when it infers it's iterating\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\n // attribute of an existing property and the `constructor` property of a\n // prototype defaults to non-enumerable.\n for (var key in object) {\n if (!(skipProto && key == 'prototype') &&\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\n !(skipIndexes && isIndex(key, length)) &&\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\n result.push(key);\n }\n }\n if (support.nonEnumShadows && object !== objectProto) {\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\n\n if (tag == objectTag) {\n proto = objectProto;\n }\n length = shadowProps.length;\n while (length--) {\n key = shadowProps[length];\n var nonEnum = nonEnums[key];\n if (!(isProto && nonEnum) &&\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\n result.push(key);\n }\n }\n }\n return result;\n}\n\nmodule.exports = keysIn;\n\n},{\"../internal/arrayEach\":9,\"../internal/isIndex\":23,\"../internal/isLength\":25,\"../lang/isArguments\":29,\"../lang/isArray\":30,\"../lang/isFunction\":31,\"../lang/isObject\":33,\"../lang/isString\":35,\"../support\":41}],40:[function(_dereq_,module,exports){\nvar baseMerge = _dereq_('../internal/baseMerge'),\n createAssigner = _dereq_('../internal/createAssigner');\n\n/**\n * Recursively merges own enumerable properties of the source object(s), that\n * don't resolve to `undefined` into the destination object. Subsequent sources\n * overwrite property assignments of previous sources. If `customizer` is\n * provided it's invoked to produce the merged values of the destination and\n * source properties. If `customizer` returns `undefined` merging is handled\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\n * with five arguments: (objectValue, sourceValue, key, object, source).\n *\n * @static\n * @memberOf _\n * @category Object\n * @param {Object} object The destination object.\n * @param {...Object} [sources] The source objects.\n * @param {Function} [customizer] The function to customize assigned values.\n * @param {*} [thisArg] The `this` binding of `customizer`.\n * @returns {Object} Returns `object`.\n * @example\n *\n * var users = {\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\n * };\n *\n * var ages = {\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\n * };\n *\n * _.merge(users, ages);\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\n *\n * // using a customizer callback\n * var object = {\n * 'fruits': ['apple'],\n * 'vegetables': ['beet']\n * };\n *\n * var other = {\n * 'fruits': ['banana'],\n * 'vegetables': ['carrot']\n * };\n *\n * _.merge(object, other, function(a, b) {\n * if (_.isArray(a)) {\n * return a.concat(b);\n * }\n * });\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\n */\nvar merge = createAssigner(baseMerge);\n\nmodule.exports = merge;\n\n},{\"../internal/baseMerge\":13,\"../internal/createAssigner\":17}],41:[function(_dereq_,module,exports){\n/** Used for native method references. */\nvar arrayProto = Array.prototype,\n errorProto = Error.prototype,\n objectProto = Object.prototype;\n\n/** Native method references. */\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\n splice = arrayProto.splice;\n\n/**\n * An object environment feature flags.\n *\n * @static\n * @memberOf _\n * @type Object\n */\nvar support = {};\n\n(function(x) {\n var Ctor = function() { this.x = x; },\n object = { '0': x, 'length': x },\n props = [];\n\n Ctor.prototype = { 'valueOf': x, 'y': x };\n for (var key in new Ctor) { props.push(key); }\n\n /**\n * Detect if `name` or `message` properties of `Error.prototype` are\n * enumerable by default (IE < 9, Safari < 5.1).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\n propertyIsEnumerable.call(errorProto, 'name');\n\n /**\n * Detect if `prototype` properties are enumerable by default.\n *\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\n * (if the prototype or a property on the prototype has been set)\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\n * property to `true`.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\n\n /**\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\n *\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.nonEnumShadows = !/valueOf/.test(props);\n\n /**\n * Detect if own properties are iterated after inherited properties (IE < 9).\n *\n * @memberOf _.support\n * @type boolean\n */\n support.ownLast = props[0] != 'x';\n\n /**\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\n * correctly.\n *\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\n * `shift()` and `splice()` functions that fail to remove the last element,\n * `value[0]`, of array-like objects even though the \"length\" property is\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\n * while `splice()` is buggy regardless of mode in IE < 9.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\n\n /**\n * Detect lack of support for accessing string characters by index.\n *\n * IE < 8 can't access characters by index. IE 8 can only access characters\n * by index on string literals, not string objects.\n *\n * @memberOf _.support\n * @type boolean\n */\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\n}(1, 0));\n\nmodule.exports = support;\n\n},{}],42:[function(_dereq_,module,exports){\n/**\n * This method returns the first argument provided to it.\n *\n * @static\n * @memberOf _\n * @category Utility\n * @param {*} value Any value.\n * @returns {*} Returns `value`.\n * @example\n *\n * var object = { 'user': 'fred' };\n *\n * _.identity(object) === object;\n * // => true\n */\nfunction identity(value) {\n return value;\n}\n\nmodule.exports = identity;\n\n},{}],43:[function(_dereq_,module,exports){\n'use strict';\n\n// modified from https://github.com/es-shims/es6-shim\nvar keys = _dereq_('object-keys');\nvar canBeObject = function (obj) {\n\treturn typeof obj !== 'undefined' && obj !== null;\n};\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\nvar defineProperties = _dereq_('define-properties');\nvar toObject = Object;\nvar push = Array.prototype.push;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nvar assignShim = function assign(target, source1) {\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\n\tvar objTarget = toObject(target);\n\tvar s, source, i, props, syms;\n\tfor (s = 1; s < arguments.length; ++s) {\n\t\tsource = toObject(arguments[s]);\n\t\tprops = keys(source);\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\n\t\t\tfor (i = 0; i < syms.length; ++i) {\n\t\t\t\tif (propIsEnumerable.call(source, syms[i])) {\n\t\t\t\t\tpush.call(props, syms[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tfor (i = 0; i < props.length; ++i) {\n\t\t\tobjTarget[props[i]] = source[props[i]];\n\t\t}\n\t}\n\treturn objTarget;\n};\n\ndefineProperties(assignShim, {\n\tshim: function shimObjectAssign() {\n\t\tvar assignHasPendingExceptions = function () {\n\t\t\tif (!Object.assign || !Object.preventExtensions) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\n\t\t\t// which is 72% slower than our shim, and Firefox 40's native implementation.\n\t\t\tvar thrower = Object.preventExtensions({ 1: 2 });\n\t\t\ttry {\n\t\t\t\tObject.assign(thrower, 'xy');\n\t\t\t} catch (e) {\n\t\t\t\treturn thrower[1] === 'y';\n\t\t\t}\n\t\t};\n\t\tdefineProperties(\n\t\t\tObject,\n\t\t\t{ assign: assignShim },\n\t\t\t{ assign: assignHasPendingExceptions }\n\t\t);\n\t\treturn Object.assign || assignShim;\n\t}\n});\n\nmodule.exports = assignShim;\n\n},{\"define-properties\":44,\"object-keys\":46}],44:[function(_dereq_,module,exports){\n'use strict';\n\nvar keys = _dereq_('object-keys');\nvar foreach = _dereq_('foreach');\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\n\nvar toStr = Object.prototype.toString;\n\nvar isFunction = function (fn) {\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\n};\n\nvar arePropertyDescriptorsSupported = function () {\n\tvar obj = {};\n\ttry {\n\t\tObject.defineProperty(obj, 'x', { value: obj, enumerable: false });\n /* eslint-disable no-unused-vars */\n for (var _ in obj) { return false; }\n /* eslint-enable no-unused-vars */\n\t\treturn obj.x === obj;\n\t} catch (e) { /* this is IE 8. */\n\t\treturn false;\n\t}\n};\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\n\nvar defineProperty = function (object, name, value, predicate) {\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\n\t\treturn;\n\t}\n\tif (supportsDescriptors) {\n\t\tObject.defineProperty(object, name, {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: false,\n\t\t\twritable: true,\n\t\t\tvalue: value\n\t\t});\n\t} else {\n\t\tobject[name] = value;\n\t}\n};\n\nvar defineProperties = function (object, map) {\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\n\tvar props = keys(map);\n\tif (hasSymbols) {\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\n\t}\n\tforeach(props, function (name) {\n\t\tdefineProperty(object, name, map[name], predicates[name]);\n\t});\n};\n\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\n\nmodule.exports = defineProperties;\n\n},{\"foreach\":45,\"object-keys\":46}],45:[function(_dereq_,module,exports){\n\nvar hasOwn = Object.prototype.hasOwnProperty;\nvar toString = Object.prototype.toString;\n\nmodule.exports = function forEach (obj, fn, ctx) {\n if (toString.call(fn) !== '[object Function]') {\n throw new TypeError('iterator must be a function');\n }\n var l = obj.length;\n if (l === +l) {\n for (var i = 0; i < l; i++) {\n fn.call(ctx, obj[i], i, obj);\n }\n } else {\n for (var k in obj) {\n if (hasOwn.call(obj, k)) {\n fn.call(ctx, obj[k], k, obj);\n }\n }\n }\n};\n\n\n},{}],46:[function(_dereq_,module,exports){\n'use strict';\n\n// modified from https://github.com/es-shims/es5-shim\nvar has = Object.prototype.hasOwnProperty;\nvar toStr = Object.prototype.toString;\nvar slice = Array.prototype.slice;\nvar isArgs = _dereq_('./isArguments');\nvar hasDontEnumBug = !({ 'toString': null }).propertyIsEnumerable('toString');\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\nvar dontEnums = [\n\t'toString',\n\t'toLocaleString',\n\t'valueOf',\n\t'hasOwnProperty',\n\t'isPrototypeOf',\n\t'propertyIsEnumerable',\n\t'constructor'\n];\nvar equalsConstructorPrototype = function (o) {\n\tvar ctor = o.constructor;\n\treturn ctor && ctor.prototype === o;\n};\nvar blacklistedKeys = {\n\t$window: true,\n\t$console: true,\n\t$parent: true,\n\t$self: true,\n\t$frames: true,\n\t$webkitIndexedDB: true,\n\t$webkitStorageInfo: true\n};\nvar hasAutomationEqualityBug = (function () {\n\t/* global window */\n\tif (typeof window === 'undefined') { return false; }\n\tfor (var k in window) {\n\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\n\t\t\ttry {\n\t\t\t\tequalsConstructorPrototype(window[k]);\n\t\t\t} catch (e) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n}());\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\n\t/* global window */\n\tif (typeof window === 'undefined' && !hasAutomationEqualityBug) {\n\t\treturn equalsConstructorPrototype(o);\n\t}\n\ttry {\n\t\treturn equalsConstructorPrototype(o);\n\t} catch (e) {\n\t\treturn false;\n\t}\n};\n\nvar keysShim = function keys(object) {\n\tvar isObject = object !== null && typeof object === 'object';\n\tvar isFunction = toStr.call(object) === '[object Function]';\n\tvar isArguments = isArgs(object);\n\tvar isString = isObject && toStr.call(object) === '[object String]';\n\tvar theKeys = [];\n\n\tif (!isObject && !isFunction && !isArguments) {\n\t\tthrow new TypeError('Object.keys called on a non-object');\n\t}\n\n\tvar skipProto = hasProtoEnumBug && isFunction;\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\n\t\tfor (var i = 0; i < object.length; ++i) {\n\t\t\ttheKeys.push(String(i));\n\t\t}\n\t}\n\n\tif (isArguments && object.length > 0) {\n\t\tfor (var j = 0; j < object.length; ++j) {\n\t\t\ttheKeys.push(String(j));\n\t\t}\n\t} else {\n\t\tfor (var name in object) {\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\n\t\t\t\ttheKeys.push(String(name));\n\t\t\t}\n\t\t}\n\t}\n\n\tif (hasDontEnumBug) {\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\n\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\n\t\t\t\ttheKeys.push(dontEnums[k]);\n\t\t\t}\n\t\t}\n\t}\n\treturn theKeys;\n};\n\nkeysShim.shim = function shimObjectKeys() {\n\tif (!Object.keys) {\n\t\tObject.keys = keysShim;\n\t} else {\n\t\tvar keysWorksWithArguments = (function () {\n\t\t\t// Safari 5.0 bug\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\n\t\t}(1, 2));\n\t\tif (!keysWorksWithArguments) {\n\t\t\tvar originalKeys = Object.keys;\n\t\t\tObject.keys = function keys(object) {\n\t\t\t\tif (isArgs(object)) {\n\t\t\t\t\treturn originalKeys(slice.call(object));\n\t\t\t\t} else {\n\t\t\t\t\treturn originalKeys(object);\n\t\t\t\t}\n\t\t\t};\n\t\t}\n\t}\n\treturn Object.keys || keysShim;\n};\n\nmodule.exports = keysShim;\n\n},{\"./isArguments\":47}],47:[function(_dereq_,module,exports){\n'use strict';\n\nvar toStr = Object.prototype.toString;\n\nmodule.exports = function isArguments(value) {\n\tvar str = toStr.call(value);\n\tvar isArgs = str === '[object Arguments]';\n\tif (!isArgs) {\n\t\tisArgs = str !== '[object Array]' &&\n\t\t\tvalue !== null &&\n\t\t\ttypeof value === 'object' &&\n\t\t\ttypeof value.length === 'number' &&\n\t\t\tvalue.length >= 0 &&\n\t\t\ttoStr.call(value.callee) === '[object Function]';\n\t}\n\treturn isArgs;\n};\n\n},{}],48:[function(_dereq_,module,exports){\nmodule.exports = SafeParseTuple\n\nfunction SafeParseTuple(obj, reviver) {\n var json\n var error = null\n\n try {\n json = JSON.parse(obj, reviver)\n } catch (err) {\n error = err\n }\n\n return [error, json]\n}\n\n},{}],49:[function(_dereq_,module,exports){\nfunction clean (s) {\n return s.replace(/\\n\\r?\\s*/g, '')\n}\n\n\nmodule.exports = function tsml (sa) {\n var s = ''\n , i = 0\n\n for (; i < arguments.length; i++)\n s += clean(sa[i]) + (arguments[i + 1] || '')\n\n return s\n}\n},{}],50:[function(_dereq_,module,exports){\n\"use strict\";\nvar window = _dereq_(\"global/window\")\nvar once = _dereq_(\"once\")\nvar parseHeaders = _dereq_(\"parse-headers\")\n\n\n\nmodule.exports = createXHR\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\n\n\nfunction isEmpty(obj){\n for(var i in obj){\n if(obj.hasOwnProperty(i)) return false\n }\n return true\n}\n\nfunction createXHR(options, callback) {\n function readystatechange() {\n if (xhr.readyState === 4) {\n loadFunc()\n }\n }\n\n function getBody() {\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\n var body = undefined\n\n if (xhr.response) {\n body = xhr.response\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\n body = xhr.responseText || xhr.responseXML\n }\n\n if (isJson) {\n try {\n body = JSON.parse(body)\n } catch (e) {}\n }\n\n return body\n }\n\n var failureResponse = {\n body: undefined,\n headers: {},\n statusCode: 0,\n method: method,\n url: uri,\n rawRequest: xhr\n }\n\n function errorFunc(evt) {\n clearTimeout(timeoutTimer)\n if(!(evt instanceof Error)){\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\n }\n evt.statusCode = 0\n callback(evt, failureResponse)\n }\n\n // will load the data & process the response in a special response object\n function loadFunc() {\n if (aborted) return\n var status\n clearTimeout(timeoutTimer)\n if(options.useXDR && xhr.status===undefined) {\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\n status = 200\n } else {\n status = (xhr.status === 1223 ? 204 : xhr.status)\n }\n var response = failureResponse\n var err = null\n\n if (status !== 0){\n response = {\n body: getBody(),\n statusCode: status,\n method: method,\n headers: {},\n url: uri,\n rawRequest: xhr\n }\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\n }\n } else {\n err = new Error(\"Internal XMLHttpRequest Error\")\n }\n callback(err, response, response.body)\n\n }\n\n if (typeof options === \"string\") {\n options = { uri: options }\n }\n\n options = options || {}\n if(typeof callback === \"undefined\"){\n throw new Error(\"callback argument missing\")\n }\n callback = once(callback)\n\n var xhr = options.xhr || null\n\n if (!xhr) {\n if (options.cors || options.useXDR) {\n xhr = new createXHR.XDomainRequest()\n }else{\n xhr = new createXHR.XMLHttpRequest()\n }\n }\n\n var key\n var aborted\n var uri = xhr.url = options.uri || options.url\n var method = xhr.method = options.method || \"GET\"\n var body = options.body || options.data\n var headers = xhr.headers = options.headers || {}\n var sync = !!options.sync\n var isJson = false\n var timeoutTimer\n\n if (\"json\" in options) {\n isJson = true\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\n if (method !== \"GET\" && method !== \"HEAD\") {\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\n body = JSON.stringify(options.json)\n }\n }\n\n xhr.onreadystatechange = readystatechange\n xhr.onload = loadFunc\n xhr.onerror = errorFunc\n // IE9 must have onprogress be set to a unique function.\n xhr.onprogress = function () {\n // IE must die\n }\n xhr.ontimeout = errorFunc\n xhr.open(method, uri, !sync, options.username, options.password)\n //has to be after open\n if(!sync) {\n xhr.withCredentials = !!options.withCredentials\n }\n // Cannot set timeout with sync request\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\n if (!sync && options.timeout > 0 ) {\n timeoutTimer = setTimeout(function(){\n aborted=true//IE9 may still call readystatechange\n xhr.abort(\"timeout\")\n var e = new Error(\"XMLHttpRequest timeout\")\n e.code = \"ETIMEDOUT\"\n errorFunc(e)\n }, options.timeout )\n }\n\n if (xhr.setRequestHeader) {\n for(key in headers){\n if(headers.hasOwnProperty(key)){\n xhr.setRequestHeader(key, headers[key])\n }\n }\n } else if (options.headers && !isEmpty(options.headers)) {\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\n }\n\n if (\"responseType\" in options) {\n xhr.responseType = options.responseType\n }\n\n if (\"beforeSend\" in options &&\n typeof options.beforeSend === \"function\"\n ) {\n options.beforeSend(xhr)\n }\n\n xhr.send(body)\n\n return xhr\n\n\n}\n\nfunction noop() {}\n\n},{\"global/window\":2,\"once\":51,\"parse-headers\":55}],51:[function(_dereq_,module,exports){\nmodule.exports = once\n\nonce.proto = once(function () {\n Object.defineProperty(Function.prototype, 'once', {\n value: function () {\n return once(this)\n },\n configurable: true\n })\n})\n\nfunction once (fn) {\n var called = false\n return function () {\n if (called) return\n called = true\n return fn.apply(this, arguments)\n }\n}\n\n},{}],52:[function(_dereq_,module,exports){\nvar isFunction = _dereq_('is-function')\n\nmodule.exports = forEach\n\nvar toString = Object.prototype.toString\nvar hasOwnProperty = Object.prototype.hasOwnProperty\n\nfunction forEach(list, iterator, context) {\n if (!isFunction(iterator)) {\n throw new TypeError('iterator must be a function')\n }\n\n if (arguments.length < 3) {\n context = this\n }\n \n if (toString.call(list) === '[object Array]')\n forEachArray(list, iterator, context)\n else if (typeof list === 'string')\n forEachString(list, iterator, context)\n else\n forEachObject(list, iterator, context)\n}\n\nfunction forEachArray(array, iterator, context) {\n for (var i = 0, len = array.length; i < len; i++) {\n if (hasOwnProperty.call(array, i)) {\n iterator.call(context, array[i], i, array)\n }\n }\n}\n\nfunction forEachString(string, iterator, context) {\n for (var i = 0, len = string.length; i < len; i++) {\n // no such thing as a sparse string.\n iterator.call(context, string.charAt(i), i, string)\n }\n}\n\nfunction forEachObject(object, iterator, context) {\n for (var k in object) {\n if (hasOwnProperty.call(object, k)) {\n iterator.call(context, object[k], k, object)\n }\n }\n}\n\n},{\"is-function\":53}],53:[function(_dereq_,module,exports){\nmodule.exports = isFunction\n\nvar toString = Object.prototype.toString\n\nfunction isFunction (fn) {\n var string = toString.call(fn)\n return string === '[object Function]' ||\n (typeof fn === 'function' && string !== '[object RegExp]') ||\n (typeof window !== 'undefined' &&\n // IE8 and below\n (fn === window.setTimeout ||\n fn === window.alert ||\n fn === window.confirm ||\n fn === window.prompt))\n};\n\n},{}],54:[function(_dereq_,module,exports){\n\nexports = module.exports = trim;\n\nfunction trim(str){\n return str.replace(/^\\s*|\\s*$/g, '');\n}\n\nexports.left = function(str){\n return str.replace(/^\\s*/, '');\n};\n\nexports.right = function(str){\n return str.replace(/\\s*$/, '');\n};\n\n},{}],55:[function(_dereq_,module,exports){\nvar trim = _dereq_('trim')\n , forEach = _dereq_('for-each')\n , isArray = function(arg) {\n return Object.prototype.toString.call(arg) === '[object Array]';\n }\n\nmodule.exports = function (headers) {\n if (!headers)\n return {}\n\n var result = {}\n\n forEach(\n trim(headers).split('\\n')\n , function (row) {\n var index = row.indexOf(':')\n , key = trim(row.slice(0, index)).toLowerCase()\n , value = trim(row.slice(index + 1))\n\n if (typeof(result[key]) === 'undefined') {\n result[key] = value\n } else if (isArray(result[key])) {\n result[key].push(value)\n } else {\n result[key] = [ result[key], value ]\n }\n }\n )\n\n return result\n}\n},{\"for-each\":52,\"trim\":54}],56:[function(_dereq_,module,exports){\n/**\n * @file big-play-button.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _buttonJs = _dereq_('./button.js');\n\nvar _buttonJs2 = _interopRequireDefault(_buttonJs);\n\nvar _componentJs = _dereq_('./component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n/**\n * Initial play button. Shows before the video has played. The hiding of the\n * big play button is done via CSS and player states.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Button\n * @class BigPlayButton\n */\n\nvar BigPlayButton = (function (_Button) {\n _inherits(BigPlayButton, _Button);\n\n function BigPlayButton(player, options) {\n _classCallCheck(this, BigPlayButton);\n\n _Button.call(this, player, options);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n BigPlayButton.prototype.buildCSSClass = function buildCSSClass() {\n return 'vjs-big-play-button';\n };\n\n /**\n * Handles click for play\n *\n * @method handleClick\n */\n\n BigPlayButton.prototype.handleClick = function handleClick() {\n this.player_.play();\n };\n\n return BigPlayButton;\n})(_buttonJs2['default']);\n\nBigPlayButton.prototype.controlText_ = 'Play Video';\n\n_componentJs2['default'].registerComponent('BigPlayButton', BigPlayButton);\nexports['default'] = BigPlayButton;\nmodule.exports = exports['default'];\n\n},{\"./button.js\":57,\"./component.js\":58}],57:[function(_dereq_,module,exports){\n/**\n * @file button.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _component = _dereq_('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _utilsDomJs = _dereq_('./utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsEventsJs = _dereq_('./utils/events.js');\n\nvar Events = _interopRequireWildcard(_utilsEventsJs);\n\nvar _utilsFnJs = _dereq_('./utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _objectAssign = _dereq_('object.assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\n/**\n * Base class for all buttons\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class Button\n */\n\nvar Button = (function (_Component) {\n _inherits(Button, _Component);\n\n function Button(player, options) {\n _classCallCheck(this, Button);\n\n _Component.call(this, player, options);\n\n this.emitTapEvents();\n\n this.on('tap', this.handleClick);\n this.on('click', this.handleClick);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Element's node type. e.g. 'div'\n * @param {Object=} props An object of element attributes that should be set on the element Tag name\n * @return {Element}\n * @method createEl\n */\n\n Button.prototype.createEl = function createEl() {\n var tag = arguments.length <= 0 || arguments[0] === undefined ? 'button' : arguments[0];\n var props = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n var attributes = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\n\n props = _objectAssign2['default']({\n className: this.buildCSSClass(),\n tabIndex: 0\n }, props);\n\n // Add standard Aria info\n attributes = _objectAssign2['default']({\n role: 'button',\n type: 'button', // Necessary since the default button type is \"submit\"\n 'aria-live': 'polite' // let the screen reader user know that the text of the button may change\n }, attributes);\n\n var el = _Component.prototype.createEl.call(this, tag, props, attributes);\n\n this.controlTextEl_ = Dom.createEl('span', {\n className: 'vjs-control-text'\n });\n\n el.appendChild(this.controlTextEl_);\n\n this.controlText(this.controlText_);\n\n return el;\n };\n\n /**\n * Controls text - both request and localize\n *\n * @param {String} text Text for button\n * @return {String}\n * @method controlText\n */\n\n Button.prototype.controlText = function controlText(text) {\n if (!text) return this.controlText_ || 'Need Text';\n\n this.controlText_ = text;\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\n\n return this;\n };\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String}\n * @method buildCSSClass\n */\n\n Button.prototype.buildCSSClass = function buildCSSClass() {\n return 'vjs-control vjs-button ' + _Component.prototype.buildCSSClass.call(this);\n };\n\n /**\n * Handle Click - Override with specific functionality for button\n *\n * @method handleClick\n */\n\n Button.prototype.handleClick = function handleClick() {};\n\n /**\n * Handle Focus - Add keyboard functionality to element\n *\n * @method handleFocus\n */\n\n Button.prototype.handleFocus = function handleFocus() {\n Events.on(_globalDocument2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));\n };\n\n /**\n * Handle KeyPress (document level) - Trigger click when keys are pressed\n *\n * @method handleKeyPress\n */\n\n Button.prototype.handleKeyPress = function handleKeyPress(event) {\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n event.preventDefault();\n this.handleClick(event);\n }\n };\n\n /**\n * Handle Blur - Remove keyboard triggers\n *\n * @method handleBlur\n */\n\n Button.prototype.handleBlur = function handleBlur() {\n Events.off(_globalDocument2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));\n };\n\n return Button;\n})(_component2['default']);\n\n_component2['default'].registerComponent('Button', Button);\nexports['default'] = Button;\nmodule.exports = exports['default'];\n\n},{\"./component\":58,\"./utils/dom.js\":118,\"./utils/events.js\":119,\"./utils/fn.js\":120,\"global/document\":1,\"object.assign\":43}],58:[function(_dereq_,module,exports){\n/**\n * @file component.js\n *\n * Player Component - Base class for all UI objects\n */\n\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _utilsDomJs = _dereq_('./utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsFnJs = _dereq_('./utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsGuidJs = _dereq_('./utils/guid.js');\n\nvar Guid = _interopRequireWildcard(_utilsGuidJs);\n\nvar _utilsEventsJs = _dereq_('./utils/events.js');\n\nvar Events = _interopRequireWildcard(_utilsEventsJs);\n\nvar _utilsLogJs = _dereq_('./utils/log.js');\n\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\n\nvar _utilsToTitleCaseJs = _dereq_('./utils/to-title-case.js');\n\nvar _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);\n\nvar _objectAssign = _dereq_('object.assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');\n\nvar _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);\n\n/**\n * Base UI Component class\n * Components are embeddable UI objects that are represented by both a\n * javascript object and an element in the DOM. They can be children of other\n * components, and can have many children themselves.\n * ```js\n * // adding a button to the player\n * var button = player.addChild('button');\n * button.el(); // -> button element\n * ```\n * ```html\n *
\n *
Button
\n *
\n * ```\n * Components are also event targets.\n * ```js\n * button.on('click', function(){\n * console.log('Button Clicked!');\n * });\n * button.trigger('customevent');\n * ```\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @class Component\n */\n\nvar Component = (function () {\n function Component(player, options, ready) {\n _classCallCheck(this, Component);\n\n // The component might be the player itself and we can't pass `this` to super\n if (!player && this.play) {\n this.player_ = player = this; // eslint-disable-line\n } else {\n this.player_ = player;\n }\n\n // Make a copy of prototype.options_ to protect against overriding defaults\n this.options_ = _utilsMergeOptionsJs2['default']({}, this.options_);\n\n // Updated options with supplied options\n options = this.options_ = _utilsMergeOptionsJs2['default'](this.options_, options);\n\n // Get ID from options or options element if one is supplied\n this.id_ = options.id || options.el && options.el.id;\n\n // If there was no ID from the options, generate one\n if (!this.id_) {\n // Don't require the player ID function in the case of mock players\n var id = player && player.id && player.id() || 'no_player';\n\n this.id_ = id + '_component_' + Guid.newGUID();\n }\n\n this.name_ = options.name || null;\n\n // Create element if one wasn't provided in options\n if (options.el) {\n this.el_ = options.el;\n } else if (options.createEl !== false) {\n this.el_ = this.createEl();\n }\n\n this.children_ = [];\n this.childIndex_ = {};\n this.childNameIndex_ = {};\n\n // Add any child components in options\n if (options.initChildren !== false) {\n this.initChildren();\n }\n\n this.ready(ready);\n // Don't want to trigger ready here or it will before init is actually\n // finished for all children that run this constructor\n\n if (options.reportTouchActivity !== false) {\n this.enableTouchActivity();\n }\n }\n\n /**\n * Dispose of the component and all child components\n *\n * @method dispose\n */\n\n Component.prototype.dispose = function dispose() {\n this.trigger({ type: 'dispose', bubbles: false });\n\n // Dispose all children.\n if (this.children_) {\n for (var i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i].dispose) {\n this.children_[i].dispose();\n }\n }\n }\n\n // Delete child references\n this.children_ = null;\n this.childIndex_ = null;\n this.childNameIndex_ = null;\n\n // Remove all event listeners.\n this.off();\n\n // Remove element from DOM\n if (this.el_.parentNode) {\n this.el_.parentNode.removeChild(this.el_);\n }\n\n Dom.removeElData(this.el_);\n this.el_ = null;\n };\n\n /**\n * Return the component's player\n *\n * @return {Player}\n * @method player\n */\n\n Component.prototype.player = function player() {\n return this.player_;\n };\n\n /**\n * Deep merge of options objects\n * Whenever a property is an object on both options objects\n * the two properties will be merged using mergeOptions.\n *\n * ```js\n * Parent.prototype.options_ = {\n * optionSet: {\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\n * 'childTwo': {},\n * 'childThree': {}\n * }\n * }\n * newOptions = {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\n * 'childTwo': null,\n * 'childFour': {}\n * }\n * }\n *\n * this.options(newOptions);\n * ```\n * RESULT\n * ```js\n * {\n * optionSet: {\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\n * 'childTwo': null, // Disabled. Won't be initialized.\n * 'childThree': {},\n * 'childFour': {}\n * }\n * }\n * ```\n *\n * @param {Object} obj Object of new option values\n * @return {Object} A NEW object of this.options_ and obj merged\n * @method options\n */\n\n Component.prototype.options = function options(obj) {\n _utilsLogJs2['default'].warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\n\n if (!obj) {\n return this.options_;\n }\n\n this.options_ = _utilsMergeOptionsJs2['default'](this.options_, obj);\n return this.options_;\n };\n\n /**\n * Get the component's DOM element\n * ```js\n * var domEl = myComponent.el();\n * ```\n *\n * @return {Element}\n * @method el\n */\n\n Component.prototype.el = function el() {\n return this.el_;\n };\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} tagName Element's node type. e.g. 'div'\n * @param {Object=} properties An object of properties that should be set\n * @param {Object=} attributes An object of attributes that should be set\n * @return {Element}\n * @method createEl\n */\n\n Component.prototype.createEl = function createEl(tagName, properties, attributes) {\n return Dom.createEl(tagName, properties, attributes);\n };\n\n Component.prototype.localize = function localize(string) {\n var code = this.player_.language && this.player_.language();\n var languages = this.player_.languages && this.player_.languages();\n\n if (!code || !languages) {\n return string;\n }\n\n var language = languages[code];\n\n if (language && language[string]) {\n return language[string];\n }\n\n var primaryCode = code.split('-')[0];\n var primaryLang = languages[primaryCode];\n\n if (primaryLang && primaryLang[string]) {\n return primaryLang[string];\n }\n\n return string;\n };\n\n /**\n * Return the component's DOM element where children are inserted.\n * Will either be the same as el() or a new element defined in createEl().\n *\n * @return {Element}\n * @method contentEl\n */\n\n Component.prototype.contentEl = function contentEl() {\n return this.contentEl_ || this.el_;\n };\n\n /**\n * Get the component's ID\n * ```js\n * var id = myComponent.id();\n * ```\n *\n * @return {String}\n * @method id\n */\n\n Component.prototype.id = function id() {\n return this.id_;\n };\n\n /**\n * Get the component's name. The name is often used to reference the component.\n * ```js\n * var name = myComponent.name();\n * ```\n *\n * @return {String}\n * @method name\n */\n\n Component.prototype.name = function name() {\n return this.name_;\n };\n\n /**\n * Get an array of all child components\n * ```js\n * var kids = myComponent.children();\n * ```\n *\n * @return {Array} The children\n * @method children\n */\n\n Component.prototype.children = function children() {\n return this.children_;\n };\n\n /**\n * Returns a child component with the provided ID\n *\n * @return {Component}\n * @method getChildById\n */\n\n Component.prototype.getChildById = function getChildById(id) {\n return this.childIndex_[id];\n };\n\n /**\n * Returns a child component with the provided name\n *\n * @return {Component}\n * @method getChild\n */\n\n Component.prototype.getChild = function getChild(name) {\n return this.childNameIndex_[name];\n };\n\n /**\n * Adds a child component inside this component\n * ```js\n * myComponent.el();\n * // -> \n * myComponent.children();\n * // [empty array]\n *\n * var myButton = myComponent.addChild('MyButton');\n * // ->
myButton\n * // -> myButton === myComponent.children()[0];\n * ```\n * Pass in options for child constructors and options for children of the child\n * ```js\n * var myButton = myComponent.addChild('MyButton', {\n * text: 'Press Me',\n * buttonChildExample: {\n * buttonChildOption: true\n * }\n * });\n * ```\n *\n * @param {String|Component} child The class name or instance of a child to add\n * @param {Object=} options Options, including options to be passed to children of the child.\n * @return {Component} The child component (created by this process if a string was used)\n * @method addChild\n */\n\n Component.prototype.addChild = function addChild(child) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var component = undefined;\n var componentName = undefined;\n\n // If child is a string, create nt with options\n if (typeof child === 'string') {\n componentName = child;\n\n // Options can also be specified as a boolean, so convert to an empty object if false.\n if (!options) {\n options = {};\n }\n\n // Same as above, but true is deprecated so show a warning.\n if (options === true) {\n _utilsLogJs2['default'].warn('Initializing a child component with `true` is deprecated. Children should be defined in an array when possible, but if necessary use an object instead of `true`.');\n options = {};\n }\n\n // If no componentClass in options, assume componentClass is the name lowercased\n // (e.g. playButton)\n var componentClassName = options.componentClass || _utilsToTitleCaseJs2['default'](componentName);\n\n // Set name through options\n options.name = componentName;\n\n // Create a new object & element for this controls set\n // If there's no .player_, this is a player\n var ComponentClass = Component.getComponent(componentClassName);\n\n component = new ComponentClass(this.player_ || this, options);\n\n // child is a component instance\n } else {\n component = child;\n }\n\n this.children_.push(component);\n\n if (typeof component.id === 'function') {\n this.childIndex_[component.id()] = component;\n }\n\n // If a name wasn't used to create the component, check if we can use the\n // name function of the component\n componentName = componentName || component.name && component.name();\n\n if (componentName) {\n this.childNameIndex_[componentName] = component;\n }\n\n // Add the UI object's element to the container div (box)\n // Having an element is not required\n if (typeof component.el === 'function' && component.el()) {\n this.contentEl().appendChild(component.el());\n }\n\n // Return so it can stored on parent object if desired.\n return component;\n };\n\n /**\n * Remove a child component from this component's list of children, and the\n * child component's element from this component's element\n *\n * @param {Component} component Component to remove\n * @method removeChild\n */\n\n Component.prototype.removeChild = function removeChild(component) {\n if (typeof component === 'string') {\n component = this.getChild(component);\n }\n\n if (!component || !this.children_) {\n return;\n }\n\n var childFound = false;\n\n for (var i = this.children_.length - 1; i >= 0; i--) {\n if (this.children_[i] === component) {\n childFound = true;\n this.children_.splice(i, 1);\n break;\n }\n }\n\n if (!childFound) {\n return;\n }\n\n this.childIndex_[component.id()] = null;\n this.childNameIndex_[component.name()] = null;\n\n var compEl = component.el();\n\n if (compEl && compEl.parentNode === this.contentEl()) {\n this.contentEl().removeChild(component.el());\n }\n };\n\n /**\n * Add and initialize default child components from options\n * ```js\n * // when an instance of MyComponent is created, all children in options\n * // will be added to the instance by their name strings and options\n * MyComponent.prototype.options_ = {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * };\n *\n * // Or when creating the component\n * var myComp = new MyComponent(player, {\n * children: [\n * 'myChildComponent'\n * ],\n * myChildComponent: {\n * myChildOption: true\n * }\n * });\n * ```\n * The children option can also be an array of\n * child options objects (that also include a 'name' key).\n * This can be used if you have two child components of the\n * same type that need different options.\n * ```js\n * var myComp = new MyComponent(player, {\n * children: [\n * 'button',\n * {\n * name: 'button',\n * someOtherOption: true\n * },\n * {\n * name: 'button',\n * someOtherOption: false\n * }\n * ]\n * });\n * ```\n *\n * @method initChildren\n */\n\n Component.prototype.initChildren = function initChildren() {\n var _this = this;\n\n var children = this.options_.children;\n\n if (children) {\n (function () {\n // `this` is `parent`\n var parentOptions = _this.options_;\n\n var handleAdd = function handleAdd(name, opts) {\n // Allow options for children to be set at the parent options\n // e.g. videojs(id, { controlBar: false });\n // instead of videojs(id, { children: { controlBar: false });\n if (parentOptions[name] !== undefined) {\n opts = parentOptions[name];\n }\n\n // Allow for disabling default components\n // e.g. options['children']['posterImage'] = false\n if (opts === false) {\n return;\n }\n\n // Allow options to be passed as a simple boolean if no configuration\n // is necessary.\n if (opts === true) {\n opts = {};\n }\n\n // We also want to pass the original player options to each component as well so they don't need to\n // reach back into the player for options later.\n opts.playerOptions = _this.options_.playerOptions;\n\n // Create and add the child component.\n // Add a direct reference to the child by name on the parent instance.\n // If two of the same component are used, different names should be supplied\n // for each\n _this[name] = _this.addChild(name, opts);\n };\n\n // Allow for an array of children details to passed in the options\n if (Array.isArray(children)) {\n for (var i = 0; i < children.length; i++) {\n var child = children[i];\n var _name = undefined;\n var opts = undefined;\n\n if (typeof child === 'string') {\n // ['myComponent']\n _name = child;\n opts = {};\n } else {\n // [{ name: 'myComponent', otherOption: true }]\n _name = child.name;\n opts = child;\n }\n\n handleAdd(_name, opts);\n }\n } else {\n Object.getOwnPropertyNames(children).forEach(function (name) {\n handleAdd(name, children[name]);\n });\n }\n })();\n }\n };\n\n /**\n * Allows sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n Component.prototype.buildCSSClass = function buildCSSClass() {\n // Child classes can include a function that does:\n // return 'CLASS NAME' + this._super();\n return '';\n };\n\n /**\n * Add an event listener to this component's element\n * ```js\n * var myFunc = function(){\n * var myComponent = this;\n * // Do something when the event is fired\n * };\n *\n * myComponent.on('eventType', myFunc);\n * ```\n * The context of myFunc will be myComponent unless previously bound.\n * Alternatively, you can add a listener to another element or component.\n * ```js\n * myComponent.on(otherElement, 'eventName', myFunc);\n * myComponent.on(otherComponent, 'eventName', myFunc);\n * ```\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\n * will be automatically cleaned up when either component is disposed.\n * It will also bind myComponent as the context of myFunc.\n * **NOTE**: When using this on elements in the page other than window\n * and document (both permanent), if you remove the element from the DOM\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\n * references to it and allow the browser to garbage collect it.\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The event handler or event type\n * @param {Function} third The event handler\n * @return {Component}\n * @method on\n */\n\n Component.prototype.on = function on(first, second, third) {\n var _this2 = this;\n\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.on(this.el_, first, Fn.bind(this, second));\n\n // Targeting another component or element\n } else {\n (function () {\n var target = first;\n var type = second;\n var fn = Fn.bind(_this2, third);\n\n // When this component is disposed, remove the listener from the other component\n var removeOnDispose = function removeOnDispose() {\n return _this2.off(target, type, fn);\n };\n\n // Use the same function ID so we can remove it later it using the ID\n // of the original listener\n removeOnDispose.guid = fn.guid;\n _this2.on('dispose', removeOnDispose);\n\n // If the other component is disposed first we need to clean the reference\n // to the other component in this component's removeOnDispose listener\n // Otherwise we create a memory leak.\n var cleanRemover = function cleanRemover() {\n return _this2.off('dispose', removeOnDispose);\n };\n\n // Add the same function ID so we can easily remove it later\n cleanRemover.guid = fn.guid;\n\n // Check if this is a DOM node\n if (first.nodeName) {\n // Add the listener to the other element\n Events.on(target, type, fn);\n Events.on(target, 'dispose', cleanRemover);\n\n // Should be a component\n // Not using `instanceof Component` because it makes mock players difficult\n } else if (typeof first.on === 'function') {\n // Add the listener to the other component\n target.on(type, fn);\n target.on('dispose', cleanRemover);\n }\n })();\n }\n\n return this;\n };\n\n /**\n * Remove an event listener from this component's element\n * ```js\n * myComponent.off('eventType', myFunc);\n * ```\n * If myFunc is excluded, ALL listeners for the event type will be removed.\n * If eventType is excluded, ALL listeners will be removed from the component.\n * Alternatively you can use `off` to remove listeners that were added to other\n * elements or components using `myComponent.on(otherComponent...`.\n * In this case both the event type and listener function are REQUIRED.\n * ```js\n * myComponent.off(otherElement, 'eventType', myFunc);\n * myComponent.off(otherComponent, 'eventType', myFunc);\n * ```\n *\n * @param {String=|Component} first The event type or other component\n * @param {Function=|String} second The listener function or event type\n * @param {Function=} third The listener for other component\n * @return {Component}\n * @method off\n */\n\n Component.prototype.off = function off(first, second, third) {\n if (!first || typeof first === 'string' || Array.isArray(first)) {\n Events.off(this.el_, first, second);\n } else {\n var target = first;\n var type = second;\n // Ensure there's at least a guid, even if the function hasn't been used\n var fn = Fn.bind(this, third);\n\n // Remove the dispose listener on this component,\n // which was given the same guid as the event listener\n this.off('dispose', fn);\n\n if (first.nodeName) {\n // Remove the listener\n Events.off(target, type, fn);\n // Remove the listener for cleaning the dispose listener\n Events.off(target, 'dispose', fn);\n } else {\n target.off(type, fn);\n target.off('dispose', fn);\n }\n }\n\n return this;\n };\n\n /**\n * Add an event listener to be triggered only once and then removed\n * ```js\n * myComponent.one('eventName', myFunc);\n * ```\n * Alternatively you can add a listener to another element or component\n * that will be triggered only once.\n * ```js\n * myComponent.one(otherElement, 'eventName', myFunc);\n * myComponent.one(otherComponent, 'eventName', myFunc);\n * ```\n *\n * @param {String|Component} first The event type or other component\n * @param {Function|String} second The listener function or event type\n * @param {Function=} third The listener function for other component\n * @return {Component}\n * @method one\n */\n\n Component.prototype.one = function one(first, second, third) {\n var _this3 = this,\n _arguments = arguments;\n\n if (typeof first === 'string' || Array.isArray(first)) {\n Events.one(this.el_, first, Fn.bind(this, second));\n } else {\n (function () {\n var target = first;\n var type = second;\n var fn = Fn.bind(_this3, third);\n\n var newFunc = function newFunc() {\n _this3.off(target, type, newFunc);\n fn.apply(null, _arguments);\n };\n\n // Keep the same function ID so we can remove it later\n newFunc.guid = fn.guid;\n\n _this3.on(target, type, newFunc);\n })();\n }\n\n return this;\n };\n\n /**\n * Trigger an event on an element\n * ```js\n * myComponent.trigger('eventName');\n * myComponent.trigger({'type':'eventName'});\n * myComponent.trigger('eventName', {data: 'some data'});\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\n * ```\n *\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Component} self\n * @method trigger\n */\n\n Component.prototype.trigger = function trigger(event, hash) {\n Events.trigger(this.el_, event, hash);\n return this;\n };\n\n /**\n * Bind a listener to the component's ready state.\n * Different from event listeners in that if the ready event has already happened\n * it will trigger the function immediately.\n *\n * @param {Function} fn Ready listener\n * @param {Boolean} sync Exec the listener synchronously if component is ready\n * @return {Component}\n * @method ready\n */\n\n Component.prototype.ready = function ready(fn) {\n var sync = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\n\n if (fn) {\n if (this.isReady_) {\n if (sync) {\n fn.call(this);\n } else {\n // Call the function asynchronously by default for consistency\n this.setTimeout(fn, 1);\n }\n } else {\n this.readyQueue_ = this.readyQueue_ || [];\n this.readyQueue_.push(fn);\n }\n }\n return this;\n };\n\n /**\n * Trigger the ready listeners\n *\n * @return {Component}\n * @method triggerReady\n */\n\n Component.prototype.triggerReady = function triggerReady() {\n this.isReady_ = true;\n\n // Ensure ready is triggerd asynchronously\n this.setTimeout(function () {\n var readyQueue = this.readyQueue_;\n\n // Reset Ready Queue\n this.readyQueue_ = [];\n\n if (readyQueue && readyQueue.length > 0) {\n readyQueue.forEach(function (fn) {\n fn.call(this);\n }, this);\n }\n\n // Allow for using event listeners also\n this.trigger('ready');\n }, 1);\n };\n\n /**\n * Check if a component's element has a CSS class name\n *\n * @param {String} classToCheck Classname to check\n * @return {Component}\n * @method hasClass\n */\n\n Component.prototype.hasClass = function hasClass(classToCheck) {\n return Dom.hasElClass(this.el_, classToCheck);\n };\n\n /**\n * Add a CSS class name to the component's element\n *\n * @param {String} classToAdd Classname to add\n * @return {Component}\n * @method addClass\n */\n\n Component.prototype.addClass = function addClass(classToAdd) {\n Dom.addElClass(this.el_, classToAdd);\n return this;\n };\n\n /**\n * Remove and return a CSS class name from the component's element\n *\n * @param {String} classToRemove Classname to remove\n * @return {Component}\n * @method removeClass\n */\n\n Component.prototype.removeClass = function removeClass(classToRemove) {\n Dom.removeElClass(this.el_, classToRemove);\n return this;\n };\n\n /**\n * Show the component element if hidden\n *\n * @return {Component}\n * @method show\n */\n\n Component.prototype.show = function show() {\n this.removeClass('vjs-hidden');\n return this;\n };\n\n /**\n * Hide the component element if currently showing\n *\n * @return {Component}\n * @method hide\n */\n\n Component.prototype.hide = function hide() {\n this.addClass('vjs-hidden');\n return this;\n };\n\n /**\n * Lock an item in its visible state\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method lockShowing\n */\n\n Component.prototype.lockShowing = function lockShowing() {\n this.addClass('vjs-lock-showing');\n return this;\n };\n\n /**\n * Unlock an item to be hidden\n * To be used with fadeIn/fadeOut.\n *\n * @return {Component}\n * @private\n * @method unlockShowing\n */\n\n Component.prototype.unlockShowing = function unlockShowing() {\n this.removeClass('vjs-lock-showing');\n return this;\n };\n\n /**\n * Set or get the width of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num Optional width number\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\n * @return {Component} This component, when setting the width\n * @return {Number|String} The width, when getting\n * @method width\n */\n\n Component.prototype.width = function width(num, skipListeners) {\n return this.dimension('width', num, skipListeners);\n };\n\n /**\n * Get or set the height of the component (CSS values)\n * Setting the video tag dimension values only works with values in pixels.\n * Percent values will not work.\n * Some percents can be used, but width()/height() will return the number + %,\n * not the actual computed width/height.\n *\n * @param {Number|String=} num New component height\n * @param {Boolean=} skipListeners Skip the resize event trigger\n * @return {Component} This component, when setting the height\n * @return {Number|String} The height, when getting\n * @method height\n */\n\n Component.prototype.height = function height(num, skipListeners) {\n return this.dimension('height', num, skipListeners);\n };\n\n /**\n * Set both width and height at the same time\n *\n * @param {Number|String} width Width of player\n * @param {Number|String} height Height of player\n * @return {Component} The component\n * @method dimensions\n */\n\n Component.prototype.dimensions = function dimensions(width, height) {\n // Skip resize listeners on width for optimization\n return this.width(width, true).height(height);\n };\n\n /**\n * Get or set width or height\n * This is the shared code for the width() and height() methods.\n * All for an integer, integer + 'px' or integer + '%';\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\n * to the style.width value and falling back to computedStyle which has the\n * hidden element issue. Info, but probably not an efficient fix:\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\n *\n * @param {String} widthOrHeight 'width' or 'height'\n * @param {Number|String=} num New dimension\n * @param {Boolean=} skipListeners Skip resize event trigger\n * @return {Component} The component if a dimension was set\n * @return {Number|String} The dimension if nothing was set\n * @private\n * @method dimension\n */\n\n Component.prototype.dimension = function dimension(widthOrHeight, num, skipListeners) {\n if (num !== undefined) {\n // Set to zero if null or literally NaN (NaN !== NaN)\n if (num === null || num !== num) {\n num = 0;\n }\n\n // Check if using css width/height (% or px) and adjust\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\n this.el_.style[widthOrHeight] = num;\n } else if (num === 'auto') {\n this.el_.style[widthOrHeight] = '';\n } else {\n this.el_.style[widthOrHeight] = num + 'px';\n }\n\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\n if (!skipListeners) {\n this.trigger('resize');\n }\n\n // Return component\n return this;\n }\n\n // Not setting a value, so getting it\n // Make sure element exists\n if (!this.el_) {\n return 0;\n }\n\n // Get dimension value from style\n var val = this.el_.style[widthOrHeight];\n var pxIndex = val.indexOf('px');\n\n if (pxIndex !== -1) {\n // Return the pixel value with no 'px'\n return parseInt(val.slice(0, pxIndex), 10);\n }\n\n // No px so using % or no style was set, so falling back to offsetWidth/height\n // If component has display:none, offset will return 0\n // TODO: handle display:none and no dimension style using px\n return parseInt(this.el_['offset' + _utilsToTitleCaseJs2['default'](widthOrHeight)], 10);\n };\n\n /**\n * Emit 'tap' events when touch events are supported\n * This is used to support toggling the controls through a tap on the video.\n * We're requiring them to be enabled because otherwise every component would\n * have this extra overhead unnecessarily, on mobile devices where extra\n * overhead is especially bad.\n *\n * @private\n * @method emitTapEvents\n */\n\n Component.prototype.emitTapEvents = function emitTapEvents() {\n // Track the start time so we can determine how long the touch lasted\n var touchStart = 0;\n var firstTouch = null;\n\n // Maximum movement allowed during a touch event to still be considered a tap\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\n var tapMovementThreshold = 10;\n\n // The maximum length a touch can be while still being considered a tap\n var touchTimeThreshold = 200;\n\n var couldBeTap = undefined;\n\n this.on('touchstart', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length === 1) {\n // Copy the touches object to prevent modifying the original\n firstTouch = _objectAssign2['default']({}, event.touches[0]);\n // Record start time so we can detect a tap vs. \"touch and hold\"\n touchStart = new Date().getTime();\n // Reset couldBeTap tracking\n couldBeTap = true;\n }\n });\n\n this.on('touchmove', function (event) {\n // If more than one finger, don't consider treating this as a click\n if (event.touches.length > 1) {\n couldBeTap = false;\n } else if (firstTouch) {\n // Some devices will throw touchmoves for all but the slightest of taps.\n // So, if we moved only a small distance, this could still be a tap\n var xdiff = event.touches[0].pageX - firstTouch.pageX;\n var ydiff = event.touches[0].pageY - firstTouch.pageY;\n var touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\n\n if (touchDistance > tapMovementThreshold) {\n couldBeTap = false;\n }\n }\n });\n\n var noTap = function noTap() {\n couldBeTap = false;\n };\n\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\n this.on('touchleave', noTap);\n this.on('touchcancel', noTap);\n\n // When the touch ends, measure how long it took and trigger the appropriate\n // event\n this.on('touchend', function (event) {\n firstTouch = null;\n // Proceed only if the touchmove/leave/cancel event didn't happen\n if (couldBeTap === true) {\n // Measure how long the touch lasted\n var touchTime = new Date().getTime() - touchStart;\n\n // Make sure the touch was less than the threshold to be considered a tap\n if (touchTime < touchTimeThreshold) {\n // Don't let browser turn this into a click\n event.preventDefault();\n this.trigger('tap');\n // It may be good to copy the touchend event object and change the\n // type to tap, if the other event properties aren't exact after\n // Events.fixEvent runs (e.g. event.target)\n }\n }\n });\n };\n\n /**\n * Report user touch activity when touch events occur\n * User activity is used to determine when controls should show/hide. It's\n * relatively simple when it comes to mouse events, because any mouse event\n * should show the controls. So we capture mouse events that bubble up to the\n * player and report activity when that happens.\n * With touch events it isn't as easy. We can't rely on touch events at the\n * player level, because a tap (touchstart + touchend) on the video itself on\n * mobile devices is meant to turn controls off (and on). User activity is\n * checked asynchronously, so what could happen is a tap event on the video\n * turns the controls off, then the touchend event bubbles up to the player,\n * which if it reported user activity, would turn the controls right back on.\n * (We also don't want to completely block touch events from bubbling up)\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\n * to turn the controls back on on a mobile device.\n * Here we're setting the default component behavior to report user activity\n * whenever touch events happen, and this can be turned off by components that\n * want touch events to act differently.\n *\n * @method enableTouchActivity\n */\n\n Component.prototype.enableTouchActivity = function enableTouchActivity() {\n // Don't continue if the root player doesn't support reporting user activity\n if (!this.player() || !this.player().reportUserActivity) {\n return;\n }\n\n // listener for reporting that the user is active\n var report = Fn.bind(this.player(), this.player().reportUserActivity);\n\n var touchHolding = undefined;\n\n this.on('touchstart', function () {\n report();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(touchHolding);\n // report at the same interval as activityCheck\n touchHolding = this.setInterval(report, 250);\n });\n\n var touchEnd = function touchEnd(event) {\n report();\n // stop the interval that maintains activity if the touch is holding\n this.clearInterval(touchHolding);\n };\n\n this.on('touchmove', report);\n this.on('touchend', touchEnd);\n this.on('touchcancel', touchEnd);\n };\n\n /**\n * Creates timeout and sets up disposal automatically.\n *\n * @param {Function} fn The function to run after the timeout.\n * @param {Number} timeout Number of ms to delay before executing specified function.\n * @return {Number} Returns the timeout ID\n * @method setTimeout\n */\n\n Component.prototype.setTimeout = function setTimeout(fn, timeout) {\n fn = Fn.bind(this, fn);\n\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\n var timeoutId = _globalWindow2['default'].setTimeout(fn, timeout);\n\n var disposeFn = function disposeFn() {\n this.clearTimeout(timeoutId);\n };\n\n disposeFn.guid = 'vjs-timeout-' + timeoutId;\n\n this.on('dispose', disposeFn);\n\n return timeoutId;\n };\n\n /**\n * Clears a timeout and removes the associated dispose listener\n *\n * @param {Number} timeoutId The id of the timeout to clear\n * @return {Number} Returns the timeout ID\n * @method clearTimeout\n */\n\n Component.prototype.clearTimeout = function clearTimeout(timeoutId) {\n _globalWindow2['default'].clearTimeout(timeoutId);\n\n var disposeFn = function disposeFn() {};\n\n disposeFn.guid = 'vjs-timeout-' + timeoutId;\n\n this.off('dispose', disposeFn);\n\n return timeoutId;\n };\n\n /**\n * Creates an interval and sets up disposal automatically.\n *\n * @param {Function} fn The function to run every N seconds.\n * @param {Number} interval Number of ms to delay before executing specified function.\n * @return {Number} Returns the interval ID\n * @method setInterval\n */\n\n Component.prototype.setInterval = function setInterval(fn, interval) {\n fn = Fn.bind(this, fn);\n\n var intervalId = _globalWindow2['default'].setInterval(fn, interval);\n\n var disposeFn = function disposeFn() {\n this.clearInterval(intervalId);\n };\n\n disposeFn.guid = 'vjs-interval-' + intervalId;\n\n this.on('dispose', disposeFn);\n\n return intervalId;\n };\n\n /**\n * Clears an interval and removes the associated dispose listener\n *\n * @param {Number} intervalId The id of the interval to clear\n * @return {Number} Returns the interval ID\n * @method clearInterval\n */\n\n Component.prototype.clearInterval = function clearInterval(intervalId) {\n _globalWindow2['default'].clearInterval(intervalId);\n\n var disposeFn = function disposeFn() {};\n\n disposeFn.guid = 'vjs-interval-' + intervalId;\n\n this.off('dispose', disposeFn);\n\n return intervalId;\n };\n\n /**\n * Registers a component\n *\n * @param {String} name Name of the component to register\n * @param {Object} comp The component to register\n * @static\n * @method registerComponent\n */\n\n Component.registerComponent = function registerComponent(name, comp) {\n if (!Component.components_) {\n Component.components_ = {};\n }\n\n Component.components_[name] = comp;\n return comp;\n };\n\n /**\n * Gets a component by name\n *\n * @param {String} name Name of the component to get\n * @return {Component}\n * @static\n * @method getComponent\n */\n\n Component.getComponent = function getComponent(name) {\n if (Component.components_ && Component.components_[name]) {\n return Component.components_[name];\n }\n\n if (_globalWindow2['default'] && _globalWindow2['default'].videojs && _globalWindow2['default'].videojs[name]) {\n _utilsLogJs2['default'].warn('The ' + name + ' component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)');\n return _globalWindow2['default'].videojs[name];\n }\n };\n\n /**\n * Sets up the constructor using the supplied init method\n * or uses the init of the parent object\n *\n * @param {Object} props An object of properties\n * @static\n * @deprecated\n * @method extend\n */\n\n Component.extend = function extend(props) {\n props = props || {};\n\n _utilsLogJs2['default'].warn('Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead');\n\n // Set up the constructor using the supplied init method\n // or using the init of the parent object\n // Make sure to check the unobfuscated version for external libs\n var init = props.init || props.init || this.prototype.init || this.prototype.init || function () {};\n // In Resig's simple class inheritance (previously used) the constructor\n // is a function that calls `this.init.apply(arguments)`\n // However that would prevent us from using `ParentObject.call(this);`\n // in a Child constructor because the `this` in `this.init`\n // would still refer to the Child and cause an infinite loop.\n // We would instead have to do\n // `ParentObject.prototype.init.apply(this, arguments);`\n // Bleh. We're not creating a _super() function, so it's good to keep\n // the parent constructor reference simple.\n var subObj = function subObj() {\n init.apply(this, arguments);\n };\n\n // Inherit from this object's prototype\n subObj.prototype = Object.create(this.prototype);\n // Reset the constructor property for subObj otherwise\n // instances of subObj would have the constructor of the parent Object\n subObj.prototype.constructor = subObj;\n\n // Make the class extendable\n subObj.extend = Component.extend;\n\n // Extend subObj's prototype with functions and other properties from props\n for (var _name2 in props) {\n if (props.hasOwnProperty(_name2)) {\n subObj.prototype[_name2] = props[_name2];\n }\n }\n\n return subObj;\n };\n\n return Component;\n})();\n\nComponent.registerComponent('Component', Component);\nexports['default'] = Component;\nmodule.exports = exports['default'];\n\n},{\"./utils/dom.js\":118,\"./utils/events.js\":119,\"./utils/fn.js\":120,\"./utils/guid.js\":122,\"./utils/log.js\":123,\"./utils/merge-options.js\":124,\"./utils/to-title-case.js\":127,\"global/window\":2,\"object.assign\":43}],59:[function(_dereq_,module,exports){\n/**\n * @file control-bar.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n// Required children\n\nvar _playToggleJs = _dereq_('./play-toggle.js');\n\nvar _playToggleJs2 = _interopRequireDefault(_playToggleJs);\n\nvar _timeControlsCurrentTimeDisplayJs = _dereq_('./time-controls/current-time-display.js');\n\nvar _timeControlsCurrentTimeDisplayJs2 = _interopRequireDefault(_timeControlsCurrentTimeDisplayJs);\n\nvar _timeControlsDurationDisplayJs = _dereq_('./time-controls/duration-display.js');\n\nvar _timeControlsDurationDisplayJs2 = _interopRequireDefault(_timeControlsDurationDisplayJs);\n\nvar _timeControlsTimeDividerJs = _dereq_('./time-controls/time-divider.js');\n\nvar _timeControlsTimeDividerJs2 = _interopRequireDefault(_timeControlsTimeDividerJs);\n\nvar _timeControlsRemainingTimeDisplayJs = _dereq_('./time-controls/remaining-time-display.js');\n\nvar _timeControlsRemainingTimeDisplayJs2 = _interopRequireDefault(_timeControlsRemainingTimeDisplayJs);\n\nvar _liveDisplayJs = _dereq_('./live-display.js');\n\nvar _liveDisplayJs2 = _interopRequireDefault(_liveDisplayJs);\n\nvar _progressControlProgressControlJs = _dereq_('./progress-control/progress-control.js');\n\nvar _progressControlProgressControlJs2 = _interopRequireDefault(_progressControlProgressControlJs);\n\nvar _fullscreenToggleJs = _dereq_('./fullscreen-toggle.js');\n\nvar _fullscreenToggleJs2 = _interopRequireDefault(_fullscreenToggleJs);\n\nvar _volumeControlVolumeControlJs = _dereq_('./volume-control/volume-control.js');\n\nvar _volumeControlVolumeControlJs2 = _interopRequireDefault(_volumeControlVolumeControlJs);\n\nvar _volumeMenuButtonJs = _dereq_('./volume-menu-button.js');\n\nvar _volumeMenuButtonJs2 = _interopRequireDefault(_volumeMenuButtonJs);\n\nvar _muteToggleJs = _dereq_('./mute-toggle.js');\n\nvar _muteToggleJs2 = _interopRequireDefault(_muteToggleJs);\n\nvar _textTrackControlsChaptersButtonJs = _dereq_('./text-track-controls/chapters-button.js');\n\nvar _textTrackControlsChaptersButtonJs2 = _interopRequireDefault(_textTrackControlsChaptersButtonJs);\n\nvar _textTrackControlsSubtitlesButtonJs = _dereq_('./text-track-controls/subtitles-button.js');\n\nvar _textTrackControlsSubtitlesButtonJs2 = _interopRequireDefault(_textTrackControlsSubtitlesButtonJs);\n\nvar _textTrackControlsCaptionsButtonJs = _dereq_('./text-track-controls/captions-button.js');\n\nvar _textTrackControlsCaptionsButtonJs2 = _interopRequireDefault(_textTrackControlsCaptionsButtonJs);\n\nvar _playbackRateMenuPlaybackRateMenuButtonJs = _dereq_('./playback-rate-menu/playback-rate-menu-button.js');\n\nvar _playbackRateMenuPlaybackRateMenuButtonJs2 = _interopRequireDefault(_playbackRateMenuPlaybackRateMenuButtonJs);\n\nvar _spacerControlsCustomControlSpacerJs = _dereq_('./spacer-controls/custom-control-spacer.js');\n\nvar _spacerControlsCustomControlSpacerJs2 = _interopRequireDefault(_spacerControlsCustomControlSpacerJs);\n\n/**\n * Container of main controls\n *\n * @extends Component\n * @class ControlBar\n */\n\nvar ControlBar = (function (_Component) {\n _inherits(ControlBar, _Component);\n\n function ControlBar() {\n _classCallCheck(this, ControlBar);\n\n _Component.apply(this, arguments);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n ControlBar.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-control-bar'\n });\n };\n\n return ControlBar;\n})(_componentJs2['default']);\n\nControlBar.prototype.options_ = {\n loadEvent: 'play',\n children: ['playToggle', 'volumeMenuButton', 'currentTimeDisplay', 'timeDivider', 'durationDisplay', 'progressControl', 'liveDisplay', 'remainingTimeDisplay', 'customControlSpacer', 'playbackRateMenuButton', 'chaptersButton', 'subtitlesButton', 'captionsButton', 'fullscreenToggle']\n};\n\n_componentJs2['default'].registerComponent('ControlBar', ControlBar);\nexports['default'] = ControlBar;\nmodule.exports = exports['default'];\n\n},{\"../component.js\":58,\"./fullscreen-toggle.js\":60,\"./live-display.js\":61,\"./mute-toggle.js\":62,\"./play-toggle.js\":63,\"./playback-rate-menu/playback-rate-menu-button.js\":64,\"./progress-control/progress-control.js\":69,\"./spacer-controls/custom-control-spacer.js\":71,\"./text-track-controls/captions-button.js\":74,\"./text-track-controls/chapters-button.js\":75,\"./text-track-controls/subtitles-button.js\":78,\"./time-controls/current-time-display.js\":81,\"./time-controls/duration-display.js\":82,\"./time-controls/remaining-time-display.js\":83,\"./time-controls/time-divider.js\":84,\"./volume-control/volume-control.js\":86,\"./volume-menu-button.js\":88}],60:[function(_dereq_,module,exports){\n/**\n * @file fullscreen-toggle.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _buttonJs = _dereq_('../button.js');\n\nvar _buttonJs2 = _interopRequireDefault(_buttonJs);\n\nvar _componentJs = _dereq_('../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n/**\n * Toggle fullscreen video\n *\n * @extends Button\n * @class FullscreenToggle\n */\n\nvar FullscreenToggle = (function (_Button) {\n _inherits(FullscreenToggle, _Button);\n\n function FullscreenToggle() {\n _classCallCheck(this, FullscreenToggle);\n\n _Button.apply(this, arguments);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n FullscreenToggle.prototype.buildCSSClass = function buildCSSClass() {\n return 'vjs-fullscreen-control ' + _Button.prototype.buildCSSClass.call(this);\n };\n\n /**\n * Handles click for full screen\n *\n * @method handleClick\n */\n\n FullscreenToggle.prototype.handleClick = function handleClick() {\n if (!this.player_.isFullscreen()) {\n this.player_.requestFullscreen();\n this.controlText('Non-Fullscreen');\n } else {\n this.player_.exitFullscreen();\n this.controlText('Fullscreen');\n }\n };\n\n return FullscreenToggle;\n})(_buttonJs2['default']);\n\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\n\n_componentJs2['default'].registerComponent('FullscreenToggle', FullscreenToggle);\nexports['default'] = FullscreenToggle;\nmodule.exports = exports['default'];\n\n},{\"../button.js\":57,\"../component.js\":58}],61:[function(_dereq_,module,exports){\n/**\n * @file live-display.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _component = _dereq_('../component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _utilsDomJs = _dereq_('../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\n/**\n * Displays the live indicator\n * TODO - Future make it click to snap to live\n *\n * @extends Component\n * @class LiveDisplay\n */\n\nvar LiveDisplay = (function (_Component) {\n _inherits(LiveDisplay, _Component);\n\n function LiveDisplay(player, options) {\n _classCallCheck(this, LiveDisplay);\n\n _Component.call(this, player, options);\n\n this.updateShowing();\n this.on(this.player(), 'durationchange', this.updateShowing);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n LiveDisplay.prototype.createEl = function createEl() {\n var el = _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-live-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-live-display',\n innerHTML: '' + this.localize('Stream Type') + '' + this.localize('LIVE')\n }, {\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n };\n\n LiveDisplay.prototype.updateShowing = function updateShowing() {\n if (this.player().duration() === Infinity) {\n this.show();\n } else {\n this.hide();\n }\n };\n\n return LiveDisplay;\n})(_component2['default']);\n\n_component2['default'].registerComponent('LiveDisplay', LiveDisplay);\nexports['default'] = LiveDisplay;\nmodule.exports = exports['default'];\n\n},{\"../component\":58,\"../utils/dom.js\":118}],62:[function(_dereq_,module,exports){\n/**\n * @file mute-toggle.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _button = _dereq_('../button');\n\nvar _button2 = _interopRequireDefault(_button);\n\nvar _component = _dereq_('../component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _utilsDomJs = _dereq_('../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\n/**\n * A button component for muting the audio\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MuteToggle\n */\n\nvar MuteToggle = (function (_Button) {\n _inherits(MuteToggle, _Button);\n\n function MuteToggle(player, options) {\n _classCallCheck(this, MuteToggle);\n\n _Button.call(this, player, options);\n\n this.on(player, 'volumechange', this.update);\n\n // hide mute toggle if the current tech doesn't support volume control\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n\n this.on(player, 'loadstart', function () {\n this.update(); // We need to update the button to account for a default muted state.\n\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n MuteToggle.prototype.buildCSSClass = function buildCSSClass() {\n return 'vjs-mute-control ' + _Button.prototype.buildCSSClass.call(this);\n };\n\n /**\n * Handle click on mute\n *\n * @method handleClick\n */\n\n MuteToggle.prototype.handleClick = function handleClick() {\n this.player_.muted(this.player_.muted() ? false : true);\n };\n\n /**\n * Update volume\n *\n * @method update\n */\n\n MuteToggle.prototype.update = function update() {\n var vol = this.player_.volume(),\n level = 3;\n\n if (vol === 0 || this.player_.muted()) {\n level = 0;\n } else if (vol < 0.33) {\n level = 1;\n } else if (vol < 0.67) {\n level = 2;\n }\n\n // Don't rewrite the button text if the actual text doesn't change.\n // This causes unnecessary and confusing information for screen reader users.\n // This check is needed because this function gets called every time the volume level is changed.\n var toMute = this.player_.muted() ? 'Unmute' : 'Mute';\n var localizedMute = this.localize(toMute);\n if (this.controlText() !== localizedMute) {\n this.controlText(localizedMute);\n }\n\n /* TODO improve muted icon classes */\n for (var i = 0; i < 4; i++) {\n Dom.removeElClass(this.el_, 'vjs-vol-' + i);\n }\n Dom.addElClass(this.el_, 'vjs-vol-' + level);\n };\n\n return MuteToggle;\n})(_button2['default']);\n\nMuteToggle.prototype.controlText_ = 'Mute';\n\n_component2['default'].registerComponent('MuteToggle', MuteToggle);\nexports['default'] = MuteToggle;\nmodule.exports = exports['default'];\n\n},{\"../button\":57,\"../component\":58,\"../utils/dom.js\":118}],63:[function(_dereq_,module,exports){\n/**\n * @file play-toggle.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _buttonJs = _dereq_('../button.js');\n\nvar _buttonJs2 = _interopRequireDefault(_buttonJs);\n\nvar _componentJs = _dereq_('../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n/**\n * Button to toggle between play and pause\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PlayToggle\n */\n\nvar PlayToggle = (function (_Button) {\n _inherits(PlayToggle, _Button);\n\n function PlayToggle(player, options) {\n _classCallCheck(this, PlayToggle);\n\n _Button.call(this, player, options);\n\n this.on(player, 'play', this.handlePlay);\n this.on(player, 'pause', this.handlePause);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n PlayToggle.prototype.buildCSSClass = function buildCSSClass() {\n return 'vjs-play-control ' + _Button.prototype.buildCSSClass.call(this);\n };\n\n /**\n * Handle click to toggle between play and pause\n *\n * @method handleClick\n */\n\n PlayToggle.prototype.handleClick = function handleClick() {\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n };\n\n /**\n * Add the vjs-playing class to the element so it can change appearance\n *\n * @method handlePlay\n */\n\n PlayToggle.prototype.handlePlay = function handlePlay() {\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n this.controlText('Pause'); // change the button text to \"Pause\"\n };\n\n /**\n * Add the vjs-paused class to the element so it can change appearance\n *\n * @method handlePause\n */\n\n PlayToggle.prototype.handlePause = function handlePause() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.controlText('Play'); // change the button text to \"Play\"\n };\n\n return PlayToggle;\n})(_buttonJs2['default']);\n\nPlayToggle.prototype.controlText_ = 'Play';\n\n_componentJs2['default'].registerComponent('PlayToggle', PlayToggle);\nexports['default'] = PlayToggle;\nmodule.exports = exports['default'];\n\n},{\"../button.js\":57,\"../component.js\":58}],64:[function(_dereq_,module,exports){\n/**\n * @file playback-rate-menu-button.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _menuMenuButtonJs = _dereq_('../../menu/menu-button.js');\n\nvar _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);\n\nvar _menuMenuJs = _dereq_('../../menu/menu.js');\n\nvar _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);\n\nvar _playbackRateMenuItemJs = _dereq_('./playback-rate-menu-item.js');\n\nvar _playbackRateMenuItemJs2 = _interopRequireDefault(_playbackRateMenuItemJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\n/**\n * The component for controlling the playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class PlaybackRateMenuButton\n */\n\nvar PlaybackRateMenuButton = (function (_MenuButton) {\n _inherits(PlaybackRateMenuButton, _MenuButton);\n\n function PlaybackRateMenuButton(player, options) {\n _classCallCheck(this, PlaybackRateMenuButton);\n\n _MenuButton.call(this, player, options);\n\n this.updateVisibility();\n this.updateLabel();\n\n this.on(player, 'loadstart', this.updateVisibility);\n this.on(player, 'ratechange', this.updateLabel);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n PlaybackRateMenuButton.prototype.createEl = function createEl() {\n var el = _MenuButton.prototype.createEl.call(this);\n\n this.labelEl_ = Dom.createEl('div', {\n className: 'vjs-playback-rate-value',\n innerHTML: 1.0\n });\n\n el.appendChild(this.labelEl_);\n\n return el;\n };\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n PlaybackRateMenuButton.prototype.buildCSSClass = function buildCSSClass() {\n return 'vjs-playback-rate ' + _MenuButton.prototype.buildCSSClass.call(this);\n };\n\n /**\n * Create the playback rate menu\n *\n * @return {Menu} Menu object populated with items\n * @method createMenu\n */\n\n PlaybackRateMenuButton.prototype.createMenu = function createMenu() {\n var menu = new _menuMenuJs2['default'](this.player());\n var rates = this.playbackRates();\n\n if (rates) {\n for (var i = rates.length - 1; i >= 0; i--) {\n menu.addChild(new _playbackRateMenuItemJs2['default'](this.player(), { 'rate': rates[i] + 'x' }));\n }\n }\n\n return menu;\n };\n\n /**\n * Updates ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n\n PlaybackRateMenuButton.prototype.updateARIAAttributes = function updateARIAAttributes() {\n // Current playback rate\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\n };\n\n /**\n * Handle menu item click\n *\n * @method handleClick\n */\n\n PlaybackRateMenuButton.prototype.handleClick = function handleClick() {\n // select next rate option\n var currentRate = this.player().playbackRate();\n var rates = this.playbackRates();\n\n // this will select first one if the last one currently selected\n var newRate = rates[0];\n for (var i = 0; i < rates.length; i++) {\n if (rates[i] > currentRate) {\n newRate = rates[i];\n break;\n }\n }\n this.player().playbackRate(newRate);\n };\n\n /**\n * Get possible playback rates\n *\n * @return {Array} Possible playback rates\n * @method playbackRates\n */\n\n PlaybackRateMenuButton.prototype.playbackRates = function playbackRates() {\n return this.options_['playbackRates'] || this.options_.playerOptions && this.options_.playerOptions['playbackRates'];\n };\n\n /**\n * Get supported playback rates\n *\n * @return {Array} Supported playback rates\n * @method playbackRateSupported\n */\n\n PlaybackRateMenuButton.prototype.playbackRateSupported = function playbackRateSupported() {\n return this.player().tech_ && this.player().tech_['featuresPlaybackRate'] && this.playbackRates() && this.playbackRates().length > 0;\n };\n\n /**\n * Hide playback rate controls when they're no playback rate options to select\n *\n * @method updateVisibility\n */\n\n PlaybackRateMenuButton.prototype.updateVisibility = function updateVisibility() {\n if (this.playbackRateSupported()) {\n this.removeClass('vjs-hidden');\n } else {\n this.addClass('vjs-hidden');\n }\n };\n\n /**\n * Update button label when rate changed\n *\n * @method updateLabel\n */\n\n PlaybackRateMenuButton.prototype.updateLabel = function updateLabel() {\n if (this.playbackRateSupported()) {\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\n }\n };\n\n return PlaybackRateMenuButton;\n})(_menuMenuButtonJs2['default']);\n\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\n\n_componentJs2['default'].registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\nexports['default'] = PlaybackRateMenuButton;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../menu/menu-button.js\":95,\"../../menu/menu.js\":97,\"../../utils/dom.js\":118,\"./playback-rate-menu-item.js\":65}],65:[function(_dereq_,module,exports){\n/**\n * @file playback-rate-menu-item.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _menuMenuItemJs = _dereq_('../../menu/menu-item.js');\n\nvar _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n/**\n * The specific menu item type for selecting a playback rate\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class PlaybackRateMenuItem\n */\n\nvar PlaybackRateMenuItem = (function (_MenuItem) {\n _inherits(PlaybackRateMenuItem, _MenuItem);\n\n function PlaybackRateMenuItem(player, options) {\n _classCallCheck(this, PlaybackRateMenuItem);\n\n var label = options['rate'];\n var rate = parseFloat(label, 10);\n\n // Modify options for parent MenuItem class's init.\n options['label'] = label;\n options['selected'] = rate === 1;\n _MenuItem.call(this, player, options);\n\n this.label = label;\n this.rate = rate;\n\n this.on(player, 'ratechange', this.update);\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n\n PlaybackRateMenuItem.prototype.handleClick = function handleClick() {\n _MenuItem.prototype.handleClick.call(this);\n this.player().playbackRate(this.rate);\n };\n\n /**\n * Update playback rate with selected rate\n *\n * @method update\n */\n\n PlaybackRateMenuItem.prototype.update = function update() {\n this.selected(this.player().playbackRate() === this.rate);\n };\n\n return PlaybackRateMenuItem;\n})(_menuMenuItemJs2['default']);\n\nPlaybackRateMenuItem.prototype.contentElType = 'button';\n\n_componentJs2['default'].registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\nexports['default'] = PlaybackRateMenuItem;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../menu/menu-item.js\":96}],66:[function(_dereq_,module,exports){\n/**\n * @file load-progress-bar.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\n/**\n * Shows load progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class LoadProgressBar\n */\n\nvar LoadProgressBar = (function (_Component) {\n _inherits(LoadProgressBar, _Component);\n\n function LoadProgressBar(player, options) {\n _classCallCheck(this, LoadProgressBar);\n\n _Component.call(this, player, options);\n this.on(player, 'progress', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n LoadProgressBar.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-load-progress',\n innerHTML: '' + this.localize('Loaded') + ': 0%'\n });\n };\n\n /**\n * Update progress bar\n *\n * @method update\n */\n\n LoadProgressBar.prototype.update = function update() {\n var buffered = this.player_.buffered();\n var duration = this.player_.duration();\n var bufferedEnd = this.player_.bufferedEnd();\n var children = this.el_.children;\n\n // get the percent width of a time compared to the total end\n var percentify = function percentify(time, end) {\n var percent = time / end || 0; // no NaN\n return (percent >= 1 ? 1 : percent) * 100 + '%';\n };\n\n // update the width of the progress bar\n this.el_.style.width = percentify(bufferedEnd, duration);\n\n // add child elements to represent the individual buffered time ranges\n for (var i = 0; i < buffered.length; i++) {\n var start = buffered.start(i);\n var end = buffered.end(i);\n var part = children[i];\n\n if (!part) {\n part = this.el_.appendChild(Dom.createEl());\n }\n\n // set the percent based on the width of the progress bar (bufferedEnd)\n part.style.left = percentify(start, bufferedEnd);\n part.style.width = percentify(end - start, bufferedEnd);\n }\n\n // remove unused buffered range elements\n for (var i = children.length; i > buffered.length; i--) {\n this.el_.removeChild(children[i - 1]);\n }\n };\n\n return LoadProgressBar;\n})(_componentJs2['default']);\n\n_componentJs2['default'].registerComponent('LoadProgressBar', LoadProgressBar);\nexports['default'] = LoadProgressBar;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../utils/dom.js\":118}],67:[function(_dereq_,module,exports){\n/**\n * @file mouse-time-display.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\n\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\n\nvar _lodashCompatFunctionThrottle = _dereq_('lodash-compat/function/throttle');\n\nvar _lodashCompatFunctionThrottle2 = _interopRequireDefault(_lodashCompatFunctionThrottle);\n\n/**\n * The Mouse Time Display component shows the time you will seek to\n * when hovering over the progress bar\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class MouseTimeDisplay\n */\n\nvar MouseTimeDisplay = (function (_Component) {\n _inherits(MouseTimeDisplay, _Component);\n\n function MouseTimeDisplay(player, options) {\n var _this = this;\n\n _classCallCheck(this, MouseTimeDisplay);\n\n _Component.call(this, player, options);\n\n this.update(0, 0);\n\n player.on('ready', function () {\n _this.on(player.controlBar.progressControl.el(), 'mousemove', _lodashCompatFunctionThrottle2['default'](Fn.bind(_this, _this.handleMouseMove), 25));\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n MouseTimeDisplay.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-mouse-display'\n });\n };\n\n MouseTimeDisplay.prototype.handleMouseMove = function handleMouseMove(event) {\n var duration = this.player_.duration();\n var newTime = this.calculateDistance(event) * duration;\n var position = event.pageX - Dom.findElPosition(this.el().parentNode).left;\n\n this.update(newTime, position);\n };\n\n MouseTimeDisplay.prototype.update = function update(newTime, position) {\n var time = _utilsFormatTimeJs2['default'](newTime, this.player_.duration());\n\n this.el().style.left = position + 'px';\n this.el().setAttribute('data-current-time', time);\n };\n\n MouseTimeDisplay.prototype.calculateDistance = function calculateDistance(event) {\n return Dom.getPointerPosition(this.el().parentNode, event).x;\n };\n\n return MouseTimeDisplay;\n})(_componentJs2['default']);\n\n_componentJs2['default'].registerComponent('MouseTimeDisplay', MouseTimeDisplay);\nexports['default'] = MouseTimeDisplay;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../utils/dom.js\":118,\"../../utils/fn.js\":120,\"../../utils/format-time.js\":121,\"lodash-compat/function/throttle\":7}],68:[function(_dereq_,module,exports){\n/**\n * @file play-progress-bar.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\n\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\n\n/**\n * Shows play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class PlayProgressBar\n */\n\nvar PlayProgressBar = (function (_Component) {\n _inherits(PlayProgressBar, _Component);\n\n function PlayProgressBar(player, options) {\n _classCallCheck(this, PlayProgressBar);\n\n _Component.call(this, player, options);\n this.updateDataAttr();\n this.on(player, 'timeupdate', this.updateDataAttr);\n player.ready(Fn.bind(this, this.updateDataAttr));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n PlayProgressBar.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-play-progress vjs-slider-bar',\n innerHTML: '' + this.localize('Progress') + ': 0%'\n });\n };\n\n PlayProgressBar.prototype.updateDataAttr = function updateDataAttr() {\n var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('data-current-time', _utilsFormatTimeJs2['default'](time, this.player_.duration()));\n };\n\n return PlayProgressBar;\n})(_componentJs2['default']);\n\n_componentJs2['default'].registerComponent('PlayProgressBar', PlayProgressBar);\nexports['default'] = PlayProgressBar;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../utils/fn.js\":120,\"../../utils/format-time.js\":121}],69:[function(_dereq_,module,exports){\n/**\n * @file progress-control.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _seekBarJs = _dereq_('./seek-bar.js');\n\nvar _seekBarJs2 = _interopRequireDefault(_seekBarJs);\n\nvar _mouseTimeDisplayJs = _dereq_('./mouse-time-display.js');\n\nvar _mouseTimeDisplayJs2 = _interopRequireDefault(_mouseTimeDisplayJs);\n\n/**\n * The Progress Control component contains the seek bar, load progress,\n * and play progress\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class ProgressControl\n */\n\nvar ProgressControl = (function (_Component) {\n _inherits(ProgressControl, _Component);\n\n function ProgressControl() {\n _classCallCheck(this, ProgressControl);\n\n _Component.apply(this, arguments);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n ProgressControl.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-progress-control vjs-control'\n });\n };\n\n return ProgressControl;\n})(_componentJs2['default']);\n\nProgressControl.prototype.options_ = {\n children: ['seekBar']\n};\n\n_componentJs2['default'].registerComponent('ProgressControl', ProgressControl);\nexports['default'] = ProgressControl;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"./mouse-time-display.js\":67,\"./seek-bar.js\":70}],70:[function(_dereq_,module,exports){\n/**\n * @file seek-bar.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _sliderSliderJs = _dereq_('../../slider/slider.js');\n\nvar _sliderSliderJs2 = _interopRequireDefault(_sliderSliderJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _loadProgressBarJs = _dereq_('./load-progress-bar.js');\n\nvar _loadProgressBarJs2 = _interopRequireDefault(_loadProgressBarJs);\n\nvar _playProgressBarJs = _dereq_('./play-progress-bar.js');\n\nvar _playProgressBarJs2 = _interopRequireDefault(_playProgressBarJs);\n\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\n\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\n\nvar _objectAssign = _dereq_('object.assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\n/**\n * Seek Bar and holder for the progress bars\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class SeekBar\n */\n\nvar SeekBar = (function (_Slider) {\n _inherits(SeekBar, _Slider);\n\n function SeekBar(player, options) {\n _classCallCheck(this, SeekBar);\n\n _Slider.call(this, player, options);\n this.on(player, 'timeupdate', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n SeekBar.prototype.createEl = function createEl() {\n return _Slider.prototype.createEl.call(this, 'div', {\n className: 'vjs-progress-holder'\n }, {\n 'aria-label': 'video progress bar'\n });\n };\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n\n SeekBar.prototype.updateARIAAttributes = function updateARIAAttributes() {\n // Allows for smooth scrubbing, when player can't keep up.\n var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();\n this.el_.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\n this.el_.setAttribute('aria-valuetext', _utilsFormatTimeJs2['default'](time, this.player_.duration())); // human readable value of progress bar (time complete)\n };\n\n /**\n * Get percentage of video played\n *\n * @return {Number} Percentage played\n * @method getPercent\n */\n\n SeekBar.prototype.getPercent = function getPercent() {\n var percent = this.player_.currentTime() / this.player_.duration();\n return percent >= 1 ? 1 : percent;\n };\n\n /**\n * Handle mouse down on seek bar\n *\n * @method handleMouseDown\n */\n\n SeekBar.prototype.handleMouseDown = function handleMouseDown(event) {\n _Slider.prototype.handleMouseDown.call(this, event);\n\n this.player_.scrubbing(true);\n\n this.videoWasPlaying = !this.player_.paused();\n this.player_.pause();\n };\n\n /**\n * Handle mouse move on seek bar\n *\n * @method handleMouseMove\n */\n\n SeekBar.prototype.handleMouseMove = function handleMouseMove(event) {\n var newTime = this.calculateDistance(event) * this.player_.duration();\n\n // Don't let video end while scrubbing.\n if (newTime === this.player_.duration()) {\n newTime = newTime - 0.1;\n }\n\n // Set new time (tell player to seek to new time)\n this.player_.currentTime(newTime);\n };\n\n /**\n * Handle mouse up on seek bar\n *\n * @method handleMouseUp\n */\n\n SeekBar.prototype.handleMouseUp = function handleMouseUp(event) {\n _Slider.prototype.handleMouseUp.call(this, event);\n\n this.player_.scrubbing(false);\n if (this.videoWasPlaying) {\n this.player_.play();\n }\n };\n\n /**\n * Move more quickly fast forward for keyboard-only users\n *\n * @method stepForward\n */\n\n SeekBar.prototype.stepForward = function stepForward() {\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\n };\n\n /**\n * Move more quickly rewind for keyboard-only users\n *\n * @method stepBack\n */\n\n SeekBar.prototype.stepBack = function stepBack() {\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\n };\n\n return SeekBar;\n})(_sliderSliderJs2['default']);\n\nSeekBar.prototype.options_ = {\n children: ['loadProgressBar', 'mouseTimeDisplay', 'playProgressBar'],\n 'barName': 'playProgressBar'\n};\n\nSeekBar.prototype.playerEvent = 'timeupdate';\n\n_componentJs2['default'].registerComponent('SeekBar', SeekBar);\nexports['default'] = SeekBar;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../slider/slider.js\":102,\"../../utils/fn.js\":120,\"../../utils/format-time.js\":121,\"./load-progress-bar.js\":66,\"./play-progress-bar.js\":68,\"object.assign\":43}],71:[function(_dereq_,module,exports){\n/**\n * @file custom-control-spacer.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _spacerJs = _dereq_('./spacer.js');\n\nvar _spacerJs2 = _interopRequireDefault(_spacerJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n/**\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\n *\n * @extends Spacer\n * @class CustomControlSpacer\n */\n\nvar CustomControlSpacer = (function (_Spacer) {\n _inherits(CustomControlSpacer, _Spacer);\n\n function CustomControlSpacer() {\n _classCallCheck(this, CustomControlSpacer);\n\n _Spacer.apply(this, arguments);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n CustomControlSpacer.prototype.buildCSSClass = function buildCSSClass() {\n return 'vjs-custom-control-spacer ' + _Spacer.prototype.buildCSSClass.call(this);\n };\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n CustomControlSpacer.prototype.createEl = function createEl() {\n var el = _Spacer.prototype.createEl.call(this, {\n className: this.buildCSSClass()\n });\n\n // No-flex/table-cell mode requires there be some content\n // in the cell to fill the remaining space of the table.\n el.innerHTML = ' ';\n return el;\n };\n\n return CustomControlSpacer;\n})(_spacerJs2['default']);\n\n_componentJs2['default'].registerComponent('CustomControlSpacer', CustomControlSpacer);\nexports['default'] = CustomControlSpacer;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"./spacer.js\":72}],72:[function(_dereq_,module,exports){\n/**\n * @file spacer.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n/**\n * Just an empty spacer element that can be used as an append point for plugins, etc.\n * Also can be used to create space between elements when necessary.\n *\n * @extends Component\n * @class Spacer\n */\n\nvar Spacer = (function (_Component) {\n _inherits(Spacer, _Component);\n\n function Spacer() {\n _classCallCheck(this, Spacer);\n\n _Component.apply(this, arguments);\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n Spacer.prototype.buildCSSClass = function buildCSSClass() {\n return 'vjs-spacer ' + _Component.prototype.buildCSSClass.call(this);\n };\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n Spacer.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: this.buildCSSClass()\n });\n };\n\n return Spacer;\n})(_componentJs2['default']);\n\n_componentJs2['default'].registerComponent('Spacer', Spacer);\n\nexports['default'] = Spacer;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58}],73:[function(_dereq_,module,exports){\n/**\n * @file caption-settings-menu-item.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');\n\nvar _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n/**\n * The menu item for caption track settings menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class CaptionSettingsMenuItem\n */\n\nvar CaptionSettingsMenuItem = (function (_TextTrackMenuItem) {\n _inherits(CaptionSettingsMenuItem, _TextTrackMenuItem);\n\n function CaptionSettingsMenuItem(player, options) {\n _classCallCheck(this, CaptionSettingsMenuItem);\n\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' settings',\n 'default': false,\n mode: 'disabled'\n };\n\n _TextTrackMenuItem.call(this, player, options);\n this.addClass('vjs-texttrack-settings');\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n\n CaptionSettingsMenuItem.prototype.handleClick = function handleClick() {\n this.player().getChild('textTrackSettings').show();\n };\n\n return CaptionSettingsMenuItem;\n})(_textTrackMenuItemJs2['default']);\n\n_componentJs2['default'].registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\nexports['default'] = CaptionSettingsMenuItem;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"./text-track-menu-item.js\":80}],74:[function(_dereq_,module,exports){\n/**\n * @file captions-button.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _textTrackButtonJs = _dereq_('./text-track-button.js');\n\nvar _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _captionSettingsMenuItemJs = _dereq_('./caption-settings-menu-item.js');\n\nvar _captionSettingsMenuItemJs2 = _interopRequireDefault(_captionSettingsMenuItemJs);\n\n/**\n * The button component for toggling and selecting captions\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class CaptionsButton\n */\n\nvar CaptionsButton = (function (_TextTrackButton) {\n _inherits(CaptionsButton, _TextTrackButton);\n\n function CaptionsButton(player, options, ready) {\n _classCallCheck(this, CaptionsButton);\n\n _TextTrackButton.call(this, player, options, ready);\n this.el_.setAttribute('aria-label', 'Captions Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n CaptionsButton.prototype.buildCSSClass = function buildCSSClass() {\n return 'vjs-captions-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);\n };\n\n /**\n * Update caption menu items\n *\n * @method update\n */\n\n CaptionsButton.prototype.update = function update() {\n var threshold = 2;\n _TextTrackButton.prototype.update.call(this);\n\n // if native, then threshold is 1 because no settings button\n if (this.player().tech_ && this.player().tech_['featuresNativeTextTracks']) {\n threshold = 1;\n }\n\n if (this.items && this.items.length > threshold) {\n this.show();\n } else {\n this.hide();\n }\n };\n\n /**\n * Create caption menu items\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n\n CaptionsButton.prototype.createItems = function createItems() {\n var items = [];\n\n if (!(this.player().tech_ && this.player().tech_['featuresNativeTextTracks'])) {\n items.push(new _captionSettingsMenuItemJs2['default'](this.player_, { 'kind': this.kind_ }));\n }\n\n return _TextTrackButton.prototype.createItems.call(this, items);\n };\n\n return CaptionsButton;\n})(_textTrackButtonJs2['default']);\n\nCaptionsButton.prototype.kind_ = 'captions';\nCaptionsButton.prototype.controlText_ = 'Captions';\n\n_componentJs2['default'].registerComponent('CaptionsButton', CaptionsButton);\nexports['default'] = CaptionsButton;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"./caption-settings-menu-item.js\":73,\"./text-track-button.js\":79}],75:[function(_dereq_,module,exports){\n/**\n * @file chapters-button.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _textTrackButtonJs = _dereq_('./text-track-button.js');\n\nvar _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');\n\nvar _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);\n\nvar _chaptersTrackMenuItemJs = _dereq_('./chapters-track-menu-item.js');\n\nvar _chaptersTrackMenuItemJs2 = _interopRequireDefault(_chaptersTrackMenuItemJs);\n\nvar _menuMenuJs = _dereq_('../../menu/menu.js');\n\nvar _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);\n\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsToTitleCaseJs = _dereq_('../../utils/to-title-case.js');\n\nvar _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\n/**\n * The button component for toggling and selecting chapters\n * Chapters act much differently than other text tracks\n * Cues are navigation vs. other tracks of alternative languages\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class ChaptersButton\n */\n\nvar ChaptersButton = (function (_TextTrackButton) {\n _inherits(ChaptersButton, _TextTrackButton);\n\n function ChaptersButton(player, options, ready) {\n _classCallCheck(this, ChaptersButton);\n\n _TextTrackButton.call(this, player, options, ready);\n this.el_.setAttribute('aria-label', 'Chapters Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n ChaptersButton.prototype.buildCSSClass = function buildCSSClass() {\n return 'vjs-chapters-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);\n };\n\n /**\n * Create a menu item for each text track\n *\n * @return {Array} Array of menu items\n * @method createItems\n */\n\n ChaptersButton.prototype.createItems = function createItems() {\n var items = [];\n\n var tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n if (track['kind'] === this.kind_) {\n items.push(new _textTrackMenuItemJs2['default'](this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n };\n\n /**\n * Create menu from chapter buttons\n *\n * @return {Menu} Menu of chapter buttons\n * @method createMenu\n */\n\n ChaptersButton.prototype.createMenu = function createMenu() {\n var tracks = this.player_.textTracks() || [];\n var chaptersTrack = undefined;\n var items = this.items = [];\n\n for (var i = 0, l = tracks.length; i < l; i++) {\n var track = tracks[i];\n if (track['kind'] === this.kind_) {\n if (!track.cues) {\n track['mode'] = 'hidden';\n /* jshint loopfunc:true */\n // TODO see if we can figure out a better way of doing this https://github.com/videojs/video.js/issues/1864\n _globalWindow2['default'].setTimeout(Fn.bind(this, function () {\n this.createMenu();\n }), 100);\n /* jshint loopfunc:false */\n } else {\n chaptersTrack = track;\n break;\n }\n }\n }\n\n var menu = this.menu;\n if (menu === undefined) {\n menu = new _menuMenuJs2['default'](this.player_);\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: _utilsToTitleCaseJs2['default'](this.kind_),\n tabIndex: -1\n }));\n }\n\n if (chaptersTrack) {\n var cues = chaptersTrack['cues'],\n cue = undefined;\n\n for (var i = 0, l = cues.length; i < l; i++) {\n cue = cues[i];\n\n var mi = new _chaptersTrackMenuItemJs2['default'](this.player_, {\n 'track': chaptersTrack,\n 'cue': cue\n });\n\n items.push(mi);\n\n menu.addChild(mi);\n }\n this.addChild(menu);\n }\n\n if (this.items.length > 0) {\n this.show();\n }\n\n return menu;\n };\n\n return ChaptersButton;\n})(_textTrackButtonJs2['default']);\n\nChaptersButton.prototype.kind_ = 'chapters';\nChaptersButton.prototype.controlText_ = 'Chapters';\n\n_componentJs2['default'].registerComponent('ChaptersButton', ChaptersButton);\nexports['default'] = ChaptersButton;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../menu/menu.js\":97,\"../../utils/dom.js\":118,\"../../utils/fn.js\":120,\"../../utils/to-title-case.js\":127,\"./chapters-track-menu-item.js\":76,\"./text-track-button.js\":79,\"./text-track-menu-item.js\":80,\"global/window\":2}],76:[function(_dereq_,module,exports){\n/**\n * @file chapters-track-menu-item.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _menuMenuItemJs = _dereq_('../../menu/menu-item.js');\n\nvar _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\n/**\n * The chapter track menu item\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class ChaptersTrackMenuItem\n */\n\nvar ChaptersTrackMenuItem = (function (_MenuItem) {\n _inherits(ChaptersTrackMenuItem, _MenuItem);\n\n function ChaptersTrackMenuItem(player, options) {\n _classCallCheck(this, ChaptersTrackMenuItem);\n\n var track = options['track'];\n var cue = options['cue'];\n var currentTime = player.currentTime();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = cue.text;\n options['selected'] = cue['startTime'] <= currentTime && currentTime < cue['endTime'];\n _MenuItem.call(this, player, options);\n\n this.track = track;\n this.cue = cue;\n track.addEventListener('cuechange', Fn.bind(this, this.update));\n }\n\n /**\n * Handle click on menu item\n *\n * @method handleClick\n */\n\n ChaptersTrackMenuItem.prototype.handleClick = function handleClick() {\n _MenuItem.prototype.handleClick.call(this);\n this.player_.currentTime(this.cue.startTime);\n this.update(this.cue.startTime);\n };\n\n /**\n * Update chapter menu item\n *\n * @method update\n */\n\n ChaptersTrackMenuItem.prototype.update = function update() {\n var cue = this.cue;\n var currentTime = this.player_.currentTime();\n\n // vjs.log(currentTime, cue.startTime);\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\n };\n\n return ChaptersTrackMenuItem;\n})(_menuMenuItemJs2['default']);\n\n_componentJs2['default'].registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\nexports['default'] = ChaptersTrackMenuItem;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../menu/menu-item.js\":96,\"../../utils/fn.js\":120}],77:[function(_dereq_,module,exports){\n/**\n * @file off-text-track-menu-item.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');\n\nvar _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n/**\n * A special menu item for turning of a specific type of text track\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends TextTrackMenuItem\n * @class OffTextTrackMenuItem\n */\n\nvar OffTextTrackMenuItem = (function (_TextTrackMenuItem) {\n _inherits(OffTextTrackMenuItem, _TextTrackMenuItem);\n\n function OffTextTrackMenuItem(player, options) {\n _classCallCheck(this, OffTextTrackMenuItem);\n\n // Create pseudo track info\n // Requires options['kind']\n options['track'] = {\n 'kind': options['kind'],\n 'player': player,\n 'label': options['kind'] + ' off',\n 'default': false,\n 'mode': 'disabled'\n };\n\n _TextTrackMenuItem.call(this, player, options);\n this.selected(true);\n }\n\n /**\n * Handle text track change\n *\n * @param {Object} event Event object\n * @method handleTracksChange\n */\n\n OffTextTrackMenuItem.prototype.handleTracksChange = function handleTracksChange(event) {\n var tracks = this.player().textTracks();\n var selected = true;\n\n for (var i = 0, l = tracks.length; i < l; i++) {\n var track = tracks[i];\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\n selected = false;\n break;\n }\n }\n\n this.selected(selected);\n };\n\n return OffTextTrackMenuItem;\n})(_textTrackMenuItemJs2['default']);\n\n_componentJs2['default'].registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\nexports['default'] = OffTextTrackMenuItem;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"./text-track-menu-item.js\":80}],78:[function(_dereq_,module,exports){\n/**\n * @file subtitles-button.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _textTrackButtonJs = _dereq_('./text-track-button.js');\n\nvar _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n/**\n * The button component for toggling and selecting subtitles\n *\n * @param {Object} player Player object\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends TextTrackButton\n * @class SubtitlesButton\n */\n\nvar SubtitlesButton = (function (_TextTrackButton) {\n _inherits(SubtitlesButton, _TextTrackButton);\n\n function SubtitlesButton(player, options, ready) {\n _classCallCheck(this, SubtitlesButton);\n\n _TextTrackButton.call(this, player, options, ready);\n this.el_.setAttribute('aria-label', 'Subtitles Menu');\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n SubtitlesButton.prototype.buildCSSClass = function buildCSSClass() {\n return 'vjs-subtitles-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);\n };\n\n return SubtitlesButton;\n})(_textTrackButtonJs2['default']);\n\nSubtitlesButton.prototype.kind_ = 'subtitles';\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\n\n_componentJs2['default'].registerComponent('SubtitlesButton', SubtitlesButton);\nexports['default'] = SubtitlesButton;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"./text-track-button.js\":79}],79:[function(_dereq_,module,exports){\n/**\n * @file text-track-button.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _menuMenuButtonJs = _dereq_('../../menu/menu-button.js');\n\nvar _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');\n\nvar _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);\n\nvar _offTextTrackMenuItemJs = _dereq_('./off-text-track-menu-item.js');\n\nvar _offTextTrackMenuItemJs2 = _interopRequireDefault(_offTextTrackMenuItemJs);\n\n/**\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class TextTrackButton\n */\n\nvar TextTrackButton = (function (_MenuButton) {\n _inherits(TextTrackButton, _MenuButton);\n\n function TextTrackButton(player, options) {\n _classCallCheck(this, TextTrackButton);\n\n _MenuButton.call(this, player, options);\n\n var tracks = this.player_.textTracks();\n\n if (this.items.length <= 1) {\n this.hide();\n }\n\n if (!tracks) {\n return;\n }\n\n var updateHandler = Fn.bind(this, this.update);\n tracks.addEventListener('removetrack', updateHandler);\n tracks.addEventListener('addtrack', updateHandler);\n\n this.player_.on('dispose', function () {\n tracks.removeEventListener('removetrack', updateHandler);\n tracks.removeEventListener('addtrack', updateHandler);\n });\n }\n\n // Create a menu item for each text track\n\n TextTrackButton.prototype.createItems = function createItems() {\n var items = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];\n\n // Add an OFF menu item to turn all tracks off\n items.push(new _offTextTrackMenuItemJs2['default'](this.player_, { 'kind': this.kind_ }));\n\n var tracks = this.player_.textTracks();\n\n if (!tracks) {\n return items;\n }\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n\n // only add tracks that are of the appropriate kind and have a label\n if (track['kind'] === this.kind_) {\n items.push(new _textTrackMenuItemJs2['default'](this.player_, {\n 'track': track\n }));\n }\n }\n\n return items;\n };\n\n return TextTrackButton;\n})(_menuMenuButtonJs2['default']);\n\n_componentJs2['default'].registerComponent('TextTrackButton', TextTrackButton);\nexports['default'] = TextTrackButton;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../menu/menu-button.js\":95,\"../../utils/fn.js\":120,\"./off-text-track-menu-item.js\":77,\"./text-track-menu-item.js\":80}],80:[function(_dereq_,module,exports){\n/**\n * @file text-track-menu-item.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _menuMenuItemJs = _dereq_('../../menu/menu-item.js');\n\nvar _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\n/**\n * The specific menu item type for selecting a language within a text track kind\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuItem\n * @class TextTrackMenuItem\n */\n\nvar TextTrackMenuItem = (function (_MenuItem) {\n _inherits(TextTrackMenuItem, _MenuItem);\n\n function TextTrackMenuItem(player, options) {\n var _this = this;\n\n _classCallCheck(this, TextTrackMenuItem);\n\n var track = options['track'];\n var tracks = player.textTracks();\n\n // Modify options for parent MenuItem class's init.\n options['label'] = track['label'] || track['language'] || 'Unknown';\n options['selected'] = track['default'] || track['mode'] === 'showing';\n _MenuItem.call(this, player, options);\n\n this.track = track;\n\n if (tracks) {\n (function () {\n var changeHandler = Fn.bind(_this, _this.handleTracksChange);\n\n tracks.addEventListener('change', changeHandler);\n _this.on('dispose', function () {\n tracks.removeEventListener('change', changeHandler);\n });\n })();\n }\n\n // iOS7 doesn't dispatch change events to TextTrackLists when an\n // associated track's mode changes. Without something like\n // Object.observe() (also not present on iOS7), it's not\n // possible to detect changes to the mode attribute and polyfill\n // the change event. As a poor substitute, we manually dispatch\n // change events whenever the controls modify the mode.\n if (tracks && tracks.onchange === undefined) {\n (function () {\n var event = undefined;\n\n _this.on(['tap', 'click'], function () {\n if (typeof _globalWindow2['default'].Event !== 'object') {\n // Android 2.3 throws an Illegal Constructor error for window.Event\n try {\n event = new _globalWindow2['default'].Event('change');\n } catch (err) {}\n }\n\n if (!event) {\n event = _globalDocument2['default'].createEvent('Event');\n event.initEvent('change', true, true);\n }\n\n tracks.dispatchEvent(event);\n });\n })();\n }\n }\n\n /**\n * Handle click on text track\n *\n * @method handleClick\n */\n\n TextTrackMenuItem.prototype.handleClick = function handleClick(event) {\n var kind = this.track['kind'];\n var tracks = this.player_.textTracks();\n\n _MenuItem.prototype.handleClick.call(this, event);\n\n if (!tracks) return;\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n\n if (track['kind'] !== kind) {\n continue;\n }\n\n if (track === this.track) {\n track['mode'] = 'showing';\n } else {\n track['mode'] = 'disabled';\n }\n }\n };\n\n /**\n * Handle text track change\n *\n * @method handleTracksChange\n */\n\n TextTrackMenuItem.prototype.handleTracksChange = function handleTracksChange(event) {\n this.selected(this.track['mode'] === 'showing');\n };\n\n return TextTrackMenuItem;\n})(_menuMenuItemJs2['default']);\n\n_componentJs2['default'].registerComponent('TextTrackMenuItem', TextTrackMenuItem);\nexports['default'] = TextTrackMenuItem;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../menu/menu-item.js\":96,\"../../utils/fn.js\":120,\"global/document\":1,\"global/window\":2}],81:[function(_dereq_,module,exports){\n/**\n * @file current-time-display.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\n\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\n\n/**\n * Displays the current time\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class CurrentTimeDisplay\n */\n\nvar CurrentTimeDisplay = (function (_Component) {\n _inherits(CurrentTimeDisplay, _Component);\n\n function CurrentTimeDisplay(player, options) {\n _classCallCheck(this, CurrentTimeDisplay);\n\n _Component.call(this, player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n CurrentTimeDisplay.prototype.createEl = function createEl() {\n var el = _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-current-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-current-time-display',\n // label the current time for screen reader users\n innerHTML: 'Current Time ' + '0:00'\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n };\n\n /**\n * Update current time display\n *\n * @method updateContent\n */\n\n CurrentTimeDisplay.prototype.updateContent = function updateContent() {\n // Allows for smooth scrubbing, when player can't keep up.\n var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();\n var localizedText = this.localize('Current Time');\n var formattedTime = _utilsFormatTimeJs2['default'](time, this.player_.duration());\n this.contentEl_.innerHTML = '' + localizedText + ' ' + formattedTime;\n };\n\n return CurrentTimeDisplay;\n})(_componentJs2['default']);\n\n_componentJs2['default'].registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\nexports['default'] = CurrentTimeDisplay;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../utils/dom.js\":118,\"../../utils/format-time.js\":121}],82:[function(_dereq_,module,exports){\n/**\n * @file duration-display.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\n\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\n\n/**\n * Displays the duration\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class DurationDisplay\n */\n\nvar DurationDisplay = (function (_Component) {\n _inherits(DurationDisplay, _Component);\n\n function DurationDisplay(player, options) {\n _classCallCheck(this, DurationDisplay);\n\n _Component.call(this, player, options);\n\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\n // however the durationchange event fires before this.player_.duration() is set,\n // so the value cannot be written out using this method.\n // Once the order of durationchange and this.player_.duration() being set is figured out,\n // this can be updated.\n this.on(player, 'timeupdate', this.updateContent);\n this.on(player, 'loadedmetadata', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n DurationDisplay.prototype.createEl = function createEl() {\n var el = _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-duration vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-duration-display',\n // label the duration time for screen reader users\n innerHTML: '' + this.localize('Duration Time') + ' 0:00'\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n };\n\n /**\n * Update duration time display\n *\n * @method updateContent\n */\n\n DurationDisplay.prototype.updateContent = function updateContent() {\n var duration = this.player_.duration();\n if (duration) {\n var localizedText = this.localize('Duration Time');\n var formattedTime = _utilsFormatTimeJs2['default'](duration);\n this.contentEl_.innerHTML = '' + localizedText + ' ' + formattedTime; // label the duration time for screen reader users\n }\n };\n\n return DurationDisplay;\n})(_componentJs2['default']);\n\n_componentJs2['default'].registerComponent('DurationDisplay', DurationDisplay);\nexports['default'] = DurationDisplay;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../utils/dom.js\":118,\"../../utils/format-time.js\":121}],83:[function(_dereq_,module,exports){\n/**\n * @file remaining-time-display.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\n\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\n\n/**\n * Displays the time left in the video\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class RemainingTimeDisplay\n */\n\nvar RemainingTimeDisplay = (function (_Component) {\n _inherits(RemainingTimeDisplay, _Component);\n\n function RemainingTimeDisplay(player, options) {\n _classCallCheck(this, RemainingTimeDisplay);\n\n _Component.call(this, player, options);\n\n this.on(player, 'timeupdate', this.updateContent);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n RemainingTimeDisplay.prototype.createEl = function createEl() {\n var el = _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-remaining-time vjs-time-control vjs-control'\n });\n\n this.contentEl_ = Dom.createEl('div', {\n className: 'vjs-remaining-time-display',\n // label the remaining time for screen reader users\n innerHTML: '' + this.localize('Remaining Time') + ' -0:00'\n }, {\n // tell screen readers not to automatically read the time as it changes\n 'aria-live': 'off'\n });\n\n el.appendChild(this.contentEl_);\n return el;\n };\n\n /**\n * Update remaining time display\n *\n * @method updateContent\n */\n\n RemainingTimeDisplay.prototype.updateContent = function updateContent() {\n if (this.player_.duration()) {\n var localizedText = this.localize('Remaining Time');\n var formattedTime = _utilsFormatTimeJs2['default'](this.player_.remainingTime());\n this.contentEl_.innerHTML = '' + localizedText + ' -' + formattedTime;\n }\n\n // Allows for smooth scrubbing, when player can't keep up.\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\n };\n\n return RemainingTimeDisplay;\n})(_componentJs2['default']);\n\n_componentJs2['default'].registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\nexports['default'] = RemainingTimeDisplay;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../utils/dom.js\":118,\"../../utils/format-time.js\":121}],84:[function(_dereq_,module,exports){\n/**\n * @file time-divider.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n/**\n * The separator between the current time and duration.\n * Can be hidden if it's not needed in the design.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class TimeDivider\n */\n\nvar TimeDivider = (function (_Component) {\n _inherits(TimeDivider, _Component);\n\n function TimeDivider() {\n _classCallCheck(this, TimeDivider);\n\n _Component.apply(this, arguments);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n TimeDivider.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-time-control vjs-time-divider',\n innerHTML: '
/
'\n });\n };\n\n return TimeDivider;\n})(_componentJs2['default']);\n\n_componentJs2['default'].registerComponent('TimeDivider', TimeDivider);\nexports['default'] = TimeDivider;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58}],85:[function(_dereq_,module,exports){\n/**\n * @file volume-bar.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _sliderSliderJs = _dereq_('../../slider/slider.js');\n\nvar _sliderSliderJs2 = _interopRequireDefault(_sliderSliderJs);\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\n// Required children\n\nvar _volumeLevelJs = _dereq_('./volume-level.js');\n\nvar _volumeLevelJs2 = _interopRequireDefault(_volumeLevelJs);\n\n/**\n * The bar that contains the volume level and can be clicked on to adjust the level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Slider\n * @class VolumeBar\n */\n\nvar VolumeBar = (function (_Slider) {\n _inherits(VolumeBar, _Slider);\n\n function VolumeBar(player, options) {\n _classCallCheck(this, VolumeBar);\n\n _Slider.call(this, player, options);\n this.on(player, 'volumechange', this.updateARIAAttributes);\n player.ready(Fn.bind(this, this.updateARIAAttributes));\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n VolumeBar.prototype.createEl = function createEl() {\n return _Slider.prototype.createEl.call(this, 'div', {\n className: 'vjs-volume-bar vjs-slider-bar'\n }, {\n 'aria-label': 'volume level'\n });\n };\n\n /**\n * Handle mouse move on volume bar\n *\n * @method handleMouseMove\n */\n\n VolumeBar.prototype.handleMouseMove = function handleMouseMove(event) {\n if (this.player_.muted()) {\n this.player_.muted(false);\n }\n\n this.player_.volume(this.calculateDistance(event));\n };\n\n /**\n * Get percent of volume level\n *\n * @retun {Number} Volume level percent\n * @method getPercent\n */\n\n VolumeBar.prototype.getPercent = function getPercent() {\n if (this.player_.muted()) {\n return 0;\n } else {\n return this.player_.volume();\n }\n };\n\n /**\n * Increase volume level for keyboard users\n *\n * @method stepForward\n */\n\n VolumeBar.prototype.stepForward = function stepForward() {\n this.player_.volume(this.player_.volume() + 0.1);\n };\n\n /**\n * Decrease volume level for keyboard users\n *\n * @method stepBack\n */\n\n VolumeBar.prototype.stepBack = function stepBack() {\n this.player_.volume(this.player_.volume() - 0.1);\n };\n\n /**\n * Update ARIA accessibility attributes\n *\n * @method updateARIAAttributes\n */\n\n VolumeBar.prototype.updateARIAAttributes = function updateARIAAttributes() {\n // Current value of volume bar as a percentage\n var volume = (this.player_.volume() * 100).toFixed(2);\n this.el_.setAttribute('aria-valuenow', volume);\n this.el_.setAttribute('aria-valuetext', volume + '%');\n };\n\n return VolumeBar;\n})(_sliderSliderJs2['default']);\n\nVolumeBar.prototype.options_ = {\n children: ['volumeLevel'],\n 'barName': 'volumeLevel'\n};\n\nVolumeBar.prototype.playerEvent = 'volumechange';\n\n_componentJs2['default'].registerComponent('VolumeBar', VolumeBar);\nexports['default'] = VolumeBar;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"../../slider/slider.js\":102,\"../../utils/fn.js\":120,\"./volume-level.js\":87}],86:[function(_dereq_,module,exports){\n/**\n * @file volume-control.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n// Required children\n\nvar _volumeBarJs = _dereq_('./volume-bar.js');\n\nvar _volumeBarJs2 = _interopRequireDefault(_volumeBarJs);\n\n/**\n * The component for controlling the volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeControl\n */\n\nvar VolumeControl = (function (_Component) {\n _inherits(VolumeControl, _Component);\n\n function VolumeControl(player, options) {\n _classCallCheck(this, VolumeControl);\n\n _Component.call(this, player, options);\n\n // hide volume controls when they're not supported by the current tech\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n }\n this.on(player, 'loadstart', function () {\n if (player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n });\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n VolumeControl.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-volume-control vjs-control'\n });\n };\n\n return VolumeControl;\n})(_componentJs2['default']);\n\nVolumeControl.prototype.options_ = {\n children: ['volumeBar']\n};\n\n_componentJs2['default'].registerComponent('VolumeControl', VolumeControl);\nexports['default'] = VolumeControl;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58,\"./volume-bar.js\":85}],87:[function(_dereq_,module,exports){\n/**\n * @file volume-level.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\n/**\n * Shows volume level\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class VolumeLevel\n */\n\nvar VolumeLevel = (function (_Component) {\n _inherits(VolumeLevel, _Component);\n\n function VolumeLevel() {\n _classCallCheck(this, VolumeLevel);\n\n _Component.apply(this, arguments);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n VolumeLevel.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-volume-level',\n innerHTML: ''\n });\n };\n\n return VolumeLevel;\n})(_componentJs2['default']);\n\n_componentJs2['default'].registerComponent('VolumeLevel', VolumeLevel);\nexports['default'] = VolumeLevel;\nmodule.exports = exports['default'];\n\n},{\"../../component.js\":58}],88:[function(_dereq_,module,exports){\n/**\n * @file volume-menu-button.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _buttonJs = _dereq_('../button.js');\n\nvar _buttonJs2 = _interopRequireDefault(_buttonJs);\n\nvar _componentJs = _dereq_('../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _menuMenuJs = _dereq_('../menu/menu.js');\n\nvar _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);\n\nvar _menuMenuButtonJs = _dereq_('../menu/menu-button.js');\n\nvar _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);\n\nvar _muteToggleJs = _dereq_('./mute-toggle.js');\n\nvar _muteToggleJs2 = _interopRequireDefault(_muteToggleJs);\n\nvar _volumeControlVolumeBarJs = _dereq_('./volume-control/volume-bar.js');\n\nvar _volumeControlVolumeBarJs2 = _interopRequireDefault(_volumeControlVolumeBarJs);\n\n/**\n * Button for volume menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends MenuButton\n * @class VolumeMenuButton\n */\n\nvar VolumeMenuButton = (function (_MenuButton) {\n _inherits(VolumeMenuButton, _MenuButton);\n\n function VolumeMenuButton(player) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n _classCallCheck(this, VolumeMenuButton);\n\n // Default to inline\n if (options.inline === undefined) {\n options.inline = true;\n }\n\n // If the vertical option isn't passed at all, default to true.\n if (options.vertical === undefined) {\n // If an inline volumeMenuButton is used, we should default to using\n // a horizontal slider for obvious reasons.\n if (options.inline) {\n options.vertical = false;\n } else {\n options.vertical = true;\n }\n }\n\n // The vertical option needs to be set on the volumeBar as well,\n // since that will need to be passed along to the VolumeBar constructor\n options.volumeBar = options.volumeBar || {};\n options.volumeBar.vertical = !!options.vertical;\n\n _MenuButton.call(this, player, options);\n\n // Same listeners as MuteToggle\n this.on(player, 'volumechange', this.volumeUpdate);\n this.on(player, 'loadstart', this.volumeUpdate);\n\n // hide mute toggle if the current tech doesn't support volume control\n function updateVisibility() {\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\n this.addClass('vjs-hidden');\n } else {\n this.removeClass('vjs-hidden');\n }\n }\n\n updateVisibility.call(this);\n this.on(player, 'loadstart', updateVisibility);\n\n this.on(this.volumeBar, ['slideractive', 'focus'], function () {\n this.addClass('vjs-slider-active');\n });\n\n this.on(this.volumeBar, ['sliderinactive', 'blur'], function () {\n this.removeClass('vjs-slider-active');\n });\n }\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n VolumeMenuButton.prototype.buildCSSClass = function buildCSSClass() {\n var orientationClass = '';\n if (!!this.options_.vertical) {\n orientationClass = 'vjs-volume-menu-button-vertical';\n } else {\n orientationClass = 'vjs-volume-menu-button-horizontal';\n }\n\n return 'vjs-volume-menu-button ' + _MenuButton.prototype.buildCSSClass.call(this) + ' ' + orientationClass;\n };\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {Menu} The volume menu button\n * @method createMenu\n */\n\n VolumeMenuButton.prototype.createMenu = function createMenu() {\n var menu = new _menuMenuJs2['default'](this.player_, {\n contentElType: 'div'\n });\n\n var vb = new _volumeControlVolumeBarJs2['default'](this.player_, this.options_.volumeBar);\n\n menu.addChild(vb);\n\n this.volumeBar = vb;\n return menu;\n };\n\n /**\n * Handle click on volume menu and calls super\n *\n * @method handleClick\n */\n\n VolumeMenuButton.prototype.handleClick = function handleClick() {\n _muteToggleJs2['default'].prototype.handleClick.call(this);\n _MenuButton.prototype.handleClick.call(this);\n };\n\n return VolumeMenuButton;\n})(_menuMenuButtonJs2['default']);\n\nVolumeMenuButton.prototype.volumeUpdate = _muteToggleJs2['default'].prototype.update;\nVolumeMenuButton.prototype.controlText_ = 'Mute';\n\n_componentJs2['default'].registerComponent('VolumeMenuButton', VolumeMenuButton);\nexports['default'] = VolumeMenuButton;\nmodule.exports = exports['default'];\n\n},{\"../button.js\":57,\"../component.js\":58,\"../menu/menu-button.js\":95,\"../menu/menu.js\":97,\"./mute-toggle.js\":62,\"./volume-control/volume-bar.js\":85}],89:[function(_dereq_,module,exports){\n/**\n * @file error-display.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _component = _dereq_('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _utilsDomJs = _dereq_('./utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\n/**\n * Display that an error has occurred making the video unplayable\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class ErrorDisplay\n */\n\nvar ErrorDisplay = (function (_Component) {\n _inherits(ErrorDisplay, _Component);\n\n function ErrorDisplay(player, options) {\n _classCallCheck(this, ErrorDisplay);\n\n _Component.call(this, player, options);\n\n this.update();\n this.on(player, 'error', this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n ErrorDisplay.prototype.createEl = function createEl() {\n var el = _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-error-display'\n });\n\n this.contentEl_ = Dom.createEl('div');\n el.appendChild(this.contentEl_);\n\n return el;\n };\n\n /**\n * Update the error message in localized language\n *\n * @method update\n */\n\n ErrorDisplay.prototype.update = function update() {\n if (this.player().error()) {\n this.contentEl_.innerHTML = this.localize(this.player().error().message);\n }\n };\n\n return ErrorDisplay;\n})(_component2['default']);\n\n_component2['default'].registerComponent('ErrorDisplay', ErrorDisplay);\nexports['default'] = ErrorDisplay;\nmodule.exports = exports['default'];\n\n},{\"./component\":58,\"./utils/dom.js\":118}],90:[function(_dereq_,module,exports){\n/**\n * @file event-target.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utilsEventsJs = _dereq_('./utils/events.js');\n\nvar Events = _interopRequireWildcard(_utilsEventsJs);\n\nvar EventTarget = function EventTarget() {};\n\nEventTarget.prototype.allowedEvents_ = {};\n\nEventTarget.prototype.on = function (type, fn) {\n // Remove the addEventListener alias before calling Events.on\n // so we don't get into an infinite type loop\n var ael = this.addEventListener;\n this.addEventListener = Function.prototype;\n Events.on(this, type, fn);\n this.addEventListener = ael;\n};\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\n\nEventTarget.prototype.off = function (type, fn) {\n Events.off(this, type, fn);\n};\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\n\nEventTarget.prototype.one = function (type, fn) {\n Events.one(this, type, fn);\n};\n\nEventTarget.prototype.trigger = function (event) {\n var type = event.type || event;\n\n if (typeof event === 'string') {\n event = {\n type: type\n };\n }\n event = Events.fixEvent(event);\n\n if (this.allowedEvents_[type] && this['on' + type]) {\n this['on' + type](event);\n }\n\n Events.trigger(this, event);\n};\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\n\nexports['default'] = EventTarget;\nmodule.exports = exports['default'];\n\n},{\"./utils/events.js\":119}],91:[function(_dereq_,module,exports){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _utilsLog = _dereq_('./utils/log');\n\nvar _utilsLog2 = _interopRequireDefault(_utilsLog);\n\n/*\n * @file extend.js\n *\n * A combination of node inherits and babel's inherits (after transpile).\n * Both work the same but node adds `super_` to the subClass\n * and Bable adds the superClass as __proto__. Both seem useful.\n */\nvar _inherits = function _inherits(subClass, superClass) {\n if (typeof superClass !== 'function' && superClass !== null) {\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n\n if (superClass) {\n // node\n subClass.super_ = superClass;\n }\n};\n\n/*\n * Function for subclassing using the same inheritance that\n * videojs uses internally\n * ```js\n * var Button = videojs.getComponent('Button');\n * ```\n * ```js\n * var MyButton = videojs.extend(Button, {\n * constructor: function(player, options) {\n * Button.call(this, player, options);\n * },\n * onClick: function() {\n * // doSomething\n * }\n * });\n * ```\n */\nvar extendFn = function extendFn(superClass) {\n var subClassMethods = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n var subClass = function subClass() {\n superClass.apply(this, arguments);\n };\n var methods = {};\n\n if (typeof subClassMethods === 'object') {\n if (typeof subClassMethods.init === 'function') {\n _utilsLog2['default'].warn('Constructor logic via init() is deprecated; please use constructor() instead.');\n subClassMethods.constructor = subClassMethods.init;\n }\n if (subClassMethods.constructor !== Object.prototype.constructor) {\n subClass = subClassMethods.constructor;\n }\n methods = subClassMethods;\n } else if (typeof subClassMethods === 'function') {\n subClass = subClassMethods;\n }\n\n _inherits(subClass, superClass);\n\n // Extend subObj's prototype with functions and other properties from props\n for (var name in methods) {\n if (methods.hasOwnProperty(name)) {\n subClass.prototype[name] = methods[name];\n }\n }\n\n return subClass;\n};\n\nexports['default'] = extendFn;\nmodule.exports = exports['default'];\n\n},{\"./utils/log\":123}],92:[function(_dereq_,module,exports){\n/**\n * @file fullscreen-api.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\n/*\n * Store the browser-specific methods for the fullscreen API\n * @type {Object|undefined}\n * @private\n */\nvar FullscreenApi = {};\n\n// browser API methods\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\nvar apiMap = [\n// Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\n['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'],\n// WebKit\n['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror'],\n// Old WebKit (Safari 5.1)\n['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror'],\n// Mozilla\n['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'],\n// Microsoft\n['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']];\n\nvar specApi = apiMap[0];\nvar browserApi = undefined;\n\n// determine the supported set of functions\nfor (var i = 0; i < apiMap.length; i++) {\n // check for exitFullscreen function\n if (apiMap[i][1] in _globalDocument2['default']) {\n browserApi = apiMap[i];\n break;\n }\n}\n\n// map the browser API names to the spec API names\nif (browserApi) {\n for (var i = 0; i < browserApi.length; i++) {\n FullscreenApi[specApi[i]] = browserApi[i];\n }\n}\n\nexports['default'] = FullscreenApi;\nmodule.exports = exports['default'];\n\n},{\"global/document\":1}],93:[function(_dereq_,module,exports){\n/**\n * @file loading-spinner.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _component = _dereq_('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\n/* Loading Spinner\n================================================================================ */\n/**\n * Loading spinner for waiting events\n *\n * @extends Component\n * @class LoadingSpinner\n */\n\nvar LoadingSpinner = (function (_Component) {\n _inherits(LoadingSpinner, _Component);\n\n function LoadingSpinner() {\n _classCallCheck(this, LoadingSpinner);\n\n _Component.apply(this, arguments);\n }\n\n /**\n * Create the component's DOM element\n *\n * @method createEl\n */\n\n LoadingSpinner.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-loading-spinner'\n });\n };\n\n return LoadingSpinner;\n})(_component2['default']);\n\n_component2['default'].registerComponent('LoadingSpinner', LoadingSpinner);\nexports['default'] = LoadingSpinner;\nmodule.exports = exports['default'];\n\n},{\"./component\":58}],94:[function(_dereq_,module,exports){\n/**\n * @file media-error.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _objectAssign = _dereq_('object.assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\n/*\n * Custom MediaError to mimic the HTML5 MediaError\n *\n * @param {Number} code The media error code\n */\nvar MediaError = function MediaError(code) {\n if (typeof code === 'number') {\n this.code = code;\n } else if (typeof code === 'string') {\n // default code is zero, so this is a custom error\n this.message = code;\n } else if (typeof code === 'object') {\n // object\n _objectAssign2['default'](this, code);\n }\n\n if (!this.message) {\n this.message = MediaError.defaultMessages[this.code] || '';\n }\n};\n\n/*\n * The error code that refers two one of the defined\n * MediaError types\n *\n * @type {Number}\n */\nMediaError.prototype.code = 0;\n\n/*\n * An optional message to be shown with the error.\n * Message is not part of the HTML5 video spec\n * but allows for more informative custom errors.\n *\n * @type {String}\n */\nMediaError.prototype.message = '';\n\n/*\n * An optional status code that can be set by plugins\n * to allow even more detail about the error.\n * For example the HLS plugin might provide the specific\n * HTTP status code that was returned when the error\n * occurred, then allowing a custom error overlay\n * to display more information.\n *\n * @type {Array}\n */\nMediaError.prototype.status = null;\n\nMediaError.errorTypes = ['MEDIA_ERR_CUSTOM', // = 0\n'MEDIA_ERR_ABORTED', // = 1\n'MEDIA_ERR_NETWORK', // = 2\n'MEDIA_ERR_DECODE', // = 3\n'MEDIA_ERR_SRC_NOT_SUPPORTED', // = 4\n'MEDIA_ERR_ENCRYPTED' // = 5\n];\n\nMediaError.defaultMessages = {\n 1: 'You aborted the media playback',\n 2: 'A network error caused the media download to fail part-way.',\n 3: 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.',\n 4: 'The media could not be loaded, either because the server or network failed or because the format is not supported.',\n 5: 'The media is encrypted and we do not have the keys to decrypt it.'\n};\n\n// Add types as properties on MediaError\n// e.g. MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\nfor (var errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {\n MediaError[MediaError.errorTypes[errNum]] = errNum;\n // values should be accessible on both the class and instance\n MediaError.prototype[MediaError.errorTypes[errNum]] = errNum;\n}\n\nexports['default'] = MediaError;\nmodule.exports = exports['default'];\n\n},{\"object.assign\":43}],95:[function(_dereq_,module,exports){\n/**\n * @file menu-button.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _buttonJs = _dereq_('../button.js');\n\nvar _buttonJs2 = _interopRequireDefault(_buttonJs);\n\nvar _componentJs = _dereq_('../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _menuJs = _dereq_('./menu.js');\n\nvar _menuJs2 = _interopRequireDefault(_menuJs);\n\nvar _utilsDomJs = _dereq_('../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsFnJs = _dereq_('../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsToTitleCaseJs = _dereq_('../utils/to-title-case.js');\n\nvar _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);\n\n/**\n * A button class with a popup menu\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuButton\n */\n\nvar MenuButton = (function (_Button) {\n _inherits(MenuButton, _Button);\n\n function MenuButton(player) {\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n _classCallCheck(this, MenuButton);\n\n _Button.call(this, player, options);\n\n this.update();\n\n this.on('keydown', this.handleKeyPress);\n this.el_.setAttribute('aria-haspopup', true);\n this.el_.setAttribute('role', 'button');\n }\n\n /**\n * Update menu\n *\n * @method update\n */\n\n MenuButton.prototype.update = function update() {\n var menu = this.createMenu();\n\n if (this.menu) {\n this.removeChild(this.menu);\n }\n\n this.menu = menu;\n this.addChild(menu);\n\n /**\n * Track the state of the menu button\n *\n * @type {Boolean}\n * @private\n */\n this.buttonPressed_ = false;\n\n if (this.items && this.items.length === 0) {\n this.hide();\n } else if (this.items && this.items.length > 1) {\n this.show();\n }\n };\n\n /**\n * Create menu\n *\n * @return {Menu} The constructed menu\n * @method createMenu\n */\n\n MenuButton.prototype.createMenu = function createMenu() {\n var menu = new _menuJs2['default'](this.player_);\n\n // Add a title list item to the top\n if (this.options_.title) {\n menu.contentEl().appendChild(Dom.createEl('li', {\n className: 'vjs-menu-title',\n innerHTML: _utilsToTitleCaseJs2['default'](this.options_.title),\n tabIndex: -1\n }));\n }\n\n this.items = this['createItems']();\n\n if (this.items) {\n // Add menu items to the menu\n for (var i = 0; i < this.items.length; i++) {\n menu.addItem(this.items[i]);\n }\n }\n\n return menu;\n };\n\n /**\n * Create the list of menu items. Specific to each subclass.\n *\n * @method createItems\n */\n\n MenuButton.prototype.createItems = function createItems() {};\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n MenuButton.prototype.createEl = function createEl() {\n return _Button.prototype.createEl.call(this, 'div', {\n className: this.buildCSSClass()\n });\n };\n\n /**\n * Allow sub components to stack CSS class names\n *\n * @return {String} The constructed class name\n * @method buildCSSClass\n */\n\n MenuButton.prototype.buildCSSClass = function buildCSSClass() {\n var menuButtonClass = 'vjs-menu-button';\n\n // If the inline option is passed, we want to use different styles altogether.\n if (this.options_.inline === true) {\n menuButtonClass += '-inline';\n } else {\n menuButtonClass += '-popup';\n }\n\n return 'vjs-menu-button ' + menuButtonClass + ' ' + _Button.prototype.buildCSSClass.call(this);\n };\n\n /**\n * Focus - Add keyboard functionality to element\n * This function is not needed anymore. Instead, the\n * keyboard functionality is handled by\n * treating the button as triggering a submenu.\n * When the button is pressed, the submenu\n * appears. Pressing the button again makes\n * the submenu disappear.\n *\n * @method handleFocus\n */\n\n MenuButton.prototype.handleFocus = function handleFocus() {};\n\n /**\n * Can't turn off list display that we turned\n * on with focus, because list would go away.\n *\n * @method handleBlur\n */\n\n MenuButton.prototype.handleBlur = function handleBlur() {};\n\n /**\n * When you click the button it adds focus, which\n * will show the menu indefinitely.\n * So we'll remove focus when the mouse leaves the button.\n * Focus is needed for tab navigation.\n * Allow sub components to stack CSS class names\n *\n * @method handleClick\n */\n\n MenuButton.prototype.handleClick = function handleClick() {\n this.one('mouseout', Fn.bind(this, function () {\n this.menu.unlockShowing();\n this.el_.blur();\n }));\n if (this.buttonPressed_) {\n this.unpressButton();\n } else {\n this.pressButton();\n }\n };\n\n /**\n * Handle key press on menu\n *\n * @param {Object} Key press event\n * @method handleKeyPress\n */\n\n MenuButton.prototype.handleKeyPress = function handleKeyPress(event) {\n\n // Check for space bar (32) or enter (13) keys\n if (event.which === 32 || event.which === 13) {\n if (this.buttonPressed_) {\n this.unpressButton();\n } else {\n this.pressButton();\n }\n event.preventDefault();\n // Check for escape (27) key\n } else if (event.which === 27) {\n if (this.buttonPressed_) {\n this.unpressButton();\n }\n event.preventDefault();\n }\n };\n\n /**\n * Makes changes based on button pressed\n *\n * @method pressButton\n */\n\n MenuButton.prototype.pressButton = function pressButton() {\n this.buttonPressed_ = true;\n this.menu.lockShowing();\n this.el_.setAttribute('aria-pressed', true);\n if (this.items && this.items.length > 0) {\n this.items[0].el().focus(); // set the focus to the title of the submenu\n }\n };\n\n /**\n * Makes changes based on button unpressed\n *\n * @method unpressButton\n */\n\n MenuButton.prototype.unpressButton = function unpressButton() {\n this.buttonPressed_ = false;\n this.menu.unlockShowing();\n this.el_.setAttribute('aria-pressed', false);\n };\n\n return MenuButton;\n})(_buttonJs2['default']);\n\n_componentJs2['default'].registerComponent('MenuButton', MenuButton);\nexports['default'] = MenuButton;\nmodule.exports = exports['default'];\n\n},{\"../button.js\":57,\"../component.js\":58,\"../utils/dom.js\":118,\"../utils/fn.js\":120,\"../utils/to-title-case.js\":127,\"./menu.js\":97}],96:[function(_dereq_,module,exports){\n/**\n * @file menu-item.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _buttonJs = _dereq_('../button.js');\n\nvar _buttonJs2 = _interopRequireDefault(_buttonJs);\n\nvar _componentJs = _dereq_('../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _objectAssign = _dereq_('object.assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\n/**\n * The component for a menu item. `
`\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class MenuItem\n */\n\nvar MenuItem = (function (_Button) {\n _inherits(MenuItem, _Button);\n\n function MenuItem(player, options) {\n _classCallCheck(this, MenuItem);\n\n _Button.call(this, player, options);\n this.selected(options['selected']);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String=} type Desc\n * @param {Object=} props Desc\n * @return {Element}\n * @method createEl\n */\n\n MenuItem.prototype.createEl = function createEl(type, props, attrs) {\n return _Button.prototype.createEl.call(this, 'li', _objectAssign2['default']({\n className: 'vjs-menu-item',\n innerHTML: this.localize(this.options_['label'])\n }, props), attrs);\n };\n\n /**\n * Handle a click on the menu item, and set it to selected\n *\n * @method handleClick\n */\n\n MenuItem.prototype.handleClick = function handleClick() {\n this.selected(true);\n };\n\n /**\n * Set this menu item as selected or not\n *\n * @param {Boolean} selected\n * @method selected\n */\n\n MenuItem.prototype.selected = function selected(_selected) {\n if (_selected) {\n this.addClass('vjs-selected');\n this.el_.setAttribute('aria-selected', true);\n } else {\n this.removeClass('vjs-selected');\n this.el_.setAttribute('aria-selected', false);\n }\n };\n\n return MenuItem;\n})(_buttonJs2['default']);\n\n_componentJs2['default'].registerComponent('MenuItem', MenuItem);\nexports['default'] = MenuItem;\nmodule.exports = exports['default'];\n\n},{\"../button.js\":57,\"../component.js\":58,\"object.assign\":43}],97:[function(_dereq_,module,exports){\n/**\n * @file menu.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsDomJs = _dereq_('../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsFnJs = _dereq_('../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsEventsJs = _dereq_('../utils/events.js');\n\nvar Events = _interopRequireWildcard(_utilsEventsJs);\n\n/**\n * The Menu component is used to build pop up menus, including subtitle and\n * captions selection menus.\n *\n * @extends Component\n * @class Menu\n */\n\nvar Menu = (function (_Component) {\n _inherits(Menu, _Component);\n\n function Menu() {\n _classCallCheck(this, Menu);\n\n _Component.apply(this, arguments);\n }\n\n /**\n * Add a menu item to the menu\n *\n * @param {Object|String} component Component or component type to add\n * @method addItem\n */\n\n Menu.prototype.addItem = function addItem(component) {\n this.addChild(component);\n component.on('click', Fn.bind(this, function () {\n this.unlockShowing();\n }));\n };\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n Menu.prototype.createEl = function createEl() {\n var contentElType = this.options_.contentElType || 'ul';\n this.contentEl_ = Dom.createEl(contentElType, {\n className: 'vjs-menu-content'\n });\n var el = _Component.prototype.createEl.call(this, 'div', {\n append: this.contentEl_,\n className: 'vjs-menu'\n });\n el.appendChild(this.contentEl_);\n\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\n // where a click on the parent is significant\n Events.on(el, 'click', function (event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n });\n\n return el;\n };\n\n return Menu;\n})(_componentJs2['default']);\n\n_componentJs2['default'].registerComponent('Menu', Menu);\nexports['default'] = Menu;\nmodule.exports = exports['default'];\n\n},{\"../component.js\":58,\"../utils/dom.js\":118,\"../utils/events.js\":119,\"../utils/fn.js\":120}],98:[function(_dereq_,module,exports){\n/**\n * @file player.js\n */\n// Subclasses Component\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('./component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _utilsEventsJs = _dereq_('./utils/events.js');\n\nvar Events = _interopRequireWildcard(_utilsEventsJs);\n\nvar _utilsDomJs = _dereq_('./utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsFnJs = _dereq_('./utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsGuidJs = _dereq_('./utils/guid.js');\n\nvar Guid = _interopRequireWildcard(_utilsGuidJs);\n\nvar _utilsBrowserJs = _dereq_('./utils/browser.js');\n\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\n\nvar _utilsLogJs = _dereq_('./utils/log.js');\n\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\n\nvar _utilsToTitleCaseJs = _dereq_('./utils/to-title-case.js');\n\nvar _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);\n\nvar _utilsTimeRangesJs = _dereq_('./utils/time-ranges.js');\n\nvar _utilsBufferJs = _dereq_('./utils/buffer.js');\n\nvar _utilsStylesheetJs = _dereq_('./utils/stylesheet.js');\n\nvar stylesheet = _interopRequireWildcard(_utilsStylesheetJs);\n\nvar _fullscreenApiJs = _dereq_('./fullscreen-api.js');\n\nvar _fullscreenApiJs2 = _interopRequireDefault(_fullscreenApiJs);\n\nvar _mediaErrorJs = _dereq_('./media-error.js');\n\nvar _mediaErrorJs2 = _interopRequireDefault(_mediaErrorJs);\n\nvar _safeJsonParseTuple = _dereq_('safe-json-parse/tuple');\n\nvar _safeJsonParseTuple2 = _interopRequireDefault(_safeJsonParseTuple);\n\nvar _objectAssign = _dereq_('object.assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');\n\nvar _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);\n\nvar _tracksTextTrackListConverterJs = _dereq_('./tracks/text-track-list-converter.js');\n\nvar _tracksTextTrackListConverterJs2 = _interopRequireDefault(_tracksTextTrackListConverterJs);\n\n// Include required child components (importing also registers them)\n\nvar _techLoaderJs = _dereq_('./tech/loader.js');\n\nvar _techLoaderJs2 = _interopRequireDefault(_techLoaderJs);\n\nvar _posterImageJs = _dereq_('./poster-image.js');\n\nvar _posterImageJs2 = _interopRequireDefault(_posterImageJs);\n\nvar _tracksTextTrackDisplayJs = _dereq_('./tracks/text-track-display.js');\n\nvar _tracksTextTrackDisplayJs2 = _interopRequireDefault(_tracksTextTrackDisplayJs);\n\nvar _loadingSpinnerJs = _dereq_('./loading-spinner.js');\n\nvar _loadingSpinnerJs2 = _interopRequireDefault(_loadingSpinnerJs);\n\nvar _bigPlayButtonJs = _dereq_('./big-play-button.js');\n\nvar _bigPlayButtonJs2 = _interopRequireDefault(_bigPlayButtonJs);\n\nvar _controlBarControlBarJs = _dereq_('./control-bar/control-bar.js');\n\nvar _controlBarControlBarJs2 = _interopRequireDefault(_controlBarControlBarJs);\n\nvar _errorDisplayJs = _dereq_('./error-display.js');\n\nvar _errorDisplayJs2 = _interopRequireDefault(_errorDisplayJs);\n\nvar _tracksTextTrackSettingsJs = _dereq_('./tracks/text-track-settings.js');\n\nvar _tracksTextTrackSettingsJs2 = _interopRequireDefault(_tracksTextTrackSettingsJs);\n\n// Require html5 tech, at least for disposing the original video tag\n\nvar _techHtml5Js = _dereq_('./tech/html5.js');\n\nvar _techHtml5Js2 = _interopRequireDefault(_techHtml5Js);\n\n/**\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\n * ```js\n * var myPlayer = videojs('example_video_1');\n * ```\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\n * ```html\n * \n * ```\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\n *\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Player\n */\n\nvar Player = (function (_Component) {\n _inherits(Player, _Component);\n\n /**\n * player's constructor function\n *\n * @constructs\n * @method init\n * @param {Element} tag The original video tag used for configuring options\n * @param {Object=} options Player options\n * @param {Function=} ready Ready callback function\n */\n\n function Player(tag, options, ready) {\n var _this = this;\n\n _classCallCheck(this, Player);\n\n // Make sure tag ID exists\n tag.id = tag.id || 'vjs_video_' + Guid.newGUID();\n\n // Set Options\n // The options argument overrides options set in the video tag\n // which overrides globally set options.\n // This latter part coincides with the load order\n // (tag must exist before Player)\n options = _objectAssign2['default'](Player.getTagSettings(tag), options);\n\n // Delay the initialization of children because we need to set up\n // player properties first, and can't use `this` before `super()`\n options.initChildren = false;\n\n // Same with creating the element\n options.createEl = false;\n\n // we don't want the player to report touch activity on itself\n // see enableTouchActivity in Component\n options.reportTouchActivity = false;\n\n // Run base component initializing with new options\n _Component.call(this, null, options, ready);\n\n // if the global option object was accidentally blown away by\n // someone, bail early with an informative error\n if (!this.options_ || !this.options_.techOrder || !this.options_.techOrder.length) {\n throw new Error('No techOrder specified. Did you overwrite ' + 'videojs.options instead of just changing the ' + 'properties you want to override?');\n }\n\n this.tag = tag; // Store the original tag used to set options\n\n // Store the tag attributes used to restore html5 element\n this.tagAttributes = tag && Dom.getElAttributes(tag);\n\n // Update current language\n this.language(this.options_.language);\n\n // Update Supported Languages\n if (options.languages) {\n (function () {\n // Normalise player option languages to lowercase\n var languagesToLower = {};\n\n Object.getOwnPropertyNames(options.languages).forEach(function (name) {\n languagesToLower[name.toLowerCase()] = options.languages[name];\n });\n _this.languages_ = languagesToLower;\n })();\n } else {\n this.languages_ = Player.prototype.options_.languages;\n }\n\n // Cache for video property values.\n this.cache_ = {};\n\n // Set poster\n this.poster_ = options.poster || '';\n\n // Set controls\n this.controls_ = !!options.controls;\n\n // Original tag settings stored in options\n // now remove immediately so native controls don't flash.\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\n tag.controls = false;\n\n /*\n * Store the internal state of scrubbing\n *\n * @private\n * @return {Boolean} True if the user is scrubbing\n */\n this.scrubbing_ = false;\n\n this.el_ = this.createEl();\n\n // We also want to pass the original player options to each component and plugin\n // as well so they don't need to reach back into the player for options later.\n // We also need to do another copy of this.options_ so we don't end up with\n // an infinite loop.\n var playerOptionsCopy = _utilsMergeOptionsJs2['default'](this.options_);\n\n // Load plugins\n if (options.plugins) {\n (function () {\n var plugins = options.plugins;\n\n Object.getOwnPropertyNames(plugins).forEach(function (name) {\n if (typeof this[name] === 'function') {\n this[name](plugins[name]);\n } else {\n _utilsLogJs2['default'].error('Unable to find plugin:', name);\n }\n }, _this);\n })();\n }\n\n this.options_.playerOptions = playerOptionsCopy;\n\n this.initChildren();\n\n // Set isAudio based on whether or not an audio tag was used\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\n\n // Update controls className. Can't do this when the controls are initially\n // set because the element doesn't exist yet.\n if (this.controls()) {\n this.addClass('vjs-controls-enabled');\n } else {\n this.addClass('vjs-controls-disabled');\n }\n\n if (this.isAudio()) {\n this.addClass('vjs-audio');\n }\n\n if (this.flexNotSupported_()) {\n this.addClass('vjs-no-flex');\n }\n\n // TODO: Make this smarter. Toggle user state between touching/mousing\n // using events, since devices can have both touch and mouse events.\n // if (browser.TOUCH_ENABLED) {\n // this.addClass('vjs-touch-enabled');\n // }\n\n // Make player easily findable by ID\n Player.players[this.id_] = this;\n\n // When the player is first initialized, trigger activity so components\n // like the control bar show themselves if needed\n this.userActive(true);\n this.reportUserActivity();\n this.listenForUserActivity_();\n\n this.on('fullscreenchange', this.handleFullscreenChange_);\n this.on('stageclick', this.handleStageClick_);\n }\n\n /*\n * Global player list\n *\n * @type {Object}\n */\n\n /**\n * Destroys the video player and does any necessary cleanup\n * ```js\n * myPlayer.dispose();\n * ```\n * This is especially helpful if you are dynamically adding and removing videos\n * to/from the DOM.\n *\n * @method dispose\n */\n\n Player.prototype.dispose = function dispose() {\n this.trigger('dispose');\n // prevent dispose from being called twice\n this.off('dispose');\n\n if (this.styleEl_) {\n this.styleEl_.parentNode.removeChild(this.styleEl_);\n }\n\n // Kill reference to this player\n Player.players[this.id_] = null;\n if (this.tag && this.tag.player) {\n this.tag.player = null;\n }\n if (this.el_ && this.el_.player) {\n this.el_.player = null;\n }\n\n if (this.tech_) {\n this.tech_.dispose();\n }\n\n _Component.prototype.dispose.call(this);\n };\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n Player.prototype.createEl = function createEl() {\n var el = this.el_ = _Component.prototype.createEl.call(this, 'div');\n var tag = this.tag;\n\n // Remove width/height attrs from tag so CSS can make it 100% width/height\n tag.removeAttribute('width');\n tag.removeAttribute('height');\n\n // Copy over all the attributes from the tag, including ID and class\n // ID will now reference player box, not the video tag\n var attrs = Dom.getElAttributes(tag);\n\n Object.getOwnPropertyNames(attrs).forEach(function (attr) {\n // workaround so we don't totally break IE7\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\n if (attr === 'class') {\n el.className = attrs[attr];\n } else {\n el.setAttribute(attr, attrs[attr]);\n }\n });\n\n // Update tag id/class for use as HTML5 playback tech\n // Might think we should do this after embedding in container so .vjs-tech class\n // doesn't flash 100% width/height, but class only applies with .video-js parent\n tag.id += '_html5_api';\n tag.className = 'vjs-tech';\n\n // Make player findable on elements\n tag.player = el.player = this;\n // Default state of video is paused\n this.addClass('vjs-paused');\n\n // Add a style element in the player that we'll use to set the width/height\n // of the player in a way that's still overrideable by CSS, just like the\n // video element\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\n var defaultsStyleEl = _globalDocument2['default'].querySelector('.vjs-styles-defaults');\n var head = _globalDocument2['default'].querySelector('head');\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\n\n // Pass in the width/height/aspectRatio options which will update the style el\n this.width(this.options_.width);\n this.height(this.options_.height);\n this.fluid(this.options_.fluid);\n this.aspectRatio(this.options_.aspectRatio);\n\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\n // keep track of the original for later so we can know if the source originally failed\n tag.initNetworkState_ = tag.networkState;\n\n // Wrap video tag in div (el/box) container\n if (tag.parentNode) {\n tag.parentNode.insertBefore(el, tag);\n }\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\n\n this.el_ = el;\n\n return el;\n };\n\n /**\n * Get/set player width\n *\n * @param {Number=} value Value for width\n * @return {Number} Width when getting\n * @method width\n */\n\n Player.prototype.width = function width(value) {\n return this.dimension('width', value);\n };\n\n /**\n * Get/set player height\n *\n * @param {Number=} value Value for height\n * @return {Number} Height when getting\n * @method height\n */\n\n Player.prototype.height = function height(value) {\n return this.dimension('height', value);\n };\n\n /**\n * Get/set dimension for player\n *\n * @param {String} dimension Either width or height\n * @param {Number=} value Value for dimension\n * @return {Component}\n * @method dimension\n */\n\n Player.prototype.dimension = function dimension(_dimension, value) {\n var privDimension = _dimension + '_';\n\n if (value === undefined) {\n return this[privDimension] || 0;\n }\n\n if (value === '') {\n // If an empty string is given, reset the dimension to be automatic\n this[privDimension] = undefined;\n } else {\n var parsedVal = parseFloat(value);\n\n if (isNaN(parsedVal)) {\n _utilsLogJs2['default'].error('Improper value \"' + value + '\" supplied for for ' + _dimension);\n return this;\n }\n\n this[privDimension] = parsedVal;\n }\n\n this.updateStyleEl_();\n return this;\n };\n\n /**\n * Add/remove the vjs-fluid class\n *\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\n * @method fluid\n */\n\n Player.prototype.fluid = function fluid(bool) {\n if (bool === undefined) {\n return !!this.fluid_;\n }\n\n this.fluid_ = !!bool;\n\n if (bool) {\n this.addClass('vjs-fluid');\n } else {\n this.removeClass('vjs-fluid');\n }\n };\n\n /**\n * Get/Set the aspect ratio\n *\n * @param {String=} ratio Aspect ratio for player\n * @return aspectRatio\n * @method aspectRatio\n */\n\n Player.prototype.aspectRatio = function aspectRatio(ratio) {\n if (ratio === undefined) {\n return this.aspectRatio_;\n }\n\n // Check for width:height format\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\n }\n this.aspectRatio_ = ratio;\n\n // We're assuming if you set an aspect ratio you want fluid mode,\n // because in fixed mode you could calculate width and height yourself.\n this.fluid(true);\n\n this.updateStyleEl_();\n };\n\n /**\n * Update styles of the player element (height, width and aspect ratio)\n *\n * @method updateStyleEl_\n */\n\n Player.prototype.updateStyleEl_ = function updateStyleEl_() {\n var width = undefined;\n var height = undefined;\n var aspectRatio = undefined;\n\n // The aspect ratio is either used directly or to calculate width and height.\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\n // Use any aspectRatio that's been specifically set\n aspectRatio = this.aspectRatio_;\n } else if (this.videoWidth()) {\n // Otherwise try to get the aspect ratio from the video metadata\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\n } else {\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\n aspectRatio = '16:9';\n }\n\n // Get the ratio as a decimal we can use to calculate dimensions\n var ratioParts = aspectRatio.split(':');\n var ratioMultiplier = ratioParts[1] / ratioParts[0];\n\n if (this.width_ !== undefined) {\n // Use any width that's been specifically set\n width = this.width_;\n } else if (this.height_ !== undefined) {\n // Or calulate the width from the aspect ratio if a height has been set\n width = this.height_ / ratioMultiplier;\n } else {\n // Or use the video's metadata, or use the video el's default of 300\n width = this.videoWidth() || 300;\n }\n\n if (this.height_ !== undefined) {\n // Use any height that's been specifically set\n height = this.height_;\n } else {\n // Otherwise calculate the height from the ratio and the width\n height = width * ratioMultiplier;\n }\n\n var idClass = this.id() + '-dimensions';\n\n // Ensure the right class is still on the player for the style element\n this.addClass(idClass);\n\n stylesheet.setTextContent(this.styleEl_, '\\n .' + idClass + ' {\\n width: ' + width + 'px;\\n height: ' + height + 'px;\\n }\\n\\n .' + idClass + '.vjs-fluid {\\n padding-top: ' + ratioMultiplier * 100 + '%;\\n }\\n ');\n };\n\n /**\n * Load the Media Playback Technology (tech)\n * Load/Create an instance of playback technology including element and API methods\n * And append playback element in player div.\n *\n * @param {String} techName Name of the playback technology\n * @param {String} source Video source\n * @method loadTech_\n * @private\n */\n\n Player.prototype.loadTech_ = function loadTech_(techName, source) {\n\n // Pause and remove current playback technology\n if (this.tech_) {\n this.unloadTech_();\n }\n\n // get rid of the HTML5 video tag as soon as we are using another tech\n if (techName !== 'Html5' && this.tag) {\n _componentJs2['default'].getComponent('Html5').disposeMediaElement(this.tag);\n this.tag.player = null;\n this.tag = null;\n }\n\n this.techName_ = techName;\n\n // Turn off API access because we're loading a new tech that might load asynchronously\n this.isReady_ = false;\n\n // Grab tech-specific options from player options and add source and parent element to use.\n var techOptions = _objectAssign2['default']({\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\n 'source': source,\n 'playerId': this.id(),\n 'techId': this.id() + '_' + techName + '_api',\n 'textTracks': this.textTracks_,\n 'autoplay': this.options_.autoplay,\n 'preload': this.options_.preload,\n 'loop': this.options_.loop,\n 'muted': this.options_.muted,\n 'poster': this.poster(),\n 'language': this.language(),\n 'vtt.js': this.options_['vtt.js']\n }, this.options_[techName.toLowerCase()]);\n\n if (this.tag) {\n techOptions.tag = this.tag;\n }\n\n if (source) {\n this.currentType_ = source.type;\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\n techOptions.startTime = this.cache_.currentTime;\n }\n\n this.cache_.src = source.src;\n }\n\n // Initialize tech instance\n var techComponent = _componentJs2['default'].getComponent(techName);\n this.tech_ = new techComponent(techOptions);\n\n // player.triggerReady is always async, so don't need this to be async\n this.tech_.ready(Fn.bind(this, this.handleTechReady_), true);\n\n _tracksTextTrackListConverterJs2['default'].jsonToTextTracks(this.textTracksJson_ || [], this.tech_);\n\n // Listen to all HTML5-defined events and trigger them on the player\n this.on(this.tech_, 'loadstart', this.handleTechLoadStart_);\n this.on(this.tech_, 'waiting', this.handleTechWaiting_);\n this.on(this.tech_, 'canplay', this.handleTechCanPlay_);\n this.on(this.tech_, 'canplaythrough', this.handleTechCanPlayThrough_);\n this.on(this.tech_, 'playing', this.handleTechPlaying_);\n this.on(this.tech_, 'ended', this.handleTechEnded_);\n this.on(this.tech_, 'seeking', this.handleTechSeeking_);\n this.on(this.tech_, 'seeked', this.handleTechSeeked_);\n this.on(this.tech_, 'play', this.handleTechPlay_);\n this.on(this.tech_, 'firstplay', this.handleTechFirstPlay_);\n this.on(this.tech_, 'pause', this.handleTechPause_);\n this.on(this.tech_, 'progress', this.handleTechProgress_);\n this.on(this.tech_, 'durationchange', this.handleTechDurationChange_);\n this.on(this.tech_, 'fullscreenchange', this.handleTechFullscreenChange_);\n this.on(this.tech_, 'error', this.handleTechError_);\n this.on(this.tech_, 'suspend', this.handleTechSuspend_);\n this.on(this.tech_, 'abort', this.handleTechAbort_);\n this.on(this.tech_, 'emptied', this.handleTechEmptied_);\n this.on(this.tech_, 'stalled', this.handleTechStalled_);\n this.on(this.tech_, 'loadedmetadata', this.handleTechLoadedMetaData_);\n this.on(this.tech_, 'loadeddata', this.handleTechLoadedData_);\n this.on(this.tech_, 'timeupdate', this.handleTechTimeUpdate_);\n this.on(this.tech_, 'ratechange', this.handleTechRateChange_);\n this.on(this.tech_, 'volumechange', this.handleTechVolumeChange_);\n this.on(this.tech_, 'texttrackchange', this.handleTechTextTrackChange_);\n this.on(this.tech_, 'loadedmetadata', this.updateStyleEl_);\n this.on(this.tech_, 'posterchange', this.handleTechPosterChange_);\n\n this.usingNativeControls(this.techGet_('controls'));\n\n if (this.controls() && !this.usingNativeControls()) {\n this.addTechControlsListeners_();\n }\n\n // Add the tech element in the DOM if it was not already there\n // Make sure to not insert the original video element if using Html5\n if (this.tech_.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\n Dom.insertElFirst(this.tech_.el(), this.el());\n }\n\n // Get rid of the original video tag reference after the first tech is loaded\n if (this.tag) {\n this.tag.player = null;\n this.tag = null;\n }\n };\n\n /**\n * Unload playback technology\n *\n * @method unloadTech_\n * @private\n */\n\n Player.prototype.unloadTech_ = function unloadTech_() {\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\n this.textTracks_ = this.textTracks();\n this.textTracksJson_ = _tracksTextTrackListConverterJs2['default'].textTracksToJson(this);\n\n this.isReady_ = false;\n\n this.tech_.dispose();\n\n this.tech_ = false;\n };\n\n /**\n * Set up click and touch listeners for the playback element\n *\n * On desktops, a click on the video itself will toggle playback,\n * on a mobile device a click on the video toggles controls.\n * (toggling controls is done by toggling the user state between active and\n * inactive)\n * A tap can signal that a user has become active, or has become inactive\n * e.g. a quick tap on an iPhone movie should reveal the controls. Another\n * quick tap should hide them again (signaling the user is in an inactive\n * viewing state)\n * In addition to this, we still want the user to be considered inactive after\n * a few seconds of inactivity.\n * Note: the only part of iOS interaction we can't mimic with this setup\n * is a touch and hold on the video element counting as activity in order to\n * keep the controls showing, but that shouldn't be an issue. A touch and hold\n * on any controls will still keep the user active\n *\n * @private\n * @method addTechControlsListeners_\n */\n\n Player.prototype.addTechControlsListeners_ = function addTechControlsListeners_() {\n // Make sure to remove all the previous listeners in case we are called multiple times.\n this.removeTechControlsListeners_();\n\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\n // trigger mousedown/up.\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\n // Any touch events are set to block the mousedown event from happening\n this.on(this.tech_, 'mousedown', this.handleTechClick_);\n\n // If the controls were hidden we don't want that to change without a tap event\n // so we'll check if the controls were already showing before reporting user\n // activity\n this.on(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.on(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.on(this.tech_, 'touchend', this.handleTechTouchEnd_);\n\n // The tap listener needs to come after the touchend listener because the tap\n // listener cancels out any reportedUserActivity when setting userActive(false)\n this.on(this.tech_, 'tap', this.handleTechTap_);\n };\n\n /**\n * Remove the listeners used for click and tap controls. This is needed for\n * toggling to controls disabled, where a tap/touch should do nothing.\n *\n * @method removeTechControlsListeners_\n * @private\n */\n\n Player.prototype.removeTechControlsListeners_ = function removeTechControlsListeners_() {\n // We don't want to just use `this.off()` because there might be other needed\n // listeners added by techs that extend this.\n this.off(this.tech_, 'tap', this.handleTechTap_);\n this.off(this.tech_, 'touchstart', this.handleTechTouchStart_);\n this.off(this.tech_, 'touchmove', this.handleTechTouchMove_);\n this.off(this.tech_, 'touchend', this.handleTechTouchEnd_);\n this.off(this.tech_, 'mousedown', this.handleTechClick_);\n };\n\n /**\n * Player waits for the tech to be ready\n *\n * @method handleTechReady_\n * @private\n */\n\n Player.prototype.handleTechReady_ = function handleTechReady_() {\n this.triggerReady();\n\n // Keep the same volume as before\n if (this.cache_.volume) {\n this.techCall_('setVolume', this.cache_.volume);\n }\n\n // Look if the tech found a higher resolution poster while loading\n this.handleTechPosterChange_();\n\n // Update the duration if available\n this.handleTechDurationChange_();\n\n // Chrome and Safari both have issues with autoplay.\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\n // This fixes both issues. Need to wait for API, so it updates displays correctly\n if (this.tag && this.options_.autoplay && this.paused()) {\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\n this.play();\n }\n };\n\n /**\n * Fired when the user agent begins looking for media data\n *\n * @private\n * @method handleTechLoadStart_\n */\n\n Player.prototype.handleTechLoadStart_ = function handleTechLoadStart_() {\n // TODO: Update to use `emptied` event instead. See #1277.\n\n this.removeClass('vjs-ended');\n\n // reset the error state\n this.error(null);\n\n // If it's already playing we want to trigger a firstplay event now.\n // The firstplay event relies on both the play and loadstart events\n // which can happen in any order for a new source\n if (!this.paused()) {\n this.trigger('loadstart');\n this.trigger('firstplay');\n } else {\n // reset the hasStarted state\n this.hasStarted(false);\n this.trigger('loadstart');\n }\n };\n\n /**\n * Add/remove the vjs-has-started class\n *\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\n * @return {Boolean} Boolean value if has started\n * @private\n * @method hasStarted\n */\n\n Player.prototype.hasStarted = function hasStarted(_hasStarted) {\n if (_hasStarted !== undefined) {\n // only update if this is a new value\n if (this.hasStarted_ !== _hasStarted) {\n this.hasStarted_ = _hasStarted;\n if (_hasStarted) {\n this.addClass('vjs-has-started');\n // trigger the firstplay event if this newly has played\n this.trigger('firstplay');\n } else {\n this.removeClass('vjs-has-started');\n }\n }\n return this;\n }\n return !!this.hasStarted_;\n };\n\n /**\n * Fired whenever the media begins or resumes playback\n *\n * @private\n * @method handleTechPlay_\n */\n\n Player.prototype.handleTechPlay_ = function handleTechPlay_() {\n this.removeClass('vjs-ended');\n this.removeClass('vjs-paused');\n this.addClass('vjs-playing');\n\n // hide the poster when the user hits play\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\n this.hasStarted(true);\n\n this.trigger('play');\n };\n\n /**\n * Fired whenever the media begins waiting\n *\n * @private\n * @method handleTechWaiting_\n */\n\n Player.prototype.handleTechWaiting_ = function handleTechWaiting_() {\n this.addClass('vjs-waiting');\n this.trigger('waiting');\n };\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlay_\n */\n\n Player.prototype.handleTechCanPlay_ = function handleTechCanPlay_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplay');\n };\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechCanPlayThrough_\n */\n\n Player.prototype.handleTechCanPlayThrough_ = function handleTechCanPlayThrough_() {\n this.removeClass('vjs-waiting');\n this.trigger('canplaythrough');\n };\n\n /**\n * A handler for events that signal that waiting has ended\n * which is not consistent between browsers. See #1351\n *\n * @private\n * @method handleTechPlaying_\n */\n\n Player.prototype.handleTechPlaying_ = function handleTechPlaying_() {\n this.removeClass('vjs-waiting');\n this.trigger('playing');\n };\n\n /**\n * Fired whenever the player is jumping to a new time\n *\n * @private\n * @method handleTechSeeking_\n */\n\n Player.prototype.handleTechSeeking_ = function handleTechSeeking_() {\n this.addClass('vjs-seeking');\n this.trigger('seeking');\n };\n\n /**\n * Fired when the player has finished jumping to a new time\n *\n * @private\n * @method handleTechSeeked_\n */\n\n Player.prototype.handleTechSeeked_ = function handleTechSeeked_() {\n this.removeClass('vjs-seeking');\n this.trigger('seeked');\n };\n\n /**\n * Fired the first time a video is played\n * Not part of the HLS spec, and we're not sure if this is the best\n * implementation yet, so use sparingly. If you don't have a reason to\n * prevent playback, use `myPlayer.one('play');` instead.\n *\n * @private\n * @method handleTechFirstPlay_\n */\n\n Player.prototype.handleTechFirstPlay_ = function handleTechFirstPlay_() {\n //If the first starttime attribute is specified\n //then we will start at the given offset in seconds\n if (this.options_.starttime) {\n this.currentTime(this.options_.starttime);\n }\n\n this.addClass('vjs-has-started');\n this.trigger('firstplay');\n };\n\n /**\n * Fired whenever the media has been paused\n *\n * @private\n * @method handleTechPause_\n */\n\n Player.prototype.handleTechPause_ = function handleTechPause_() {\n this.removeClass('vjs-playing');\n this.addClass('vjs-paused');\n this.trigger('pause');\n };\n\n /**\n * Fired while the user agent is downloading media data\n *\n * @private\n * @method handleTechProgress_\n */\n\n Player.prototype.handleTechProgress_ = function handleTechProgress_() {\n this.trigger('progress');\n };\n\n /**\n * Fired when the end of the media resource is reached (currentTime == duration)\n *\n * @private\n * @method handleTechEnded_\n */\n\n Player.prototype.handleTechEnded_ = function handleTechEnded_() {\n this.addClass('vjs-ended');\n if (this.options_.loop) {\n this.currentTime(0);\n this.play();\n } else if (!this.paused()) {\n this.pause();\n }\n\n this.trigger('ended');\n };\n\n /**\n * Fired when the duration of the media resource is first known or changed\n *\n * @private\n * @method handleTechDurationChange_\n */\n\n Player.prototype.handleTechDurationChange_ = function handleTechDurationChange_() {\n this.duration(this.techGet_('duration'));\n };\n\n /**\n * Handle a click on the media element to play/pause\n *\n * @param {Object=} event Event object\n * @private\n * @method handleTechClick_\n */\n\n Player.prototype.handleTechClick_ = function handleTechClick_(event) {\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\n // will also be triggered with right-clicks, so we need to prevent that\n if (event.button !== 0) return;\n\n // When controls are disabled a click should not toggle playback because\n // the click is considered a control\n if (this.controls()) {\n if (this.paused()) {\n this.play();\n } else {\n this.pause();\n }\n }\n };\n\n /**\n * Handle a tap on the media element. It will toggle the user\n * activity state, which hides and shows the controls.\n *\n * @private\n * @method handleTechTap_\n */\n\n Player.prototype.handleTechTap_ = function handleTechTap_() {\n this.userActive(!this.userActive());\n };\n\n /**\n * Handle touch to start\n *\n * @private\n * @method handleTechTouchStart_\n */\n\n Player.prototype.handleTechTouchStart_ = function handleTechTouchStart_() {\n this.userWasActive = this.userActive();\n };\n\n /**\n * Handle touch to move\n *\n * @private\n * @method handleTechTouchMove_\n */\n\n Player.prototype.handleTechTouchMove_ = function handleTechTouchMove_() {\n if (this.userWasActive) {\n this.reportUserActivity();\n }\n };\n\n /**\n * Handle touch to end\n *\n * @private\n * @method handleTechTouchEnd_\n */\n\n Player.prototype.handleTechTouchEnd_ = function handleTechTouchEnd_(event) {\n // Stop the mouse events from also happening\n event.preventDefault();\n };\n\n /**\n * Fired when the player switches in or out of fullscreen mode\n *\n * @private\n * @method handleFullscreenChange_\n */\n\n Player.prototype.handleFullscreenChange_ = function handleFullscreenChange_() {\n if (this.isFullscreen()) {\n this.addClass('vjs-fullscreen');\n } else {\n this.removeClass('vjs-fullscreen');\n }\n };\n\n /**\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\n * use stageclick events triggered from inside the SWF instead\n *\n * @private\n * @method handleStageClick_\n */\n\n Player.prototype.handleStageClick_ = function handleStageClick_() {\n this.reportUserActivity();\n };\n\n /**\n * Handle Tech Fullscreen Change\n *\n * @private\n * @method handleTechFullscreenChange_\n */\n\n Player.prototype.handleTechFullscreenChange_ = function handleTechFullscreenChange_(event, data) {\n if (data) {\n this.isFullscreen(data.isFullscreen);\n }\n this.trigger('fullscreenchange');\n };\n\n /**\n * Fires when an error occurred during the loading of an audio/video\n *\n * @private\n * @method handleTechError_\n */\n\n Player.prototype.handleTechError_ = function handleTechError_() {\n var error = this.tech_.error();\n this.error(error && error.code);\n };\n\n /**\n * Fires when the browser is intentionally not getting media data\n *\n * @private\n * @method handleTechSuspend_\n */\n\n Player.prototype.handleTechSuspend_ = function handleTechSuspend_() {\n this.trigger('suspend');\n };\n\n /**\n * Fires when the loading of an audio/video is aborted\n *\n * @private\n * @method handleTechAbort_\n */\n\n Player.prototype.handleTechAbort_ = function handleTechAbort_() {\n this.trigger('abort');\n };\n\n /**\n * Fires when the current playlist is empty\n *\n * @private\n * @method handleTechEmptied_\n */\n\n Player.prototype.handleTechEmptied_ = function handleTechEmptied_() {\n this.trigger('emptied');\n };\n\n /**\n * Fires when the browser is trying to get media data, but data is not available\n *\n * @private\n * @method handleTechStalled_\n */\n\n Player.prototype.handleTechStalled_ = function handleTechStalled_() {\n this.trigger('stalled');\n };\n\n /**\n * Fires when the browser has loaded meta data for the audio/video\n *\n * @private\n * @method handleTechLoadedMetaData_\n */\n\n Player.prototype.handleTechLoadedMetaData_ = function handleTechLoadedMetaData_() {\n this.trigger('loadedmetadata');\n };\n\n /**\n * Fires when the browser has loaded the current frame of the audio/video\n *\n * @private\n * @method handleTechLoadedData_\n */\n\n Player.prototype.handleTechLoadedData_ = function handleTechLoadedData_() {\n this.trigger('loadeddata');\n };\n\n /**\n * Fires when the current playback position has changed\n *\n * @private\n * @method handleTechTimeUpdate_\n */\n\n Player.prototype.handleTechTimeUpdate_ = function handleTechTimeUpdate_() {\n this.trigger('timeupdate');\n };\n\n /**\n * Fires when the playing speed of the audio/video is changed\n *\n * @private\n * @method handleTechRateChange_\n */\n\n Player.prototype.handleTechRateChange_ = function handleTechRateChange_() {\n this.trigger('ratechange');\n };\n\n /**\n * Fires when the volume has been changed\n *\n * @private\n * @method handleTechVolumeChange_\n */\n\n Player.prototype.handleTechVolumeChange_ = function handleTechVolumeChange_() {\n this.trigger('volumechange');\n };\n\n /**\n * Fires when the text track has been changed\n *\n * @private\n * @method handleTechTextTrackChange_\n */\n\n Player.prototype.handleTechTextTrackChange_ = function handleTechTextTrackChange_() {\n this.trigger('texttrackchange');\n };\n\n /**\n * Get object for cached values.\n *\n * @return {Object}\n * @method getCache\n */\n\n Player.prototype.getCache = function getCache() {\n return this.cache_;\n };\n\n /**\n * Pass values to the playback tech\n *\n * @param {String=} method Method\n * @param {Object=} arg Argument\n * @private\n * @method techCall_\n */\n\n Player.prototype.techCall_ = function techCall_(method, arg) {\n // If it's not ready yet, call method when it is\n if (this.tech_ && !this.tech_.isReady_) {\n this.tech_.ready(function () {\n this[method](arg);\n }, true);\n\n // Otherwise call method now\n } else {\n try {\n this.tech_[method](arg);\n } catch (e) {\n _utilsLogJs2['default'](e);\n throw e;\n }\n }\n };\n\n /**\n * Get calls can't wait for the tech, and sometimes don't need to.\n *\n * @param {String} method Tech method\n * @return {Method}\n * @private\n * @method techGet_\n */\n\n Player.prototype.techGet_ = function techGet_(method) {\n if (this.tech_ && this.tech_.isReady_) {\n\n // Flash likes to die and reload when you hide or reposition it.\n // In these cases the object methods go away and we get errors.\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\n try {\n return this.tech_[method]();\n } catch (e) {\n // When building additional tech libs, an expected method may not be defined yet\n if (this.tech_[method] === undefined) {\n _utilsLogJs2['default']('Video.js: ' + method + ' method not defined for ' + this.techName_ + ' playback technology.', e);\n } else {\n // When a method isn't available on the object it throws a TypeError\n if (e.name === 'TypeError') {\n _utilsLogJs2['default']('Video.js: ' + method + ' unavailable on ' + this.techName_ + ' playback technology element.', e);\n this.tech_.isReady_ = false;\n } else {\n _utilsLogJs2['default'](e);\n }\n }\n throw e;\n }\n }\n\n return;\n };\n\n /**\n * start media playback\n * ```js\n * myPlayer.play();\n * ```\n *\n * @return {Player} self\n * @method play\n */\n\n Player.prototype.play = function play() {\n this.techCall_('play');\n return this;\n };\n\n /**\n * Pause the video playback\n * ```js\n * myPlayer.pause();\n * ```\n *\n * @return {Player} self\n * @method pause\n */\n\n Player.prototype.pause = function pause() {\n this.techCall_('pause');\n return this;\n };\n\n /**\n * Check if the player is paused\n * ```js\n * var isPaused = myPlayer.paused();\n * var isPlaying = !myPlayer.paused();\n * ```\n *\n * @return {Boolean} false if the media is currently playing, or true otherwise\n * @method paused\n */\n\n Player.prototype.paused = function paused() {\n // The initial state of paused should be true (in Safari it's actually false)\n return this.techGet_('paused') === false ? false : true;\n };\n\n /**\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\n * has clicked the progress bar handle and is dragging it along the progress bar.\n *\n * @param {Boolean} isScrubbing True/false the user is scrubbing\n * @return {Boolean} The scrubbing status when getting\n * @return {Object} The player when setting\n * @method scrubbing\n */\n\n Player.prototype.scrubbing = function scrubbing(isScrubbing) {\n if (isScrubbing !== undefined) {\n this.scrubbing_ = !!isScrubbing;\n\n if (isScrubbing) {\n this.addClass('vjs-scrubbing');\n } else {\n this.removeClass('vjs-scrubbing');\n }\n\n return this;\n }\n\n return this.scrubbing_;\n };\n\n /**\n * Get or set the current time (in seconds)\n * ```js\n * // get\n * var whereYouAt = myPlayer.currentTime();\n * // set\n * myPlayer.currentTime(120); // 2 minutes into the video\n * ```\n *\n * @param {Number|String=} seconds The time to seek to\n * @return {Number} The time in seconds, when not setting\n * @return {Player} self, when the current time is set\n * @method currentTime\n */\n\n Player.prototype.currentTime = function currentTime(seconds) {\n if (seconds !== undefined) {\n\n this.techCall_('setCurrentTime', seconds);\n\n return this;\n }\n\n // cache last currentTime and return. default to 0 seconds\n //\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\n // Should be tested. Also something has to read the actual current time or the cache will\n // never get updated.\n return this.cache_.currentTime = this.techGet_('currentTime') || 0;\n };\n\n /**\n * Get the length in time of the video in seconds\n * ```js\n * var lengthOfVideo = myPlayer.duration();\n * ```\n * **NOTE**: The video must have started loading before the duration can be\n * known, and in the case of Flash, may not be known until the video starts\n * playing.\n *\n * @param {Number} seconds Duration when setting\n * @return {Number} The duration of the video in seconds when getting\n * @method duration\n */\n\n Player.prototype.duration = function duration(seconds) {\n if (seconds === undefined) {\n return this.cache_.duration || 0;\n }\n\n seconds = parseFloat(seconds) || 0;\n\n // Standardize on Inifity for signaling video is live\n if (seconds < 0) {\n seconds = Infinity;\n }\n\n if (seconds !== this.cache_.duration) {\n // Cache the last set value for optimized scrubbing (esp. Flash)\n this.cache_.duration = seconds;\n\n if (seconds === Infinity) {\n this.addClass('vjs-live');\n } else {\n this.removeClass('vjs-live');\n }\n\n this.trigger('durationchange');\n }\n\n return this;\n };\n\n /**\n * Calculates how much time is left.\n * ```js\n * var timeLeft = myPlayer.remainingTime();\n * ```\n * Not a native video element function, but useful\n *\n * @return {Number} The time remaining in seconds\n * @method remainingTime\n */\n\n Player.prototype.remainingTime = function remainingTime() {\n return this.duration() - this.currentTime();\n };\n\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\n // Buffered returns a timerange object.\n // Kind of like an array of portions of the video that have been downloaded.\n\n /**\n * Get a TimeRange object with the times of the video that have been downloaded\n * If you just want the percent of the video that's been downloaded,\n * use bufferedPercent.\n * ```js\n * // Number of different ranges of time have been buffered. Usually 1.\n * numberOfRanges = bufferedTimeRange.length,\n * // Time in seconds when the first range starts. Usually 0.\n * firstRangeStart = bufferedTimeRange.start(0),\n * // Time in seconds when the first range ends\n * firstRangeEnd = bufferedTimeRange.end(0),\n * // Length in seconds of the first time range\n * firstRangeLength = firstRangeEnd - firstRangeStart;\n * ```\n *\n * @return {Object} A mock TimeRange object (following HTML spec)\n * @method buffered\n */\n\n Player.prototype.buffered = function buffered() {\n var buffered = this.techGet_('buffered');\n\n if (!buffered || !buffered.length) {\n buffered = _utilsTimeRangesJs.createTimeRange(0, 0);\n }\n\n return buffered;\n };\n\n /**\n * Get the percent (as a decimal) of the video that's been downloaded\n * ```js\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\n * ```\n * 0 means none, 1 means all.\n * (This method isn't in the HTML5 spec, but it's very convenient)\n *\n * @return {Number} A decimal between 0 and 1 representing the percent\n * @method bufferedPercent\n */\n\n Player.prototype.bufferedPercent = function bufferedPercent() {\n return _utilsBufferJs.bufferedPercent(this.buffered(), this.duration());\n };\n\n /**\n * Get the ending time of the last buffered time range\n * This is used in the progress bar to encapsulate all time ranges.\n *\n * @return {Number} The end of the last buffered time range\n * @method bufferedEnd\n */\n\n Player.prototype.bufferedEnd = function bufferedEnd() {\n var buffered = this.buffered(),\n duration = this.duration(),\n end = buffered.end(buffered.length - 1);\n\n if (end > duration) {\n end = duration;\n }\n\n return end;\n };\n\n /**\n * Get or set the current volume of the media\n * ```js\n * // get\n * var howLoudIsIt = myPlayer.volume();\n * // set\n * myPlayer.volume(0.5); // Set volume to half\n * ```\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\n *\n * @param {Number} percentAsDecimal The new volume as a decimal percent\n * @return {Number} The current volume when getting\n * @return {Player} self when setting\n * @method volume\n */\n\n Player.prototype.volume = function volume(percentAsDecimal) {\n var vol = undefined;\n\n if (percentAsDecimal !== undefined) {\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\n this.cache_.volume = vol;\n this.techCall_('setVolume', vol);\n\n return this;\n }\n\n // Default to 1 when returning current volume.\n vol = parseFloat(this.techGet_('volume'));\n return isNaN(vol) ? 1 : vol;\n };\n\n /**\n * Get the current muted state, or turn mute on or off\n * ```js\n * // get\n * var isVolumeMuted = myPlayer.muted();\n * // set\n * myPlayer.muted(true); // mute the volume\n * ```\n *\n * @param {Boolean=} muted True to mute, false to unmute\n * @return {Boolean} True if mute is on, false if not when getting\n * @return {Player} self when setting mute\n * @method muted\n */\n\n Player.prototype.muted = function muted(_muted) {\n if (_muted !== undefined) {\n this.techCall_('setMuted', _muted);\n return this;\n }\n return this.techGet_('muted') || false; // Default to false\n };\n\n // Check if current tech can support native fullscreen\n // (e.g. with built in controls like iOS, so not our flash swf)\n /**\n * Check to see if fullscreen is supported\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n\n Player.prototype.supportsFullScreen = function supportsFullScreen() {\n return this.techGet_('supportsFullScreen') || false;\n };\n\n /**\n * Check if the player is in fullscreen mode\n * ```js\n * // get\n * var fullscreenOrNot = myPlayer.isFullscreen();\n * // set\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\n * ```\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\n * property and instead document.fullscreenElement is used. But isFullscreen is\n * still a valuable property for internal player workings.\n *\n * @param {Boolean=} isFS Update the player's fullscreen state\n * @return {Boolean} true if fullscreen false if not when getting\n * @return {Player} self when setting\n * @method isFullscreen\n */\n\n Player.prototype.isFullscreen = function isFullscreen(isFS) {\n if (isFS !== undefined) {\n this.isFullscreen_ = !!isFS;\n return this;\n }\n return !!this.isFullscreen_;\n };\n\n /**\n * Increase the size of the video to full screen\n * ```js\n * myPlayer.requestFullscreen();\n * ```\n * In some browsers, full screen is not supported natively, so it enters\n * \"full window mode\", where the video fills the browser window.\n * In browsers and devices that support native full screen, sometimes the\n * browser's default controls will be shown, and not the Video.js custom skin.\n * This includes most mobile devices (iOS, Android) and older versions of\n * Safari.\n *\n * @return {Player} self\n * @method requestFullscreen\n */\n\n Player.prototype.requestFullscreen = function requestFullscreen() {\n var fsApi = _fullscreenApiJs2['default'];\n\n this.isFullscreen(true);\n\n if (fsApi.requestFullscreen) {\n // the browser supports going fullscreen at the element level so we can\n // take the controls fullscreen as well as the video\n\n // Trigger fullscreenchange event after change\n // We have to specifically add this each time, and remove\n // when canceling fullscreen. Otherwise if there's multiple\n // players on a page, they would all be reacting to the same fullscreen\n // events\n Events.on(_globalDocument2['default'], fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e) {\n this.isFullscreen(_globalDocument2['default'][fsApi.fullscreenElement]);\n\n // If cancelling fullscreen, remove event listener.\n if (this.isFullscreen() === false) {\n Events.off(_globalDocument2['default'], fsApi.fullscreenchange, documentFullscreenChange);\n }\n\n this.trigger('fullscreenchange');\n }));\n\n this.el_[fsApi.requestFullscreen]();\n } else if (this.tech_.supportsFullScreen()) {\n // we can't take the video.js controls fullscreen but we can go fullscreen\n // with native controls\n this.techCall_('enterFullScreen');\n } else {\n // fullscreen isn't supported so we'll just stretch the video element to\n // fill the viewport\n this.enterFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n };\n\n /**\n * Return the video to its normal size after having been in full screen mode\n * ```js\n * myPlayer.exitFullscreen();\n * ```\n *\n * @return {Player} self\n * @method exitFullscreen\n */\n\n Player.prototype.exitFullscreen = function exitFullscreen() {\n var fsApi = _fullscreenApiJs2['default'];\n this.isFullscreen(false);\n\n // Check for browser element fullscreen support\n if (fsApi.requestFullscreen) {\n _globalDocument2['default'][fsApi.exitFullscreen]();\n } else if (this.tech_.supportsFullScreen()) {\n this.techCall_('exitFullScreen');\n } else {\n this.exitFullWindow();\n this.trigger('fullscreenchange');\n }\n\n return this;\n };\n\n /**\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\n *\n * @method enterFullWindow\n */\n\n Player.prototype.enterFullWindow = function enterFullWindow() {\n this.isFullWindow = true;\n\n // Storing original doc overflow value to return to when fullscreen is off\n this.docOrigOverflow = _globalDocument2['default'].documentElement.style.overflow;\n\n // Add listener for esc key to exit fullscreen\n Events.on(_globalDocument2['default'], 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\n\n // Hide any scroll bars\n _globalDocument2['default'].documentElement.style.overflow = 'hidden';\n\n // Apply fullscreen styles\n Dom.addElClass(_globalDocument2['default'].body, 'vjs-full-window');\n\n this.trigger('enterFullWindow');\n };\n\n /**\n * Check for call to either exit full window or full screen on ESC key\n *\n * @param {String} event Event to check for key press\n * @method fullWindowOnEscKey\n */\n\n Player.prototype.fullWindowOnEscKey = function fullWindowOnEscKey(event) {\n if (event.keyCode === 27) {\n if (this.isFullscreen() === true) {\n this.exitFullscreen();\n } else {\n this.exitFullWindow();\n }\n }\n };\n\n /**\n * Exit full window\n *\n * @method exitFullWindow\n */\n\n Player.prototype.exitFullWindow = function exitFullWindow() {\n this.isFullWindow = false;\n Events.off(_globalDocument2['default'], 'keydown', this.fullWindowOnEscKey);\n\n // Unhide scroll bars.\n _globalDocument2['default'].documentElement.style.overflow = this.docOrigOverflow;\n\n // Remove fullscreen styles\n Dom.removeElClass(_globalDocument2['default'].body, 'vjs-full-window');\n\n // Resize the box, controller, and poster to original sizes\n // this.positionAll();\n this.trigger('exitFullWindow');\n };\n\n /**\n * Select source based on tech order\n *\n * @param {Array} sources The sources for a media asset\n * @return {Object|Boolean} Object of source and tech order, otherwise false\n * @method selectSource\n */\n\n Player.prototype.selectSource = function selectSource(sources) {\n // Loop through each playback technology in the options order\n for (var i = 0, j = this.options_.techOrder; i < j.length; i++) {\n var techName = _utilsToTitleCaseJs2['default'](j[i]);\n var tech = _componentJs2['default'].getComponent(techName);\n\n // Check if the current tech is defined before continuing\n if (!tech) {\n _utilsLogJs2['default'].error('The \"' + techName + '\" tech is undefined. Skipped browser support check for that tech.');\n continue;\n }\n\n // Check if the browser supports this technology\n if (tech.isSupported()) {\n // Loop through each source object\n for (var a = 0, b = sources; a < b.length; a++) {\n var source = b[a];\n\n // Check if source can be played with this technology\n if (tech.canPlaySource(source)) {\n return { source: source, tech: techName };\n }\n }\n }\n }\n\n return false;\n };\n\n /**\n * The source function updates the video source\n * There are three types of variables you can pass as the argument.\n * **URL String**: A URL to the the video file. Use this method if you are sure\n * the current playback technology (HTML5/Flash) can support the source you\n * provide. Currently only MP4 files can be used in both HTML5 and Flash.\n * ```js\n * myPlayer.src(\"http://www.example.com/path/to/video.mp4\");\n * ```\n * **Source Object (or element):* * A javascript object containing information\n * about the source file. Use this method if you want the player to determine if\n * it can support the file using the type information.\n * ```js\n * myPlayer.src({ type: \"video/mp4\", src: \"http://www.example.com/path/to/video.mp4\" });\n * ```\n * **Array of Source Objects:* * To provide multiple versions of the source so\n * that it can be played using HTML5 across browsers you can use an array of\n * source objects. Video.js will detect which version is supported and load that\n * file.\n * ```js\n * myPlayer.src([\n * { type: \"video/mp4\", src: \"http://www.example.com/path/to/video.mp4\" },\n * { type: \"video/webm\", src: \"http://www.example.com/path/to/video.webm\" },\n * { type: \"video/ogg\", src: \"http://www.example.com/path/to/video.ogv\" }\n * ]);\n * ```\n *\n * @param {String|Object|Array=} source The source URL, object, or array of sources\n * @return {String} The current video source when getting\n * @return {String} The player when setting\n * @method src\n */\n\n Player.prototype.src = function src(source) {\n if (source === undefined) {\n return this.techGet_('src');\n }\n\n var currentTech = _componentJs2['default'].getComponent(this.techName_);\n\n // case: Array of source objects to choose from and pick the best to play\n if (Array.isArray(source)) {\n this.sourceList_(source);\n\n // case: URL String (http://myvideo...)\n } else if (typeof source === 'string') {\n // create a source object from the string\n this.src({ src: source });\n\n // case: Source object { src: '', type: '' ... }\n } else if (source instanceof Object) {\n // check if the source has a type and the loaded tech cannot play the source\n // if there's no type we'll just try the current tech\n if (source.type && !currentTech.canPlaySource(source)) {\n // create a source list with the current source and send through\n // the tech loop to check for a compatible technology\n this.sourceList_([source]);\n } else {\n this.cache_.src = source.src;\n this.currentType_ = source.type || '';\n\n // wait until the tech is ready to set the source\n this.ready(function () {\n\n // The setSource tech method was added with source handlers\n // so older techs won't support it\n // We need to check the direct prototype for the case where subclasses\n // of the tech do not support source handlers\n if (currentTech.prototype.hasOwnProperty('setSource')) {\n this.techCall_('setSource', source);\n } else {\n this.techCall_('src', source.src);\n }\n\n if (this.options_.preload === 'auto') {\n this.load();\n }\n\n if (this.options_.autoplay) {\n this.play();\n }\n\n // Set the source synchronously if possible (#2326)\n }, true);\n }\n }\n\n return this;\n };\n\n /**\n * Handle an array of source objects\n *\n * @param {Array} sources Array of source objects\n * @private\n * @method sourceList_\n */\n\n Player.prototype.sourceList_ = function sourceList_(sources) {\n var sourceTech = this.selectSource(sources);\n\n if (sourceTech) {\n if (sourceTech.tech === this.techName_) {\n // if this technology is already loaded, set the source\n this.src(sourceTech.source);\n } else {\n // load this technology with the chosen source\n this.loadTech_(sourceTech.tech, sourceTech.source);\n }\n } else {\n // We need to wrap this in a timeout to give folks a chance to add error event handlers\n this.setTimeout(function () {\n this.error({ code: 4, message: this.localize(this.options_.notSupportedMessage) });\n }, 0);\n\n // we could not find an appropriate tech, but let's still notify the delegate that this is it\n // this needs a better comment about why this is needed\n this.triggerReady();\n }\n };\n\n /**\n * Begin loading the src data.\n *\n * @return {Player} Returns the player\n * @method load\n */\n\n Player.prototype.load = function load() {\n this.techCall_('load');\n return this;\n };\n\n /**\n * Returns the fully qualified URL of the current source value e.g. http://mysite.com/video.mp4\n * Can be used in conjuction with `currentType` to assist in rebuilding the current source object.\n *\n * @return {String} The current source\n * @method currentSrc\n */\n\n Player.prototype.currentSrc = function currentSrc() {\n return this.techGet_('currentSrc') || this.cache_.src || '';\n };\n\n /**\n * Get the current source type e.g. video/mp4\n * This can allow you rebuild the current source object so that you could load the same\n * source and tech later\n *\n * @return {String} The source MIME type\n * @method currentType\n */\n\n Player.prototype.currentType = function currentType() {\n return this.currentType_ || '';\n };\n\n /**\n * Get or set the preload attribute\n *\n * @param {Boolean} value Boolean to determine if preload should be used\n * @return {String} The preload attribute value when getting\n * @return {Player} Returns the player when setting\n * @method preload\n */\n\n Player.prototype.preload = function preload(value) {\n if (value !== undefined) {\n this.techCall_('setPreload', value);\n this.options_.preload = value;\n return this;\n }\n return this.techGet_('preload');\n };\n\n /**\n * Get or set the autoplay attribute.\n *\n * @param {Boolean} value Boolean to determine if preload should be used\n * @return {String} The autoplay attribute value when getting\n * @return {Player} Returns the player when setting\n * @method autoplay\n */\n\n Player.prototype.autoplay = function autoplay(value) {\n if (value !== undefined) {\n this.techCall_('setAutoplay', value);\n this.options_.autoplay = value;\n return this;\n }\n return this.techGet_('autoplay', value);\n };\n\n /**\n * Get or set the loop attribute on the video element.\n *\n * @param {Boolean} value Boolean to determine if preload should be used\n * @return {String} The loop attribute value when getting\n * @return {Player} Returns the player when setting\n * @method loop\n */\n\n Player.prototype.loop = function loop(value) {\n if (value !== undefined) {\n this.techCall_('setLoop', value);\n this.options_['loop'] = value;\n return this;\n }\n return this.techGet_('loop');\n };\n\n /**\n * Get or set the poster image source url\n *\n * ##### EXAMPLE:\n * ```js\n * // get\n * var currentPoster = myPlayer.poster();\n * // set\n * myPlayer.poster('http://example.com/myImage.jpg');\n * ```\n *\n * @param {String=} src Poster image source URL\n * @return {String} poster URL when getting\n * @return {Player} self when setting\n * @method poster\n */\n\n Player.prototype.poster = function poster(src) {\n if (src === undefined) {\n return this.poster_;\n }\n\n // The correct way to remove a poster is to set as an empty string\n // other falsey values will throw errors\n if (!src) {\n src = '';\n }\n\n // update the internal poster variable\n this.poster_ = src;\n\n // update the tech's poster\n this.techCall_('setPoster', src);\n\n // alert components that the poster has been set\n this.trigger('posterchange');\n\n return this;\n };\n\n /**\n * Some techs (e.g. YouTube) can provide a poster source in an\n * asynchronous way. We want the poster component to use this\n * poster source so that it covers up the tech's controls.\n * (YouTube's play button). However we only want to use this\n * soruce if the player user hasn't set a poster through\n * the normal APIs.\n *\n * @private\n * @method handleTechPosterChange_\n */\n\n Player.prototype.handleTechPosterChange_ = function handleTechPosterChange_() {\n if (!this.poster_ && this.tech_ && this.tech_.poster) {\n this.poster_ = this.tech_.poster() || '';\n\n // Let components know the poster has changed\n this.trigger('posterchange');\n }\n };\n\n /**\n * Get or set whether or not the controls are showing.\n *\n * @param {Boolean} bool Set controls to showing or not\n * @return {Boolean} Controls are showing\n * @method controls\n */\n\n Player.prototype.controls = function controls(bool) {\n if (bool !== undefined) {\n bool = !!bool; // force boolean\n // Don't trigger a change event unless it actually changed\n if (this.controls_ !== bool) {\n this.controls_ = bool;\n\n if (this.usingNativeControls()) {\n this.techCall_('setControls', bool);\n }\n\n if (bool) {\n this.removeClass('vjs-controls-disabled');\n this.addClass('vjs-controls-enabled');\n this.trigger('controlsenabled');\n\n if (!this.usingNativeControls()) {\n this.addTechControlsListeners_();\n }\n } else {\n this.removeClass('vjs-controls-enabled');\n this.addClass('vjs-controls-disabled');\n this.trigger('controlsdisabled');\n\n if (!this.usingNativeControls()) {\n this.removeTechControlsListeners_();\n }\n }\n }\n return this;\n }\n return !!this.controls_;\n };\n\n /**\n * Toggle native controls on/off. Native controls are the controls built into\n * devices (e.g. default iPhone controls), Flash, or other techs\n * (e.g. Vimeo Controls)\n * **This should only be set by the current tech, because only the tech knows\n * if it can support native controls**\n *\n * @param {Boolean} bool True signals that native controls are on\n * @return {Player} Returns the player\n * @private\n * @method usingNativeControls\n */\n\n Player.prototype.usingNativeControls = function usingNativeControls(bool) {\n if (bool !== undefined) {\n bool = !!bool; // force boolean\n // Don't trigger a change event unless it actually changed\n if (this.usingNativeControls_ !== bool) {\n this.usingNativeControls_ = bool;\n if (bool) {\n this.addClass('vjs-using-native-controls');\n\n /**\n * player is using the native device controls\n *\n * @event usingnativecontrols\n * @memberof Player\n * @instance\n * @private\n */\n this.trigger('usingnativecontrols');\n } else {\n this.removeClass('vjs-using-native-controls');\n\n /**\n * player is using the custom HTML controls\n *\n * @event usingcustomcontrols\n * @memberof Player\n * @instance\n * @private\n */\n this.trigger('usingcustomcontrols');\n }\n }\n return this;\n }\n return !!this.usingNativeControls_;\n };\n\n /**\n * Set or get the current MediaError\n *\n * @param {*} err A MediaError or a String/Number to be turned into a MediaError\n * @return {MediaError|null} when getting\n * @return {Player} when setting\n * @method error\n */\n\n Player.prototype.error = function error(err) {\n if (err === undefined) {\n return this.error_ || null;\n }\n\n // restoring to default\n if (err === null) {\n this.error_ = err;\n this.removeClass('vjs-error');\n return this;\n }\n\n // error instance\n if (err instanceof _mediaErrorJs2['default']) {\n this.error_ = err;\n } else {\n this.error_ = new _mediaErrorJs2['default'](err);\n }\n\n // fire an error event on the player\n this.trigger('error');\n\n // add the vjs-error classname to the player\n this.addClass('vjs-error');\n\n // log the name of the error type and any message\n // ie8 just logs \"[object object]\" if you just log the error object\n _utilsLogJs2['default'].error('(CODE:' + this.error_.code + ' ' + _mediaErrorJs2['default'].errorTypes[this.error_.code] + ')', this.error_.message, this.error_);\n\n return this;\n };\n\n /**\n * Returns whether or not the player is in the \"ended\" state.\n *\n * @return {Boolean} True if the player is in the ended state, false if not.\n * @method ended\n */\n\n Player.prototype.ended = function ended() {\n return this.techGet_('ended');\n };\n\n /**\n * Returns whether or not the player is in the \"seeking\" state.\n *\n * @return {Boolean} True if the player is in the seeking state, false if not.\n * @method seeking\n */\n\n Player.prototype.seeking = function seeking() {\n return this.techGet_('seeking');\n };\n\n /**\n * Returns the TimeRanges of the media that are currently available\n * for seeking to.\n *\n * @return {TimeRanges} the seekable intervals of the media timeline\n * @method seekable\n */\n\n Player.prototype.seekable = function seekable() {\n return this.techGet_('seekable');\n };\n\n /**\n * Report user activity\n *\n * @param {Object} event Event object\n * @method reportUserActivity\n */\n\n Player.prototype.reportUserActivity = function reportUserActivity(event) {\n this.userActivity_ = true;\n };\n\n /**\n * Get/set if user is active\n *\n * @param {Boolean} bool Value when setting\n * @return {Boolean} Value if user is active user when getting\n * @method userActive\n */\n\n Player.prototype.userActive = function userActive(bool) {\n if (bool !== undefined) {\n bool = !!bool;\n if (bool !== this.userActive_) {\n this.userActive_ = bool;\n if (bool) {\n // If the user was inactive and is now active we want to reset the\n // inactivity timer\n this.userActivity_ = true;\n this.removeClass('vjs-user-inactive');\n this.addClass('vjs-user-active');\n this.trigger('useractive');\n } else {\n // We're switching the state to inactive manually, so erase any other\n // activity\n this.userActivity_ = false;\n\n // Chrome/Safari/IE have bugs where when you change the cursor it can\n // trigger a mousemove event. This causes an issue when you're hiding\n // the cursor when the user is inactive, and a mousemove signals user\n // activity. Making it impossible to go into inactive mode. Specifically\n // this happens in fullscreen when we really need to hide the cursor.\n //\n // When this gets resolved in ALL browsers it can be removed\n // https://code.google.com/p/chromium/issues/detail?id=103041\n if (this.tech_) {\n this.tech_.one('mousemove', function (e) {\n e.stopPropagation();\n e.preventDefault();\n });\n }\n\n this.removeClass('vjs-user-active');\n this.addClass('vjs-user-inactive');\n this.trigger('userinactive');\n }\n }\n return this;\n }\n return this.userActive_;\n };\n\n /**\n * Listen for user activity based on timeout value\n *\n * @private\n * @method listenForUserActivity_\n */\n\n Player.prototype.listenForUserActivity_ = function listenForUserActivity_() {\n var mouseInProgress = undefined,\n lastMoveX = undefined,\n lastMoveY = undefined;\n\n var handleActivity = Fn.bind(this, this.reportUserActivity);\n\n var handleMouseMove = function handleMouseMove(e) {\n // #1068 - Prevent mousemove spamming\n // Chrome Bug: https://code.google.com/p/chromium/issues/detail?id=366970\n if (e.screenX !== lastMoveX || e.screenY !== lastMoveY) {\n lastMoveX = e.screenX;\n lastMoveY = e.screenY;\n handleActivity();\n }\n };\n\n var handleMouseDown = function handleMouseDown() {\n handleActivity();\n // For as long as the they are touching the device or have their mouse down,\n // we consider them active even if they're not moving their finger or mouse.\n // So we want to continue to update that they are active\n this.clearInterval(mouseInProgress);\n // Setting userActivity=true now and setting the interval to the same time\n // as the activityCheck interval (250) should ensure we never miss the\n // next activityCheck\n mouseInProgress = this.setInterval(handleActivity, 250);\n };\n\n var handleMouseUp = function handleMouseUp(event) {\n handleActivity();\n // Stop the interval that maintains activity if the mouse/touch is down\n this.clearInterval(mouseInProgress);\n };\n\n // Any mouse movement will be considered user activity\n this.on('mousedown', handleMouseDown);\n this.on('mousemove', handleMouseMove);\n this.on('mouseup', handleMouseUp);\n\n // Listen for keyboard navigation\n // Shouldn't need to use inProgress interval because of key repeat\n this.on('keydown', handleActivity);\n this.on('keyup', handleActivity);\n\n // Run an interval every 250 milliseconds instead of stuffing everything into\n // the mousemove/touchmove function itself, to prevent performance degradation.\n // `this.reportUserActivity` simply sets this.userActivity_ to true, which\n // then gets picked up by this loop\n // http://ejohn.org/blog/learning-from-twitter/\n var inactivityTimeout = undefined;\n var activityCheck = this.setInterval(function () {\n // Check to see if mouse/touch activity has happened\n if (this.userActivity_) {\n // Reset the activity tracker\n this.userActivity_ = false;\n\n // If the user state was inactive, set the state to active\n this.userActive(true);\n\n // Clear any existing inactivity timeout to start the timer over\n this.clearTimeout(inactivityTimeout);\n\n var timeout = this.options_['inactivityTimeout'];\n if (timeout > 0) {\n // In milliseconds, if no more activity has occurred the\n // user will be considered inactive\n inactivityTimeout = this.setTimeout(function () {\n // Protect against the case where the inactivityTimeout can trigger just\n // before the next user activity is picked up by the activityCheck loop\n // causing a flicker\n if (!this.userActivity_) {\n this.userActive(false);\n }\n }, timeout);\n }\n }\n }, 250);\n };\n\n /**\n * Gets or sets the current playback rate. A playback rate of\n * 1.0 represents normal speed and 0.5 would indicate half-speed\n * playback, for instance.\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\n *\n * @param {Number} rate New playback rate to set.\n * @return {Number} Returns the new playback rate when setting\n * @return {Number} Returns the current playback rate when getting\n * @method playbackRate\n */\n\n Player.prototype.playbackRate = function playbackRate(rate) {\n if (rate !== undefined) {\n this.techCall_('setPlaybackRate', rate);\n return this;\n }\n\n if (this.tech_ && this.tech_['featuresPlaybackRate']) {\n return this.techGet_('playbackRate');\n } else {\n return 1.0;\n }\n };\n\n /**\n * Gets or sets the audio flag\n *\n * @param {Boolean} bool True signals that this is an audio player.\n * @return {Boolean} Returns true if player is audio, false if not when getting\n * @return {Player} Returns the player if setting\n * @private\n * @method isAudio\n */\n\n Player.prototype.isAudio = function isAudio(bool) {\n if (bool !== undefined) {\n this.isAudio_ = !!bool;\n return this;\n }\n\n return !!this.isAudio_;\n };\n\n /**\n * Returns the current state of network activity for the element, from\n * the codes in the list below.\n * - NETWORK_EMPTY (numeric value 0)\n * The element has not yet been initialised. All attributes are in\n * their initial states.\n * - NETWORK_IDLE (numeric value 1)\n * The element's resource selection algorithm is active and has\n * selected a resource, but it is not actually using the network at\n * this time.\n * - NETWORK_LOADING (numeric value 2)\n * The user agent is actively trying to download data.\n * - NETWORK_NO_SOURCE (numeric value 3)\n * The element's resource selection algorithm is active, but it has\n * not yet found a resource to use.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\n * @return {Number} the current network activity state\n * @method networkState\n */\n\n Player.prototype.networkState = function networkState() {\n return this.techGet_('networkState');\n };\n\n /**\n * Returns a value that expresses the current state of the element\n * with respect to rendering the current playback position, from the\n * codes in the list below.\n * - HAVE_NOTHING (numeric value 0)\n * No information regarding the media resource is available.\n * - HAVE_METADATA (numeric value 1)\n * Enough of the resource has been obtained that the duration of the\n * resource is available.\n * - HAVE_CURRENT_DATA (numeric value 2)\n * Data for the immediate current playback position is available.\n * - HAVE_FUTURE_DATA (numeric value 3)\n * Data for the immediate current playback position is available, as\n * well as enough data for the user agent to advance the current\n * playback position in the direction of playback.\n * - HAVE_ENOUGH_DATA (numeric value 4)\n * The user agent estimates that enough data is available for\n * playback to proceed uninterrupted.\n *\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\n * @return {Number} the current playback rendering state\n * @method readyState\n */\n\n Player.prototype.readyState = function readyState() {\n return this.techGet_('readyState');\n };\n\n /*\n * Text tracks are tracks of timed text events.\n * Captions - text displayed over the video for the hearing impaired\n * Subtitles - text displayed over the video for those who don't understand language in the video\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\n * Descriptions (not supported yet) - audio descriptions that are read back to the user by a screen reading device\n */\n\n /**\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\n *\n * @return {Array} Array of track objects\n * @method textTracks\n */\n\n Player.prototype.textTracks = function textTracks() {\n // cannot use techGet_ directly because it checks to see whether the tech is ready.\n // Flash is unlikely to be ready in time but textTracks should still work.\n return this.tech_ && this.tech_['textTracks']();\n };\n\n /**\n * Get an array of remote text tracks\n *\n * @return {Array}\n * @method remoteTextTracks\n */\n\n Player.prototype.remoteTextTracks = function remoteTextTracks() {\n return this.tech_ && this.tech_['remoteTextTracks']();\n };\n\n /**\n * Add a text track\n * In addition to the W3C settings we allow adding additional info through options.\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\n *\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\n * @param {String=} label Optional label\n * @param {String=} language Optional language\n * @method addTextTrack\n */\n\n Player.prototype.addTextTrack = function addTextTrack(kind, label, language) {\n return this.tech_ && this.tech_['addTextTrack'](kind, label, language);\n };\n\n /**\n * Add a remote text track\n *\n * @param {Object} options Options for remote text track\n * @method addRemoteTextTrack\n */\n\n Player.prototype.addRemoteTextTrack = function addRemoteTextTrack(options) {\n return this.tech_ && this.tech_['addRemoteTextTrack'](options);\n };\n\n /**\n * Remove a remote text track\n *\n * @param {Object} track Remote text track to remove\n * @method removeRemoteTextTrack\n */\n\n Player.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {\n this.tech_ && this.tech_['removeRemoteTextTrack'](track);\n };\n\n /**\n * Get video width\n *\n * @return {Number} Video width\n * @method videoWidth\n */\n\n Player.prototype.videoWidth = function videoWidth() {\n return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0;\n };\n\n /**\n * Get video height\n *\n * @return {Number} Video height\n * @method videoHeight\n */\n\n Player.prototype.videoHeight = function videoHeight() {\n return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0;\n };\n\n // Methods to add support for\n // initialTime: function(){ return this.techCall_('initialTime'); },\n // startOffsetTime: function(){ return this.techCall_('startOffsetTime'); },\n // played: function(){ return this.techCall_('played'); },\n // videoTracks: function(){ return this.techCall_('videoTracks'); },\n // audioTracks: function(){ return this.techCall_('audioTracks'); },\n // defaultPlaybackRate: function(){ return this.techCall_('defaultPlaybackRate'); },\n // defaultMuted: function(){ return this.techCall_('defaultMuted'); }\n\n /**\n * The player's language code\n * NOTE: The language should be set in the player options if you want the\n * the controls to be built with a specific language. Changing the lanugage\n * later will not update controls text.\n *\n * @param {String} code The locale string\n * @return {String} The locale string when getting\n * @return {Player} self when setting\n * @method language\n */\n\n Player.prototype.language = function language(code) {\n if (code === undefined) {\n return this.language_;\n }\n\n this.language_ = ('' + code).toLowerCase();\n return this;\n };\n\n /**\n * Get the player's language dictionary\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\n * Languages specified directly in the player options have precedence\n *\n * @return {Array} Array of languages\n * @method languages\n */\n\n Player.prototype.languages = function languages() {\n return _utilsMergeOptionsJs2['default'](Player.prototype.options_.languages, this.languages_);\n };\n\n /**\n * Converts track info to JSON\n *\n * @return {Object} JSON object of options\n * @method toJSON\n */\n\n Player.prototype.toJSON = function toJSON() {\n var options = _utilsMergeOptionsJs2['default'](this.options_);\n var tracks = options.tracks;\n\n options.tracks = [];\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n\n // deep merge tracks and null out player so no circular references\n track = _utilsMergeOptionsJs2['default'](track);\n track.player = undefined;\n options.tracks[i] = track;\n }\n\n return options;\n };\n\n /**\n * Gets tag settings\n *\n * @param {Element} tag The player tag\n * @return {Array} An array of sources and track objects\n * @static\n * @method getTagSettings\n */\n\n Player.getTagSettings = function getTagSettings(tag) {\n var baseOptions = {\n 'sources': [],\n 'tracks': []\n };\n\n var tagOptions = Dom.getElAttributes(tag);\n var dataSetup = tagOptions['data-setup'];\n\n // Check if data-setup attr exists.\n if (dataSetup !== null) {\n // Parse options JSON\n\n var _safeParseTuple = _safeJsonParseTuple2['default'](dataSetup || '{}');\n\n var err = _safeParseTuple[0];\n var data = _safeParseTuple[1];\n\n if (err) {\n _utilsLogJs2['default'].error(err);\n }\n _objectAssign2['default'](tagOptions, data);\n }\n\n _objectAssign2['default'](baseOptions, tagOptions);\n\n // Get tag children settings\n if (tag.hasChildNodes()) {\n var children = tag.childNodes;\n\n for (var i = 0, j = children.length; i < j; i++) {\n var child = children[i];\n // Change case needed: http://ejohn.org/blog/nodename-case-sensitivity/\n var childName = child.nodeName.toLowerCase();\n if (childName === 'source') {\n baseOptions.sources.push(Dom.getElAttributes(child));\n } else if (childName === 'track') {\n baseOptions.tracks.push(Dom.getElAttributes(child));\n }\n }\n }\n\n return baseOptions;\n };\n\n return Player;\n})(_componentJs2['default']);\n\nPlayer.players = {};\n\nvar navigator = _globalWindow2['default'].navigator;\n/*\n * Player instance options, surfaced using options\n * options = Player.prototype.options_\n * Make changes in options, not here.\n *\n * @type {Object}\n * @private\n */\nPlayer.prototype.options_ = {\n // Default order of fallback technology\n techOrder: ['html5', 'flash'],\n // techOrder: ['flash','html5'],\n\n html5: {},\n flash: {},\n\n // defaultVolume: 0.85,\n defaultVolume: 0.00, // The freakin seaguls are driving me crazy!\n\n // default inactivity timeout\n inactivityTimeout: 2000,\n\n // default playback rates\n playbackRates: [],\n // Add playback rate selection by adding rates\n // 'playbackRates': [0.5, 1, 1.5, 2],\n\n // Included control sets\n children: ['mediaLoader', 'posterImage', 'textTrackDisplay', 'loadingSpinner', 'bigPlayButton', 'controlBar', 'errorDisplay', 'textTrackSettings'],\n\n language: _globalDocument2['default'].getElementsByTagName('html')[0].getAttribute('lang') || navigator.languages && navigator.languages[0] || navigator.userLanguage || navigator.language || 'en',\n\n // locales and their language translations\n languages: {},\n\n // Default message to show when a video cannot be played.\n notSupportedMessage: 'No compatible source was found for this video.'\n};\n\n/**\n * Fired when the player has initial duration and dimension information\n *\n * @event loadedmetadata\n */\nPlayer.prototype.handleLoadedMetaData_;\n\n/**\n * Fired when the player has downloaded data at the current playback position\n *\n * @event loadeddata\n */\nPlayer.prototype.handleLoadedData_;\n\n/**\n * Fired when the user is active, e.g. moves the mouse over the player\n *\n * @event useractive\n */\nPlayer.prototype.handleUserActive_;\n\n/**\n * Fired when the user is inactive, e.g. a short delay after the last mouse move or control interaction\n *\n * @event userinactive\n */\nPlayer.prototype.handleUserInactive_;\n\n/**\n * Fired when the current playback position has changed *\n * During playback this is fired every 15-250 milliseconds, depending on the\n * playback technology in use.\n *\n * @event timeupdate\n */\nPlayer.prototype.handleTimeUpdate_;\n\n/**\n * Fired when the volume changes\n *\n * @event volumechange\n */\nPlayer.prototype.handleVolumeChange_;\n\n/**\n * Fired when an error occurs\n *\n * @event error\n */\nPlayer.prototype.handleError_;\n\nPlayer.prototype.flexNotSupported_ = function () {\n var elem = _globalDocument2['default'].createElement('i');\n\n // Note: We don't actually use flexBasis (or flexOrder), but it's one of the more\n // common flex features that we can rely on when checking for flex support.\n return !('flexBasis' in elem.style || 'webkitFlexBasis' in elem.style || 'mozFlexBasis' in elem.style || 'msFlexBasis' in elem.style || 'msFlexOrder' in elem.style) /* IE10-specific (2012 flex spec) */;\n};\n\n_componentJs2['default'].registerComponent('Player', Player);\nexports['default'] = Player;\nmodule.exports = exports['default'];\n// If empty string, make it a parsable json object.\n\n},{\"./big-play-button.js\":56,\"./component.js\":58,\"./control-bar/control-bar.js\":59,\"./error-display.js\":89,\"./fullscreen-api.js\":92,\"./loading-spinner.js\":93,\"./media-error.js\":94,\"./poster-image.js\":100,\"./tech/html5.js\":105,\"./tech/loader.js\":106,\"./tracks/text-track-display.js\":109,\"./tracks/text-track-list-converter.js\":111,\"./tracks/text-track-settings.js\":113,\"./utils/browser.js\":115,\"./utils/buffer.js\":116,\"./utils/dom.js\":118,\"./utils/events.js\":119,\"./utils/fn.js\":120,\"./utils/guid.js\":122,\"./utils/log.js\":123,\"./utils/merge-options.js\":124,\"./utils/stylesheet.js\":125,\"./utils/time-ranges.js\":126,\"./utils/to-title-case.js\":127,\"global/document\":1,\"global/window\":2,\"object.assign\":43,\"safe-json-parse/tuple\":48}],99:[function(_dereq_,module,exports){\n/**\n * @file plugins.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _playerJs = _dereq_('./player.js');\n\nvar _playerJs2 = _interopRequireDefault(_playerJs);\n\n/**\n * The method for registering a video.js plugin\n *\n * @param {String} name The name of the plugin\n * @param {Function} init The function that is run when the player inits\n * @method plugin\n */\nvar plugin = function plugin(name, init) {\n _playerJs2['default'].prototype[name] = init;\n};\n\nexports['default'] = plugin;\nmodule.exports = exports['default'];\n\n},{\"./player.js\":98}],100:[function(_dereq_,module,exports){\n/**\n * @file poster-image.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _buttonJs = _dereq_('./button.js');\n\nvar _buttonJs2 = _interopRequireDefault(_buttonJs);\n\nvar _componentJs = _dereq_('./component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsFnJs = _dereq_('./utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsDomJs = _dereq_('./utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsBrowserJs = _dereq_('./utils/browser.js');\n\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\n\n/**\n * The component that handles showing the poster image.\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Button\n * @class PosterImage\n */\n\nvar PosterImage = (function (_Button) {\n _inherits(PosterImage, _Button);\n\n function PosterImage(player, options) {\n _classCallCheck(this, PosterImage);\n\n _Button.call(this, player, options);\n\n this.update();\n player.on('posterchange', Fn.bind(this, this.update));\n }\n\n /**\n * Clean up the poster image\n *\n * @method dispose\n */\n\n PosterImage.prototype.dispose = function dispose() {\n this.player().off('posterchange', this.update);\n _Button.prototype.dispose.call(this);\n };\n\n /**\n * Create the poster's image element\n *\n * @return {Element}\n * @method createEl\n */\n\n PosterImage.prototype.createEl = function createEl() {\n var el = Dom.createEl('div', {\n className: 'vjs-poster',\n\n // Don't want poster to be tabbable.\n tabIndex: -1\n });\n\n // To ensure the poster image resizes while maintaining its original aspect\n // ratio, use a div with `background-size` when available. For browsers that\n // do not support `background-size` (e.g. IE8), fall back on using a regular\n // img element.\n if (!browser.BACKGROUND_SIZE_SUPPORTED) {\n this.fallbackImg_ = Dom.createEl('img');\n el.appendChild(this.fallbackImg_);\n }\n\n return el;\n };\n\n /**\n * Event handler for updates to the player's poster source\n *\n * @method update\n */\n\n PosterImage.prototype.update = function update() {\n var url = this.player().poster();\n\n this.setSrc(url);\n\n // If there's no poster source we should display:none on this component\n // so it's not still clickable or right-clickable\n if (url) {\n this.show();\n } else {\n this.hide();\n }\n };\n\n /**\n * Set the poster source depending on the display method\n *\n * @param {String} url The URL to the poster source\n * @method setSrc\n */\n\n PosterImage.prototype.setSrc = function setSrc(url) {\n if (this.fallbackImg_) {\n this.fallbackImg_.src = url;\n } else {\n var backgroundImage = '';\n // Any falsey values should stay as an empty string, otherwise\n // this will throw an extra error\n if (url) {\n backgroundImage = 'url(\"' + url + '\")';\n }\n\n this.el_.style.backgroundImage = backgroundImage;\n }\n };\n\n /**\n * Event handler for clicks on the poster image\n *\n * @method handleClick\n */\n\n PosterImage.prototype.handleClick = function handleClick() {\n // We don't want a click to trigger playback when controls are disabled\n // but CSS should be hiding the poster to prevent that from happening\n if (this.player_.paused()) {\n this.player_.play();\n } else {\n this.player_.pause();\n }\n };\n\n return PosterImage;\n})(_buttonJs2['default']);\n\n_componentJs2['default'].registerComponent('PosterImage', PosterImage);\nexports['default'] = PosterImage;\nmodule.exports = exports['default'];\n\n},{\"./button.js\":57,\"./component.js\":58,\"./utils/browser.js\":115,\"./utils/dom.js\":118,\"./utils/fn.js\":120}],101:[function(_dereq_,module,exports){\n/**\n * @file setup.js\n *\n * Functions for automatically setting up a player\n * based on the data-setup attribute of the video tag\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utilsEventsJs = _dereq_('./utils/events.js');\n\nvar Events = _interopRequireWildcard(_utilsEventsJs);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _windowLoaded = false;\nvar videojs = undefined;\n\n// Automatically set up any tags that have a data-setup attribute\nvar autoSetup = function autoSetup() {\n // One day, when we stop supporting IE8, go back to this, but in the meantime...*hack hack hack*\n // var vids = Array.prototype.slice.call(document.getElementsByTagName('video'));\n // var audios = Array.prototype.slice.call(document.getElementsByTagName('audio'));\n // var mediaEls = vids.concat(audios);\n\n // Because IE8 doesn't support calling slice on a node list, we need to loop through each list of elements\n // to build up a new, combined list of elements.\n var vids = _globalDocument2['default'].getElementsByTagName('video');\n var audios = _globalDocument2['default'].getElementsByTagName('audio');\n var mediaEls = [];\n if (vids && vids.length > 0) {\n for (var i = 0, e = vids.length; i < e; i++) {\n mediaEls.push(vids[i]);\n }\n }\n if (audios && audios.length > 0) {\n for (var i = 0, e = audios.length; i < e; i++) {\n mediaEls.push(audios[i]);\n }\n }\n\n // Check if any media elements exist\n if (mediaEls && mediaEls.length > 0) {\n\n for (var i = 0, e = mediaEls.length; i < e; i++) {\n var mediaEl = mediaEls[i];\n\n // Check if element exists, has getAttribute func.\n // IE seems to consider typeof el.getAttribute == 'object' instead of 'function' like expected, at least when loading the player immediately.\n if (mediaEl && mediaEl.getAttribute) {\n\n // Make sure this player hasn't already been set up.\n if (mediaEl['player'] === undefined) {\n var options = mediaEl.getAttribute('data-setup');\n\n // Check if data-setup attr exists.\n // We only auto-setup if they've added the data-setup attr.\n if (options !== null) {\n // Create new video.js instance.\n var player = videojs(mediaEl);\n }\n }\n\n // If getAttribute isn't defined, we need to wait for the DOM.\n } else {\n autoSetupTimeout(1);\n break;\n }\n }\n\n // No videos were found, so keep looping unless page is finished loading.\n } else if (!_windowLoaded) {\n autoSetupTimeout(1);\n }\n};\n\n// Pause to let the DOM keep processing\nvar autoSetupTimeout = function autoSetupTimeout(wait, vjs) {\n videojs = vjs;\n setTimeout(autoSetup, wait);\n};\n\nif (_globalDocument2['default'].readyState === 'complete') {\n _windowLoaded = true;\n} else {\n Events.one(_globalWindow2['default'], 'load', function () {\n _windowLoaded = true;\n });\n}\n\nvar hasLoaded = function hasLoaded() {\n return _windowLoaded;\n};\n\nexports.autoSetup = autoSetup;\nexports.autoSetupTimeout = autoSetupTimeout;\nexports.hasLoaded = hasLoaded;\n\n},{\"./utils/events.js\":119,\"global/document\":1,\"global/window\":2}],102:[function(_dereq_,module,exports){\n/**\n * @file slider.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _componentJs = _dereq_('../component.js');\n\nvar _componentJs2 = _interopRequireDefault(_componentJs);\n\nvar _utilsDomJs = _dereq_('../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _objectAssign = _dereq_('object.assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\n/**\n * The base functionality for sliders like the volume bar and seek bar\n *\n * @param {Player|Object} player\n * @param {Object=} options\n * @extends Component\n * @class Slider\n */\n\nvar Slider = (function (_Component) {\n _inherits(Slider, _Component);\n\n function Slider(player, options) {\n _classCallCheck(this, Slider);\n\n _Component.call(this, player, options);\n\n // Set property names to bar to match with the child Slider class is looking for\n this.bar = this.getChild(this.options_.barName);\n\n // Set a horizontal or vertical class on the slider depending on the slider type\n this.vertical(!!this.options_.vertical);\n\n this.on('mousedown', this.handleMouseDown);\n this.on('touchstart', this.handleMouseDown);\n this.on('focus', this.handleFocus);\n this.on('blur', this.handleBlur);\n this.on('click', this.handleClick);\n\n this.on(player, 'controlsvisible', this.update);\n this.on(player, this.playerEvent, this.update);\n }\n\n /**\n * Create the component's DOM element\n *\n * @param {String} type Type of element to create\n * @param {Object=} props List of properties in Object form\n * @return {Element}\n * @method createEl\n */\n\n Slider.prototype.createEl = function createEl(type) {\n var props = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n var attributes = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\n\n // Add the slider element class to all sub classes\n props.className = props.className + ' vjs-slider';\n props = _objectAssign2['default']({\n tabIndex: 0\n }, props);\n\n attributes = _objectAssign2['default']({\n 'role': 'slider',\n 'aria-valuenow': 0,\n 'aria-valuemin': 0,\n 'aria-valuemax': 100,\n tabIndex: 0\n }, attributes);\n\n return _Component.prototype.createEl.call(this, type, props, attributes);\n };\n\n /**\n * Handle mouse down on slider\n *\n * @param {Object} event Mouse down event object\n * @method handleMouseDown\n */\n\n Slider.prototype.handleMouseDown = function handleMouseDown(event) {\n event.preventDefault();\n Dom.blockTextSelection();\n\n this.addClass('vjs-sliding');\n this.trigger('slideractive');\n\n this.on(_globalDocument2['default'], 'mousemove', this.handleMouseMove);\n this.on(_globalDocument2['default'], 'mouseup', this.handleMouseUp);\n this.on(_globalDocument2['default'], 'touchmove', this.handleMouseMove);\n this.on(_globalDocument2['default'], 'touchend', this.handleMouseUp);\n\n this.handleMouseMove(event);\n };\n\n /**\n * To be overridden by a subclass\n *\n * @method handleMouseMove\n */\n\n Slider.prototype.handleMouseMove = function handleMouseMove() {};\n\n /**\n * Handle mouse up on Slider\n *\n * @method handleMouseUp\n */\n\n Slider.prototype.handleMouseUp = function handleMouseUp() {\n Dom.unblockTextSelection();\n\n this.removeClass('vjs-sliding');\n this.trigger('sliderinactive');\n\n this.off(_globalDocument2['default'], 'mousemove', this.handleMouseMove);\n this.off(_globalDocument2['default'], 'mouseup', this.handleMouseUp);\n this.off(_globalDocument2['default'], 'touchmove', this.handleMouseMove);\n this.off(_globalDocument2['default'], 'touchend', this.handleMouseUp);\n\n this.update();\n };\n\n /**\n * Update slider\n *\n * @method update\n */\n\n Slider.prototype.update = function update() {\n // In VolumeBar init we have a setTimeout for update that pops and update to the end of the\n // execution stack. The player is destroyed before then update will cause an error\n if (!this.el_) return;\n\n // If scrubbing, we could use a cached value to make the handle keep up with the user's mouse.\n // On HTML5 browsers scrubbing is really smooth, but some flash players are slow, so we might want to utilize this later.\n // var progress = (this.player_.scrubbing()) ? this.player_.getCache().currentTime / this.player_.duration() : this.player_.currentTime() / this.player_.duration();\n var progress = this.getPercent();\n var bar = this.bar;\n\n // If there's no bar...\n if (!bar) return;\n\n // Protect against no duration and other division issues\n if (typeof progress !== 'number' || progress !== progress || progress < 0 || progress === Infinity) {\n progress = 0;\n }\n\n // Convert to a percentage for setting\n var percentage = (progress * 100).toFixed(2) + '%';\n\n // Set the new bar width or height\n if (this.vertical()) {\n bar.el().style.height = percentage;\n } else {\n bar.el().style.width = percentage;\n }\n };\n\n /**\n * Calculate distance for slider\n *\n * @param {Object} event Event object\n * @method calculateDistance\n */\n\n Slider.prototype.calculateDistance = function calculateDistance(event) {\n var position = Dom.getPointerPosition(this.el_, event);\n if (this.vertical()) {\n return position.y;\n }\n return position.x;\n };\n\n /**\n * Handle on focus for slider\n *\n * @method handleFocus\n */\n\n Slider.prototype.handleFocus = function handleFocus() {\n this.on(_globalDocument2['default'], 'keydown', this.handleKeyPress);\n };\n\n /**\n * Handle key press for slider\n *\n * @param {Object} event Event object\n * @method handleKeyPress\n */\n\n Slider.prototype.handleKeyPress = function handleKeyPress(event) {\n if (event.which === 37 || event.which === 40) {\n // Left and Down Arrows\n event.preventDefault();\n this.stepBack();\n } else if (event.which === 38 || event.which === 39) {\n // Up and Right Arrows\n event.preventDefault();\n this.stepForward();\n }\n };\n\n /**\n * Handle on blur for slider\n *\n * @method handleBlur\n */\n\n Slider.prototype.handleBlur = function handleBlur() {\n this.off(_globalDocument2['default'], 'keydown', this.handleKeyPress);\n };\n\n /**\n * Listener for click events on slider, used to prevent clicks\n * from bubbling up to parent elements like button menus.\n *\n * @param {Object} event Event object\n * @method handleClick\n */\n\n Slider.prototype.handleClick = function handleClick(event) {\n event.stopImmediatePropagation();\n event.preventDefault();\n };\n\n /**\n * Get/set if slider is horizontal for vertical\n *\n * @param {Boolean} bool True if slider is vertical, false is horizontal\n * @return {Boolean} True if slider is vertical, false is horizontal\n * @method vertical\n */\n\n Slider.prototype.vertical = function vertical(bool) {\n if (bool === undefined) {\n return this.vertical_ || false;\n }\n\n this.vertical_ = !!bool;\n\n if (this.vertical_) {\n this.addClass('vjs-slider-vertical');\n } else {\n this.addClass('vjs-slider-horizontal');\n }\n\n return this;\n };\n\n return Slider;\n})(_componentJs2['default']);\n\n_componentJs2['default'].registerComponent('Slider', Slider);\nexports['default'] = Slider;\nmodule.exports = exports['default'];\n\n},{\"../component.js\":58,\"../utils/dom.js\":118,\"global/document\":1,\"object.assign\":43}],103:[function(_dereq_,module,exports){\n/**\n * @file flash-rtmp.js\n */\n'use strict';\n\nexports.__esModule = true;\nfunction FlashRtmpDecorator(Flash) {\n Flash.streamingFormats = {\n 'rtmp/mp4': 'MP4',\n 'rtmp/flv': 'FLV'\n };\n\n Flash.streamFromParts = function (connection, stream) {\n return connection + '&' + stream;\n };\n\n Flash.streamToParts = function (src) {\n var parts = {\n connection: '',\n stream: ''\n };\n\n if (!src) return parts;\n\n // Look for the normal URL separator we expect, '&'.\n // If found, we split the URL into two pieces around the\n // first '&'.\n var connEnd = src.indexOf('&');\n var streamBegin = undefined;\n if (connEnd !== -1) {\n streamBegin = connEnd + 1;\n } else {\n // If there's not a '&', we use the last '/' as the delimiter.\n connEnd = streamBegin = src.lastIndexOf('/') + 1;\n if (connEnd === 0) {\n // really, there's not a '/'?\n connEnd = streamBegin = src.length;\n }\n }\n parts.connection = src.substring(0, connEnd);\n parts.stream = src.substring(streamBegin, src.length);\n\n return parts;\n };\n\n Flash.isStreamingType = function (srcType) {\n return srcType in Flash.streamingFormats;\n };\n\n // RTMP has four variations, any string starting\n // with one of these protocols should be valid\n Flash.RTMP_RE = /^rtmp[set]?:\\/\\//i;\n\n Flash.isStreamingSrc = function (src) {\n return Flash.RTMP_RE.test(src);\n };\n\n /**\n * A source handler for RTMP urls\n * @type {Object}\n */\n Flash.rtmpSourceHandler = {};\n\n /**\n * Check Flash can handle the source natively\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n Flash.rtmpSourceHandler.canHandleSource = function (source) {\n if (Flash.isStreamingType(source.type) || Flash.isStreamingSrc(source.src)) {\n return 'maybe';\n }\n\n return '';\n };\n\n /**\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\n Flash.rtmpSourceHandler.handleSource = function (source, tech) {\n var srcParts = Flash.streamToParts(source.src);\n\n tech['setRtmpConnection'](srcParts.connection);\n tech['setRtmpStream'](srcParts.stream);\n };\n\n // Register the native source handler\n Flash.registerSourceHandler(Flash.rtmpSourceHandler);\n\n return Flash;\n}\n\nexports['default'] = FlashRtmpDecorator;\nmodule.exports = exports['default'];\n\n},{}],104:[function(_dereq_,module,exports){\n/**\n * @file flash.js\n * VideoJS-SWF - Custom Flash Player with HTML5-ish API\n * https://github.com/zencoder/video-js-swf\n * Not using setupTriggers. Using global onEvent func to distribute events\n */\n\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _tech = _dereq_('./tech');\n\nvar _tech2 = _interopRequireDefault(_tech);\n\nvar _utilsDomJs = _dereq_('../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsUrlJs = _dereq_('../utils/url.js');\n\nvar Url = _interopRequireWildcard(_utilsUrlJs);\n\nvar _utilsTimeRangesJs = _dereq_('../utils/time-ranges.js');\n\nvar _flashRtmp = _dereq_('./flash-rtmp');\n\nvar _flashRtmp2 = _interopRequireDefault(_flashRtmp);\n\nvar _component = _dereq_('../component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _objectAssign = _dereq_('object.assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar navigator = _globalWindow2['default'].navigator;\n/**\n * Flash Media Controller - Wrapper for fallback SWF API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Flash\n */\n\nvar Flash = (function (_Tech) {\n _inherits(Flash, _Tech);\n\n function Flash(options, ready) {\n _classCallCheck(this, Flash);\n\n _Tech.call(this, options, ready);\n\n // Set the source when ready\n if (options.source) {\n this.ready(function () {\n this.setSource(options.source);\n }, true);\n }\n\n // Having issues with Flash reloading on certain page actions (hide/resize/fullscreen) in certain browsers\n // This allows resetting the playhead when we catch the reload\n if (options.startTime) {\n this.ready(function () {\n this.load();\n this.play();\n this.currentTime(options.startTime);\n }, true);\n }\n\n // Add global window functions that the swf expects\n // A 4.x workflow we weren't able to solve for in 5.0\n // because of the need to hard code these functions\n // into the swf for security reasons\n _globalWindow2['default'].videojs = _globalWindow2['default'].videojs || {};\n _globalWindow2['default'].videojs.Flash = _globalWindow2['default'].videojs.Flash || {};\n _globalWindow2['default'].videojs.Flash.onReady = Flash.onReady;\n _globalWindow2['default'].videojs.Flash.onEvent = Flash.onEvent;\n _globalWindow2['default'].videojs.Flash.onError = Flash.onError;\n\n this.on('seeked', function () {\n this.lastSeekTarget_ = undefined;\n });\n }\n\n // Create setters and getters for attributes\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n Flash.prototype.createEl = function createEl() {\n var options = this.options_;\n\n // If video.js is hosted locally you should also set the location\n // for the hosted swf, which should be relative to the page (not video.js)\n // Otherwise this adds a CDN url.\n // The CDN also auto-adds a swf URL for that specific version.\n if (!options.swf) {\n options.swf = '//vjs.zencdn.net/swf/5.0.0-rc1/video-js.swf';\n }\n\n // Generate ID for swf object\n var objId = options.techId;\n\n // Merge default flashvars with ones passed in to init\n var flashVars = _objectAssign2['default']({\n\n // SWF Callback Functions\n 'readyFunction': 'videojs.Flash.onReady',\n 'eventProxyFunction': 'videojs.Flash.onEvent',\n 'errorEventProxyFunction': 'videojs.Flash.onError',\n\n // Player Settings\n 'autoplay': options.autoplay,\n 'preload': options.preload,\n 'loop': options.loop,\n 'muted': options.muted\n\n }, options.flashVars);\n\n // Merge default parames with ones passed in\n var params = _objectAssign2['default']({\n 'wmode': 'opaque', // Opaque is needed to overlay controls, but can affect playback performance\n 'bgcolor': '#000000' // Using bgcolor prevents a white flash when the object is loading\n }, options.params);\n\n // Merge default attributes with ones passed in\n var attributes = _objectAssign2['default']({\n 'id': objId,\n 'name': objId, // Both ID and Name needed or swf to identify itself\n 'class': 'vjs-tech'\n }, options.attributes);\n\n this.el_ = Flash.embed(options.swf, flashVars, params, attributes);\n this.el_.tech = this;\n\n return this.el_;\n };\n\n /**\n * Play for flash tech\n *\n * @method play\n */\n\n Flash.prototype.play = function play() {\n if (this.ended()) {\n this.setCurrentTime(0);\n }\n this.el_.vjs_play();\n };\n\n /**\n * Pause for flash tech\n *\n * @method pause\n */\n\n Flash.prototype.pause = function pause() {\n this.el_.vjs_pause();\n };\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n\n Flash.prototype.src = function src(_src) {\n if (_src === undefined) {\n return this.currentSrc();\n }\n\n // Setting src through `src` not `setSrc` will be deprecated\n return this.setSrc(_src);\n };\n\n /**\n * Set video\n *\n * @param {Object=} src Source object\n * @deprecated\n * @method setSrc\n */\n\n Flash.prototype.setSrc = function setSrc(src) {\n // Make sure source URL is absolute.\n src = Url.getAbsoluteURL(src);\n this.el_.vjs_src(src);\n\n // Currently the SWF doesn't autoplay if you load a source later.\n // e.g. Load player w/ no source, wait 2s, set src.\n if (this.autoplay()) {\n var tech = this;\n this.setTimeout(function () {\n tech.play();\n }, 0);\n }\n };\n\n /**\n * Returns true if the tech is currently seeking.\n * @return {boolean} true if seeking\n */\n\n Flash.prototype.seeking = function seeking() {\n return this.lastSeekTarget_ !== undefined;\n };\n\n /**\n * Set current time\n *\n * @param {Number} time Current time of video\n * @method setCurrentTime\n */\n\n Flash.prototype.setCurrentTime = function setCurrentTime(time) {\n var seekable = this.seekable();\n if (seekable.length) {\n // clamp to the current seekable range\n time = time > seekable.start(0) ? time : seekable.start(0);\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\n\n this.lastSeekTarget_ = time;\n this.trigger('seeking');\n this.el_.vjs_setProperty('currentTime', time);\n _Tech.prototype.setCurrentTime.call(this);\n }\n };\n\n /**\n * Get current time\n *\n * @param {Number=} time Current time of video\n * @return {Number} Current time\n * @method currentTime\n */\n\n Flash.prototype.currentTime = function currentTime(time) {\n // when seeking make the reported time keep up with the requested time\n // by reading the time we're seeking to\n if (this.seeking()) {\n return this.lastSeekTarget_ || 0;\n }\n return this.el_.vjs_getProperty('currentTime');\n };\n\n /**\n * Get current source\n *\n * @method currentSrc\n */\n\n Flash.prototype.currentSrc = function currentSrc() {\n if (this.currentSource_) {\n return this.currentSource_.src;\n } else {\n return this.el_.vjs_getProperty('currentSrc');\n }\n };\n\n /**\n * Load media into player\n *\n * @method load\n */\n\n Flash.prototype.load = function load() {\n this.el_.vjs_load();\n };\n\n /**\n * Get poster\n *\n * @method poster\n */\n\n Flash.prototype.poster = function poster() {\n this.el_.vjs_getProperty('poster');\n };\n\n /**\n * Poster images are not handled by the Flash tech so make this a no-op\n *\n * @method setPoster\n */\n\n Flash.prototype.setPoster = function setPoster() {};\n\n /**\n * Determine if can seek in media\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n\n Flash.prototype.seekable = function seekable() {\n var duration = this.duration();\n if (duration === 0) {\n return _utilsTimeRangesJs.createTimeRange();\n }\n return _utilsTimeRangesJs.createTimeRange(0, duration);\n };\n\n /**\n * Get buffered time range\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n\n Flash.prototype.buffered = function buffered() {\n var ranges = this.el_.vjs_getProperty('buffered');\n if (ranges.length === 0) {\n return _utilsTimeRangesJs.createTimeRange();\n }\n return _utilsTimeRangesJs.createTimeRange(ranges[0][0], ranges[0][1]);\n };\n\n /**\n * Get fullscreen support -\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method supportsFullScreen\n */\n\n Flash.prototype.supportsFullScreen = function supportsFullScreen() {\n return false; // Flash does not allow fullscreen through javascript\n };\n\n /**\n * Request to enter fullscreen\n * Flash does not allow fullscreen through javascript\n * so always returns false\n *\n * @return {Boolean} false\n * @method enterFullScreen\n */\n\n Flash.prototype.enterFullScreen = function enterFullScreen() {\n return false;\n };\n\n return Flash;\n})(_tech2['default']);\n\nvar _api = Flash.prototype;\nvar _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\nvar _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\n\nfunction _createSetter(attr) {\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\n _api['set' + attrUpper] = function (val) {\n return this.el_.vjs_setProperty(attr, val);\n };\n}\nfunction _createGetter(attr) {\n _api[attr] = function () {\n return this.el_.vjs_getProperty(attr);\n };\n}\n\n// Create getter and setters for all read/write attributes\nfor (var i = 0; i < _readWrite.length; i++) {\n _createGetter(_readWrite[i]);\n _createSetter(_readWrite[i]);\n}\n\n// Create getters for read-only attributes\nfor (var i = 0; i < _readOnly.length; i++) {\n _createGetter(_readOnly[i]);\n}\n\n/* Flash Support Testing -------------------------------------------------------- */\n\nFlash.isSupported = function () {\n return Flash.version()[0] >= 10;\n // return swfobject.hasFlashPlayerVersion('10');\n};\n\n// Add Source Handler pattern functions to this tech\n_tech2['default'].withSourceHandlers(Flash);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler = {};\n\n/*\n * Check Flash can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nFlash.nativeSourceHandler.canHandleSource = function (source) {\n var type;\n\n function guessMimeType(src) {\n var ext = Url.getFileExtension(src);\n if (ext) {\n return 'video/' + ext;\n }\n return '';\n }\n\n if (!source.type) {\n type = guessMimeType(source.src);\n } else {\n // Strip code information from the type because we don't get that specific\n type = source.type.replace(/;.*/, '').toLowerCase();\n }\n\n if (type in Flash.formats) {\n return 'maybe';\n }\n\n return '';\n};\n\n/*\n * Pass the source to the flash object\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Flash} tech The instance of the Flash tech\n */\nFlash.nativeSourceHandler.handleSource = function (source, tech) {\n tech.setSrc(source.src);\n};\n\n/*\n * Clean up the source handler when disposing the player or switching sources..\n * (no cleanup is needed when supporting the format natively)\n */\nFlash.nativeSourceHandler.dispose = function () {};\n\n// Register the native source handler\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\n\nFlash.formats = {\n 'video/flv': 'FLV',\n 'video/x-flv': 'FLV',\n 'video/mp4': 'MP4',\n 'video/m4v': 'MP4'\n};\n\nFlash.onReady = function (currSwf) {\n var el = Dom.getEl(currSwf);\n var tech = el && el.tech;\n\n // if there is no el then the tech has been disposed\n // and the tech element was removed from the player div\n if (tech && tech.el()) {\n // check that the flash object is really ready\n Flash.checkReady(tech);\n }\n};\n\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\n// If it's not ready, we set a timeout to check again shortly.\nFlash.checkReady = function (tech) {\n // stop worrying if the tech has been disposed\n if (!tech.el()) {\n return;\n }\n\n // check if API property exists\n if (tech.el().vjs_getProperty) {\n // tell tech it's ready\n tech.triggerReady();\n } else {\n // wait longer\n this.setTimeout(function () {\n Flash['checkReady'](tech);\n }, 50);\n }\n};\n\n// Trigger events from the swf on the player\nFlash.onEvent = function (swfID, eventName) {\n var tech = Dom.getEl(swfID).tech;\n tech.trigger(eventName);\n};\n\n// Log errors from the swf\nFlash.onError = function (swfID, err) {\n var tech = Dom.getEl(swfID).tech;\n\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\n if (err === 'srcnotfound') {\n return tech.error(4);\n }\n\n // trigger a custom error\n tech.error('FLASH: ' + err);\n};\n\n// Flash Version Check\nFlash.version = function () {\n var version = '0,0,0';\n\n // IE\n try {\n version = new _globalWindow2['default'].ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n\n // other browsers\n } catch (e) {\n try {\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\n }\n } catch (err) {}\n }\n return version.split(',');\n};\n\n// Flash embedding method. Only used in non-iframe mode\nFlash.embed = function (swf, flashVars, params, attributes) {\n var code = Flash.getEmbedCode(swf, flashVars, params, attributes);\n\n // Get element by embedding code and retrieving created element\n var obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\n\n return obj;\n};\n\nFlash.getEmbedCode = function (swf, flashVars, params, attributes) {\n var objTag = '';\n });\n\n attributes = _objectAssign2['default']({\n // Add swf to attributes (need both for IE and Others to work)\n 'data': swf,\n\n // Default to 100% width/height\n 'width': '100%',\n 'height': '100%'\n\n }, attributes);\n\n // Create Attributes string\n Object.getOwnPropertyNames(attributes).forEach(function (key) {\n attrsString += key + '=\"' + attributes[key] + '\" ';\n });\n\n return '' + objTag + attrsString + '>' + paramsString + '';\n};\n\n// Run Flash through the RTMP decorator\n_flashRtmp2['default'](Flash);\n\n_component2['default'].registerComponent('Flash', Flash);\nexports['default'] = Flash;\nmodule.exports = exports['default'];\n\n},{\"../component\":58,\"../utils/dom.js\":118,\"../utils/time-ranges.js\":126,\"../utils/url.js\":128,\"./flash-rtmp\":103,\"./tech\":107,\"global/window\":2,\"object.assign\":43}],105:[function(_dereq_,module,exports){\n/**\n * @file html5.js\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n */\n\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _techJs = _dereq_('./tech.js');\n\nvar _techJs2 = _interopRequireDefault(_techJs);\n\nvar _component = _dereq_('../component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _utilsDomJs = _dereq_('../utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsUrlJs = _dereq_('../utils/url.js');\n\nvar Url = _interopRequireWildcard(_utilsUrlJs);\n\nvar _utilsFnJs = _dereq_('../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsLogJs = _dereq_('../utils/log.js');\n\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\n\nvar _utilsBrowserJs = _dereq_('../utils/browser.js');\n\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _objectAssign = _dereq_('object.assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _utilsMergeOptionsJs = _dereq_('../utils/merge-options.js');\n\nvar _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);\n\n/**\n * HTML5 Media Controller - Wrapper for HTML5 Media API\n *\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Tech\n * @class Html5\n */\n\nvar Html5 = (function (_Tech) {\n _inherits(Html5, _Tech);\n\n function Html5(options, ready) {\n _classCallCheck(this, Html5);\n\n _Tech.call(this, options, ready);\n\n var source = options.source;\n\n // Set the source if one is provided\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\n // anyway so the error gets fired.\n if (source && (this.el_.currentSrc !== source.src || options.tag && options.tag.initNetworkState_ === 3)) {\n this.setSource(source);\n } else {\n this.handleLateInit_(this.el_);\n }\n\n if (this.el_.hasChildNodes()) {\n\n var nodes = this.el_.childNodes;\n var nodesLength = nodes.length;\n var removeNodes = [];\n\n while (nodesLength--) {\n var node = nodes[nodesLength];\n var nodeName = node.nodeName.toLowerCase();\n if (nodeName === 'track') {\n if (!this.featuresNativeTextTracks) {\n // Empty video tag tracks so the built-in player doesn't use them also.\n // This may not be fast enough to stop HTML5 browsers from reading the tags\n // so we'll need to turn off any default tracks if we're manually doing\n // captions and subtitles. videoElement.textTracks\n removeNodes.push(node);\n } else {\n this.remoteTextTracks().addTrack_(node.track);\n }\n }\n }\n\n for (var i = 0; i < removeNodes.length; i++) {\n this.el_.removeChild(removeNodes[i]);\n }\n }\n\n if (this.featuresNativeTextTracks) {\n this.handleTextTrackChange_ = Fn.bind(this, this.handleTextTrackChange);\n this.handleTextTrackAdd_ = Fn.bind(this, this.handleTextTrackAdd);\n this.handleTextTrackRemove_ = Fn.bind(this, this.handleTextTrackRemove);\n this.proxyNativeTextTracks_();\n }\n\n // Determine if native controls should be used\n // Our goal should be to get the custom controls on mobile solid everywhere\n // so we can remove this all together. Right now this will block custom\n // controls on touch enabled laptops like the Chrome Pixel\n if (browser.TOUCH_ENABLED && options.nativeControlsForTouch === true || browser.IS_IPHONE || browser.IS_NATIVE_ANDROID) {\n this.setControls(true);\n }\n\n this.triggerReady();\n }\n\n /* HTML5 Support Testing ---------------------------------------------------- */\n\n /*\n * Element for testing browser HTML5 video capabilities\n *\n * @type {Element}\n * @constant\n * @private\n */\n\n /**\n * Dispose of html5 media element\n *\n * @method dispose\n */\n\n Html5.prototype.dispose = function dispose() {\n var tt = this.el().textTracks;\n var emulatedTt = this.textTracks();\n\n // remove native event listeners\n if (tt && tt.removeEventListener) {\n tt.removeEventListener('change', this.handleTextTrackChange_);\n tt.removeEventListener('addtrack', this.handleTextTrackAdd_);\n tt.removeEventListener('removetrack', this.handleTextTrackRemove_);\n }\n\n // clearout the emulated text track list.\n var i = emulatedTt.length;\n\n while (i--) {\n emulatedTt.removeTrack_(emulatedTt[i]);\n }\n\n Html5.disposeMediaElement(this.el_);\n _Tech.prototype.dispose.call(this);\n };\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n Html5.prototype.createEl = function createEl() {\n var el = this.options_.tag;\n\n // Check if this browser supports moving the element into the box.\n // On the iPhone video will break if you move the element,\n // So we have to create a brand new element.\n if (!el || this['movingMediaElementInDOM'] === false) {\n\n // If the original tag is still there, clone and remove it.\n if (el) {\n var clone = el.cloneNode(true);\n el.parentNode.insertBefore(clone, el);\n Html5.disposeMediaElement(el);\n el = clone;\n } else {\n el = _globalDocument2['default'].createElement('video');\n\n // determine if native controls should be used\n var tagAttributes = this.options_.tag && Dom.getElAttributes(this.options_.tag);\n var attributes = _utilsMergeOptionsJs2['default']({}, tagAttributes);\n if (!browser.TOUCH_ENABLED || this.options_.nativeControlsForTouch !== true) {\n delete attributes.controls;\n }\n\n Dom.setElAttributes(el, _objectAssign2['default'](attributes, {\n id: this.options_.techId,\n 'class': 'vjs-tech'\n }));\n }\n }\n\n // Update specific tag settings, in case they were overridden\n var settingsAttrs = ['autoplay', 'preload', 'loop', 'muted'];\n for (var i = settingsAttrs.length - 1; i >= 0; i--) {\n var attr = settingsAttrs[i];\n var overwriteAttrs = {};\n if (typeof this.options_[attr] !== 'undefined') {\n overwriteAttrs[attr] = this.options_[attr];\n }\n Dom.setElAttributes(el, overwriteAttrs);\n }\n\n return el;\n // jenniisawesome = true;\n };\n\n // If we're loading the playback object after it has started loading\n // or playing the video (often with autoplay on) then the loadstart event\n // has already fired and we need to fire it manually because many things\n // rely on it.\n\n Html5.prototype.handleLateInit_ = function handleLateInit_(el) {\n var _this = this;\n\n if (el.networkState === 0 || el.networkState === 3) {\n // The video element hasn't started loading the source yet\n // or didn't find a source\n return;\n }\n\n if (el.readyState === 0) {\n var _ret = (function () {\n // NetworkState is set synchronously BUT loadstart is fired at the\n // end of the current stack, usually before setInterval(fn, 0).\n // So at this point we know loadstart may have already fired or is\n // about to fire, and either way the player hasn't seen it yet.\n // We don't want to fire loadstart prematurely here and cause a\n // double loadstart so we'll wait and see if it happens between now\n // and the next loop, and fire it if not.\n // HOWEVER, we also want to make sure it fires before loadedmetadata\n // which could also happen between now and the next loop, so we'll\n // watch for that also.\n var loadstartFired = false;\n var setLoadstartFired = function setLoadstartFired() {\n loadstartFired = true;\n };\n _this.on('loadstart', setLoadstartFired);\n\n var triggerLoadstart = function triggerLoadstart() {\n // We did miss the original loadstart. Make sure the player\n // sees loadstart before loadedmetadata\n if (!loadstartFired) {\n this.trigger('loadstart');\n }\n };\n _this.on('loadedmetadata', triggerLoadstart);\n\n _this.ready(function () {\n this.off('loadstart', setLoadstartFired);\n this.off('loadedmetadata', triggerLoadstart);\n\n if (!loadstartFired) {\n // We did miss the original native loadstart. Fire it now.\n this.trigger('loadstart');\n }\n });\n\n return {\n v: undefined\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n }\n\n // From here on we know that loadstart already fired and we missed it.\n // The other readyState events aren't as much of a problem if we double\n // them, so not going to go to as much trouble as loadstart to prevent\n // that unless we find reason to.\n var eventsToTrigger = ['loadstart'];\n\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\n eventsToTrigger.push('loadedmetadata');\n\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\n if (el.readyState >= 2) {\n eventsToTrigger.push('loadeddata');\n }\n\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\n if (el.readyState >= 3) {\n eventsToTrigger.push('canplay');\n }\n\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\n if (el.readyState >= 4) {\n eventsToTrigger.push('canplaythrough');\n }\n\n // We still need to give the player time to add event listeners\n this.ready(function () {\n eventsToTrigger.forEach(function (type) {\n this.trigger(type);\n }, this);\n });\n };\n\n Html5.prototype.proxyNativeTextTracks_ = function proxyNativeTextTracks_() {\n var tt = this.el().textTracks;\n\n if (tt && tt.addEventListener) {\n tt.addEventListener('change', this.handleTextTrackChange_);\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\n }\n };\n\n Html5.prototype.handleTextTrackChange = function handleTextTrackChange(e) {\n var tt = this.textTracks();\n this.textTracks().trigger({\n type: 'change',\n target: tt,\n currentTarget: tt,\n srcElement: tt\n });\n };\n\n Html5.prototype.handleTextTrackAdd = function handleTextTrackAdd(e) {\n this.textTracks().addTrack_(e.track);\n };\n\n Html5.prototype.handleTextTrackRemove = function handleTextTrackRemove(e) {\n this.textTracks().removeTrack_(e.track);\n };\n\n /**\n * Play for html5 tech\n *\n * @method play\n */\n\n Html5.prototype.play = function play() {\n this.el_.play();\n };\n\n /**\n * Pause for html5 tech\n *\n * @method pause\n */\n\n Html5.prototype.pause = function pause() {\n this.el_.pause();\n };\n\n /**\n * Paused for html5 tech\n *\n * @return {Boolean}\n * @method paused\n */\n\n Html5.prototype.paused = function paused() {\n return this.el_.paused;\n };\n\n /**\n * Get current time\n *\n * @return {Number}\n * @method currentTime\n */\n\n Html5.prototype.currentTime = function currentTime() {\n return this.el_.currentTime;\n };\n\n /**\n * Set current time\n *\n * @param {Number} seconds Current time of video\n * @method setCurrentTime\n */\n\n Html5.prototype.setCurrentTime = function setCurrentTime(seconds) {\n try {\n this.el_.currentTime = seconds;\n } catch (e) {\n _utilsLogJs2['default'](e, 'Video is not ready. (Video.js)');\n // this.warning(VideoJS.warnings.videoNotReady);\n }\n };\n\n /**\n * Get duration\n *\n * @return {Number}\n * @method duration\n */\n\n Html5.prototype.duration = function duration() {\n return this.el_.duration || 0;\n };\n\n /**\n * Get a TimeRange object that represents the intersection\n * of the time ranges for which the user agent has all\n * relevant media\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n\n Html5.prototype.buffered = function buffered() {\n return this.el_.buffered;\n };\n\n /**\n * Get volume level\n *\n * @return {Number}\n * @method volume\n */\n\n Html5.prototype.volume = function volume() {\n return this.el_.volume;\n };\n\n /**\n * Set volume level\n *\n * @param {Number} percentAsDecimal Volume percent as a decimal\n * @method setVolume\n */\n\n Html5.prototype.setVolume = function setVolume(percentAsDecimal) {\n this.el_.volume = percentAsDecimal;\n };\n\n /**\n * Get if muted\n *\n * @return {Boolean}\n * @method muted\n */\n\n Html5.prototype.muted = function muted() {\n return this.el_.muted;\n };\n\n /**\n * Set muted\n *\n * @param {Boolean} If player is to be muted or note\n * @method setMuted\n */\n\n Html5.prototype.setMuted = function setMuted(muted) {\n this.el_.muted = muted;\n };\n\n /**\n * Get player width\n *\n * @return {Number}\n * @method width\n */\n\n Html5.prototype.width = function width() {\n return this.el_.offsetWidth;\n };\n\n /**\n * Get player height\n *\n * @return {Number}\n * @method height\n */\n\n Html5.prototype.height = function height() {\n return this.el_.offsetHeight;\n };\n\n /**\n * Get if there is fullscreen support\n *\n * @return {Boolean}\n * @method supportsFullScreen\n */\n\n Html5.prototype.supportsFullScreen = function supportsFullScreen() {\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\n var userAgent = _globalWindow2['default'].navigator.userAgent;\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\n return true;\n }\n }\n return false;\n };\n\n /**\n * Request to enter fullscreen\n *\n * @method enterFullScreen\n */\n\n Html5.prototype.enterFullScreen = function enterFullScreen() {\n var video = this.el_;\n\n if ('webkitDisplayingFullscreen' in video) {\n this.one('webkitbeginfullscreen', function () {\n this.one('webkitendfullscreen', function () {\n this.trigger('fullscreenchange', { isFullscreen: false });\n });\n\n this.trigger('fullscreenchange', { isFullscreen: true });\n });\n }\n\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\n // attempt to prime the video element for programmatic access\n // this isn't necessary on the desktop but shouldn't hurt\n this.el_.play();\n\n // playing and pausing synchronously during the transition to fullscreen\n // can get iOS ~6.1 devices into a play/pause loop\n this.setTimeout(function () {\n video.pause();\n video.webkitEnterFullScreen();\n }, 0);\n } else {\n video.webkitEnterFullScreen();\n }\n };\n\n /**\n * Request to exit fullscreen\n *\n * @method exitFullScreen\n */\n\n Html5.prototype.exitFullScreen = function exitFullScreen() {\n this.el_.webkitExitFullScreen();\n };\n\n /**\n * Get/set video\n *\n * @param {Object=} src Source object\n * @return {Object}\n * @method src\n */\n\n Html5.prototype.src = function src(_src) {\n if (_src === undefined) {\n return this.el_.src;\n } else {\n // Setting src through `src` instead of `setSrc` will be deprecated\n this.setSrc(_src);\n }\n };\n\n /**\n * Set video\n *\n * @param {Object} src Source object\n * @deprecated\n * @method setSrc\n */\n\n Html5.prototype.setSrc = function setSrc(src) {\n this.el_.src = src;\n };\n\n /**\n * Load media into player\n *\n * @method load\n */\n\n Html5.prototype.load = function load() {\n this.el_.load();\n };\n\n /**\n * Get current source\n *\n * @return {Object}\n * @method currentSrc\n */\n\n Html5.prototype.currentSrc = function currentSrc() {\n return this.el_.currentSrc;\n };\n\n /**\n * Get poster\n *\n * @return {String}\n * @method poster\n */\n\n Html5.prototype.poster = function poster() {\n return this.el_.poster;\n };\n\n /**\n * Set poster\n *\n * @param {String} val URL to poster image\n * @method\n */\n\n Html5.prototype.setPoster = function setPoster(val) {\n this.el_.poster = val;\n };\n\n /**\n * Get preload attribute\n *\n * @return {String}\n * @method preload\n */\n\n Html5.prototype.preload = function preload() {\n return this.el_.preload;\n };\n\n /**\n * Set preload attribute\n *\n * @param {String} val Value for preload attribute\n * @method setPreload\n */\n\n Html5.prototype.setPreload = function setPreload(val) {\n this.el_.preload = val;\n };\n\n /**\n * Get autoplay attribute\n *\n * @return {String}\n * @method autoplay\n */\n\n Html5.prototype.autoplay = function autoplay() {\n return this.el_.autoplay;\n };\n\n /**\n * Set autoplay attribute\n *\n * @param {String} val Value for preload attribute\n * @method setAutoplay\n */\n\n Html5.prototype.setAutoplay = function setAutoplay(val) {\n this.el_.autoplay = val;\n };\n\n /**\n * Get controls attribute\n *\n * @return {String}\n * @method controls\n */\n\n Html5.prototype.controls = function controls() {\n return this.el_.controls;\n };\n\n /**\n * Set controls attribute\n *\n * @param {String} val Value for controls attribute\n * @method setControls\n */\n\n Html5.prototype.setControls = function setControls(val) {\n this.el_.controls = !!val;\n };\n\n /**\n * Get loop attribute\n *\n * @return {String}\n * @method loop\n */\n\n Html5.prototype.loop = function loop() {\n return this.el_.loop;\n };\n\n /**\n * Set loop attribute\n *\n * @param {String} val Value for loop attribute\n * @method setLoop\n */\n\n Html5.prototype.setLoop = function setLoop(val) {\n this.el_.loop = val;\n };\n\n /**\n * Get error value\n *\n * @return {String}\n * @method error\n */\n\n Html5.prototype.error = function error() {\n return this.el_.error;\n };\n\n /**\n * Get whether or not the player is in the \"seeking\" state\n *\n * @return {Boolean}\n * @method seeking\n */\n\n Html5.prototype.seeking = function seeking() {\n return this.el_.seeking;\n };\n\n /**\n * Get a TimeRanges object that represents the\n * ranges of the media resource to which it is possible\n * for the user agent to seek.\n *\n * @return {TimeRangeObject}\n * @method seekable\n */\n\n Html5.prototype.seekable = function seekable() {\n return this.el_.seekable;\n };\n\n /**\n * Get if video ended\n *\n * @return {Boolean}\n * @method ended\n */\n\n Html5.prototype.ended = function ended() {\n return this.el_.ended;\n };\n\n /**\n * Get the value of the muted content attribute\n * This attribute has no dynamic effect, it only\n * controls the default state of the element\n *\n * @return {Boolean}\n * @method defaultMuted\n */\n\n Html5.prototype.defaultMuted = function defaultMuted() {\n return this.el_.defaultMuted;\n };\n\n /**\n * Get desired speed at which the media resource is to play\n *\n * @return {Number}\n * @method playbackRate\n */\n\n Html5.prototype.playbackRate = function playbackRate() {\n return this.el_.playbackRate;\n };\n\n /**\n * Returns a TimeRanges object that represents the ranges of the\n * media resource that the user agent has played.\n * @return {TimeRangeObject} the range of points on the media\n * timeline that has been reached through normal playback\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\n */\n\n Html5.prototype.played = function played() {\n return this.el_.played;\n };\n\n /**\n * Set desired speed at which the media resource is to play\n *\n * @param {Number} val Speed at which the media resource is to play\n * @method setPlaybackRate\n */\n\n Html5.prototype.setPlaybackRate = function setPlaybackRate(val) {\n this.el_.playbackRate = val;\n };\n\n /**\n * Get the current state of network activity for the element, from\n * the list below\n * NETWORK_EMPTY (numeric value 0)\n * NETWORK_IDLE (numeric value 1)\n * NETWORK_LOADING (numeric value 2)\n * NETWORK_NO_SOURCE (numeric value 3)\n *\n * @return {Number}\n * @method networkState\n */\n\n Html5.prototype.networkState = function networkState() {\n return this.el_.networkState;\n };\n\n /**\n * Get a value that expresses the current state of the element\n * with respect to rendering the current playback position, from\n * the codes in the list below\n * HAVE_NOTHING (numeric value 0)\n * HAVE_METADATA (numeric value 1)\n * HAVE_CURRENT_DATA (numeric value 2)\n * HAVE_FUTURE_DATA (numeric value 3)\n * HAVE_ENOUGH_DATA (numeric value 4)\n *\n * @return {Number}\n * @method readyState\n */\n\n Html5.prototype.readyState = function readyState() {\n return this.el_.readyState;\n };\n\n /**\n * Get width of video\n *\n * @return {Number}\n * @method videoWidth\n */\n\n Html5.prototype.videoWidth = function videoWidth() {\n return this.el_.videoWidth;\n };\n\n /**\n * Get height of video\n *\n * @return {Number}\n * @method videoHeight\n */\n\n Html5.prototype.videoHeight = function videoHeight() {\n return this.el_.videoHeight;\n };\n\n /**\n * Get text tracks\n *\n * @return {TextTrackList}\n * @method textTracks\n */\n\n Html5.prototype.textTracks = function textTracks() {\n return _Tech.prototype.textTracks.call(this);\n };\n\n /**\n * Creates and returns a text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n\n Html5.prototype.addTextTrack = function addTextTrack(kind, label, language) {\n if (!this['featuresNativeTextTracks']) {\n return _Tech.prototype.addTextTrack.call(this, kind, label, language);\n }\n\n return this.el_.addTextTrack(kind, label, language);\n };\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n\n Html5.prototype.addRemoteTextTrack = function addRemoteTextTrack() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (!this['featuresNativeTextTracks']) {\n return _Tech.prototype.addRemoteTextTrack.call(this, options);\n }\n\n var track = _globalDocument2['default'].createElement('track');\n\n if (options['kind']) {\n track['kind'] = options['kind'];\n }\n if (options['label']) {\n track['label'] = options['label'];\n }\n if (options['language'] || options['srclang']) {\n track['srclang'] = options['language'] || options['srclang'];\n }\n if (options['default']) {\n track['default'] = options['default'];\n }\n if (options['id']) {\n track['id'] = options['id'];\n }\n if (options['src']) {\n track['src'] = options['src'];\n }\n\n this.el().appendChild(track);\n\n this.remoteTextTracks().addTrack_(track.track);\n\n return track;\n };\n\n /**\n * Remove remote text track from TextTrackList object\n *\n * @param {TextTrackObject} track Texttrack object to remove\n * @method removeRemoteTextTrack\n */\n\n Html5.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {\n if (!this['featuresNativeTextTracks']) {\n return _Tech.prototype.removeRemoteTextTrack.call(this, track);\n }\n\n var tracks, i;\n\n this.remoteTextTracks().removeTrack_(track);\n\n tracks = this.el().querySelectorAll('track');\n\n i = tracks.length;\n while (i--) {\n if (track === tracks[i] || track === tracks[i].track) {\n this.el().removeChild(tracks[i]);\n }\n }\n };\n\n return Html5;\n})(_techJs2['default']);\n\nHtml5.TEST_VID = _globalDocument2['default'].createElement('video');\nvar track = _globalDocument2['default'].createElement('track');\ntrack.kind = 'captions';\ntrack.srclang = 'en';\ntrack.label = 'English';\nHtml5.TEST_VID.appendChild(track);\n\n/*\n * Check if HTML5 video is supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.isSupported = function () {\n // IE9 with no Media Player is a LIAR! (#984)\n try {\n Html5.TEST_VID['volume'] = 0.5;\n } catch (e) {\n return false;\n }\n\n return !!Html5.TEST_VID.canPlayType;\n};\n\n// Add Source Handler pattern functions to this tech\n_techJs2['default'].withSourceHandlers(Html5);\n\n/*\n * The default native source handler.\n * This simply passes the source to the video element. Nothing fancy.\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the HTML5 tech\n */\nHtml5.nativeSourceHandler = {};\n\n/*\n * Check if the video element can handle the source natively\n *\n * @param {Object} source The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\nHtml5.nativeSourceHandler.canHandleSource = function (source) {\n var match, ext;\n\n function canPlayType(type) {\n // IE9 on Windows 7 without MediaPlayer throws an error here\n // https://github.com/videojs/video.js/issues/519\n try {\n return Html5.TEST_VID.canPlayType(type);\n } catch (e) {\n return '';\n }\n }\n\n // If a type was provided we should rely on that\n if (source.type) {\n return canPlayType(source.type);\n } else if (source.src) {\n // If no type, fall back to checking 'video/[EXTENSION]'\n ext = Url.getFileExtension(source.src);\n\n return canPlayType('video/' + ext);\n }\n\n return '';\n};\n\n/*\n * Pass the source to the video element\n * Adaptive source handlers will have more complicated workflows before passing\n * video data to the video element\n *\n * @param {Object} source The source object\n * @param {Html5} tech The instance of the Html5 tech\n */\nHtml5.nativeSourceHandler.handleSource = function (source, tech) {\n tech.setSrc(source.src);\n};\n\n/*\n* Clean up the source handler when disposing the player or switching sources..\n* (no cleanup is needed when supporting the format natively)\n*/\nHtml5.nativeSourceHandler.dispose = function () {};\n\n// Register the native source handler\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\n\n/*\n * Check if the volume can be changed in this browser/device.\n * Volume cannot be changed in a lot of mobile devices.\n * Specifically, it can't be changed from 1 on iOS.\n *\n * @return {Boolean}\n */\nHtml5.canControlVolume = function () {\n var volume = Html5.TEST_VID.volume;\n Html5.TEST_VID.volume = volume / 2 + 0.1;\n return volume !== Html5.TEST_VID.volume;\n};\n\n/*\n * Check if playbackRate is supported in this browser/device.\n *\n * @return {Number} [description]\n */\nHtml5.canControlPlaybackRate = function () {\n var playbackRate = Html5.TEST_VID.playbackRate;\n Html5.TEST_VID.playbackRate = playbackRate / 2 + 0.1;\n return playbackRate !== Html5.TEST_VID.playbackRate;\n};\n\n/*\n * Check to see if native text tracks are supported by this browser/device\n *\n * @return {Boolean}\n */\nHtml5.supportsNativeTextTracks = function () {\n var supportsTextTracks;\n\n // Figure out native text track support\n // If mode is a number, we cannot change it because it'll disappear from view.\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\n // Firefox isn't playing nice either with modifying the mode\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\n }\n if (supportsTextTracks && browser.IS_FIREFOX) {\n supportsTextTracks = false;\n }\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\n supportsTextTracks = false;\n }\n\n return supportsTextTracks;\n};\n\n/**\n * An array of events available on the Html5 tech.\n *\n * @private\n * @type {Array}\n */\nHtml5.Events = ['loadstart', 'suspend', 'abort', 'error', 'emptied', 'stalled', 'loadedmetadata', 'loadeddata', 'canplay', 'canplaythrough', 'playing', 'waiting', 'seeking', 'seeked', 'ended', 'durationchange', 'timeupdate', 'progress', 'play', 'pause', 'ratechange', 'volumechange'];\n\n/*\n * Set the tech's volume control support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\n\n/*\n * Set the tech's playbackRate support status\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\n\n/*\n * Set the tech's status on moving the video element.\n * In iOS, if you move a video element in the DOM, it breaks video playback.\n *\n * @type {Boolean}\n */\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\n\n/*\n * Set the the tech's fullscreen resize support status.\n * HTML video is able to automatically resize when going to fullscreen.\n * (No longer appears to be used. Can probably be removed.)\n */\nHtml5.prototype['featuresFullscreenResize'] = true;\n\n/*\n * Set the tech's progress event support status\n * (this disables the manual progress events of the Tech)\n */\nHtml5.prototype['featuresProgressEvents'] = true;\n\n/*\n * Sets the tech's status on native text track support\n *\n * @type {Boolean}\n */\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\n\n// HTML5 Feature detection and Device Fixes --------------------------------- //\nvar canPlayType = undefined;\nvar mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\nvar mp4RE = /^video\\/mp4/i;\n\nHtml5.patchCanPlayType = function () {\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\n if (browser.ANDROID_VERSION >= 4.0) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function (type) {\n if (type && mpegurlRE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n\n // Override Android 2.2 and less canPlayType method which is broken\n if (browser.IS_OLD_ANDROID) {\n if (!canPlayType) {\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\n }\n\n Html5.TEST_VID.constructor.prototype.canPlayType = function (type) {\n if (type && mp4RE.test(type)) {\n return 'maybe';\n }\n return canPlayType.call(this, type);\n };\n }\n};\n\nHtml5.unpatchCanPlayType = function () {\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\n canPlayType = null;\n return r;\n};\n\n// by default, patch the video element\nHtml5.patchCanPlayType();\n\nHtml5.disposeMediaElement = function (el) {\n if (!el) {\n return;\n }\n\n if (el.parentNode) {\n el.parentNode.removeChild(el);\n }\n\n // remove any child track or source nodes to prevent their loading\n while (el.hasChildNodes()) {\n el.removeChild(el.firstChild);\n }\n\n // remove any src reference. not setting `src=''` because that causes a warning\n // in firefox\n el.removeAttribute('src');\n\n // force the media element to update its loading state by calling load()\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\n if (typeof el.load === 'function') {\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\n (function () {\n try {\n el.load();\n } catch (e) {\n // not supported\n }\n })();\n }\n};\n\n_component2['default'].registerComponent('Html5', Html5);\nexports['default'] = Html5;\nmodule.exports = exports['default'];\n\n},{\"../component\":58,\"../utils/browser.js\":115,\"../utils/dom.js\":118,\"../utils/fn.js\":120,\"../utils/log.js\":123,\"../utils/merge-options.js\":124,\"../utils/url.js\":128,\"./tech.js\":107,\"global/document\":1,\"global/window\":2,\"object.assign\":43}],106:[function(_dereq_,module,exports){\n/**\n * @file loader.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _component = _dereq_('../component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _utilsToTitleCaseJs = _dereq_('../utils/to-title-case.js');\n\nvar _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);\n\n/**\n * The Media Loader is the component that decides which playback technology to load\n * when the player is initialized.\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class MediaLoader\n */\n\nvar MediaLoader = (function (_Component) {\n _inherits(MediaLoader, _Component);\n\n function MediaLoader(player, options, ready) {\n _classCallCheck(this, MediaLoader);\n\n _Component.call(this, player, options, ready);\n\n // If there are no sources when the player is initialized,\n // load the first supported playback technology.\n\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\n for (var i = 0, j = options.playerOptions['techOrder']; i < j.length; i++) {\n var techName = _utilsToTitleCaseJs2['default'](j[i]);\n var tech = _component2['default'].getComponent(techName);\n\n // Check if the browser supports this technology\n if (tech && tech.isSupported()) {\n player.loadTech_(techName);\n break;\n }\n }\n } else {\n // // Loop through playback technologies (HTML5, Flash) and check for support.\n // // Then load the best source.\n // // A few assumptions here:\n // // All playback technologies respect preload false.\n player.src(options.playerOptions['sources']);\n }\n }\n\n return MediaLoader;\n})(_component2['default']);\n\n_component2['default'].registerComponent('MediaLoader', MediaLoader);\nexports['default'] = MediaLoader;\nmodule.exports = exports['default'];\n\n},{\"../component\":58,\"../utils/to-title-case.js\":127,\"global/window\":2}],107:[function(_dereq_,module,exports){\n/**\n * @file tech.js\n * Media Technology Controller - Base class for media playback\n * technology controllers like Flash and HTML5\n */\n\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _component = _dereq_('../component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _tracksTextTrack = _dereq_('../tracks/text-track');\n\nvar _tracksTextTrack2 = _interopRequireDefault(_tracksTextTrack);\n\nvar _tracksTextTrackList = _dereq_('../tracks/text-track-list');\n\nvar _tracksTextTrackList2 = _interopRequireDefault(_tracksTextTrackList);\n\nvar _utilsFnJs = _dereq_('../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsLogJs = _dereq_('../utils/log.js');\n\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\n\nvar _utilsTimeRangesJs = _dereq_('../utils/time-ranges.js');\n\nvar _utilsBufferJs = _dereq_('../utils/buffer.js');\n\nvar _mediaErrorJs = _dereq_('../media-error.js');\n\nvar _mediaErrorJs2 = _interopRequireDefault(_mediaErrorJs);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\n/**\n * Base class for media (HTML5 Video, Flash) controllers\n *\n * @param {Object=} options Options object\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class Tech\n */\n\nvar Tech = (function (_Component) {\n _inherits(Tech, _Component);\n\n function Tech() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n var ready = arguments.length <= 1 || arguments[1] === undefined ? function () {} : arguments[1];\n\n _classCallCheck(this, Tech);\n\n // we don't want the tech to report user activity automatically.\n // This is done manually in addControlsListeners\n options.reportTouchActivity = false;\n _Component.call(this, null, options, ready);\n\n // keep track of whether the current source has played at all to\n // implement a very limited played()\n this.hasStarted_ = false;\n this.on('playing', function () {\n this.hasStarted_ = true;\n });\n this.on('loadstart', function () {\n this.hasStarted_ = false;\n });\n\n this.textTracks_ = options.textTracks;\n\n // Manually track progress in cases where the browser/flash player doesn't report it.\n if (!this.featuresProgressEvents) {\n this.manualProgressOn();\n }\n\n // Manually track timeupdates in cases where the browser/flash player doesn't report it.\n if (!this.featuresTimeupdateEvents) {\n this.manualTimeUpdatesOn();\n }\n\n if (options.nativeCaptions === false || options.nativeTextTracks === false) {\n this.featuresNativeTextTracks = false;\n }\n\n if (!this.featuresNativeTextTracks) {\n this.emulateTextTracks();\n }\n\n this.initTextTrackListeners();\n\n // Turn on component tap events\n this.emitTapEvents();\n }\n\n /*\n * List of associated text tracks\n *\n * @type {Array}\n * @private\n */\n\n /* Fallbacks for unsupported event types\n ================================================================================ */\n // Manually trigger progress events based on changes to the buffered amount\n // Many flash players and older HTML5 browsers don't send progress or progress-like events\n /**\n * Turn on progress events\n *\n * @method manualProgressOn\n */\n\n Tech.prototype.manualProgressOn = function manualProgressOn() {\n this.on('durationchange', this.onDurationChange);\n\n this.manualProgress = true;\n\n // Trigger progress watching when a source begins loading\n this.one('ready', this.trackProgress);\n };\n\n /**\n * Turn off progress events\n *\n * @method manualProgressOff\n */\n\n Tech.prototype.manualProgressOff = function manualProgressOff() {\n this.manualProgress = false;\n this.stopTrackingProgress();\n\n this.off('durationchange', this.onDurationChange);\n };\n\n /**\n * Track progress\n *\n * @method trackProgress\n */\n\n Tech.prototype.trackProgress = function trackProgress() {\n this.stopTrackingProgress();\n this.progressInterval = this.setInterval(Fn.bind(this, function () {\n // Don't trigger unless buffered amount is greater than last time\n\n var numBufferedPercent = this.bufferedPercent();\n\n if (this.bufferedPercent_ !== numBufferedPercent) {\n this.trigger('progress');\n }\n\n this.bufferedPercent_ = numBufferedPercent;\n\n if (numBufferedPercent === 1) {\n this.stopTrackingProgress();\n }\n }), 500);\n };\n\n /**\n * Update duration\n *\n * @method onDurationChange\n */\n\n Tech.prototype.onDurationChange = function onDurationChange() {\n this.duration_ = this.duration();\n };\n\n /**\n * Create and get TimeRange object for buffering\n *\n * @return {TimeRangeObject}\n * @method buffered\n */\n\n Tech.prototype.buffered = function buffered() {\n return _utilsTimeRangesJs.createTimeRange(0, 0);\n };\n\n /**\n * Get buffered percent\n *\n * @return {Number}\n * @method bufferedPercent\n */\n\n Tech.prototype.bufferedPercent = function bufferedPercent() {\n return _utilsBufferJs.bufferedPercent(this.buffered(), this.duration_);\n };\n\n /**\n * Stops tracking progress by clearing progress interval\n *\n * @method stopTrackingProgress\n */\n\n Tech.prototype.stopTrackingProgress = function stopTrackingProgress() {\n this.clearInterval(this.progressInterval);\n };\n\n /*! Time Tracking -------------------------------------------------------------- */\n /**\n * Set event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOn\n */\n\n Tech.prototype.manualTimeUpdatesOn = function manualTimeUpdatesOn() {\n this.manualTimeUpdates = true;\n\n this.on('play', this.trackCurrentTime);\n this.on('pause', this.stopTrackingCurrentTime);\n };\n\n /**\n * Remove event listeners for on play and pause and tracking current time\n *\n * @method manualTimeUpdatesOff\n */\n\n Tech.prototype.manualTimeUpdatesOff = function manualTimeUpdatesOff() {\n this.manualTimeUpdates = false;\n this.stopTrackingCurrentTime();\n this.off('play', this.trackCurrentTime);\n this.off('pause', this.stopTrackingCurrentTime);\n };\n\n /**\n * Tracks current time\n *\n * @method trackCurrentTime\n */\n\n Tech.prototype.trackCurrentTime = function trackCurrentTime() {\n if (this.currentTimeInterval) {\n this.stopTrackingCurrentTime();\n }\n this.currentTimeInterval = this.setInterval(function () {\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }, 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\n };\n\n /**\n * Turn off play progress tracking (when paused or dragging)\n *\n * @method stopTrackingCurrentTime\n */\n\n Tech.prototype.stopTrackingCurrentTime = function stopTrackingCurrentTime() {\n this.clearInterval(this.currentTimeInterval);\n\n // #1002 - if the video ends right before the next timeupdate would happen,\n // the progress bar won't make it all the way to the end\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n };\n\n /**\n * Turn off any manual progress or timeupdate tracking\n *\n * @method dispose\n */\n\n Tech.prototype.dispose = function dispose() {\n // clear out text tracks because we can't reuse them between techs\n var textTracks = this.textTracks();\n\n if (textTracks) {\n var i = textTracks.length;\n while (i--) {\n this.removeRemoteTextTrack(textTracks[i]);\n }\n }\n\n // Turn off any manual progress or timeupdate tracking\n if (this.manualProgress) {\n this.manualProgressOff();\n }\n\n if (this.manualTimeUpdates) {\n this.manualTimeUpdatesOff();\n }\n\n _Component.prototype.dispose.call(this);\n };\n\n /**\n * When invoked without an argument, returns a MediaError object\n * representing the current error state of the player or null if\n * there is no error. When invoked with an argument, set the current\n * error state of the player.\n * @param {MediaError=} err Optional an error object\n * @return {MediaError} the current error object or null\n * @method error\n */\n\n Tech.prototype.error = function error(err) {\n if (err !== undefined) {\n if (err instanceof _mediaErrorJs2['default']) {\n this.error_ = err;\n } else {\n this.error_ = new _mediaErrorJs2['default'](err);\n }\n this.trigger('error');\n }\n return this.error_;\n };\n\n /**\n * Return the time ranges that have been played through for the\n * current source. This implementation is incomplete. It does not\n * track the played time ranges, only whether the source has played\n * at all or not.\n * @return {TimeRangeObject} a single time range if this video has\n * played or an empty set of ranges if not.\n * @method played\n */\n\n Tech.prototype.played = function played() {\n if (this.hasStarted_) {\n return _utilsTimeRangesJs.createTimeRange(0, 0);\n }\n return _utilsTimeRangesJs.createTimeRange();\n };\n\n /**\n * Set current time\n *\n * @method setCurrentTime\n */\n\n Tech.prototype.setCurrentTime = function setCurrentTime() {\n // improve the accuracy of manual timeupdates\n if (this.manualTimeUpdates) {\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\n }\n };\n\n /**\n * Initialize texttrack listeners\n *\n * @method initTextTrackListeners\n */\n\n Tech.prototype.initTextTrackListeners = function initTextTrackListeners() {\n var textTrackListChanges = Fn.bind(this, function () {\n this.trigger('texttrackchange');\n });\n\n var tracks = this.textTracks();\n\n if (!tracks) return;\n\n tracks.addEventListener('removetrack', textTrackListChanges);\n tracks.addEventListener('addtrack', textTrackListChanges);\n\n this.on('dispose', Fn.bind(this, function () {\n tracks.removeEventListener('removetrack', textTrackListChanges);\n tracks.removeEventListener('addtrack', textTrackListChanges);\n }));\n };\n\n /**\n * Emulate texttracks\n *\n * @method emulateTextTracks\n */\n\n Tech.prototype.emulateTextTracks = function emulateTextTracks() {\n if (!_globalWindow2['default']['WebVTT'] && this.el().parentNode != null) {\n var script = _globalDocument2['default'].createElement('script');\n script.src = this.options_['vtt.js'] || '../node_modules/vtt.js/dist/vtt.js';\n this.el().parentNode.appendChild(script);\n _globalWindow2['default']['WebVTT'] = true;\n }\n\n var tracks = this.textTracks();\n if (!tracks) {\n return;\n }\n\n var textTracksChanges = Fn.bind(this, function () {\n var _this = this;\n\n var updateDisplay = function updateDisplay() {\n return _this.trigger('texttrackchange');\n };\n\n updateDisplay();\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n track.removeEventListener('cuechange', updateDisplay);\n if (track.mode === 'showing') {\n track.addEventListener('cuechange', updateDisplay);\n }\n }\n });\n\n tracks.addEventListener('change', textTracksChanges);\n\n this.on('dispose', function () {\n tracks.removeEventListener('change', textTracksChanges);\n });\n };\n\n /*\n * Provide default methods for text tracks.\n *\n * Html5 tech overrides these.\n */\n\n /**\n * Get texttracks\n *\n * @returns {TextTrackList}\n * @method textTracks\n */\n\n Tech.prototype.textTracks = function textTracks() {\n this.textTracks_ = this.textTracks_ || new _tracksTextTrackList2['default']();\n return this.textTracks_;\n };\n\n /**\n * Get remote texttracks\n *\n * @returns {TextTrackList}\n * @method remoteTextTracks\n */\n\n Tech.prototype.remoteTextTracks = function remoteTextTracks() {\n this.remoteTextTracks_ = this.remoteTextTracks_ || new _tracksTextTrackList2['default']();\n return this.remoteTextTracks_;\n };\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {String} kind Text track kind (subtitles, captions, descriptions\n * chapters and metadata)\n * @param {String=} label Label to identify the text track\n * @param {String=} language Two letter language abbreviation\n * @return {TextTrackObject}\n * @method addTextTrack\n */\n\n Tech.prototype.addTextTrack = function addTextTrack(kind, label, language) {\n if (!kind) {\n throw new Error('TextTrack kind is required but was not provided');\n }\n\n return createTrackHelper(this, kind, label, language);\n };\n\n /**\n * Creates and returns a remote text track object\n *\n * @param {Object} options The object should contain values for\n * kind, language, label and src (location of the WebVTT file)\n * @return {TextTrackObject}\n * @method addRemoteTextTrack\n */\n\n Tech.prototype.addRemoteTextTrack = function addRemoteTextTrack(options) {\n var track = createTrackHelper(this, options.kind, options.label, options.language, options);\n this.remoteTextTracks().addTrack_(track);\n return {\n track: track\n };\n };\n\n /**\n * Remove remote texttrack\n *\n * @param {TextTrackObject} track Texttrack to remove\n * @method removeRemoteTextTrack\n */\n\n Tech.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {\n this.textTracks().removeTrack_(track);\n this.remoteTextTracks().removeTrack_(track);\n };\n\n /**\n * Provide a default setPoster method for techs\n * Poster support for techs should be optional, so we don't want techs to\n * break if they don't have a way to set a poster.\n *\n * @method setPoster\n */\n\n Tech.prototype.setPoster = function setPoster() {};\n\n return Tech;\n})(_component2['default']);\n\nTech.prototype.textTracks_;\n\nvar createTrackHelper = function createTrackHelper(self, kind, label, language) {\n var options = arguments.length <= 4 || arguments[4] === undefined ? {} : arguments[4];\n\n var tracks = self.textTracks();\n\n options.kind = kind;\n\n if (label) {\n options.label = label;\n }\n if (language) {\n options.language = language;\n }\n options.tech = self;\n\n var track = new _tracksTextTrack2['default'](options);\n tracks.addTrack_(track);\n\n return track;\n};\n\nTech.prototype.featuresVolumeControl = true;\n\n// Resizing plugins using request fullscreen reloads the plugin\nTech.prototype.featuresFullscreenResize = false;\nTech.prototype.featuresPlaybackRate = false;\n\n// Optional events that we can manually mimic with timers\n// currently not triggered by video-js-swf\nTech.prototype.featuresProgressEvents = false;\nTech.prototype.featuresTimeupdateEvents = false;\n\nTech.prototype.featuresNativeTextTracks = false;\n\n/*\n * A functional mixin for techs that want to use the Source Handler pattern.\n *\n * ##### EXAMPLE:\n *\n * Tech.withSourceHandlers.call(MyTech);\n *\n */\nTech.withSourceHandlers = function (_Tech) {\n /*\n * Register a source handler\n * Source handlers are scripts for handling specific formats.\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\n * @param {Function} handler The source handler\n * @param {Boolean} first Register it before any existing handlers\n */\n _Tech.registerSourceHandler = function (handler, index) {\n var handlers = _Tech.sourceHandlers;\n\n if (!handlers) {\n handlers = _Tech.sourceHandlers = [];\n }\n\n if (index === undefined) {\n // add to the end of the list\n index = handlers.length;\n }\n\n handlers.splice(index, 0, handler);\n };\n\n /*\n * Return the first source handler that supports the source\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\n * @param {Object} source The source object\n * @returns {Object} The first source handler that supports the source\n * @returns {null} Null if no source handler is found\n */\n _Tech.selectSourceHandler = function (source) {\n var handlers = _Tech.sourceHandlers || [];\n var can = undefined;\n\n for (var i = 0; i < handlers.length; i++) {\n can = handlers[i].canHandleSource(source);\n\n if (can) {\n return handlers[i];\n }\n }\n\n return null;\n };\n\n /*\n * Check if the tech can support the given source\n * @param {Object} srcObj The source object\n * @return {String} 'probably', 'maybe', or '' (empty string)\n */\n _Tech.canPlaySource = function (srcObj) {\n var sh = _Tech.selectSourceHandler(srcObj);\n\n if (sh) {\n return sh.canHandleSource(srcObj);\n }\n\n return '';\n };\n\n var originalSeekable = _Tech.prototype.seekable;\n\n // when a source handler is registered, prefer its implementation of\n // seekable when present.\n _Tech.prototype.seekable = function () {\n if (this.sourceHandler_ && this.sourceHandler_.seekable) {\n return this.sourceHandler_.seekable();\n }\n return originalSeekable.call(this);\n };\n\n /*\n * Create a function for setting the source using a source object\n * and source handlers.\n * Should never be called unless a source handler was found.\n * @param {Object} source A source object with src and type keys\n * @return {Tech} self\n */\n _Tech.prototype.setSource = function (source) {\n var sh = _Tech.selectSourceHandler(source);\n\n if (!sh) {\n // Fall back to a native source hander when unsupported sources are\n // deliberately set\n if (_Tech.nativeSourceHandler) {\n sh = _Tech.nativeSourceHandler;\n } else {\n _utilsLogJs2['default'].error('No source hander found for the current source.');\n }\n }\n\n // Dispose any existing source handler\n this.disposeSourceHandler();\n this.off('dispose', this.disposeSourceHandler);\n\n this.currentSource_ = source;\n this.sourceHandler_ = sh.handleSource(source, this);\n this.on('dispose', this.disposeSourceHandler);\n\n return this;\n };\n\n /*\n * Clean up any existing source handler\n */\n _Tech.prototype.disposeSourceHandler = function () {\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\n this.sourceHandler_.dispose();\n }\n };\n};\n\n_component2['default'].registerComponent('Tech', Tech);\n// Old name for Tech\n_component2['default'].registerComponent('MediaTechController', Tech);\nexports['default'] = Tech;\nmodule.exports = exports['default'];\n\n},{\"../component\":58,\"../media-error.js\":94,\"../tracks/text-track\":114,\"../tracks/text-track-list\":112,\"../utils/buffer.js\":116,\"../utils/fn.js\":120,\"../utils/log.js\":123,\"../utils/time-ranges.js\":126,\"global/document\":1,\"global/window\":2}],108:[function(_dereq_,module,exports){\n/**\n * @file text-track-cue-list.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _utilsBrowserJs = _dereq_('../utils/browser.js');\n\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\n *\n * interface TextTrackCueList {\n * readonly attribute unsigned long length;\n * getter TextTrackCue (unsigned long index);\n * TextTrackCue? getCueById(DOMString id);\n * };\n */\n\nvar TextTrackCueList = function TextTrackCueList(cues) {\n var list = this;\n\n if (browser.IS_IE8) {\n list = _globalDocument2['default'].createElement('custom');\n\n for (var prop in TextTrackCueList.prototype) {\n list[prop] = TextTrackCueList.prototype[prop];\n }\n }\n\n TextTrackCueList.prototype.setCues_.call(list, cues);\n\n Object.defineProperty(list, 'length', {\n get: function get() {\n return this.length_;\n }\n });\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackCueList.prototype.setCues_ = function (cues) {\n var oldLength = this.length || 0;\n var i = 0;\n var l = cues.length;\n\n this.cues_ = cues;\n this.length_ = cues.length;\n\n var defineProp = function defineProp(i) {\n if (!('' + i in this)) {\n Object.defineProperty(this, '' + i, {\n get: function get() {\n return this.cues_[i];\n }\n });\n }\n };\n\n if (oldLength < l) {\n i = oldLength;\n\n for (; i < l; i++) {\n defineProp.call(this, i);\n }\n }\n};\n\nTextTrackCueList.prototype.getCueById = function (id) {\n var result = null;\n for (var i = 0, l = this.length; i < l; i++) {\n var cue = this[i];\n if (cue.id === id) {\n result = cue;\n break;\n }\n }\n\n return result;\n};\n\nexports['default'] = TextTrackCueList;\nmodule.exports = exports['default'];\n\n},{\"../utils/browser.js\":115,\"global/document\":1}],109:[function(_dereq_,module,exports){\n/**\n * @file text-track-display.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _component = _dereq_('../component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _menuMenuJs = _dereq_('../menu/menu.js');\n\nvar _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);\n\nvar _menuMenuItemJs = _dereq_('../menu/menu-item.js');\n\nvar _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);\n\nvar _menuMenuButtonJs = _dereq_('../menu/menu-button.js');\n\nvar _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);\n\nvar _utilsFnJs = _dereq_('../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar darkGray = '#222';\nvar lightGray = '#ccc';\nvar fontMap = {\n monospace: 'monospace',\n sansSerif: 'sans-serif',\n serif: 'serif',\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\n monospaceSerif: '\"Courier New\", monospace',\n proportionalSansSerif: 'sans-serif',\n proportionalSerif: 'serif',\n casual: '\"Comic Sans MS\", Impact, fantasy',\n script: '\"Monotype Corsiva\", cursive',\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\n};\n\n/**\n * The component for displaying text track cues\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @param {Function=} ready Ready callback function\n * @extends Component\n * @class TextTrackDisplay\n */\n\nvar TextTrackDisplay = (function (_Component) {\n _inherits(TextTrackDisplay, _Component);\n\n function TextTrackDisplay(player, options, ready) {\n _classCallCheck(this, TextTrackDisplay);\n\n _Component.call(this, player, options, ready);\n\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\n\n // This used to be called during player init, but was causing an error\n // if a track should show by default and the display hadn't loaded yet.\n // Should probably be moved to an external track loader when we support\n // tracks that don't need a display.\n player.ready(Fn.bind(this, function () {\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\n this.hide();\n return;\n }\n\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\n\n var tracks = this.options_.playerOptions['tracks'] || [];\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n this.player_.addRemoteTextTrack(track);\n }\n }));\n }\n\n /**\n * Add cue HTML to display\n *\n * @param {Number} color Hex number for color, like #f0e\n * @param {Number} opacity Value for opacity,0.0 - 1.0\n * @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\n * @method constructColor\n */\n\n /**\n * Toggle display texttracks\n *\n * @method toggleDisplay\n */\n\n TextTrackDisplay.prototype.toggleDisplay = function toggleDisplay() {\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\n this.hide();\n } else {\n this.show();\n }\n };\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n TextTrackDisplay.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-text-track-display'\n });\n };\n\n /**\n * Clear display texttracks\n *\n * @method clearDisplay\n */\n\n TextTrackDisplay.prototype.clearDisplay = function clearDisplay() {\n if (typeof _globalWindow2['default']['WebVTT'] === 'function') {\n _globalWindow2['default']['WebVTT']['processCues'](_globalWindow2['default'], [], this.el_);\n }\n };\n\n /**\n * Update display texttracks\n *\n * @method updateDisplay\n */\n\n TextTrackDisplay.prototype.updateDisplay = function updateDisplay() {\n var tracks = this.player_.textTracks();\n\n this.clearDisplay();\n\n if (!tracks) {\n return;\n }\n\n for (var i = 0; i < tracks.length; i++) {\n var track = tracks[i];\n if (track['mode'] === 'showing') {\n this.updateForTrack(track);\n }\n }\n };\n\n /**\n * Add texttrack to texttrack list\n *\n * @param {TextTrackObject} track Texttrack object to be added to list\n * @method updateForTrack\n */\n\n TextTrackDisplay.prototype.updateForTrack = function updateForTrack(track) {\n if (typeof _globalWindow2['default']['WebVTT'] !== 'function' || !track['activeCues']) {\n return;\n }\n\n var overrides = this.player_['textTrackSettings'].getValues();\n\n var cues = [];\n for (var _i = 0; _i < track['activeCues'].length; _i++) {\n cues.push(track['activeCues'][_i]);\n }\n\n _globalWindow2['default']['WebVTT']['processCues'](_globalWindow2['default'], track['activeCues'], this.el_);\n\n var i = cues.length;\n while (i--) {\n var cueDiv = cues[i].displayState;\n if (overrides.color) {\n cueDiv.firstChild.style.color = overrides.color;\n }\n if (overrides.textOpacity) {\n tryUpdateStyle(cueDiv.firstChild, 'color', constructColor(overrides.color || '#fff', overrides.textOpacity));\n }\n if (overrides.backgroundColor) {\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\n }\n if (overrides.backgroundOpacity) {\n tryUpdateStyle(cueDiv.firstChild, 'backgroundColor', constructColor(overrides.backgroundColor || '#000', overrides.backgroundOpacity));\n }\n if (overrides.windowColor) {\n if (overrides.windowOpacity) {\n tryUpdateStyle(cueDiv, 'backgroundColor', constructColor(overrides.windowColor, overrides.windowOpacity));\n } else {\n cueDiv.style.backgroundColor = overrides.windowColor;\n }\n }\n if (overrides.edgeStyle) {\n if (overrides.edgeStyle === 'dropshadow') {\n cueDiv.firstChild.style.textShadow = '2px 2px 3px ' + darkGray + ', 2px 2px 4px ' + darkGray + ', 2px 2px 5px ' + darkGray;\n } else if (overrides.edgeStyle === 'raised') {\n cueDiv.firstChild.style.textShadow = '1px 1px ' + darkGray + ', 2px 2px ' + darkGray + ', 3px 3px ' + darkGray;\n } else if (overrides.edgeStyle === 'depressed') {\n cueDiv.firstChild.style.textShadow = '1px 1px ' + lightGray + ', 0 1px ' + lightGray + ', -1px -1px ' + darkGray + ', 0 -1px ' + darkGray;\n } else if (overrides.edgeStyle === 'uniform') {\n cueDiv.firstChild.style.textShadow = '0 0 4px ' + darkGray + ', 0 0 4px ' + darkGray + ', 0 0 4px ' + darkGray + ', 0 0 4px ' + darkGray;\n }\n }\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\n var fontSize = _globalWindow2['default'].parseFloat(cueDiv.style.fontSize);\n cueDiv.style.fontSize = fontSize * overrides.fontPercent + 'px';\n cueDiv.style.height = 'auto';\n cueDiv.style.top = 'auto';\n cueDiv.style.bottom = '2px';\n }\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\n if (overrides.fontFamily === 'small-caps') {\n cueDiv.firstChild.style.fontVariant = 'small-caps';\n } else {\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\n }\n }\n }\n };\n\n return TextTrackDisplay;\n})(_component2['default']);\n\nfunction constructColor(color, opacity) {\n return 'rgba(' +\n // color looks like \"#f0e\"\n parseInt(color[1] + color[1], 16) + ',' + parseInt(color[2] + color[2], 16) + ',' + parseInt(color[3] + color[3], 16) + ',' + opacity + ')';\n}\n\n/**\n * Try to update style\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\n *\n * @param {Element} el The element to be styles\n * @param {CSSProperty} style The CSS property to be styled\n * @param {CSSStyle} rule The actual style to be applied to the property\n * @method tryUpdateStyle\n */\nfunction tryUpdateStyle(el, style, rule) {\n //\n try {\n el.style[style] = rule;\n } catch (e) {}\n}\n\n_component2['default'].registerComponent('TextTrackDisplay', TextTrackDisplay);\nexports['default'] = TextTrackDisplay;\nmodule.exports = exports['default'];\n\n},{\"../component\":58,\"../menu/menu-button.js\":95,\"../menu/menu-item.js\":96,\"../menu/menu.js\":97,\"../utils/fn.js\":120,\"global/document\":1,\"global/window\":2}],110:[function(_dereq_,module,exports){\n/**\n * @file text-track-enums.js\n *\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\n *\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\n */\n'use strict';\n\nexports.__esModule = true;\nvar TextTrackMode = {\n 'disabled': 'disabled',\n 'hidden': 'hidden',\n 'showing': 'showing'\n};\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\n *\n * enum TextTrackKind { \"subtitles\", \"captions\", \"descriptions\", \"chapters\", \"metadata\" };\n */\nvar TextTrackKind = {\n 'subtitles': 'subtitles',\n 'captions': 'captions',\n 'descriptions': 'descriptions',\n 'chapters': 'chapters',\n 'metadata': 'metadata'\n};\n\nexports.TextTrackMode = TextTrackMode;\nexports.TextTrackKind = TextTrackKind;\n\n},{}],111:[function(_dereq_,module,exports){\n/**\n * Utilities for capturing text track state and re-creating tracks\n * based on a capture.\n *\n * @file text-track-list-converter.js\n */\n\n/**\n * Examine a single text track and return a JSON-compatible javascript\n * object that represents the text track's state.\n * @param track {TextTrackObject} the text track to query\n * @return {Object} a serializable javascript representation of the\n * @private\n */\n'use strict';\n\nexports.__esModule = true;\nvar trackToJson_ = function trackToJson_(track) {\n return {\n kind: track.kind,\n label: track.label,\n language: track.language,\n id: track.id,\n inBandMetadataTrackDispatchType: track.inBandMetadataTrackDispatchType,\n mode: track.mode,\n cues: track.cues && Array.prototype.map.call(track.cues, function (cue) {\n return {\n startTime: cue.startTime,\n endTime: cue.endTime,\n text: cue.text,\n id: cue.id\n };\n }),\n src: track.src\n };\n};\n\n/**\n * Examine a tech and return a JSON-compatible javascript array that\n * represents the state of all text tracks currently configured. The\n * return array is compatible with `jsonToTextTracks`.\n * @param tech {tech} the tech object to query\n * @return {Array} a serializable javascript representation of the\n * @function textTracksToJson\n */\nvar textTracksToJson = function textTracksToJson(tech) {\n var trackEls = tech.el().querySelectorAll('track');\n\n var trackObjs = Array.prototype.map.call(trackEls, function (t) {\n return t.track;\n });\n var tracks = Array.prototype.map.call(trackEls, function (trackEl) {\n var json = trackToJson_(trackEl.track);\n json.src = trackEl.src;\n return json;\n });\n\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function (track) {\n return trackObjs.indexOf(track) === -1;\n }).map(trackToJson_));\n};\n\n/**\n * Creates a set of remote text tracks on a tech based on an array of\n * javascript text track representations.\n * @param json {Array} an array of text track representation objects,\n * like those that would be produced by `textTracksToJson`\n * @param tech {tech} the tech to create text tracks on\n * @function jsonToTextTracks\n */\nvar jsonToTextTracks = function jsonToTextTracks(json, tech) {\n json.forEach(function (track) {\n var addedTrack = tech.addRemoteTextTrack(track).track;\n if (!track.src && track.cues) {\n track.cues.forEach(function (cue) {\n return addedTrack.addCue(cue);\n });\n }\n });\n\n return tech.textTracks();\n};\n\nexports['default'] = { textTracksToJson: textTracksToJson, jsonToTextTracks: jsonToTextTracks, trackToJson_: trackToJson_ };\nmodule.exports = exports['default'];\n\n},{}],112:[function(_dereq_,module,exports){\n/**\n * @file text-track-list.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _eventTarget = _dereq_('../event-target');\n\nvar _eventTarget2 = _interopRequireDefault(_eventTarget);\n\nvar _utilsFnJs = _dereq_('../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsBrowserJs = _dereq_('../utils/browser.js');\n\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\n *\n * interface TextTrackList : EventTarget {\n * readonly attribute unsigned long length;\n * getter TextTrack (unsigned long index);\n * TextTrack? getTrackById(DOMString id);\n *\n * attribute EventHandler onchange;\n * attribute EventHandler onaddtrack;\n * attribute EventHandler onremovetrack;\n * };\n */\nvar TextTrackList = function TextTrackList(tracks) {\n var list = this;\n\n if (browser.IS_IE8) {\n list = _globalDocument2['default'].createElement('custom');\n\n for (var prop in TextTrackList.prototype) {\n list[prop] = TextTrackList.prototype[prop];\n }\n }\n\n tracks = tracks || [];\n list.tracks_ = [];\n\n Object.defineProperty(list, 'length', {\n get: function get() {\n return this.tracks_.length;\n }\n });\n\n for (var i = 0; i < tracks.length; i++) {\n list.addTrack_(tracks[i]);\n }\n\n if (browser.IS_IE8) {\n return list;\n }\n};\n\nTextTrackList.prototype = Object.create(_eventTarget2['default'].prototype);\nTextTrackList.prototype.constructor = TextTrackList;\n\n/*\n * change - One or more tracks in the track list have been enabled or disabled.\n * addtrack - A track has been added to the track list.\n * removetrack - A track has been removed from the track list.\n */\nTextTrackList.prototype.allowedEvents_ = {\n 'change': 'change',\n 'addtrack': 'addtrack',\n 'removetrack': 'removetrack'\n};\n\n// emulate attribute EventHandler support to allow for feature detection\nfor (var _event in TextTrackList.prototype.allowedEvents_) {\n TextTrackList.prototype['on' + _event] = null;\n}\n\nTextTrackList.prototype.addTrack_ = function (track) {\n var index = this.tracks_.length;\n if (!('' + index in this)) {\n Object.defineProperty(this, index, {\n get: function get() {\n return this.tracks_[index];\n }\n });\n }\n\n track.addEventListener('modechange', Fn.bind(this, function () {\n this.trigger('change');\n }));\n this.tracks_.push(track);\n\n this.trigger({\n type: 'addtrack',\n track: track\n });\n};\n\nTextTrackList.prototype.removeTrack_ = function (rtrack) {\n var result = null;\n var track = undefined;\n\n for (var i = 0, l = this.length; i < l; i++) {\n track = this[i];\n if (track === rtrack) {\n this.tracks_.splice(i, 1);\n break;\n }\n }\n\n this.trigger({\n type: 'removetrack',\n track: track\n });\n};\n\nTextTrackList.prototype.getTrackById = function (id) {\n var result = null;\n\n for (var i = 0, l = this.length; i < l; i++) {\n var track = this[i];\n if (track.id === id) {\n result = track;\n break;\n }\n }\n\n return result;\n};\n\nexports['default'] = TextTrackList;\nmodule.exports = exports['default'];\n\n},{\"../event-target\":90,\"../utils/browser.js\":115,\"../utils/fn.js\":120,\"global/document\":1}],113:[function(_dereq_,module,exports){\n/**\n * @file text-track-settings.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\n\nfunction _inherits(subClass, superClass) { if (typeof superClass !== 'function' && superClass !== null) { throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; }\n\nvar _component = _dereq_('../component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _utilsEventsJs = _dereq_('../utils/events.js');\n\nvar Events = _interopRequireWildcard(_utilsEventsJs);\n\nvar _utilsFnJs = _dereq_('../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsLogJs = _dereq_('../utils/log.js');\n\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\n\nvar _safeJsonParseTuple = _dereq_('safe-json-parse/tuple');\n\nvar _safeJsonParseTuple2 = _interopRequireDefault(_safeJsonParseTuple);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\n/**\n * Manipulate settings of texttracks\n *\n * @param {Object} player Main Player\n * @param {Object=} options Object of option names and values\n * @extends Component\n * @class TextTrackSettings\n */\n\nvar TextTrackSettings = (function (_Component) {\n _inherits(TextTrackSettings, _Component);\n\n function TextTrackSettings(player, options) {\n _classCallCheck(this, TextTrackSettings);\n\n _Component.call(this, player, options);\n this.hide();\n\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\n if (options.persistTextTrackSettings === undefined) {\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\n }\n\n Events.on(this.el().querySelector('.vjs-done-button'), 'click', Fn.bind(this, function () {\n this.saveSettings();\n this.hide();\n }));\n\n Events.on(this.el().querySelector('.vjs-default-button'), 'click', Fn.bind(this, function () {\n this.el().querySelector('.vjs-fg-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-color > select').selectedIndex = 0;\n this.el().querySelector('.window-color > select').selectedIndex = 0;\n this.el().querySelector('.vjs-text-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-bg-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-window-opacity > select').selectedIndex = 0;\n this.el().querySelector('.vjs-edge-style select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-family select').selectedIndex = 0;\n this.el().querySelector('.vjs-font-percent select').selectedIndex = 2;\n this.updateDisplay();\n }));\n\n Events.on(this.el().querySelector('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\n Events.on(this.el().querySelector('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\n\n if (this.options_.persistTextTrackSettings) {\n this.restoreSettings();\n }\n }\n\n /**\n * Create the component's DOM element\n *\n * @return {Element}\n * @method createEl\n */\n\n TextTrackSettings.prototype.createEl = function createEl() {\n return _Component.prototype.createEl.call(this, 'div', {\n className: 'vjs-caption-settings vjs-modal-overlay',\n innerHTML: captionOptionsMenuTemplate()\n });\n };\n\n /**\n * Get texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @return {Object} \n * @method getValues\n */\n\n TextTrackSettings.prototype.getValues = function getValues() {\n var el = this.el();\n\n var textEdge = getSelectedOptionValue(el.querySelector('.vjs-edge-style select'));\n var fontFamily = getSelectedOptionValue(el.querySelector('.vjs-font-family select'));\n var fgColor = getSelectedOptionValue(el.querySelector('.vjs-fg-color > select'));\n var textOpacity = getSelectedOptionValue(el.querySelector('.vjs-text-opacity > select'));\n var bgColor = getSelectedOptionValue(el.querySelector('.vjs-bg-color > select'));\n var bgOpacity = getSelectedOptionValue(el.querySelector('.vjs-bg-opacity > select'));\n var windowColor = getSelectedOptionValue(el.querySelector('.window-color > select'));\n var windowOpacity = getSelectedOptionValue(el.querySelector('.vjs-window-opacity > select'));\n var fontPercent = _globalWindow2['default']['parseFloat'](getSelectedOptionValue(el.querySelector('.vjs-font-percent > select')));\n\n var result = {\n 'backgroundOpacity': bgOpacity,\n 'textOpacity': textOpacity,\n 'windowOpacity': windowOpacity,\n 'edgeStyle': textEdge,\n 'fontFamily': fontFamily,\n 'color': fgColor,\n 'backgroundColor': bgColor,\n 'windowColor': windowColor,\n 'fontPercent': fontPercent\n };\n for (var _name in result) {\n if (result[_name] === '' || result[_name] === 'none' || _name === 'fontPercent' && result[_name] === 1.00) {\n delete result[_name];\n }\n }\n return result;\n };\n\n /**\n * Set texttrack settings \n * Settings are\n * .vjs-edge-style\n * .vjs-font-family\n * .vjs-fg-color\n * .vjs-text-opacity\n * .vjs-bg-color\n * .vjs-bg-opacity\n * .window-color\n * .vjs-window-opacity \n *\n * @param {Object} values Object with texttrack setting values\n * @method setValues\n */\n\n TextTrackSettings.prototype.setValues = function setValues(values) {\n var el = this.el();\n\n setSelectedOption(el.querySelector('.vjs-edge-style select'), values.edgeStyle);\n setSelectedOption(el.querySelector('.vjs-font-family select'), values.fontFamily);\n setSelectedOption(el.querySelector('.vjs-fg-color > select'), values.color);\n setSelectedOption(el.querySelector('.vjs-text-opacity > select'), values.textOpacity);\n setSelectedOption(el.querySelector('.vjs-bg-color > select'), values.backgroundColor);\n setSelectedOption(el.querySelector('.vjs-bg-opacity > select'), values.backgroundOpacity);\n setSelectedOption(el.querySelector('.window-color > select'), values.windowColor);\n setSelectedOption(el.querySelector('.vjs-window-opacity > select'), values.windowOpacity);\n\n var fontPercent = values.fontPercent;\n\n if (fontPercent) {\n fontPercent = fontPercent.toFixed(2);\n }\n\n setSelectedOption(el.querySelector('.vjs-font-percent > select'), fontPercent);\n };\n\n /**\n * Restore texttrack settings \n *\n * @method restoreSettings\n */\n\n TextTrackSettings.prototype.restoreSettings = function restoreSettings() {\n var _safeParseTuple = _safeJsonParseTuple2['default'](_globalWindow2['default'].localStorage.getItem('vjs-text-track-settings'));\n\n var err = _safeParseTuple[0];\n var values = _safeParseTuple[1];\n\n if (err) {\n _utilsLogJs2['default'].error(err);\n }\n\n if (values) {\n this.setValues(values);\n }\n };\n\n /**\n * Save texttrack settings to local storage \n *\n * @method saveSettings\n */\n\n TextTrackSettings.prototype.saveSettings = function saveSettings() {\n if (!this.options_.persistTextTrackSettings) {\n return;\n }\n\n var values = this.getValues();\n try {\n if (Object.getOwnPropertyNames(values).length > 0) {\n _globalWindow2['default'].localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\n } else {\n _globalWindow2['default'].localStorage.removeItem('vjs-text-track-settings');\n }\n } catch (e) {}\n };\n\n /**\n * Update display of texttrack settings \n *\n * @method updateDisplay\n */\n\n TextTrackSettings.prototype.updateDisplay = function updateDisplay() {\n var ttDisplay = this.player_.getChild('textTrackDisplay');\n if (ttDisplay) {\n ttDisplay.updateDisplay();\n }\n };\n\n return TextTrackSettings;\n})(_component2['default']);\n\n_component2['default'].registerComponent('TextTrackSettings', TextTrackSettings);\n\nfunction getSelectedOptionValue(target) {\n var selectedOption = undefined;\n // not all browsers support selectedOptions, so, fallback to options\n if (target.selectedOptions) {\n selectedOption = target.selectedOptions[0];\n } else if (target.options) {\n selectedOption = target.options[target.options.selectedIndex];\n }\n\n return selectedOption.value;\n}\n\nfunction setSelectedOption(target, value) {\n if (!value) {\n return;\n }\n\n var i = undefined;\n for (i = 0; i < target.options.length; i++) {\n var option = target.options[i];\n if (option.value === value) {\n break;\n }\n }\n\n target.selectedIndex = i;\n}\n\nfunction captionOptionsMenuTemplate() {\n var template = '
\\n
\\n
\\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n
\\n
\\n \\n \\n \\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n \\n \\n
\\n
\\n
\\n
\\n \\n \\n
';\n\n return template;\n}\n\nexports['default'] = TextTrackSettings;\nmodule.exports = exports['default'];\n\n},{\"../component\":58,\"../utils/events.js\":119,\"../utils/fn.js\":120,\"../utils/log.js\":123,\"global/window\":2,\"safe-json-parse/tuple\":48}],114:[function(_dereq_,module,exports){\n/**\n * @file text-track.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _textTrackCueList = _dereq_('./text-track-cue-list');\n\nvar _textTrackCueList2 = _interopRequireDefault(_textTrackCueList);\n\nvar _utilsFnJs = _dereq_('../utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _utilsGuidJs = _dereq_('../utils/guid.js');\n\nvar Guid = _interopRequireWildcard(_utilsGuidJs);\n\nvar _utilsBrowserJs = _dereq_('../utils/browser.js');\n\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\n\nvar _textTrackEnums = _dereq_('./text-track-enums');\n\nvar TextTrackEnum = _interopRequireWildcard(_textTrackEnums);\n\nvar _utilsLogJs = _dereq_('../utils/log.js');\n\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\n\nvar _eventTarget = _dereq_('../event-target');\n\nvar _eventTarget2 = _interopRequireDefault(_eventTarget);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _utilsUrlJs = _dereq_('../utils/url.js');\n\nvar _xhr = _dereq_('xhr');\n\nvar _xhr2 = _interopRequireDefault(_xhr);\n\n/*\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\n *\n * interface TextTrack : EventTarget {\n * readonly attribute TextTrackKind kind;\n * readonly attribute DOMString label;\n * readonly attribute DOMString language;\n *\n * readonly attribute DOMString id;\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\n *\n * attribute TextTrackMode mode;\n *\n * readonly attribute TextTrackCueList? cues;\n * readonly attribute TextTrackCueList? activeCues;\n *\n * void addCue(TextTrackCue cue);\n * void removeCue(TextTrackCue cue);\n *\n * attribute EventHandler oncuechange;\n * };\n */\nvar TextTrack = function TextTrack() {\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\n\n if (!options.tech) {\n throw new Error('A tech was not provided.');\n }\n\n var tt = this;\n if (browser.IS_IE8) {\n tt = _globalDocument2['default'].createElement('custom');\n\n for (var prop in TextTrack.prototype) {\n tt[prop] = TextTrack.prototype[prop];\n }\n }\n\n tt.tech_ = options.tech;\n\n var mode = TextTrackEnum.TextTrackMode[options['mode']] || 'disabled';\n var kind = TextTrackEnum.TextTrackKind[options['kind']] || 'subtitles';\n var label = options['label'] || '';\n var language = options['language'] || options['srclang'] || '';\n var id = options['id'] || 'vjs_text_track_' + Guid.newGUID();\n\n if (kind === 'metadata' || kind === 'chapters') {\n mode = 'hidden';\n }\n\n tt.cues_ = [];\n tt.activeCues_ = [];\n\n var cues = new _textTrackCueList2['default'](tt.cues_);\n var activeCues = new _textTrackCueList2['default'](tt.activeCues_);\n\n var changed = false;\n var timeupdateHandler = Fn.bind(tt, function () {\n this['activeCues'];\n if (changed) {\n this['trigger']('cuechange');\n changed = false;\n }\n });\n if (mode !== 'disabled') {\n tt.tech_.on('timeupdate', timeupdateHandler);\n }\n\n Object.defineProperty(tt, 'kind', {\n get: function get() {\n return kind;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'label', {\n get: function get() {\n return label;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'language', {\n get: function get() {\n return language;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'id', {\n get: function get() {\n return id;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'mode', {\n get: function get() {\n return mode;\n },\n set: function set(newMode) {\n if (!TextTrackEnum.TextTrackMode[newMode]) {\n return;\n }\n mode = newMode;\n if (mode === 'showing') {\n this.tech_.on('timeupdate', timeupdateHandler);\n }\n this.trigger('modechange');\n }\n });\n\n Object.defineProperty(tt, 'cues', {\n get: function get() {\n if (!this.loaded_) {\n return null;\n }\n\n return cues;\n },\n set: Function.prototype\n });\n\n Object.defineProperty(tt, 'activeCues', {\n get: function get() {\n if (!this.loaded_) {\n return null;\n }\n\n if (this['cues'].length === 0) {\n return activeCues; // nothing to do\n }\n\n var ct = this.tech_.currentTime();\n var active = [];\n\n for (var i = 0, l = this['cues'].length; i < l; i++) {\n var cue = this['cues'][i];\n if (cue['startTime'] <= ct && cue['endTime'] >= ct) {\n active.push(cue);\n } else if (cue['startTime'] === cue['endTime'] && cue['startTime'] <= ct && cue['startTime'] + 0.5 >= ct) {\n active.push(cue);\n }\n }\n\n changed = false;\n\n if (active.length !== this.activeCues_.length) {\n changed = true;\n } else {\n for (var i = 0; i < active.length; i++) {\n if (indexOf.call(this.activeCues_, active[i]) === -1) {\n changed = true;\n }\n }\n }\n\n this.activeCues_ = active;\n activeCues.setCues_(this.activeCues_);\n\n return activeCues;\n },\n set: Function.prototype\n });\n\n if (options.src) {\n tt.src = options.src;\n loadTrack(options.src, tt);\n } else {\n tt.loaded_ = true;\n }\n\n if (browser.IS_IE8) {\n return tt;\n }\n};\n\nTextTrack.prototype = Object.create(_eventTarget2['default'].prototype);\nTextTrack.prototype.constructor = TextTrack;\n\n/*\n * cuechange - One or more cues in the track have become active or stopped being active.\n */\nTextTrack.prototype.allowedEvents_ = {\n 'cuechange': 'cuechange'\n};\n\nTextTrack.prototype.addCue = function (cue) {\n var tracks = this.tech_.textTracks();\n\n if (tracks) {\n for (var i = 0; i < tracks.length; i++) {\n if (tracks[i] !== this) {\n tracks[i].removeCue(cue);\n }\n }\n }\n\n this.cues_.push(cue);\n this['cues'].setCues_(this.cues_);\n};\n\nTextTrack.prototype.removeCue = function (removeCue) {\n var removed = false;\n\n for (var i = 0, l = this.cues_.length; i < l; i++) {\n var cue = this.cues_[i];\n if (cue === removeCue) {\n this.cues_.splice(i, 1);\n removed = true;\n }\n }\n\n if (removed) {\n this.cues.setCues_(this.cues_);\n }\n};\n\n/*\n* Downloading stuff happens below this point\n*/\nvar parseCues = function parseCues(srcContent, track) {\n if (typeof _globalWindow2['default']['WebVTT'] !== 'function') {\n //try again a bit later\n return _globalWindow2['default'].setTimeout(function () {\n parseCues(srcContent, track);\n }, 25);\n }\n\n var parser = new _globalWindow2['default']['WebVTT']['Parser'](_globalWindow2['default'], _globalWindow2['default']['vttjs'], _globalWindow2['default']['WebVTT']['StringDecoder']());\n\n parser['oncue'] = function (cue) {\n track.addCue(cue);\n };\n parser['onparsingerror'] = function (error) {\n _utilsLogJs2['default'].error(error);\n };\n\n parser['parse'](srcContent);\n parser['flush']();\n};\n\nvar loadTrack = function loadTrack(src, track) {\n var opts = {\n uri: src\n };\n\n var crossOrigin = _utilsUrlJs.isCrossOrigin(src);\n if (crossOrigin) {\n opts.cors = crossOrigin;\n }\n\n _xhr2['default'](opts, Fn.bind(this, function (err, response, responseBody) {\n if (err) {\n return _utilsLogJs2['default'].error(err, response);\n }\n\n track.loaded_ = true;\n parseCues(responseBody, track);\n }));\n};\n\nvar indexOf = function indexOf(searchElement, fromIndex) {\n if (this == null) {\n throw new TypeError('\"this\" is null or not defined');\n }\n\n var O = Object(this);\n\n var len = O.length >>> 0;\n\n if (len === 0) {\n return -1;\n }\n\n var n = +fromIndex || 0;\n\n if (Math.abs(n) === Infinity) {\n n = 0;\n }\n\n if (n >= len) {\n return -1;\n }\n\n var k = Math.max(n >= 0 ? n : len - Math.abs(n), 0);\n\n while (k < len) {\n if (k in O && O[k] === searchElement) {\n return k;\n }\n k++;\n }\n return -1;\n};\n\nexports['default'] = TextTrack;\nmodule.exports = exports['default'];\n\n},{\"../event-target\":90,\"../utils/browser.js\":115,\"../utils/fn.js\":120,\"../utils/guid.js\":122,\"../utils/log.js\":123,\"../utils/url.js\":128,\"./text-track-cue-list\":108,\"./text-track-enums\":110,\"global/document\":1,\"global/window\":2,\"xhr\":50}],115:[function(_dereq_,module,exports){\n/**\n * @file browser.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar USER_AGENT = _globalWindow2['default'].navigator.userAgent;\nvar webkitVersionMap = /AppleWebKit\\/([\\d.]+)/i.exec(USER_AGENT);\nvar appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\n\n/*\n * Device is an iPhone\n *\n * @type {Boolean}\n * @constant\n * @private\n */\nvar IS_IPHONE = /iPhone/i.test(USER_AGENT);\nexports.IS_IPHONE = IS_IPHONE;\nvar IS_IPAD = /iPad/i.test(USER_AGENT);\nexports.IS_IPAD = IS_IPAD;\nvar IS_IPOD = /iPod/i.test(USER_AGENT);\nexports.IS_IPOD = IS_IPOD;\nvar IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\n\nexports.IS_IOS = IS_IOS;\nvar IOS_VERSION = (function () {\n var match = USER_AGENT.match(/OS (\\d+)_/i);\n if (match && match[1]) {\n return match[1];\n }\n})();\n\nexports.IOS_VERSION = IOS_VERSION;\nvar IS_ANDROID = /Android/i.test(USER_AGENT);\nexports.IS_ANDROID = IS_ANDROID;\nvar ANDROID_VERSION = (function () {\n // This matches Android Major.Minor.Patch versions\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\n major,\n minor;\n\n if (!match) {\n return null;\n }\n\n major = match[1] && parseFloat(match[1]);\n minor = match[2] && parseFloat(match[2]);\n\n if (major && minor) {\n return parseFloat(match[1] + '.' + match[2]);\n } else if (major) {\n return major;\n } else {\n return null;\n }\n})();\nexports.ANDROID_VERSION = ANDROID_VERSION;\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\nvar IS_OLD_ANDROID = IS_ANDROID && /webkit/i.test(USER_AGENT) && ANDROID_VERSION < 2.3;\nexports.IS_OLD_ANDROID = IS_OLD_ANDROID;\nvar IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\n\nexports.IS_NATIVE_ANDROID = IS_NATIVE_ANDROID;\nvar IS_FIREFOX = /Firefox/i.test(USER_AGENT);\nexports.IS_FIREFOX = IS_FIREFOX;\nvar IS_CHROME = /Chrome/i.test(USER_AGENT);\nexports.IS_CHROME = IS_CHROME;\nvar IS_IE8 = /MSIE\\s8\\.0/.test(USER_AGENT);\n\nexports.IS_IE8 = IS_IE8;\nvar TOUCH_ENABLED = !!('ontouchstart' in _globalWindow2['default'] || _globalWindow2['default'].DocumentTouch && _globalDocument2['default'] instanceof _globalWindow2['default'].DocumentTouch);\nexports.TOUCH_ENABLED = TOUCH_ENABLED;\nvar BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _globalDocument2['default'].createElement('video').style);\nexports.BACKGROUND_SIZE_SUPPORTED = BACKGROUND_SIZE_SUPPORTED;\n\n},{\"global/document\":1,\"global/window\":2}],116:[function(_dereq_,module,exports){\n/**\n * @file buffer.js\n */\n'use strict';\n\nexports.__esModule = true;\nexports.bufferedPercent = bufferedPercent;\n\nvar _timeRangesJs = _dereq_('./time-ranges.js');\n\n/**\n * Compute how much your video has been buffered\n *\n * @param {Object} Buffered object\n * @param {Number} Total duration\n * @return {Number} Percent buffered of the total duration\n * @private\n * @function bufferedPercent\n */\n\nfunction bufferedPercent(buffered, duration) {\n var bufferedDuration = 0,\n start,\n end;\n\n if (!duration) {\n return 0;\n }\n\n if (!buffered || !buffered.length) {\n buffered = _timeRangesJs.createTimeRange(0, 0);\n }\n\n for (var i = 0; i < buffered.length; i++) {\n start = buffered.start(i);\n end = buffered.end(i);\n\n // buffered end can be bigger than duration by a very small fraction\n if (end > duration) {\n end = duration;\n }\n\n bufferedDuration += end - start;\n }\n\n return bufferedDuration / duration;\n}\n\n},{\"./time-ranges.js\":126}],117:[function(_dereq_,module,exports){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _logJs = _dereq_('./log.js');\n\nvar _logJs2 = _interopRequireDefault(_logJs);\n\n/**\n * Object containing the default behaviors for available handler methods.\n *\n * @private\n * @type {Object}\n */\nvar defaultBehaviors = {\n get: function get(obj, key) {\n return obj[key];\n },\n set: function set(obj, key, value) {\n obj[key] = value;\n return true;\n }\n};\n\n/**\n * Expose private objects publicly using a Proxy to log deprecation warnings.\n *\n * Browsers that do not support Proxy objects will simply return the `target`\n * object, so it can be directly exposed.\n *\n * @param {Object} target The target object.\n * @param {Object} messages Messages to display from a Proxy. Only operations\n * with an associated message will be proxied.\n * @param {String} [messages.get]\n * @param {String} [messages.set]\n * @return {Object} A Proxy if supported or the `target` argument.\n */\n\nexports['default'] = function (target) {\n var messages = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n\n if (typeof Proxy === 'function') {\n var _ret = (function () {\n var handler = {};\n\n // Build a handler object based on those keys that have both messages\n // and default behaviors.\n Object.keys(messages).forEach(function (key) {\n if (defaultBehaviors.hasOwnProperty(key)) {\n handler[key] = function () {\n _logJs2['default'].warn(messages[key]);\n return defaultBehaviors[key].apply(this, arguments);\n };\n }\n });\n\n return {\n v: new Proxy(target, handler)\n };\n })();\n\n if (typeof _ret === 'object') return _ret.v;\n }\n return target;\n};\n\nmodule.exports = exports['default'];\n\n},{\"./log.js\":123}],118:[function(_dereq_,module,exports){\n/**\n * @file dom.js\n */\n'use strict';\n\nexports.__esModule = true;\nexports.getEl = getEl;\nexports.createEl = createEl;\nexports.insertElFirst = insertElFirst;\nexports.getElData = getElData;\nexports.hasElData = hasElData;\nexports.removeElData = removeElData;\nexports.hasElClass = hasElClass;\nexports.addElClass = addElClass;\nexports.removeElClass = removeElClass;\nexports.setElAttributes = setElAttributes;\nexports.getElAttributes = getElAttributes;\nexports.blockTextSelection = blockTextSelection;\nexports.unblockTextSelection = unblockTextSelection;\nexports.findElPosition = findElPosition;\nexports.getPointerPosition = getPointerPosition;\n\nvar _templateObject = _taggedTemplateLiteralLoose(['Setting attributes in the second argument of createEl()\\n has been deprecated. Use the third argument instead.\\n createEl(type, properties, attributes). Attempting to set ', ' to ', '.'], ['Setting attributes in the second argument of createEl()\\n has been deprecated. Use the third argument instead.\\n createEl(type, properties, attributes). Attempting to set ', ' to ', '.']);\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; }\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _guidJs = _dereq_('./guid.js');\n\nvar Guid = _interopRequireWildcard(_guidJs);\n\nvar _logJs = _dereq_('./log.js');\n\nvar _logJs2 = _interopRequireDefault(_logJs);\n\nvar _tsml = _dereq_('tsml');\n\nvar _tsml2 = _interopRequireDefault(_tsml);\n\n/**\n * Shorthand for document.getElementById()\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\n *\n * @param {String} id Element ID\n * @return {Element} Element with supplied ID\n * @function getEl\n */\n\nfunction getEl(id) {\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n return _globalDocument2['default'].getElementById(id);\n}\n\n/**\n * Creates an element and applies properties.\n *\n * @param {String=} tagName Name of tag to be created.\n * @param {Object=} properties Element properties to be applied.\n * @return {Element}\n * @function createEl\n */\n\nfunction createEl() {\n var tagName = arguments.length <= 0 || arguments[0] === undefined ? 'div' : arguments[0];\n var properties = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\n var attributes = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\n\n var el = _globalDocument2['default'].createElement(tagName);\n\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\n var val = properties[propName];\n\n // See #2176\n // We originally were accepting both properties and attributes in the\n // same object, but that doesn't work so well.\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\n _logJs2['default'].warn(_tsml2['default'](_templateObject, propName, val));\n el.setAttribute(propName, val);\n } else {\n el[propName] = val;\n }\n });\n\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n var val = attributes[attrName];\n el.setAttribute(attrName, attributes[attrName]);\n });\n\n return el;\n}\n\n/**\n * Insert an element as the first child node of another\n *\n * @param {Element} child Element to insert\n * @param {Element} parent Element to insert child into\n * @private\n * @function insertElFirst\n */\n\nfunction insertElFirst(child, parent) {\n if (parent.firstChild) {\n parent.insertBefore(child, parent.firstChild);\n } else {\n parent.appendChild(child);\n }\n}\n\n/**\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\n * Ex. Event listeners are stored here.\n * (also from jsninja.com, slightly modified and updated for closure compiler)\n *\n * @type {Object}\n * @private\n */\nvar elData = {};\n\n/*\n * Unique attribute name to store an element's guid in\n *\n * @type {String}\n * @constant\n * @private\n */\nvar elIdAttr = 'vdata' + new Date().getTime();\n\n/**\n * Returns the cache object where data for an element is stored\n *\n * @param {Element} el Element to store data for.\n * @return {Object}\n * @function getElData\n */\n\nfunction getElData(el) {\n var id = el[elIdAttr];\n\n if (!id) {\n id = el[elIdAttr] = Guid.newGUID();\n }\n\n if (!elData[id]) {\n elData[id] = {};\n }\n\n return elData[id];\n}\n\n/**\n * Returns whether or not an element has cached data\n *\n * @param {Element} el A dom element\n * @return {Boolean}\n * @private\n * @function hasElData\n */\n\nfunction hasElData(el) {\n var id = el[elIdAttr];\n\n if (!id) {\n return false;\n }\n\n return !!Object.getOwnPropertyNames(elData[id]).length;\n}\n\n/**\n * Delete data for the element from the cache and the guid attr from getElementById\n *\n * @param {Element} el Remove data for an element\n * @private\n * @function removeElData\n */\n\nfunction removeElData(el) {\n var id = el[elIdAttr];\n\n if (!id) {\n return;\n }\n\n // Remove all stored data\n delete elData[id];\n\n // Remove the elIdAttr property from the DOM node\n try {\n delete el[elIdAttr];\n } catch (e) {\n if (el.removeAttribute) {\n el.removeAttribute(elIdAttr);\n } else {\n // IE doesn't appear to support removeAttribute on the document element\n el[elIdAttr] = null;\n }\n }\n}\n\n/**\n * Check if an element has a CSS class\n *\n * @param {Element} element Element to check\n * @param {String} classToCheck Classname to check\n * @function hasElClass\n */\n\nfunction hasElClass(element, classToCheck) {\n return (' ' + element.className + ' ').indexOf(' ' + classToCheck + ' ') !== -1;\n}\n\n/**\n * Add a CSS class name to an element\n *\n * @param {Element} element Element to add class name to\n * @param {String} classToAdd Classname to add\n * @function addElClass\n */\n\nfunction addElClass(element, classToAdd) {\n if (!hasElClass(element, classToAdd)) {\n element.className = element.className === '' ? classToAdd : element.className + ' ' + classToAdd;\n }\n}\n\n/**\n * Remove a CSS class name from an element\n *\n * @param {Element} element Element to remove from class name\n * @param {String} classToRemove Classname to remove\n * @function removeElClass\n */\n\nfunction removeElClass(element, classToRemove) {\n if (!hasElClass(element, classToRemove)) {\n return;\n }\n\n var classNames = element.className.split(' ');\n\n // no arr.indexOf in ie8, and we don't want to add a big shim\n for (var i = classNames.length - 1; i >= 0; i--) {\n if (classNames[i] === classToRemove) {\n classNames.splice(i, 1);\n }\n }\n\n element.className = classNames.join(' ');\n}\n\n/**\n * Apply attributes to an HTML element.\n *\n * @param {Element} el Target element.\n * @param {Object=} attributes Element attributes to be applied.\n * @private\n * @function setElAttributes\n */\n\nfunction setElAttributes(el, attributes) {\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\n var attrValue = attributes[attrName];\n\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\n el.removeAttribute(attrName);\n } else {\n el.setAttribute(attrName, attrValue === true ? '' : attrValue);\n }\n });\n}\n\n/**\n * Get an element's attribute values, as defined on the HTML tag\n * Attributes are not the same as properties. They're defined on the tag\n * or with setAttribute (which shouldn't be used with HTML)\n * This will return true or false for boolean attributes.\n *\n * @param {Element} tag Element from which to get tag attributes\n * @return {Object}\n * @private\n * @function getElAttributes\n */\n\nfunction getElAttributes(tag) {\n var obj, knownBooleans, attrs, attrName, attrVal;\n\n obj = {};\n\n // known boolean attributes\n // we can check for matching boolean properties, but older browsers\n // won't know about HTML5 boolean attributes that we still read from\n knownBooleans = ',' + 'autoplay,controls,loop,muted,default' + ',';\n\n if (tag && tag.attributes && tag.attributes.length > 0) {\n attrs = tag.attributes;\n\n for (var i = attrs.length - 1; i >= 0; i--) {\n attrName = attrs[i].name;\n attrVal = attrs[i].value;\n\n // check for known booleans\n // the matching element property will return a value for typeof\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(',' + attrName + ',') !== -1) {\n // the value of an included boolean attribute is typically an empty\n // string ('') which would equal false if we just check for a false value.\n // we also don't want support bad code like autoplay='false'\n attrVal = attrVal !== null ? true : false;\n }\n\n obj[attrName] = attrVal;\n }\n }\n\n return obj;\n}\n\n/**\n * Attempt to block the ability to select text while dragging controls\n *\n * @return {Boolean}\n * @method blockTextSelection\n */\n\nfunction blockTextSelection() {\n _globalDocument2['default'].body.focus();\n _globalDocument2['default'].onselectstart = function () {\n return false;\n };\n}\n\n/**\n * Turn off text selection blocking\n *\n * @return {Boolean}\n * @method unblockTextSelection\n */\n\nfunction unblockTextSelection() {\n _globalDocument2['default'].onselectstart = function () {\n return true;\n };\n}\n\n/**\n * Offset Left\n * getBoundingClientRect technique from\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\n *\n * @param {Element} el Element from which to get offset\n * @return {Object=}\n * @method findElPosition\n */\n\nfunction findElPosition(el) {\n var box = undefined;\n\n if (el.getBoundingClientRect && el.parentNode) {\n box = el.getBoundingClientRect();\n }\n\n if (!box) {\n return {\n left: 0,\n top: 0\n };\n }\n\n var docEl = _globalDocument2['default'].documentElement;\n var body = _globalDocument2['default'].body;\n\n var clientLeft = docEl.clientLeft || body.clientLeft || 0;\n var scrollLeft = _globalWindow2['default'].pageXOffset || body.scrollLeft;\n var left = box.left + scrollLeft - clientLeft;\n\n var clientTop = docEl.clientTop || body.clientTop || 0;\n var scrollTop = _globalWindow2['default'].pageYOffset || body.scrollTop;\n var top = box.top + scrollTop - clientTop;\n\n // Android sometimes returns slightly off decimal values, so need to round\n return {\n left: Math.round(left),\n top: Math.round(top)\n };\n}\n\n/**\n * Get pointer position in element\n * Returns an object with x and y coordinates.\n * The base on the coordinates are the bottom left of the element.\n *\n * @param {Element} el Element on which to get the pointer position on\n * @param {Event} event Event object\n * @return {Object=} position This object will have x and y coordinates corresponding to the mouse position\n * @metho getPointerPosition\n */\n\nfunction getPointerPosition(el, event) {\n var position = {};\n var box = findElPosition(el);\n var boxW = el.offsetWidth;\n var boxH = el.offsetHeight;\n\n var boxY = box.top;\n var boxX = box.left;\n var pageY = event.pageY;\n var pageX = event.pageX;\n\n if (event.changedTouches) {\n pageX = event.changedTouches[0].pageX;\n pageY = event.changedTouches[0].pageY;\n }\n\n position.y = Math.max(0, Math.min(1, (boxY - pageY + boxH) / boxH));\n position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));\n\n return position;\n}\n\n},{\"./guid.js\":122,\"./log.js\":123,\"global/document\":1,\"global/window\":2,\"tsml\":49}],119:[function(_dereq_,module,exports){\n/**\n * @file events.js\n *\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\n * robust as jquery's, so there's probably some differences.\n */\n\n'use strict';\n\nexports.__esModule = true;\nexports.on = on;\nexports.off = off;\nexports.trigger = trigger;\nexports.one = one;\nexports.fixEvent = fixEvent;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nvar _domJs = _dereq_('./dom.js');\n\nvar Dom = _interopRequireWildcard(_domJs);\n\nvar _guidJs = _dereq_('./guid.js');\n\nvar Guid = _interopRequireWildcard(_guidJs);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\n\nfunction on(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(on, elem, type, fn);\n }\n\n var data = Dom.getElData(elem);\n\n // We need a place to store all our handler data\n if (!data.handlers) data.handlers = {};\n\n if (!data.handlers[type]) data.handlers[type] = [];\n\n if (!fn.guid) fn.guid = Guid.newGUID();\n\n data.handlers[type].push(fn);\n\n if (!data.dispatcher) {\n data.disabled = false;\n\n data.dispatcher = function (event, hash) {\n\n if (data.disabled) return;\n event = fixEvent(event);\n\n var handlers = data.handlers[event.type];\n\n if (handlers) {\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\n var handlersCopy = handlers.slice(0);\n\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\n if (event.isImmediatePropagationStopped()) {\n break;\n } else {\n handlersCopy[m].call(elem, event, hash);\n }\n }\n }\n };\n }\n\n if (data.handlers[type].length === 1) {\n if (elem.addEventListener) {\n elem.addEventListener(type, data.dispatcher, false);\n } else if (elem.attachEvent) {\n elem.attachEvent('on' + type, data.dispatcher);\n }\n }\n}\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\n\nfunction off(elem, type, fn) {\n // Don't want to add a cache object through getElData if not needed\n if (!Dom.hasElData(elem)) return;\n\n var data = Dom.getElData(elem);\n\n // If no events exist, nothing to unbind\n if (!data.handlers) {\n return;\n }\n\n if (Array.isArray(type)) {\n return _handleMultipleEvents(off, elem, type, fn);\n }\n\n // Utility function\n var removeType = function removeType(t) {\n data.handlers[t] = [];\n _cleanUpEvents(elem, t);\n };\n\n // Are we removing all bound events?\n if (!type) {\n for (var t in data.handlers) {\n removeType(t);\n }return;\n }\n\n var handlers = data.handlers[type];\n\n // If no handlers exist, nothing to unbind\n if (!handlers) return;\n\n // If no listener was provided, remove all listeners for type\n if (!fn) {\n removeType(type);\n return;\n }\n\n // We're only removing a single handler\n if (fn.guid) {\n for (var n = 0; n < handlers.length; n++) {\n if (handlers[n].guid === fn.guid) {\n handlers.splice(n--, 1);\n }\n }\n }\n\n _cleanUpEvents(elem, type);\n}\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\n\nfunction trigger(elem, event, hash) {\n // Fetches element data and a reference to the parent (for bubbling).\n // Don't want to add a data object to cache for every parent,\n // so checking hasElData first.\n var elemData = Dom.hasElData(elem) ? Dom.getElData(elem) : {};\n var parent = elem.parentNode || elem.ownerDocument;\n // type = event.type || event,\n // handler;\n\n // If an event name was passed as a string, creates an event out of it\n if (typeof event === 'string') {\n event = { type: event, target: elem };\n }\n // Normalizes the event properties.\n event = fixEvent(event);\n\n // If the passed element has a dispatcher, executes the established handlers.\n if (elemData.dispatcher) {\n elemData.dispatcher.call(elem, event, hash);\n }\n\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\n // recursively calls this function to bubble the event up the DOM.\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\n trigger.call(null, parent, event, hash);\n\n // If at the top of the DOM, triggers the default action unless disabled.\n } else if (!parent && !event.defaultPrevented) {\n var targetData = Dom.getElData(event.target);\n\n // Checks if the target has a default action for this event.\n if (event.target[event.type]) {\n // Temporarily disables event dispatching on the target as we have already executed the handler.\n targetData.disabled = true;\n // Executes the default action.\n if (typeof event.target[event.type] === 'function') {\n event.target[event.type]();\n }\n // Re-enables event dispatching.\n targetData.disabled = false;\n }\n }\n\n // Inform the triggerer if the default was prevented by returning false\n return !event.defaultPrevented;\n}\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\n\nfunction one(elem, type, fn) {\n if (Array.isArray(type)) {\n return _handleMultipleEvents(one, elem, type, fn);\n }\n var func = function func() {\n off(elem, type, func);\n fn.apply(this, arguments);\n };\n // copy the guid to the new function so it can removed using the original function's ID\n func.guid = fn.guid = fn.guid || Guid.newGUID();\n on(elem, type, func);\n}\n\n/**\n * Fix a native event to have standard property values\n *\n * @param {Object} event Event object to fix\n * @return {Object}\n * @private\n * @method fixEvent\n */\n\nfunction fixEvent(event) {\n\n function returnTrue() {\n return true;\n }\n function returnFalse() {\n return false;\n }\n\n // Test if fixing up is needed\n // Used to check if !event.stopPropagation instead of isPropagationStopped\n // But native events return true for stopPropagation, but don't have\n // other expected methods like isPropagationStopped. Seems to be a problem\n // with the Javascript Ninja code. So we're just overriding all events now.\n if (!event || !event.isPropagationStopped) {\n var old = event || _globalWindow2['default'].event;\n\n event = {};\n // Clone the old object so that we can modify the values event = {};\n // IE8 Doesn't like when you mess with native event properties\n // Firefox returns false for event.hasOwnProperty('type') and other props\n // which makes copying more difficult.\n // TODO: Probably best to create a whitelist of event props\n for (var key in old) {\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\n // and webkitMovementX/Y\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY') {\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\n // we still want to if preventDefault isn't supported (IE8).\n if (!(key === 'returnValue' && old.preventDefault)) {\n event[key] = old[key];\n }\n }\n }\n\n // The event occurred on this element\n if (!event.target) {\n event.target = event.srcElement || _globalDocument2['default'];\n }\n\n // Handle which other element the event is related to\n if (!event.relatedTarget) {\n event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;\n }\n\n // Stop the default browser action\n event.preventDefault = function () {\n if (old.preventDefault) {\n old.preventDefault();\n }\n event.returnValue = false;\n old.returnValue = false;\n event.defaultPrevented = true;\n };\n\n event.defaultPrevented = false;\n\n // Stop the event from bubbling\n event.stopPropagation = function () {\n if (old.stopPropagation) {\n old.stopPropagation();\n }\n event.cancelBubble = true;\n old.cancelBubble = true;\n event.isPropagationStopped = returnTrue;\n };\n\n event.isPropagationStopped = returnFalse;\n\n // Stop the event from bubbling and executing other handlers\n event.stopImmediatePropagation = function () {\n if (old.stopImmediatePropagation) {\n old.stopImmediatePropagation();\n }\n event.isImmediatePropagationStopped = returnTrue;\n event.stopPropagation();\n };\n\n event.isImmediatePropagationStopped = returnFalse;\n\n // Handle mouse position\n if (event.clientX != null) {\n var doc = _globalDocument2['default'].documentElement,\n body = _globalDocument2['default'].body;\n\n event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\n event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\n }\n\n // Handle key presses\n event.which = event.charCode || event.keyCode;\n\n // Fix button for mouse clicks:\n // 0 == left; 1 == middle; 2 == right\n if (event.button != null) {\n event.button = event.button & 1 ? 0 : event.button & 4 ? 1 : event.button & 2 ? 2 : 0;\n }\n }\n\n // Returns fixed-up instance\n return event;\n}\n\n/**\n * Clean up the listener cache and dispatchers\n*\n * @param {Element|Object} elem Element to clean up\n * @param {String} type Type of event to clean up\n * @private\n * @method _cleanUpEvents\n */\nfunction _cleanUpEvents(elem, type) {\n var data = Dom.getElData(elem);\n\n // Remove the events of a particular type if there are none left\n if (data.handlers[type].length === 0) {\n delete data.handlers[type];\n // data.handlers[type] = null;\n // Setting to null was causing an error with data.handlers\n\n // Remove the meta-handler from the element\n if (elem.removeEventListener) {\n elem.removeEventListener(type, data.dispatcher, false);\n } else if (elem.detachEvent) {\n elem.detachEvent('on' + type, data.dispatcher);\n }\n }\n\n // Remove the events object if there are no types left\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\n delete data.handlers;\n delete data.dispatcher;\n delete data.disabled;\n }\n\n // Finally remove the element data if there is no data left\n if (Object.getOwnPropertyNames(data).length === 0) {\n Dom.removeElData(elem);\n }\n}\n\n/**\n * Loops through an array of event types and calls the requested method for each type.\n *\n * @param {Function} fn The event method we want to use.\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String} type Type of event to bind to.\n * @param {Function} callback Event listener.\n * @private\n * @function _handleMultipleEvents\n */\nfunction _handleMultipleEvents(fn, elem, types, callback) {\n types.forEach(function (type) {\n //Call the event method for each one of the types\n fn(elem, type, callback);\n });\n}\n\n},{\"./dom.js\":118,\"./guid.js\":122,\"global/document\":1,\"global/window\":2}],120:[function(_dereq_,module,exports){\n/**\n * @file fn.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nvar _guidJs = _dereq_('./guid.js');\n\n/**\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\n * It also stores a unique id on the function so it can be easily removed from events\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n * @private\n * @method bind\n */\nvar bind = function bind(context, fn, uid) {\n // Make sure the function has a unique ID\n if (!fn.guid) {\n fn.guid = _guidJs.newGUID();\n }\n\n // Create the new function that changes the context\n var ret = function ret() {\n return fn.apply(context, arguments);\n };\n\n // Allow for the ability to individualize this function\n // Needed in the case where multiple objects might share the same prototype\n // IF both items add an event listener with the same function, then you try to remove just one\n // it will remove both because they both have the same guid.\n // when using this, you need to use the bind method when you remove the listener as well.\n // currently used in text tracks\n ret.guid = uid ? uid + '_' + fn.guid : fn.guid;\n\n return ret;\n};\nexports.bind = bind;\n\n},{\"./guid.js\":122}],121:[function(_dereq_,module,exports){\n/**\n * @file format-time.js\n *\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @private\n * @function formatTime\n */\n'use strict';\n\nexports.__esModule = true;\nfunction formatTime(seconds) {\n var guide = arguments.length <= 1 || arguments[1] === undefined ? seconds : arguments[1];\n return (function () {\n var s = Math.floor(seconds % 60);\n var m = Math.floor(seconds / 60 % 60);\n var h = Math.floor(seconds / 3600);\n var gm = Math.floor(guide / 60 % 60);\n var gh = Math.floor(guide / 3600);\n\n // handle invalid times\n if (isNaN(seconds) || seconds === Infinity) {\n // '-' is false for all relational operators (e.g. <, >=) so this setting\n // will add the minimum number of fields specified by the guide\n h = m = s = '-';\n }\n\n // Check if we need to show hours\n h = h > 0 || gh > 0 ? h + ':' : '';\n\n // If hours are showing, we may need to add a leading zero.\n // Always show at least one digit of minutes.\n m = ((h || gm >= 10) && m < 10 ? '0' + m : m) + ':';\n\n // Check if leading zero is need for seconds\n s = s < 10 ? '0' + s : s;\n\n return h + m + s;\n })();\n}\n\nexports['default'] = formatTime;\nmodule.exports = exports['default'];\n\n},{}],122:[function(_dereq_,module,exports){\n/**\n * @file guid.js\n *\n * Unique ID for an element or function\n * @type {Number}\n * @private\n */\n\"use strict\";\n\nexports.__esModule = true;\nexports.newGUID = newGUID;\nvar _guid = 1;\n\n/**\n * Get the next unique ID\n *\n * @return {String} \n * @function newGUID\n */\n\nfunction newGUID() {\n return _guid++;\n}\n\n},{}],123:[function(_dereq_,module,exports){\n/**\n * @file log.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\n/**\n * Log plain debug messages\n */\nvar log = function log() {\n _logType(null, arguments);\n};\n\n/**\n * Keep a history of log messages\n * @type {Array}\n */\nlog.history = [];\n\n/**\n * Log error messages\n */\nlog.error = function () {\n _logType('error', arguments);\n};\n\n/**\n * Log warning messages\n */\nlog.warn = function () {\n _logType('warn', arguments);\n};\n\n/**\n * Log messages to the console and history based on the type of message\n *\n * @param {String} type The type of message, or `null` for `log`\n * @param {Object} args The args to be passed to the log\n * @private\n * @method _logType\n */\nfunction _logType(type, args) {\n // convert args to an array to get array functions\n var argsArray = Array.prototype.slice.call(args);\n // if there's no console then don't try to output messages\n // they will still be stored in log.history\n // Was setting these once outside of this function, but containing them\n // in the function makes it easier to test cases where console doesn't exist\n var noop = function noop() {};\n\n var console = _globalWindow2['default']['console'] || {\n 'log': noop,\n 'warn': noop,\n 'error': noop\n };\n\n if (type) {\n // add the type to the front of the message\n argsArray.unshift(type.toUpperCase() + ':');\n } else {\n // default to log with no prefix\n type = 'log';\n }\n\n // add to history\n log.history.push(argsArray);\n\n // add console prefix after adding to history\n argsArray.unshift('VIDEOJS:');\n\n // call appropriate log function\n if (console[type].apply) {\n console[type].apply(console, argsArray);\n } else {\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\n console[type](argsArray.join(' '));\n }\n}\n\nexports['default'] = log;\nmodule.exports = exports['default'];\n\n},{\"global/window\":2}],124:[function(_dereq_,module,exports){\n/**\n * @file merge-options.js\n */\n'use strict';\n\nexports.__esModule = true;\nexports['default'] = mergeOptions;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');\n\nvar _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);\n\nfunction isPlain(obj) {\n return !!obj && typeof obj === 'object' && obj.toString() === '[object Object]' && obj.constructor === Object;\n}\n\n/**\n * Merge customizer. video.js simply overwrites non-simple objects\n * (like arrays) instead of attempting to overlay them.\n * @see https://lodash.com/docs#merge\n */\nvar customizer = function customizer(destination, source) {\n // If we're not working with a plain object, copy the value as is\n // If source is an array, for instance, it will replace destination\n if (!isPlain(source)) {\n return source;\n }\n\n // If the new value is a plain object but the first object value is not\n // we need to create a new object for the first object to merge with.\n // This makes it consistent with how merge() works by default\n // and also protects from later changes the to first object affecting\n // the second object's values.\n if (!isPlain(destination)) {\n return mergeOptions(source);\n }\n};\n\n/**\n * Merge one or more options objects, recursively merging **only**\n * plain object properties. Previously `deepMerge`.\n *\n * @param {...Object} source One or more objects to merge\n * @returns {Object} a new object that is the union of all\n * provided objects\n * @function mergeOptions\n */\n\nfunction mergeOptions() {\n // contruct the call dynamically to handle the variable number of\n // objects to merge\n var args = Array.prototype.slice.call(arguments);\n\n // unshift an empty object into the front of the call as the target\n // of the merge\n args.unshift({});\n\n // customize conflict resolution to match our historical merge behavior\n args.push(customizer);\n\n _lodashCompatObjectMerge2['default'].apply(null, args);\n\n // return the mutated result object\n return args[0];\n}\n\nmodule.exports = exports['default'];\n\n},{\"lodash-compat/object/merge\":40}],125:[function(_dereq_,module,exports){\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar createStyleElement = function createStyleElement(className) {\n var style = _globalDocument2['default'].createElement('style');\n style.className = className;\n\n return style;\n};\n\nexports.createStyleElement = createStyleElement;\nvar setTextContent = function setTextContent(el, content) {\n if (el.styleSheet) {\n el.styleSheet.cssText = content;\n } else {\n el.textContent = content;\n }\n};\nexports.setTextContent = setTextContent;\n\n},{\"global/document\":1}],126:[function(_dereq_,module,exports){\n'use strict';\n\nexports.__esModule = true;\nexports.createTimeRanges = createTimeRanges;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _logJs = _dereq_('./log.js');\n\nvar _logJs2 = _interopRequireDefault(_logJs);\n\n/**\n * @file time-ranges.js\n *\n * Should create a fake TimeRange object\n * Mimics an HTML5 time range instance, which has functions that\n * return the start and end times for a range\n * TimeRanges are returned by the buffered() method\n *\n * @param {(Number|Array)} Start of a single range or an array of ranges\n * @param {Number} End of a single range\n * @private\n * @method createTimeRanges\n */\n\nfunction createTimeRanges(start, end) {\n if (Array.isArray(start)) {\n return createTimeRangesObj(start);\n } else if (start === undefined || end === undefined) {\n return createTimeRangesObj();\n }\n return createTimeRangesObj([[start, end]]);\n}\n\nexports.createTimeRange = createTimeRanges;\n\nfunction createTimeRangesObj(ranges) {\n if (ranges === undefined || ranges.length === 0) {\n return {\n length: 0,\n start: function start() {\n throw new Error('This TimeRanges object is empty');\n },\n end: function end() {\n throw new Error('This TimeRanges object is empty');\n }\n };\n }\n return {\n length: ranges.length,\n start: getRange.bind(null, 'start', 0, ranges),\n end: getRange.bind(null, 'end', 1, ranges)\n };\n}\n\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\n if (rangeIndex === undefined) {\n _logJs2['default'].warn('DEPRECATED: Function \\'' + fnName + '\\' on \\'TimeRanges\\' called without an index argument.');\n rangeIndex = 0;\n }\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\n return ranges[rangeIndex][valueIndex];\n}\n\nfunction rangeCheck(fnName, index, maxIndex) {\n if (index < 0 || index > maxIndex) {\n throw new Error('Failed to execute \\'' + fnName + '\\' on \\'TimeRanges\\': The index provided (' + index + ') is greater than or equal to the maximum bound (' + maxIndex + ').');\n }\n}\n\n},{\"./log.js\":123}],127:[function(_dereq_,module,exports){\n/**\n * @file to-title-case.js\n *\n * Uppercase the first letter of a string\n *\n * @param {String} string String to be uppercased\n * @return {String}\n * @private\n * @method toTitleCase\n */\n\"use strict\";\n\nexports.__esModule = true;\nfunction toTitleCase(string) {\n return string.charAt(0).toUpperCase() + string.slice(1);\n}\n\nexports[\"default\"] = toTitleCase;\nmodule.exports = exports[\"default\"];\n\n},{}],128:[function(_dereq_,module,exports){\n/**\n * @file url.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _globalWindow = _dereq_('global/window');\n\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvar parseUrl = function parseUrl(url) {\n var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\n\n // add the url to an anchor and let the browser parse the URL\n var a = _globalDocument2['default'].createElement('a');\n a.href = url;\n\n // IE8 (and 9?) Fix\n // ie8 doesn't parse the URL correctly until the anchor is actually\n // added to the body, and an innerHTML is needed to trigger the parsing\n var addToBody = a.host === '' && a.protocol !== 'file:';\n var div = undefined;\n if (addToBody) {\n div = _globalDocument2['default'].createElement('div');\n div.innerHTML = '';\n a = div.firstChild;\n // prevent the div from affecting layout\n div.setAttribute('style', 'display:none; position:absolute;');\n _globalDocument2['default'].body.appendChild(div);\n }\n\n // Copy the specific URL properties to a new object\n // This is also needed for IE8 because the anchor loses its\n // properties when it's removed from the dom\n var details = {};\n for (var i = 0; i < props.length; i++) {\n details[props[i]] = a[props[i]];\n }\n\n // IE9 adds the port to the host property unlike everyone else. If\n // a port identifier is added for standard ports, strip it.\n if (details.protocol === 'http:') {\n details.host = details.host.replace(/:80$/, '');\n }\n if (details.protocol === 'https:') {\n details.host = details.host.replace(/:443$/, '');\n }\n\n if (addToBody) {\n _globalDocument2['default'].body.removeChild(div);\n }\n\n return details;\n};\n\nexports.parseUrl = parseUrl;\n/**\n * Get absolute version of relative URL. Used to tell flash correct URL.\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\n *\n * @param {String} url URL to make absolute\n * @return {String} Absolute URL\n * @private\n * @method getAbsoluteURL\n */\nvar getAbsoluteURL = function getAbsoluteURL(url) {\n // Check if absolute URL\n if (!url.match(/^https?:\\/\\//)) {\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\n var div = _globalDocument2['default'].createElement('div');\n div.innerHTML = 'x';\n url = div.firstChild.href;\n }\n\n return url;\n};\n\nexports.getAbsoluteURL = getAbsoluteURL;\n/**\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\n *\n * @param {String} path The fileName path like '/path/to/file.mp4'\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\n * @method getFileExtension\n */\nvar getFileExtension = function getFileExtension(path) {\n if (typeof path === 'string') {\n var splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\n var pathParts = splitPathRe.exec(path);\n\n if (pathParts) {\n return pathParts.pop().toLowerCase();\n }\n }\n\n return '';\n};\n\nexports.getFileExtension = getFileExtension;\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvar isCrossOrigin = function isCrossOrigin(url) {\n var urlInfo = parseUrl(url);\n var winLoc = _globalWindow2['default'].location;\n\n // IE8 protocol relative urls will return ':' for protocol\n var srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\n\n // Check if url is for another domain/origin\n // IE8 doesn't know location.origin, so we won't rely on it here\n var crossOrigin = srcProtocol + urlInfo.host !== winLoc.protocol + winLoc.host;\n\n return crossOrigin;\n};\nexports.isCrossOrigin = isCrossOrigin;\n\n},{\"global/document\":1,\"global/window\":2}],129:[function(_dereq_,module,exports){\n/**\n * @file video.js\n */\n'use strict';\n\nexports.__esModule = true;\n\nfunction _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj['default'] = obj; return newObj; } }\n\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\n\nvar _globalDocument = _dereq_('global/document');\n\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\n\nvar _setup = _dereq_('./setup');\n\nvar setup = _interopRequireWildcard(_setup);\n\nvar _utilsStylesheetJs = _dereq_('./utils/stylesheet.js');\n\nvar stylesheet = _interopRequireWildcard(_utilsStylesheetJs);\n\nvar _component = _dereq_('./component');\n\nvar _component2 = _interopRequireDefault(_component);\n\nvar _eventTarget = _dereq_('./event-target');\n\nvar _eventTarget2 = _interopRequireDefault(_eventTarget);\n\nvar _utilsEventsJs = _dereq_('./utils/events.js');\n\nvar Events = _interopRequireWildcard(_utilsEventsJs);\n\nvar _player = _dereq_('./player');\n\nvar _player2 = _interopRequireDefault(_player);\n\nvar _pluginsJs = _dereq_('./plugins.js');\n\nvar _pluginsJs2 = _interopRequireDefault(_pluginsJs);\n\nvar _srcJsUtilsMergeOptionsJs = _dereq_('../../src/js/utils/merge-options.js');\n\nvar _srcJsUtilsMergeOptionsJs2 = _interopRequireDefault(_srcJsUtilsMergeOptionsJs);\n\nvar _utilsFnJs = _dereq_('./utils/fn.js');\n\nvar Fn = _interopRequireWildcard(_utilsFnJs);\n\nvar _tracksTextTrackJs = _dereq_('./tracks/text-track.js');\n\nvar _tracksTextTrackJs2 = _interopRequireDefault(_tracksTextTrackJs);\n\nvar _objectAssign = _dereq_('object.assign');\n\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\n\nvar _utilsTimeRangesJs = _dereq_('./utils/time-ranges.js');\n\nvar _utilsFormatTimeJs = _dereq_('./utils/format-time.js');\n\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\n\nvar _utilsLogJs = _dereq_('./utils/log.js');\n\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\n\nvar _utilsDomJs = _dereq_('./utils/dom.js');\n\nvar Dom = _interopRequireWildcard(_utilsDomJs);\n\nvar _utilsBrowserJs = _dereq_('./utils/browser.js');\n\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\n\nvar _utilsUrlJs = _dereq_('./utils/url.js');\n\nvar Url = _interopRequireWildcard(_utilsUrlJs);\n\nvar _extendJs = _dereq_('./extend.js');\n\nvar _extendJs2 = _interopRequireDefault(_extendJs);\n\nvar _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');\n\nvar _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);\n\nvar _utilsCreateDeprecationProxyJs = _dereq_('./utils/create-deprecation-proxy.js');\n\nvar _utilsCreateDeprecationProxyJs2 = _interopRequireDefault(_utilsCreateDeprecationProxyJs);\n\nvar _xhr = _dereq_('xhr');\n\nvar _xhr2 = _interopRequireDefault(_xhr);\n\n// Include the built-in techs\n\nvar _techHtml5Js = _dereq_('./tech/html5.js');\n\nvar _techHtml5Js2 = _interopRequireDefault(_techHtml5Js);\n\nvar _techFlashJs = _dereq_('./tech/flash.js');\n\nvar _techFlashJs2 = _interopRequireDefault(_techFlashJs);\n\n// HTML5 Element Shim for IE8\nif (typeof HTMLVideoElement === 'undefined') {\n _globalDocument2['default'].createElement('video');\n _globalDocument2['default'].createElement('audio');\n _globalDocument2['default'].createElement('track');\n}\n\n/**\n * Doubles as the main function for users to create a player instance and also\n * the main library object.\n * The `videojs` function can be used to initialize or retrieve a player.\n * ```js\n * var myPlayer = videojs('my_video_id');\n * ```\n *\n * @param {String|Element} id Video element or video element ID\n * @param {Object=} options Optional options object for config/settings\n * @param {Function=} ready Optional ready callback\n * @return {Player} A player instance\n * @mixes videojs\n * @method videojs\n */\nvar videojs = function videojs(id, options, ready) {\n var tag; // Element of ID\n\n // Allow for element or ID to be passed in\n // String ID\n if (typeof id === 'string') {\n\n // Adjust for jQuery ID syntax\n if (id.indexOf('#') === 0) {\n id = id.slice(1);\n }\n\n // If a player instance has already been created for this ID return it.\n if (videojs.getPlayers()[id]) {\n\n // If options or ready funtion are passed, warn\n if (options) {\n _utilsLogJs2['default'].warn('Player \"' + id + '\" is already initialised. Options will not be applied.');\n }\n\n if (ready) {\n videojs.getPlayers()[id].ready(ready);\n }\n\n return videojs.getPlayers()[id];\n\n // Otherwise get element for ID\n } else {\n tag = Dom.getEl(id);\n }\n\n // ID is a media element\n } else {\n tag = id;\n }\n\n // Check for a useable element\n if (!tag || !tag.nodeName) {\n // re: nodeName, could be a box div also\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\n }\n\n // Element may have a player attr referring to an already created player instance.\n // If not, set up a new player and return the instance.\n return tag['player'] || new _player2['default'](tag, options, ready);\n};\n\n// Add default styles\nvar style = _globalDocument2['default'].querySelector('.vjs-styles-defaults');\nif (!style) {\n style = stylesheet.createStyleElement('vjs-styles-defaults');\n var head = _globalDocument2['default'].querySelector('head');\n head.insertBefore(style, head.firstChild);\n stylesheet.setTextContent(style, '\\n .video-js {\\n width: 300px;\\n height: 150px;\\n }\\n\\n .vjs-fluid {\\n padding-top: 56.25%\\n }\\n ');\n}\n\n// Run Auto-load players\n// You have to wait at least once in case this script is loaded after your video in the DOM (weird behavior only with minified version)\nsetup.autoSetupTimeout(1, videojs);\n\n/*\n * Current software version (semver)\n *\n * @type {String}\n */\nvideojs.VERSION = '5.0.0';\n\n/**\n * The global options object. These are the settings that take effect\n * if no overrides are specified when the player is created.\n *\n * ```js\n * videojs.options.autoplay = true\n * // -> all players will autoplay by default\n * ```\n *\n * @type {Object}\n */\nvideojs.options = _player2['default'].prototype.options_;\n\n/**\n * Get an object with the currently created players, keyed by player ID\n *\n * @return {Object} The created players\n * @mixes videojs\n * @method getPlayers\n */\nvideojs.getPlayers = function () {\n return _player2['default'].players;\n};\n\n/**\n * For backward compatibility, expose players object.\n *\n * @deprecated\n * @memberOf videojs\n * @property {Object|Proxy} players\n */\nvideojs.players = _utilsCreateDeprecationProxyJs2['default'](_player2['default'].players, {\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\n set: 'Modification of videojs.players is deprecated'\n});\n\n/**\n * Get a component class object by name\n * ```js\n * var VjsButton = videojs.getComponent('Button');\n * // Create a new instance of the component\n * var myButton = new VjsButton(myPlayer);\n * ```\n *\n * @return {Component} Component identified by name\n * @mixes videojs\n * @method getComponent\n */\nvideojs.getComponent = _component2['default'].getComponent;\n\n/**\n * Register a component so it can referred to by name\n * Used when adding to other\n * components, either through addChild\n * `component.addChild('myComponent')`\n * or through default children options\n * `{ children: ['myComponent'] }`.\n * ```js\n * // Get a component to subclass\n * var VjsButton = videojs.getComponent('Button');\n * // Subclass the component (see 'extend' doc for more info)\n * var MySpecialButton = videojs.extend(VjsButton, {});\n * // Register the new component\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\n * // (optionally) add the new component as a default player child\n * myPlayer.addChild('MySepcialButton');\n * ```\n * NOTE: You could also just initialize the component before adding.\n * `component.addChild(new MyComponent());`\n *\n * @param {String} The class name of the component\n * @param {Component} The component class\n * @return {Component} The newly registered component\n * @mixes videojs\n * @method registerComponent\n */\nvideojs.registerComponent = _component2['default'].registerComponent;\n\n/**\n * A suite of browser and device tests\n *\n * @type {Object}\n * @private\n */\nvideojs.browser = browser;\n\n/**\n * Whether or not the browser supports touch events. Included for backward\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\n * instead going forward.\n *\n * @deprecated\n * @type {Boolean}\n */\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\n\n/**\n * Subclass an existing class\n * Mimics ES6 subclassing with the `extend` keyword\n * ```js\n * // Create a basic javascript 'class'\n * function MyClass(name){\n * // Set a property at initialization\n * this.myName = name;\n * }\n * // Create an instance method\n * MyClass.prototype.sayMyName = function(){\n * alert(this.myName);\n * };\n * // Subclass the exisitng class and change the name\n * // when initializing\n * var MySubClass = videojs.extend(MyClass, {\n * constructor: function(name) {\n * // Call the super class constructor for the subclass\n * MyClass.call(this, name)\n * }\n * });\n * // Create an instance of the new sub class\n * var myInstance = new MySubClass('John');\n * myInstance.sayMyName(); // -> should alert \"John\"\n * ```\n *\n * @param {Function} The Class to subclass\n * @param {Object} An object including instace methods for the new class\n * Optionally including a `constructor` function\n * @return {Function} The newly created subclass\n * @mixes videojs\n * @method extend\n */\nvideojs.extend = _extendJs2['default'];\n\n/**\n * Merge two options objects recursively\n * Performs a deep merge like lodash.merge but **only merges plain objects**\n * (not arrays, elements, anything else)\n * Other values will be copied directly from the second object.\n * ```js\n * var defaultOptions = {\n * foo: true,\n * bar: {\n * a: true,\n * b: [1,2,3]\n * }\n * };\n * var newOptions = {\n * foo: false,\n * bar: {\n * b: [4,5,6]\n * }\n * };\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\n * // result.foo = false;\n * // result.bar.a = true;\n * // result.bar.b = [4,5,6];\n * ```\n *\n * @param {Object} The options object whose values will be overriden\n * @param {Object} The options object with values to override the first\n * @param {Object} Any number of additional options objects\n *\n * @return {Object} a new object with the merged values\n * @mixes videojs\n * @method mergeOptions\n */\nvideojs.mergeOptions = _srcJsUtilsMergeOptionsJs2['default'];\n\n/**\n * Change the context (this) of a function\n *\n * videojs.bind(newContext, function(){\n * this === newContext\n * });\n *\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\n * `function(){}.bind(newContext);` instead of this.\n *\n * @param {*} context The object to bind as scope\n * @param {Function} fn The function to be bound to a scope\n * @param {Number=} uid An optional unique ID for the function to be set\n * @return {Function}\n */\nvideojs.bind = Fn.bind;\n\n/**\n * Create a Video.js player plugin\n * Plugins are only initialized when options for the plugin are included\n * in the player options, or the plugin function on the player instance is\n * called.\n * **See the plugin guide in the docs for a more detailed example**\n * ```js\n * // Make a plugin that alerts when the player plays\n * videojs.plugin('myPlugin', function(myPluginOptions) {\n * myPluginOptions = myPluginOptions || {};\n *\n * var player = this;\n * var alertText = myPluginOptions.text || 'Player is playing!'\n *\n * player.on('play', function(){\n * alert(alertText);\n * });\n * });\n * // USAGE EXAMPLES\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\n * var player1 = videojs('idOne', {\n * myPlugin: {\n * text: 'Custom text!'\n * }\n * });\n * // Click play\n * // --> Should alert 'Custom text!'\n * // EXAMPLE 3: New player, initialize plugin later\n * var player3 = videojs('idThree');\n * // Click play\n * // --> NO ALERT\n * // Click pause\n * // Initialize plugin using the plugin function on the player instance\n * player3.myPlugin({\n * text: 'Plugin added later!'\n * });\n * // Click play\n * // --> Should alert 'Plugin added later!'\n * ```\n *\n * @param {String} The plugin name\n * @param {Function} The plugin function that will be called with options\n * @mixes videojs\n * @method plugin\n */\nvideojs.plugin = _pluginsJs2['default'];\n\n/**\n * Adding languages so that they're available to all players.\n * ```js\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\n * ```\n *\n * @param {String} code The language code or dictionary property\n * @param {Object} data The data values to be translated\n * @return {Object} The resulting language dictionary object\n * @mixes videojs\n * @method addLanguage\n */\nvideojs.addLanguage = function (code, data) {\n var _merge;\n\n code = ('' + code).toLowerCase();\n return _lodashCompatObjectMerge2['default'](videojs.options.languages, (_merge = {}, _merge[code] = data, _merge))[code];\n};\n\n/**\n * Log debug messages.\n *\n * @param {...Object} messages One or more messages to log\n */\nvideojs.log = _utilsLogJs2['default'];\n\n/**\n * Creates an emulated TimeRange object.\n *\n * @param {Number|Array} start Start time in seconds or an array of ranges\n * @param {Number} end End time in seconds\n * @return {Object} Fake TimeRange object\n * @method createTimeRange\n */\nvideojs.createTimeRange = videojs.createTimeRanges = _utilsTimeRangesJs.createTimeRanges;\n\n/**\n * Format seconds as a time string, H:MM:SS or M:SS\n * Supplying a guide (in seconds) will force a number of leading zeros\n * to cover the length of the guide\n *\n * @param {Number} seconds Number of seconds to be turned into a string\n * @param {Number} guide Number (in seconds) to model the string after\n * @return {String} Time formatted as H:MM:SS or M:SS\n * @method formatTime\n */\nvideojs.formatTime = _utilsFormatTimeJs2['default'];\n\n/**\n * Resolve and parse the elements of a URL\n *\n * @param {String} url The url to parse\n * @return {Object} An object of url details\n * @method parseUrl\n */\nvideojs.parseUrl = Url.parseUrl;\n\n/**\n * Returns whether the url passed is a cross domain request or not.\n *\n * @param {String} url The url to check\n * @return {Boolean} Whether it is a cross domain request or not\n * @method isCrossOrigin\n */\nvideojs.isCrossOrigin = Url.isCrossOrigin;\n\n/**\n * Event target class.\n *\n * @type {Function}\n */\nvideojs.EventTarget = _eventTarget2['default'];\n\n/**\n * Add an event listener to element\n * It stores the handler function in a separate cache object\n * and adds a generic handler to the element's event,\n * along with a unique id (guid) to the element.\n *\n * @param {Element|Object} elem Element or object to bind listeners to\n * @param {String|Array} type Type of event to bind to.\n * @param {Function} fn Event listener.\n * @method on\n */\nvideojs.on = Events.on;\n\n/**\n * Trigger a listener only once for an event\n *\n * @param {Element|Object} elem Element or object to\n * @param {String|Array} type Name/type of event\n * @param {Function} fn Event handler function\n * @method one\n */\nvideojs.one = Events.one;\n\n/**\n * Removes event listeners from an element\n *\n * @param {Element|Object} elem Object to remove listeners from\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\n * @method off\n */\nvideojs.off = Events.off;\n\n/**\n * Trigger an event for an element\n *\n * @param {Element|Object} elem Element to trigger an event on\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\n * @param {Object} [hash] data hash to pass along with the event\n * @return {Boolean=} Returned only if default was prevented\n * @method trigger\n */\nvideojs.trigger = Events.trigger;\n\n/**\n * A cross-browser XMLHttpRequest wrapper. Here's a simple example:\n *\n * videojs.xhr({\n * body: someJSONString,\n * uri: \"/foo\",\n * headers: {\n * \"Content-Type\": \"application/json\"\n * }\n * }, function (err, resp, body) {\n * // check resp.statusCode\n * });\n *\n * Check out the [full\n * documentation](https://github.com/Raynos/xhr/blob/v2.1.0/README.md)\n * for more options.\n *\n * @param {Object} options settings for the request.\n * @return {XMLHttpRequest|XDomainRequest} the request object.\n * @see https://github.com/Raynos/xhr\n */\nvideojs.xhr = _xhr2['default'];\n\n/**\n * TextTrack class\n *\n * @type {Function}\n */\nvideojs.TextTrack = _tracksTextTrackJs2['default'];\n\n// REMOVING: We probably should add this to the migration plugin\n// // Expose but deprecate the window[componentName] method for accessing components\n// Object.getOwnPropertyNames(Component.components).forEach(function(name){\n// let component = Component.components[name];\n//\n// // A deprecation warning as the constuctor\n// module.exports[name] = function(player, options, ready){\n// log.warn('Using videojs.'+name+' to access the '+name+' component has been deprecated. Please use videojs.getComponent(\"componentName\")');\n//\n// return new Component(player, options, ready);\n// };\n//\n// // Allow the prototype and class methods to be accessible still this way\n// // Though anything that attempts to override class methods will no longer work\n// assign(module.exports[name], component);\n// });\n\n/*\n * Custom Universal Module Definition (UMD)\n *\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\n * still support requirejs and browserify. This also needs to be closure\n * compiler compatible, so string keys are used.\n */\nif (typeof define === 'function' && define['amd']) {\n define('videojs', [], function () {\n return videojs;\n });\n\n // checking that module is an object too because of umdjs/umd#35\n} else if (typeof exports === 'object' && typeof module === 'object') {\n module['exports'] = videojs;\n }\n\nexports['default'] = videojs;\nmodule.exports = exports['default'];\n\n},{\"../../src/js/utils/merge-options.js\":124,\"./component\":58,\"./event-target\":90,\"./extend.js\":91,\"./player\":98,\"./plugins.js\":99,\"./setup\":101,\"./tech/flash.js\":104,\"./tech/html5.js\":105,\"./tracks/text-track.js\":114,\"./utils/browser.js\":115,\"./utils/create-deprecation-proxy.js\":117,\"./utils/dom.js\":118,\"./utils/events.js\":119,\"./utils/fn.js\":120,\"./utils/format-time.js\":121,\"./utils/log.js\":123,\"./utils/stylesheet.js\":125,\"./utils/time-ranges.js\":126,\"./utils/url.js\":128,\"global/document\":1,\"lodash-compat/object/merge\":40,\"object.assign\":43,\"xhr\":50}]},{},[129])(129)\n});\n\n\n//# sourceMappingURL=video.js.map\n/* vtt.js - v0.12.1 (https://github.com/mozilla/vtt.js) built on 08-07-2015 */\n\n(function(root) {\n var vttjs = root.vttjs = {};\n var cueShim = vttjs.VTTCue;\n var regionShim = vttjs.VTTRegion;\n var oldVTTCue = root.VTTCue;\n var oldVTTRegion = root.VTTRegion;\n\n vttjs.shim = function() {\n vttjs.VTTCue = cueShim;\n vttjs.VTTRegion = regionShim;\n };\n\n vttjs.restore = function() {\n vttjs.VTTCue = oldVTTCue;\n vttjs.VTTRegion = oldVTTRegion;\n };\n}(this));\n\n/**\n * Copyright 2013 vtt.js Contributors\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n(function(root, vttjs) {\n\n var autoKeyword = \"auto\";\n var directionSetting = {\n \"\": true,\n \"lr\": true,\n \"rl\": true\n };\n var alignSetting = {\n \"start\": true,\n \"middle\": true,\n \"end\": true,\n \"left\": true,\n \"right\": true\n };\n\n function findDirectionSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var dir = directionSetting[value.toLowerCase()];\n return dir ? value.toLowerCase() : false;\n }\n\n function findAlignSetting(value) {\n if (typeof value !== \"string\") {\n return false;\n }\n var align = alignSetting[value.toLowerCase()];\n return align ? value.toLowerCase() : false;\n }\n\n function extend(obj) {\n var i = 1;\n for (; i < arguments.length; i++) {\n var cobj = arguments[i];\n for (var p in cobj) {\n obj[p] = cobj[p];\n }\n }\n\n return obj;\n }\n\n function VTTCue(startTime, endTime, text) {\n var cue = this;\n var isIE8 = (/MSIE\\s8\\.0/).test(navigator.userAgent);\n var baseObj = {};\n\n if (isIE8) {\n cue = document.createElement('custom');\n } else {\n baseObj.enumerable = true;\n }\n\n /**\n * Shim implementation specific properties. These properties are not in\n * the spec.\n */\n\n // Lets us know when the VTTCue's data has changed in such a way that we need\n // to recompute its display state. This lets us compute its display state\n // lazily.\n cue.hasBeenReset = false;\n\n /**\n * VTTCue and TextTrackCue properties\n * http://dev.w3.org/html5/webvtt/#vttcue-interface\n */\n\n var _id = \"\";\n var _pauseOnExit = false;\n var _startTime = startTime;\n var _endTime = endTime;\n var _text = text;\n var _region = null;\n var _vertical = \"\";\n var _snapToLines = true;\n var _line = \"auto\";\n var _lineAlign = \"start\";\n var _position = 50;\n var _positionAlign = \"middle\";\n var _size = 50;\n var _align = \"middle\";\n\n Object.defineProperty(cue,\n \"id\", extend({}, baseObj, {\n get: function() {\n return _id;\n },\n set: function(value) {\n _id = \"\" + value;\n }\n }));\n\n Object.defineProperty(cue,\n \"pauseOnExit\", extend({}, baseObj, {\n get: function() {\n return _pauseOnExit;\n },\n set: function(value) {\n _pauseOnExit = !!value;\n }\n }));\n\n Object.defineProperty(cue,\n \"startTime\", extend({}, baseObj, {\n get: function() {\n return _startTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"Start time must be set to a number.\");\n }\n _startTime = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"endTime\", extend({}, baseObj, {\n get: function() {\n return _endTime;\n },\n set: function(value) {\n if (typeof value !== \"number\") {\n throw new TypeError(\"End time must be set to a number.\");\n }\n _endTime = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"text\", extend({}, baseObj, {\n get: function() {\n return _text;\n },\n set: function(value) {\n _text = \"\" + value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"region\", extend({}, baseObj, {\n get: function() {\n return _region;\n },\n set: function(value) {\n _region = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"vertical\", extend({}, baseObj, {\n get: function() {\n return _vertical;\n },\n set: function(value) {\n var setting = findDirectionSetting(value);\n // Have to check for false because the setting an be an empty string.\n if (setting === false) {\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\n }\n _vertical = setting;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"snapToLines\", extend({}, baseObj, {\n get: function() {\n return _snapToLines;\n },\n set: function(value) {\n _snapToLines = !!value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"line\", extend({}, baseObj, {\n get: function() {\n return _line;\n },\n set: function(value) {\n if (typeof value !== \"number\" && value !== autoKeyword) {\n throw new SyntaxError(\"An invalid number or illegal string was specified.\");\n }\n _line = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"lineAlign\", extend({}, baseObj, {\n get: function() {\n return _lineAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\n }\n _lineAlign = setting;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"position\", extend({}, baseObj, {\n get: function() {\n return _position;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Position must be between 0 and 100.\");\n }\n _position = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"positionAlign\", extend({}, baseObj, {\n get: function() {\n return _positionAlign;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\n }\n _positionAlign = setting;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"size\", extend({}, baseObj, {\n get: function() {\n return _size;\n },\n set: function(value) {\n if (value < 0 || value > 100) {\n throw new Error(\"Size must be between 0 and 100.\");\n }\n _size = value;\n this.hasBeenReset = true;\n }\n }));\n\n Object.defineProperty(cue,\n \"align\", extend({}, baseObj, {\n get: function() {\n return _align;\n },\n set: function(value) {\n var setting = findAlignSetting(value);\n if (!setting) {\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\n }\n _align = setting;\n this.hasBeenReset = true;\n }\n }));\n\n /**\n * Other