{"version":3,"sources":["vendor_038_infinite-scroll.js","vendor_028_toastr.js","vendor_029_underscore.string.js","vendor_030_video.js","vendor_031_FileAPI.html5.js","vendor_032_FileAPI.js","vendor_033_jquery.fileapi.min.js","vendor_034_angular-drag-and-drop-lists.js","vendor_035_videojs-resolution-switcher.js","vendor_036_Youtube.js","vendor_037_select.js","vendor_039_textAngular-rangy.min.js","vendor_040_textAngular.js","vendor_041_textAngular-sanitize.js"],"names":["mod","define","$","$container","listener","previousToast","toastId","toastType","toastr","clear","$toastElement","clearOptions","options","getOptions","getContainer","clearToast","toastsToClear","children","i","length","clearContainer","remove","removeToast","error","message","title","optionsOverride","notify","type","iconClass","iconClasses","info","subscribe","callback","success","version","warning","create","containerId","attr","addClass","positionClass","appendTo","target","createContainer","force","hideMethod","duration","hideDuration","easing","hideEasing","complete","publish","args","map","extend","preventDuplicates","shouldExit","intervalId","$titleElement","$messageElement","$progressElement","$closeElement","closeHtml","progressBar","hideEta","maxHideTime","response","state","startTime","Date","toastClass","suffix","escapeHtml","append","titleClass","setTitle","messageClass","setMessage","closeButton","closeClass","prepend","progressClass","rtl","newestOnTop","ariaValue","setAria","hide","showMethod","showDuration","showEasing","onShown","timeOut","setTimeout","hideToast","parseFloat","getTime","setInterval","updateProgress","closeOnHover","hover","stickAround","delayedHideToast","onclick","tapToDismiss","click","event","stopPropagation","undefined","cancelBubble","onCloseClick","handleEvents","debug","console","log","source","replace","override","method","closeMethod","closeDuration","closeEasing","clearTimeout","onHidden","endTime","extendedTimeOut","stop","percentage","width","is","amd","deps","factory","module","exports","require","window","jQuery","e","f","global","self","s","t","n","r","o","u","a","Error","call","1","_dereq_","trim","decap","str","decapitalize","match","c","toUpperCase","./decapitalize","./trim","2","makeString","charAt","slice","./helper/makeString","3","split","4","step","String","RegExp","5","capitalize","camelize","./camelize","./capitalize","6","7","substr","count","pos","indexOf","8","toLowerCase","9","10","pattern","reg","indent","matches","Math","min","getIndent","11","toPositive","ends","position","./helper/toPositive","12","escapeChars","reversedEscapeChars","key","m","./helper/escapeChars","13","result","prop","this","hasOwnProperty","14","value","_wrapped","fn2method","fn","prototype","concat","Array","arguments","res","apply","VERSION","isBlank","stripTags","chop","clean","chars","swapCase","escapeHTML","unescapeHTML","splice","insert","replaceAll","include","join","lines","dedent","reverse","startsWith","endsWith","pred","succ","titleize","underscored","dasherize","classify","humanize","ltrim","rtrim","truncate","prune","words","pad","lpad","rpad","lrpad","sprintf","vsprintf","toNumber","numberFormat","strRight","strRightBack","strLeft","strLeftBack","toSentence","toSentenceSerial","slugify","surround","quote","unquote","repeat","naturalCmp","levenshtein","toBoolean","escapeRegExp","strip","lstrip","rstrip","center","rjust","ljust","contains","q","toBool","camelcase","prototype2method","methodName","context","string","prototypeMethods","./chars","./chop","./classify","./clean","./count","./dasherize","./dedent","./endsWith","./escapeHTML","./exports","./helper/escapeRegExp","./humanize","./include","./insert","./isBlank","./join","./levenshtein","./lines","./lpad","./lrpad","./ltrim","./naturalCmp","./numberFormat","./pad","./pred","./prune","./quote","./repeat","./replaceAll","./reverse","./rpad","./rtrim","./slugify","./splice","./sprintf","./startsWith","./strLeft","./strLeftBack","./strRight","./strRightBack","./stripTags","./succ","./surround","./swapCase","./titleize","./toBoolean","./toNumber","./toSentence","./toSentenceSerial","./truncate","./underscored","./unescapeHTML","./unquote","./vsprintf","./words","15","direction","fromCharCode","charCodeAt","./makeString","16","characters","./escapeRegExp","17","lt","gt","quot","amp","apos","18","19","object","20","qty","21","number","22","23","needle","24","25","test","26","separator","shift","27","str1","str2","prev","current","j","pop","28","29","padStr","30","31","defaultToWhiteSpace","nativeTrimLeft","trimLeft","./helper/defaultToWhiteSpace","32","cmpRegex","tokens1","tokens2","b","num1","num2","33","dec","dsep","tsep","isNaN","parts","toFixed","fnums","decimals","34","strRepeat","padlen","ceil","floor","./helper/strRepeat","35","adjacent","./helper/adjacent","36","pruneStr","template","37","quoteChar","38","39","find","ignorecase","40","41","42","nativeTrimRight","trimRight","43","from","regex","index","44","howmany","arr","45","toString","Object","get_type","variable","str_repeat","str_format","cache","parse","format","parse_tree","argv","arg","k","pad_character","pad_length","cursor","tree_length","node_type","output","push","parseInt","toExponential","substring","abs","fmt","_fmt","arg_names","exec","field_list","replacement_field","field_match","46","starts","lastIndexOf","47","sep","48","49","50","51","52","53","wrapper","54","55","56","boolMatch","matchers","matcher","down","trueValues","falseValues","57","num","precision","factor","pow","isFinite","round","58","array","lastSeparator","serial","lastMember","59","lastSep","60","nativeTrim","61","truncateStr","62","63","entity","entityCode","64","65","unshift","66","delimiter","videojs","code","l","topLevel","minDoc","document","doccy","min-document","now","getNative","../internal/getNative","isObject","nativeMax","max","func","wait","maxTimeoutId","stamp","thisArg","timeoutId","trailingCall","lastCalled","maxWait","trailing","TypeError","leading","isCalled","id","delayed","remaining","maxDelayed","debounced","leadingCall","cancel","../date/now","../lang/isObject","start","rest","otherArgs","debounce","./debounce","iteratee","props","baseFor","createBaseFor","./createBaseFor","keysIn","../object/keysIn","./baseFor","arrayEach","baseMergeDeep","isArray","isArrayLike","isObjectLike","isTypedArray","keys","baseMerge","customizer","stackA","stackB","isSrcArr","srcValue","isCommon","../lang/isArray","../lang/isTypedArray","../object/keys","./arrayEach","./baseMergeDeep","./isArrayLike","./isObjectLike","arrayCopy","isArguments","isPlainObject","toPlainObject","mergeFunc","../lang/isArguments","../lang/isPlainObject","../lang/toPlainObject","./arrayCopy","toObject","./toObject","identity","argCount","collection","accumulator","other","../utility/identity","bindCallback","isIterateeCall","restParam","assigner","sources","guard","../function/restParam","./bindCallback","./isIterateeCall","fromRight","keysFunc","iterable","getLength","baseProperty","./baseProperty","isNative","../lang/isNative","isLength","./getLength","./isLength","isHostObject","reIsUint","isIndex","./isIndex","isString","propsLength","allowIndexes","../lang/isString","support","unindexedChars","../support","objectProto","propertyIsEnumerable","../internal/isArrayLike","../internal/isObjectLike","objToString","../internal/isLength","./isObject","isFunction","reIsHostCtor","fnToString","Function","reIsNative","../internal/isHostObject","./isFunction","baseForIn","Ctor","constructor","ownLast","subValue","../internal/baseForIn","./isArguments","typedArrayTags","baseCopy","../internal/baseCopy","shimKeys","nativeKeys","enumPrototypes","../internal/shimKeys","shadowProps","errorProto","stringProto","nonEnumProps","toLocaleString","valueOf","tag","proto","isProto","skipIndexes","skipErrorProps","enumErrorProps","skipProto","nonEnumShadows","nonEnums","nonEnum","../internal/arrayEach","../internal/isIndex","../lang/isFunction","merge","createAssigner","../internal/baseMerge","../internal/createAssigner","arrayProto","x","0","y","spliceObjects","Symbol","getOwnPropertySymbols","iterator","obj","sym","getOwnPropertyNames","syms","getOwnPropertyDescriptor","descriptor","enumerable","object-keys","bind","canBeObject","hasSymbols","propIsEnumerable","source1","objTarget","./hasSymbols","function-bind","defineProperties","implementation","getPolyfill","shim","./implementation","./polyfill","./shim","define-properties","foreach","toStr","supportsDescriptors","defineProperty","_","arePropertyDescriptorsSupported","name","predicate","configurable","writable","predicates","hasOwn","ctx","ERROR_MESSAGE","that","bound","binder","boundLength","boundArgs","Empty","has","isArgs","hasDontEnumBug","hasProtoEnumBug","dontEnums","equalsConstructorPrototype","ctor","blacklistedKeys","$console","$frame","$frameElement","$frames","$parent","$self","$webkitIndexedDB","$webkitStorageInfo","$window","hasAutomationEqualityBug","keysShim","theKeys","skipConstructor","equalsConstructorPrototypeIfNotBuggy","originalKeys","callee","assign","letters","actual","lacksProperEnumerationOrder","preventExtensions","thrower","assignHasPendingExceptions","polyfill","reviver","json","JSON","err","sa","once","parseHeaders","xtend","initParams","uri","params","createXHR","_createXHR","getBody","body","xhr","responseType","responseText","responseXML","isJson","failureResponse","headers","statusCode","url","rawRequest","errorFunc","evt","timeoutTimer","loadFunc","aborted","status","useXDR","getAllResponseHeaders","cors","XDomainRequest","XMLHttpRequest","data","sync","stringify","onreadystatechange","readyState","onload","onerror","onprogress","ontimeout","open","username","password","withCredentials","timeout","abort","setRequestHeader","isEmpty","beforeSend","send","forEachArray","global/window","is-function","parse-headers","alert","confirm","prompt","called","list","forEachString","forEachObject","len","left","right","forEach","row","for-each","_interopRequireDefault","__esModule","default","_buttonJs2","_componentJs2","BigPlayButton","_Button","player","instance","Constructor","_classCallCheck","subClass","superClass","setPrototypeOf","__proto__","_inherits","buildCSSClass","handleClick","player_","play","controlText_","registerComponent","./button.js","./component.js","_interopRequireWildcard","newObj","_clickableComponentJs2","_component2","_utilsLogJs2","_objectAssign2","Button","_ClickableComponent","createEl","attributes","className","warn","tabIndex","role","aria-live","el","createControlTextEl","addChild","child","handleKeyPress","which","./clickable-component.js","./component","./utils/events.js","./utils/fn.js","./utils/log.js","global/document","object.assign","Dom","Events","Fn","_globalDocument2","ClickableComponent","_Component","emitTapEvents","on","handleFocus","handleBlur","controlTextEl_","appendChild","controlText","text","innerHTML","localize","enable","removeClass","el_","setAttribute","disable","preventDefault","off","./utils/dom.js","_button2","CloseButton","trigger","bubbles","./button","67","_globalWindow2","Guid","_utilsToTitleCaseJs2","_utilsMergeOptionsJs2","Component","ready","options_","id_","newGUID","name_","children_","childIndex_","childNameIndex_","initChildren","reportTouchActivity","enableTouchActivity","dispose","parentNode","removeChild","removeElData","tagName","properties","language","languages","primaryLang","contentEl","contentEl_","getChildById","getChild","component","componentName","componentClassName","componentClass","ComponentClass","getComponent","childNodes","refNode","insertBefore","childFound","compEl","parentOptions","workingChildren","Tech","_this","filter","some","wchild","opts","isTech","playerOptions","newChild","first","second","third","_this2","removeOnDispose","guid","cleanRemover","nodeName","one","newFunc","_this3","_arguments","hash","isReady_","readyQueue_","triggerReady","readyQueue","selector","$$","hasClass","classToCheck","hasElClass","classToAdd","addElClass","classToRemove","removeElClass","toggleClass","classToToggle","toggleElClass","show","lockShowing","unlockShowing","skipListeners","dimension","height","dimensions","widthOrHeight","style","val","pxIndex","currentDimension","computedWidthOrHeight","getComputedStyle","computedStyle","getPropertyValue","currentStyle","rule","currentDimensions","currentWidth","currentHeight","touchStart","firstTouch","couldBeTap","touches","xdiff","pageX","ydiff","pageY","sqrt","noTap","reportUserActivity","report","touchHolding","clearInterval","touchEnd","disposeFn","interval","comp","components_","init","subObj","_name","./utils/guid.js","./utils/merge-options.js","./utils/to-title-case.js","68","ControlBar","dir","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/descriptions-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","69","FullscreenToggle","isFullscreen","exitFullscreen","requestFullscreen","../button.js","70","_component","LiveDisplay","updateShowing","Infinity","../component","../utils/dom.js","71","MuteToggle","update","tech_","muted","vol","volume","level","toMute","../button","72","PlayToggle","handlePlay","handlePause","paused","pause","73","_menuMenuButtonJs2","_menuMenuJs2","_playbackRateMenuItemJs2","PlaybackRateMenuButton","_MenuButton","updateVisibility","updateLabel","labelEl_","createMenu","menu","rates","playbackRates","rate","updateARIAAttributes","playbackRate","currentRate","newRate","playbackRateSupported","../../component.js","../../menu/menu-button.js","../../menu/menu.js","../../utils/dom.js","./playback-rate-menu-item.js","74","_menuMenuItemJs2","PlaybackRateMenuItem","_MenuItem","label","selected","contentElType","../../menu/menu-item.js","75","_componentJs","LoadProgressBar","buffered","bufferedEnd","percentify","time","end","percent","part","76","_utilsFormatTimeJs2","_lodashCompatFunctionThrottle2","MouseTimeDisplay","controlBar","progressControl","keepTooltipsInside","tooltip","handleMouseMove","newTime","calculateDistance","findElPosition","difference","clampPosition_","tooltipWidthHalf","getPointerPosition","playerWidth","actualPosition","../../utils/fn.js","../../utils/format-time.js","lodash-compat/function/throttle","77","PlayProgressBar","updateDataAttr","scrubbing","getCache","currentTime","78","ProgressControl","./mouse-time-display.js","./seek-bar.js","79","_sliderSliderJs2","SeekBar","_Slider","tooltipProgressBar","aria-label","updateAriaAttributes","bar","tooltipWidth","tooltipStyle","maxWidth","minWidth","getPercent","handleMouseDown","videoWasPlaying","handleMouseUp","stepForward","stepBack","barName","playerEvent","../../slider/slider.js","./load-progress-bar.js","./play-progress-bar.js","./tooltip-progress-bar.js","80","TooltipProgressBar","querySelector","formattedTime","81","_spacerJs2","CustomControlSpacer","_Spacer","./spacer.js","82","Spacer","83","_textTrackMenuItemJs2","CaptionSettingsMenuItem","_TextTrackMenuItem","kind","selectable","mode","focus","./text-track-menu-item.js","84","_textTrackButtonJs2","_captionSettingsMenuItemJs2","CaptionsButton","_TextTrackButton","threshold","items","createItems","kind_","./caption-settings-menu-item.js","./text-track-button.js","85","_chaptersTrackMenuItemJs2","ChaptersButton","tracks","textTracks","track","chaptersTrack","_length","insertElFirst","cues","remoteTextTrackEl","remoteTextTrackEls","getTrackElementByTrack_","addEventListener","cue","mi","../../utils/to-title-case.js","./chapters-track-menu-item.js","86","ChaptersTrackMenuItem","87","DescriptionsButton","changeHandler","handleTracksChange","removeEventListener","disabled","88","OffTextTrackMenuItem","89","SubtitlesButton","90","_offTextTrackMenuItemJs2","TextTrackButton","updateHandler","./off-text-track-menu-item.js","91","TextTrackMenuItem","onchange","Event","createEvent","initEvent","dispatchEvent","92","CurrentTimeDisplay","updateContent","localizedText","formattedTime_","93","DurationDisplay","duration_","94","RemainingTimeDisplay","remainingTime","95","TimeDivider","96","VolumeBar","checkMuted","./volume-level.js","97","VolumeControl","./volume-bar.js","98","VolumeLevel","99","_popupPopupJs2","_popupPopupButtonJs2","_muteToggleJs2","_volumeControlVolumeBarJs2","VolumeMenuButton","_PopupButton","inline","vertical","volumeBar","volumeUpdate","orientationClass","createPopup","popup","vb","menuContent","attachVolumeBarEvents","ownerDocument","../popup/popup-button.js","../popup/popup.js","../utils/fn.js","./volume-control/volume-bar.js","100","_modalDialog2","_utilsMergeOptions2","ErrorDisplay","_ModalDialog","content","fillAlways","temporary","uncloseable","./modal-dialog","./utils/dom","./utils/merge-options","101","EventTarget","allowedEvents_","ael","fixEvent","102","_utilsLog","_utilsLog2","super_","subClassMethods","methods","./utils/log","103","_globalDocument","FullscreenApi","apiMap","specApi","browserApi","104","LoadingSpinner","105","_objectAssign","MediaError","defaultMessages","errorTypes","errNum","106","_menuJs2","MenuButton","enabled_","handleSubmenuKeyPress","buttonPressed_","addItem","menuButtonClass","blur","unpressButton","pressButton","../clickable-component.js","../utils/to-title-case.js","./menu.js","107","MenuItem","attrs","_selected","108","Menu","focusedChild_","stopImmediatePropagation","stepChild","item","haveTitle","../utils/events.js","109","ModalDialog","opened_","hasBeenOpened_","hasBeenFilled_","closeable","MODAL_CLASS_NAME","descEl_","getAttribute","textContent","description","aria-describedby","aria-hidden","close","desc","fill","wasPlaying_","controls","opened","closeable_","_close","temp","fillWith","parentEl","nextSiblingEl","nextSibling","empty","insertContent","emptyEl","content_","./close-button","./utils/fn","110","browser","_utilsTimeRangesJs","_utilsBufferJs","stylesheet","_fullscreenApiJs2","_mediaErrorJs2","_safeJsonParseTuple2","_tracksTextTrackListConverterJs2","_techTechJs2","Player","languagesToLower","getTagSettings","techOrder","tagAttributes","getElAttributes","languages_","cache_","poster_","poster","controls_","scrubbing_","plugins","playerOptionsCopy","isAudio","flexNotSupported_","IS_IOS","players","userActive","listenForUserActivity_","handleFullscreenChange_","handleStageClick_","styleEl_","removeAttribute","playerId","VIDEOJS_NO_DYNAMIC_STYLE","createStyleElement","defaultsStyleEl","head","firstChild","fluid","aspectRatio","links","getElementsByTagName","linkEl","initNetworkState_","networkState","_dimension","privDimension","parsedVal","updateStyleEl_","bool","fluid_","ratio","aspectRatio_","idClass","ratioParts","videoWidth","videoHeight","ratioMultiplier","width_","height_","setTextContent","_width","_height","techEl","loadTech_","techName","unloadTech_","getTech","disposeMediaElement","techName_","techOptions","nativeControlsForTouch","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","tech","safety","IWillNotUseThisInPlugins","errorText","removeTechControlsListeners_","handleTechClick_","handleTechTouchStart_","handleTechTouchMove_","handleTechTouchEnd_","handleTechTap_","techCall_","hasStarted","_hasStarted","hasStarted_","starttime","button","userWasActive","isScrubbing","seconds","createTimeRange","bufferedPercent","percentAsDecimal","_muted","supportsFullScreen","isFS","isFullscreen_","fsApi","fullscreenchange","documentFullscreenChange","fullscreenElement","enterFullWindow","exitFullWindow","isFullWindow","docOrigOverflow","documentElement","overflow","fullWindowOnEscKey","keyCode","canPlayType","can","isSupported","selectSource","techs","_ref","findFirstPassingTechSourcePair","outerArray","innerArray","tester","found","outerChoice","innerChoice","finder","_ref2","canPlaySource","sourceOrder","currentTech","sourceList_","load","sourceTech","notSupportedMessage","reset","currentSrc","currentType","usingNativeControls_","error_","errorDisplay","ended","seeking","seekable","userActivity_","userActive_","mouseInProgress","lastMoveX","lastMoveY","handleActivity","screenX","screenY","inactivityTimeout","isAudio_","remoteTextTracks","addTextTrack","addRemoteTextTrack","removeRemoteTextTrack","language_","toJSON","createModal","modal","baseOptions","tagOptions","dataSetup","_safeParseTuple","hasChildNodes","childName","navigator","html5","flash","defaultVolume","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","./tech/tech.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","111","_playerJs","_playerJs2","./player.js","112","PopupButton","./popup.js","113","Popup","114","PosterImage","BACKGROUND_SIZE_SUPPORTED","fallbackImg_","setSrc","backgroundImage","115","_windowLoaded","autoSetup","vids","audios","mediaEls","mediaEl","autoSetupTimeout","vjs","hasLoaded","116","Slider","aria-valuenow","aria-valuemin","aria-valuemax","doc","blockTextSelection","unblockTextSelection","progress","vertical_","117","Flash","streamingFormats","rtmp/mp4","rtmp/flv","streamFromParts","connection","stream","streamToParts","connEnd","search","streamBegin","isStreamingType","srcType","RTMP_RE","isStreamingSrc","rtmpSourceHandler","canHandleSource","handleSource","srcParts","registerSourceHandler","118","_tech2","Url","_flashRtmp2","_Tech","setSource","onReady","onEvent","onError","lastSeekTarget_","swf","objId","flashVars","readyFunction","eventProxyFunction","errorEventProxyFunction","wmode","bgcolor","class","embed","setCurrentTime","vjs_play","vjs_pause","_src","getAbsoluteURL","vjs_src","vjs_setProperty","vjs_getProperty","currentSource_","vjs_load","setPoster","ranges","enterFullScreen","_api","_readWrite","_readOnly","_createSetter","attrUpper","_createGetter","withSourceHandlers","nativeSourceHandler","formats","ext","getFileExtension","video/flv","video/x-flv","video/mp4","video/m4v","currSwf","getEl","checkReady","swfID","eventName","ActiveXObject","GetVariable","mimeTypes","enabledPlugin","getEmbedCode","flashVarsString","paramsString","attrsString","movie","flashvars","allowScriptAccess","allowNetworking","registerTech","../utils/time-ranges.js","../utils/url.js","./flash-rtmp","./tech","119","_techJs2","Html5","handleLateInit_","nodes","nodesLength","removeNodes","node","featuresNativeTextTracks","addTrackElement_","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","resetMediaElement","setPreload","setAutoplay","setLoop","defaultMuted","played","setPlaybackRate","htmlTrackElement","srclang","trackElement","removeTrackElement_","TEST_VID","canControlVolume","canControlPlaybackRate","supportsNativeTextTracks","supportsTextTracks","IS_FIREFOX","mpegurlRE","mp4RE","patchCanPlayType","ANDROID_VERSION","IS_OLD_ANDROID","unpatchCanPlayType","querySelectorAll","../utils/browser.js","../utils/log.js","../utils/merge-options.js","./tech.js","120","MediaLoader","121","_tracksHtmlTrackElement2","_tracksHtmlTrackElementList2","_tracksTextTrack2","_tracksTextTrackList2","featuresProgressEvents","manualProgressOn","featuresTimeupdateEvents","manualTimeUpdatesOn","nativeCaptions","nativeTextTracks","emulateTextTracks","initTextTrackListeners","onDurationChange","manualProgress","trackProgress","manualProgressOff","stopTrackingProgress","progressInterval","numBufferedPercent","bufferedPercent_","manualTimeUpdates","trackCurrentTime","stopTrackingCurrentTime","manualTimeUpdatesOff","currentTimeInterval","manuallyTriggered","textTrackListChanges","script","updateDisplay","textTracksChanges","remoteTextTracks_","remoteTextTrackEls_","createTrackHelper","techs_","featuresVolumeControl","featuresFullscreenResize","featuresPlaybackRate","handler","handlers","sourceHandlers","selectSourceHandler","srcObj","sh","fnName","originalFn","sourceHandler_","disposeSourceHandler","../media-error.js","../tracks/html-track-element","../tracks/html-track-element-list","../tracks/text-track","../tracks/text-track-list","../utils/buffer.js","122","HtmlTrackElementList","trackElements","IS_IE8","trackElements_","get","trackElement_","_length2","_length3","123","_eventTarget2","HTMLTrackElement","_EventTarget","NONE","LOADING","LOADED","ERROR","../event-target","124","TextTrackCueList","setCues_","length_","oldLength","cues_","defineProp","getCueById","125","fontMap","monospace","sansSerif","serif","monospaceSansSerif","monospaceSerif","proportionalSansSerif","proportionalSerif","casual","smallcaps","TextTrackDisplay","toggleDisplay","aria-atomic","clearDisplay","descriptionsTrack","captionsSubtitlesTrack","updateForTrack","overrides","getValues","_i","cueDiv","displayState","color","textOpacity","tryUpdateStyle","constructColor","backgroundColor","backgroundOpacity","windowColor","windowOpacity","edgeStyle","textShadow","fontPercent","fontSize","top","bottom","fontFamily","fontVariant","opacity","../menu/menu-button.js","../menu/menu-item.js","../menu/menu.js","126","TextTrackMode","hidden","showing","TextTrackKind","subtitles","captions","descriptions","chapters","metadata","127","trackToJson_","reduce","acc","trackEls","trackObjs","trackEl","addedTrack","addCue","128","TextTrackList","tracks_","rtrack","getTrackById","_event","change","addtrack","removetrack","129","TextTrackSettings","persistTextTrackSettings","saveSettings","selectedIndex","restoreSettings","textEdge","getSelectedOptionValue","fgColor","bgColor","bgOpacity","setValues","values","setSelectedOption","localStorage","getItem","setItem","removeItem","ttDisplay","selectedOption","selectedOptions","130","_textTrackCueList2","TextTrackEnum","_utilsUrlJs","_xhr2","parseCues","srcContent","parser","WebVTT","Parser","vttjs","StringDecoder","oncue","onparsingerror","onflush","flush","loadTrack","crossOrigin","isCrossOrigin","responseBody","loadHandler","loaded_","TextTrack","activeCues_","activeCues","changed","timeupdateHandler","set","newMode","ct","active","removeCue","_removeCue","removed","cuechange","../utils/guid.js","./text-track-cue-list","./text-track-enums","131","USER_AGENT","webkitVersionMap","appleWebkitVersion","IS_IPAD","IS_IPOD","IOS_VERSION","IS_ANDROID","major","minor","IS_CHROME","DocumentTouch","132","bufferedDuration","_timeRangesJs","./time-ranges.js","133","_logJs","_logJs2","defaultBehaviors","messages","Proxy","./log.js","134","getElementById","propName","_tsml2","_templateObject","attrName","innerText","parent","getElData","elIdAttr","elData","hasElData","element","attrValue","knownBooleans","attrVal","onselectstart","box","boxW","boxH","boxY","boxX","changedTouches","isEl","isTextNode","normalizeContent","appendContent","strings","raw","isNonBlankString","throwIfWhitespace","createQuerier","classList","add","getBoundingClientRect","docEl","clientLeft","scrollLeft","pageXOffset","clientTop","scrollTop","pageYOffset","nodeType","createTextNode","./guid.js","tsml","135","elemData","dispatcher","isPropagationStopped","defaultPrevented","targetData","_handleMultipleEvents","handlersCopy","isImmediatePropagationStopped","attachEvent","removeType","_cleanUpEvents","returnTrue","returnFalse","old","relatedTarget","fromElement","toElement","returnValue","clientX","clientY","charCode","detachEvent","types","./dom.js","136","_guidJs","uid","ret","137","guide","h","gm","gh","138","_guid","139","_globalWindow","_logType","argsArray","noop","history","140","mergeOptions","_lodashCompatObjectMerge","_lodashCompatObjectMerge2","isPlain","destination","lodash-compat/object/merge","141","styleSheet","cssText","142","createTimeRanges","createTimeRangesObj","getRange","valueIndex","rangeIndex","maxIndex","rangeCheck","143","144","parseUrl","href","addToBody","host","protocol","div","details","path","pathParts","winLoc","location","urlInfo","145","setup","_player2","_pluginsJs2","_srcJsUtilsMergeOptionsJs2","_tracksTextTrackJs2","_extendJs2","_utilsCreateDeprecationProxyJs2","HTMLVideoElement","getPlayers","plugin","addLanguage","_merge","formatTime","setAttributes","getAttributes","../../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","cueShim","VTTCue","regionShim","VTTRegion","oldVTTCue","oldVTTRegion","restore","directionSetting","","lr","rl","alignSetting","middle","findAlignSetting","cobj","p","isIE8","baseObj","hasBeenReset","_id","_pauseOnExit","_startTime","_endTime","_text","_region","_vertical","_snapToLines","_line","_lineAlign","_position","_positionAlign","_size","_align","setting","findDirectionSetting","SyntaxError","getCueAsHTML","convertCueToDOMTree","scrollSetting","up","isValidPercentValue","_lines","_regionAnchorX","_regionAnchorY","_viewportAnchorX","_viewportAnchorY","_scroll","regionAnchorY","regionAnchorX","viewportAnchorY","viewportAnchorX","scroll","findScrollSetting","_objCreate","F","ParsingError","errorData","parseTimeStamp","input","computeSeconds","Settings","parseOptions","keyValueDelim","groupDelim","groups","kv","parseCue","regionList","oInput","consumeTimeStamp","ts","Errors","BadTimeStamp","skipWhitespace","settings","region","alt","vals","vals0","integer","line","lineAlign","snapToLines","size","align","positionAlign","consumeCueSettings","BadSignature","dflt","defaultKey","ESCAPE","&","<",">","‎","‏"," ","TAG_NAME","ruby","rt","lang","TAG_ANNOTATION","NEEDS_PARENT","parseContent","nextToken","unescape1","unescape","shouldAdd","localName","annotation","rootDiv","tagStack","createProcessingInstruction","strongRTLChars","StyleBox","CueStyleBox","styleOptions","styles","display","writingMode","unicodeBidi","applyStyles","textAlign","font","whiteSpace","nodeStack","pushNodes","nextTextNode","determineBidi","stylesunicodeBidi","textPos","formatStyle","move","BoxPosition","lh","offsetTop","rects","getClientRects","lineHeight","moveBoxToLinePosition","styleBox","containerBox","boxPositions","boxPosition","linePos","textTrackList","mediaElement","trackList","computeLinePos","axis","maxPosition","initialAxis","calculatedPercentage","bestPosition","specifiedPosition","overlapsOppositeAxis","within","overlapsAny","intersectPercentage","findBestPosition","toCSSCompatValues","unit","toMove","overlaps","b2","boxes","container","reference","getSimpleBoxPosition","decode","decodeURIComponent","encodeURIComponent","cuetext","processCues","overlay","paddedOverlay","margin","shouldCompute","decoder","buffer","TextDecoder","reportOrThrowError","collectNextLine","parseHeader","xy","anchor","onregion","parseRegion","alreadyCollectedLine","hasSubstring","CanvasPrototype","HTMLCanvasElement","hasBlobConstructor","Blob","Boolean","hasArrayBufferViewSupport","Uint8Array","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","dataURLtoBlob","atob","ArrayBuffer","dataURI","byteString","arrayBuffer","intArray","mimeString","bb","getBlob","toBlob","mozGetAsFile","quality","toDataURL","undef","_supportConsoleLog","_supportConsoleLogApply","gid","doctype","safari","iemobile","insecureChrome","apiURL","createObjectURL","URL","revokeObjectURL","webkitURL","File","FileReader","FormData","sendAsBinary","chunked","webkitSlice","mozSlice","normalize","_rimg","_rcanvas","_rimgcanvas","_rinput","_rdata","_toString","_SIZE_CONST","Number","sz","_elEvents","_infoReader","_readerEvents","_xhrPropsExport","_isArray","ar","_each","_extend","dst","_ext","_on","api","isFileReader","_off","events","fns","_one","_fixEvent","_supportInputAttr","media","formData","multiPassResize","pingUrl","multiFlash","flashAbortTimeout","staticPath","flashUrl","flashImageUrl","postNameConcat","idx","ext2mime","jpg","tif","txt","accept","image/*","audio/*","video/*","uploadRetry","networkDownRetryTimeout","chunkSize","chunkUploadRetry","chunkNetworkDownRetryTimeout","KB","MB","GB","TB","EMPTY_PNG","expando","newImage","img","getXHR","dnd","multiple","fix","throttle","delay","parseJSON","defer","resolve","then","queue","_idx","_fail","_end","inc","next","check","isFail","fail","each","afor","_next","isFile","file","isBlob","blob","isCanvas","getFilesFilter","readAsDataURL","_emit","_readAs","readAsBinaryString","_hasSupportReadAs","toBinaryString","readAsArrayBuffer","readAsText","encoding","readAsImage","loaded","total","_fn","iframe","dataURL","checkFileObj","getDropFiles","files","all","dataTransfer","_getDataTransfer","transFiles","transItems","entrySupport","_getAsEntry","entry","_isEntry","isDirectory","_readEntryAsFiles","fullPath","reader","createReader","firstAttempt","ondone","entries","entryFiles","allEntries","readEntries","_isRegularFile","yes","getFiles","filterFiles","jquery","originalEvent","isInputFile","getTotalSize","getInfo","readers","addInfoReader","mime","eachFn","resultFn","deleted","upload","jsonp","prepare","beforeupload","fileupload","fileprogress","filecomplete","imageOriginal","imageAutoOrientation","imageTransform","rotate","_nextFile","proxyXHR","XHR","dataArray","_getFilesDataArray","_total","_loaded","_complete","filesLeft","copy","_file","_fileLoaded","_fileOptions","statusText","currentFile","_getFormData","form","successful","oFiles","tmp","image","filename","filetype","trans","transform","Form","isOrignTrans","_isOriginTransform","_addFile","toData","matrix","Image","images","flashEngine","multipart","addOrigin","postName","inp","notRemove","overrideMimeType","lengthComputable","getResponseHeader","encode64","b64","outStr","enc3","enc4","byte1","byte2","byte3","enc1","enc2","Reader","getAsEntry","webkitGetAsEntry","__dimensions","onHover","onDrop","_type","ff","debounceTrigger","offdnd","FileAPI","publicId","systemId","meta","flashWebcamUrl","getCanvas","exifOrientation","sx","sy","sw","dx","dy","dw","dh","resize","deg","crop","w","strategy","preview","_load","_apply","canvas","getMatrix","getContext","renderImageToCanvas","multipass","PI","over","rel","globalAlpha","drawImage","er","applyFilter","naturalWidth","naturalHeight","sf","df","_trans","exif","Orientation","autoOrientation","_transform","ImgTrans","isFn","maxHeight","toCanvas","fromDataURL","doneFn","Caman","render","ex","loadImage","platform","originalRenderMethod","detectSubsampling","getImageData","detectVerticalSquash","subsampled","ey","py","sourceX","sourceY","sourceWidth","sourceHeight","destX","destY","destWidth","destHeight","vertSquashRatio","tileX","tileY","tmpCanvas","tmpContext","save","clearRect","_convertFile","useBinaryString","image/jpeg","image/png","_chunked","toPlainData","toFormData","toMultipartData","toHtmlData","_to","createDocumentFragment","FileAPIReadPosition","retry","boundary","_xhrResponsePostfix","XML","Text","Body","_send","onLoadFnName","onPostMessage","origin","transport","contentWindow","execCommand","win","submit","uploadMethod","totalSize","lkb","rawData","bytes","getMedia","getUserMedia","webkitGetUserMedia","mozGetUserMedia","msGetUserMedia","enumerateDevices","mediaDevices","MediaStreamTrack","navigatorEnumerateDevices","Camera","isActive","_active","_successId","_failId","srcObject","_detectVideoSignal","getTracks","shot","Shot","cam","_px","fallback","checkAlreadyCaptured","getSources","devices","deviceExists","device","_cameraQueue","_wrap","wid","_unwrap","patchCamera","camId","camera","cmd","flashId","isShot","_attr","_retry","_files","_rhttp","dummy","_css","zIndex","_makeFlashHTML","_getUrl","isReady","patch","mouseover","getWrapper","_getDimensions","curInp","getInput","mouseenter","savedStatus","exts","embeds","select","createEventObject","fireEvent","last","_inherit","_isHtmlFile","__info","scaleMode","base64","_makeFlashImage","scale","fileId","_getFileDescr","css","pathname","attempts","setImage","_setImage","$el","proxy","_options","paramName","dataType","duplicate","maxSize","maxFiles","imageSize","sortFn","filterFn","autoUpload","B","sizeFormat","elements","ctrl","emptyQueue","tpl","processing","onDropHover","onSelect","onUpload","onProgress","onComplete","onFileUpload","onFileProgress","onFileComplete","_throw","$files","itemTplFn","fileapi","html","_setOption","$progress","_crop","_rotate","uploaded","_getFiles","_extractDuplicateFiles","minHeight","_fileCompare","_getFormatedSize","_onSelect","emit","_onActionClick","closest","_redraw","_onSubmit","_onReset","_onDrop","_onDropHover","option","_getUploadEvent","widget","_emitUploadEvent","_emitProgressEvent","_emitCompleteEvent","_onUploadEvent","animate","dequeue","_onFileUploadPrepare","isEmptyObject","_onFileUploadEvent","fileElem","_$fileprogress","__fileId","d","$idx","sizeText","_makeFilePreview","__empty","toggle","__emptyQueue","__active","camelCase","triggerHandler","sort","serialize","checked","__cropFile","marginLeft","marginTop","$1","-webkit-transform","-moz-transform","destroy","removeData","cropper","Jcrop","setSelect","angular","directive","$parse","$timeout","dndDropEffectWorkaround","dndDragTypeWorkaround","scope","dndDisableIf","$watch","setData","toJson","$eval","dndDraggable","effectAllowed","dndEffectAllowed","dropEffect","isDragging","dragType","dndType","_dndHandle","setDragImage","dndDragstart","$apply","dndMoved","dndCopied","dndCanceled","dndDragend","dndSelected","dragDrop","placeholder","childNode","getPlaceholderElement","placeholderNode","listNode","horizontal","dndHorizontalList","externalSources","dndExternalSources","isMouseInFirstHalf","targetNode","relativeToParent","mousePointer","offsetX","layerX","offsetY","layerY","targetSize","targetPosition","offsetLeft","getPlaceholderIndex","isDropAllowed","hasTextMimetype","dndAllowedTypes","allowed","stopDragover","invokeCallback","expression","external","listItemNode","previousElementSibling","nextElementSibling","dndDragover","transferredObject","getData","dndDrop","dndList","dndInserted","ctrlKey","videoJsResolutionSwitcher","defaults","currentResolution","menuItemsHolder","setSourcesSanitized","customSourcePicker","ResolutionMenuItem","onClickListener","onClick","initialySelected","showAsLabel","isPaused","bigPlayButton","handleSeekEvent","ResolutionMenuButton","initialySelectedLabel","dynamicLabel","staticLabel","menuItems","labels","onClickUnselectOthers","clickedItem","groupedSrc","compareResolutions","bucketSources","resolutions","initResolutionKey","appendSourceToKey","updateSrc","resolutionSwitcher","choosen","selectedRes","selectedLabel","chooseSrc","menuButton","initialySelectedRes","getGroupedSrc","ytPlayer","setPlaybackQuality","qualities","getAvailableQualityLevels","_yts","highres","yt","hd1080","hd720","large","medium","small","tiny","auto","_sources","_yt","_player","_label","initResolutionForYt","Youtube","firstScriptTag","_isOnMobile","isApiReady","initYTPlayer","apiReadyQueue","stopVideo","divWrapper","ytControls","divBlocker","playerVars","modestbranding","showinfo","autohide","disablekb","fs","srcEndTime","hl","listId","listType","playlist","playsinline","srcStartTime","theme","customVars","activeVideoId","videoId","activeList","playerConfig","onPlayerReady","onPlaybackQualityChange","onPlayerPlaybackQualityChange","onPlaybackRateChange","onPlayerPlaybackRateChange","onStateChange","onPlayerStateChange","onVolumeChange","onPlayerVolumeChange","onPlayerError","enablePrivacyEnhancedMode","YT","mute","getAvailablePlaybackRates","playerReady_","playOnReady","cueOnReady","cueVideoById_","lastState","errorNumber","PlayerState","ENDED","PLAYING","isSeeking","onSeeked","PAUSED","BUFFERING","loadVideoById_","startSeconds","endEnd","loadVideoById","cueVideoById","checkHighResPoster","wasPausedBeforeSeek","playVideo","loadPlaylist","pauseVideo","getCurrentTime","timeBeforeSeek","seekTo","checkSeekedInPauseInterval","getDuration","getPlaybackRate","suggestedRate","getVolume","isMuted","unMute","getVideoLoadedFraction","getPlayerState","fullscreenEnabled","webkitFullscreenEnabled","mozFullScreenEnabled","msFullscreenEnabled","KEY","TAB","ENTER","ESC","SPACE","LEFT","UP","RIGHT","DOWN","SHIFT","CTRL","ALT","PAGE_UP","PAGE_DOWN","HOME","END","BACKSPACE","DELETE","COMMAND","MAP","186","187","188","189","190","191","192","219","220","221","222","isControl","metaKey","altKey","isFunctionKey","isVerticalMovement","isHorizontalMovement","toSeparator","isNil","isUndefined","matchesSelector","webkitMatchesSelector","mozMatchesSelector","msMatchesSelector","parentElement","latestId","uis","constant","searchEnabled","sortable","refreshDelay","closeOnSelect","skipFocusser","dropdownPosition","removeSelected","resetSearchInput","generateId","appendToBody","spinnerEnabled","spinnerClass","backspaceReset","service","minErr","$$minErr","link","transclude","matchItem","query","$document","boundingClientRect","uiSelectConfig","RepeatParser","uiSelectMinErr","$compile","restrict","templateUrl","tElement","compile","tAttrs","groupByExp","groupBy","groupFilterExp","groupFilter","getGroupNgRepeatExpression","parserResult","choices","repeatExpression","rowsInner","itemName","$select","parseRepeatAttr","disableChoiceExpression","uiDisableChoice","onHighlightCallback","onHighlight","minimumInputLength","newValue","activate","activeIndex","tagging","isActivated","refresh","$observe","removeAttr","controller","$scope","$element","$filter","$$uisDebounce","$injector","_refreshDelayPromise","paste","refreshing","focusser","fct","taggingTokens","tokens","lockChoiceExpression","clickTriggeredSelect","$animate","searchInput","_resetSearchInput","findIndex","_findIndex","equals","initSearchValue","avoidReset","$broadcast","taggingLabel","enabled","animateHandler","phase","focusSearchInput","_ensureHighlightVisible","findGroupByName","group","repeatAttr","setItemsFn","groupFn","groupName","groupFilterFn","groupNames","_groupsFilter","isGrouped","itemProperty","originalSource","createArrayFromObject","origSrc","$uisSource","keyName","filters","newVal","oldVal","refreshItems","selectedItems","filteredItems","every","selectedItem","calculateDropdownPos","$watchCollection","isDefined","ngModel","$modelValue","refreshAttr","refreshPromise","finally","itemScope","itemIndex","_isItemSelected","selection","disabledItems","_isItemDisabled","isDisabled","isTag","disabledItemIndex","_updateItemDisabled","$event","$setTouched","setFocus","focusInput","isLocked","doInitalise","lockedItems","lockedItemIndex","_updateItemLocked","_isItemlocked","sizeWatch","updaterScheduled","highlighted","posY","clientHeight","sizeSearchInput","calculateContainerWidth","clientWidth","offsetParent","updateIfVisible","containerWidth","inputWidth","$$postDigest","tagged","processed","minActiveIndex","idxmin","_handleDropDownSelection","newItem","clipboardData","oldsearch","onResize","$on","generatedId","uisOffset","controllerAs","ngClass","combined","inputId","ctrls","transcludeFn","onDocumentClick","targetController","$digest","baseTitle","focusserTitle","focusserId","onSelectCallback","onRemoveCallback","onRemove","choiceGrouped","tabindex","limit","taggingEval","autofocus","focusOn","transcluded","transcludedMatch","replaceWith","transcludedChoices","transcludedNoChoice","isOpen","offset","after","originalWidth","resetDropdown","dropdown","setDropdownPosUp","offsetDropdown","calculateDropdownPosAfterAnimation","setDropdownPosDown","needsCalculated","setAllowClear","allow","allowClear","uiLockChoice","attribute","hasAttribute","$evalAsync","activeMatchIndex","updateModel","$setViewValue","refreshComponent","removeChoice","removedChoice","locals","$item","$model","modelMapper","getPlaceholder","$selectMultiple","_findCaseInsensitiveDupe","origItem","_findApproxDupe","haystack","dupeIndex","tempArr","mockObj","$isEmpty","$parsers","resultMultiple","$formatters","inputValue","checkFnMultiple","trackByExp","propsItemNameMatches","oldValue","$render","$viewValue","newIndex","caretPosition","isNumber","selectionStart","curr","getNewActiveMatchIndex","_handleMatchSelection","tagItems","tagItem","stashArr","hasTag","itemsWithoutTag","checkFnSingle","uiSelectSort","$ngModel","uiSelectSortOptions","$index","dropTimeout","to","dragOverHandler","dropHandler","droppedItemIndex","_dropHandler","theList","itemToMove","$emit","debounceTime","timeoutPromise","onOpenCloseCallback","uisOpenClose","previousState","filterMatch","grouped","run","$templateCache","put","$rootScope","checkWhenEnabled","scrollDistance","scrollEnabled","infiniteScrollDistance","infiniteScrollDisabled","elementBottom","shouldScroll","$$phase","infiniteScroll","infiniteScrollImmediateCheck","rangy","A","z","C","g","H","initialized","supported","config","alertOnFail","createRange","createTextRange","features","implementsDomRange","implementsTextRange","E","K","G","toArray","dependencies","initializer","stack","I","J","D","isHostMethod","isHostProperty","areHostMethods","areHostObjects","areHostProperties","isTextRange","isBrowser","util","modules","alertOnWarn","preferTextRange","autoInitialize","rangyAutoInitialize","createOptions","addListener","deprecationNotice","createAliasForDeprecatedMethod","addInitListener","L","addShimListener","createMissingNativeApi","createError","createModule","createCoreModule","RangePrototype","rangePrototype","selectionPrototype","previousSibling","defaultView","parentWindow","contentDocument","codeName","M","crashyTextNodes","_current","hasNext","detach","inspect","INDEX_SIZE_ERR","HIERARCHY_REQUEST_ERR","WRONG_DOCUMENT_ERR","NO_MODIFICATION_ALLOWED_ERR","NOT_FOUND_ERR","NOT_SUPPORTED_ERR","INVALID_STATE_ERR","INVALID_NODE_TYPE_ERR","dom","arrayContains","isHtmlNamespace","namespaceURI","getNodeIndex","getNodeLength","getCommonAncestor","isAncestorOf","isOrIsAncestorOf","getClosestAncestorIn","isCharacterDataNode","isTextOrCommentNode","insertAfter","splitDataNode","deleteData","getDocument","getWindow","getIframeWindow","getIframeDocument","isWindow","getContentDocument","getRootContainer","comparePoints","isBrokenNode","inspectNode","getComputedStyleProperty","createTestElement","contentEditable","removeNode","fragmentFromNodeChildren","createIterator","DomPosition","DOMException","P","startContainer","endContainer","Q","O","N","S","R","startOffset","endOffset","isPartiallySelectedSubtree","getSubtreeIterator","range","getName","clonePartiallySelectedTextNodes","collapsed","sc","so","ec","eo","commonAncestorContainer","isSingleCharacterDataNode","_first","_last","T","V","ea","ca","da","X","W","setStartAndEnd","cloneContents","START_TO_START","ja","START_TO_END","ka","END_TO_END","la","END_TO_START","ma","NODE_BEFORE","na","NODE_AFTER","oa","NODE_BEFORE_AND_AFTER","pa","NODE_INSIDE","qa","Z","setStart","setEnd","setBoundary","setStartBefore","setStartAfter","setEndBefore","setEndAfter","collapse","selectNodeContents","U","selectNode","extractContents","deleteContents","canSurroundContents","splitBoundaries","splitBoundariesPreservingPositions","normalizeBoundaries","appendData","Y","insertData","collapseToPoint","cloneRange","aa","ba","fa","ga","htmlParsingConforms","ha","ia","compareBoundaryPoints","insertNode","surroundContents","lastChild","compareNode","comparePoint","createContextualFragment","toHtml","intersectsNode","isPointInRange","intersectsRange","intersectsOrTouchesRange","intersection","union","containsNode","containsNodeContents","containsRange","containsNodeText","getNodes","collapseBefore","collapseAfter","getBookmark","containerNode","moveToBookmark","rangesEqual","isValid","rangeProperties","RangeIterator","copyComparisonConstants","createPrototypeRange","getRangeDocument","DomRange","nativeRange","WrappedRange","createNativeRange","canHaveHTML","boundaryPosition","nodeInfo","nodeIndex","containerElement","moveToElementText","compareEndPoints","setEndPoint","moveStart","textRange","rangeToTextRange","toTextRange","WrappedTextRange","Range","createRangyRange","anchorNode","anchorOffset","focusNode","focusOffset","rangeCount","isCollapsed","_ranges","docSelection","createControlRange","nativeSelection","detached","getRangeAt","setSingleRange","isBackward","checkSelectionRanges","implementsWinGetSelection","implementsDocSelection","isSelectionValid","getSelection","getNativeSelection","selectionHasAnchorAndFocus","selectionHasExtend","selectionHasRangeCount","addRange","removeAllRanges","appVersion","selectionSupportsMultipleRanges","collapsedNonEditableSelectionsSupported","implementsControlRange","setRanges","getAllRanges","removeRange","isBackwards","collapseToStart","collapseToEnd","selectAllChildren","deleteFromDocument","eachRange","callMethodOnEachRange","changeEachRange","backward","rangeBookmarks","saveRanges","restoreRanges","getNativeTextRange","detachAll","isDirectionBackward","Selection","random","markerId","startMarkerId","endMarkerId","saveRange","restoreRange","saveSelection","rangeInfos","restored","restoreSelection","removeMarkerElement","removeMarkers","textAngularVersion","_browserDetect","ie","webkit","isFirefox","performance","stripHtmlToText","getDomFromHtml","mozNow","msNow","oNow","webkitNow","sheet","addCSSRule","removeCSSRule","_addCSSRule","_removeCSSRule","_getRuleIndex","BLOCKELEMENTS","LISTELEMENTS","VALIDELEMENTS","_sheets","styleSheets","mediaText","rules","_sheet","insertIndex","insertedRule","cssRules","insertRule","addRule","ruleIndex","removeRule","deleteRule","taCustomRenderers","taDOM","renderer","customAttribute","getByAttribute","_element","renderLogic","keepStyles","styleVal","appleSpaceVal","betterSpanMatch","appleConvertedSpaceMatch","finalHtml","lastIndex","$sanitize","convert_infos","property","styleMatch","_partialStyle","styleRegexString","wrapNested","wrapTag","depth","tagRegex","outerHTML","rsb1","rsb2","rsb3","unsafe","oldsafe","ignore","transformLegacyStyles","subMatch","newTag","newHtml","styleElementMatch","lastNewTag","styleRegex","styleRegexExec","attrElementMatch","transformLegacyAttributes","safe","origTag","_preTags","processedSafe","re","$q","$log","editor","$editor","deferred","promise","_editor","action","startAction","endAction","exc","taSelection","taBrowserTag","listToDefault","listElement","defaultWrap","$target","setSelectionToElementEnd","listElementToSelfTag","selfTag","bDefault","priorElement","nextElement","foundIndex","html1","listTag","html2","selectLi","liElement","setSelectionBeforeElement","listToList","newListTag","childElementsToList","turnBlockIntoBlocks","_n","taDefaultWrap","topNode","command","showUI","defaultTagAttributes","_nodes","optionsTagName","selectedElement","ourSelection","defaultWrapper","__h","_innerNode","getSelectionElement","__","$selected","selectedElements","getOnlySelectedElements","listElements","afterElement","foundIndexes","isEqualNode","listElementsToSelfTag","childBlockElements","$nodes","$n","$node","hasBlock","wrap","getStateShiftKey","newBlock","blockElement","contents","tagBegin","insertHtml","bShiftState","_document","brException","updateLeftArrowKey","getFlattenedDom","nextNodeToRight","nextNodeToLeft","_node","indexStartContainer","parents","nn","updateRightArrowKey","addNodes","_set","_t","getAllSelectedElements","selectedNodes","innerHtml","setSelection","elStart","elEnd","setSelectionAfterElement","setSelectionToElementStart","setStateShiftKey","bS","secondParent","_childI","lastNode","_tempFrag","frag","isInline","_cnode","splitNodes","_lastSecondParent","transferChildNodes","transferNodeAttributes","resultingElements","target1","target2","splitNode","subSplitIndex","splitIndex","startNodes","endNodes","nodeValue","taMaxText","$dirty","$validate","$validators","viewValue","taMinText","_blankVal","eventData","taSanitize","taFixChrome","taSelectableElements","taApplyCustomRenderers","taOptions","_taBlankTest","textAngularManager","priority","_lastKey","_pasteHandler","_defaultVal","ngModelOptions","_isContentEditable","_isInputFriendly","_isReadonly","_focussed","_skipRender","_disableSanitizer","taUnsafeSanitizer","disableSanitizer","_keepStyles","taKeepStyles","BLOCKED_KEYS","UNDO_TRIGGER_KEYS","_keyMappings","specialKey","forbiddenModifiers","_ALT_KEY","mustHaveModifiers","_META_KEY","$options","_undoKeyupTimeout","_ensureContentWrapped","domTest","_children","_foundBlockElement","_subVal","taPaste","$undoManager","_stack","_index","_max","undo","setToIndex","redo","_redoUndoTimeout","_compileHtml","selectorClickHandler","_reApplyOnSelectorHandlers","_setViewValue","_val","triggerUndo","skipRender","_setInnerHTML","newval","_undo","_redo","_sanitize","$oldViewValue","required","modelValue","_keyupTimeout","_inputTimeout","_processingPaste","processpaste","_isOneNote","textFragment","targetDom","_list","lastIndent","lastLi","isUl","peek","_resetList","lastLevelMatch","_listMatch","_indentMatch","_levelMatch","_unwrapElement","_el","_b","binds","_target","_c","$html","pastedContent","_types","_savedSelection","_tempDiv","cut","keydown","userSpecialKey","netModifiers","shiftKey","modifier","_mapKeys","keyMappings","mapping","commandKeyCode","testForKey","enablePropagation","sendKeyCommand","$selection","_new","_parent","keyup","ps","mouseup","_selection","mousedown","selectionEnd","_linebreak","_tab","_repeat","recursiveListFormat","tablevel","_html","_subnodes","htmlValue","_renderTimeout","fileDropHandler","dropFired","_renderInProgress","taReadonly","textAngular","taTools","taExecCommand","_keydown","_keyup","_keypress","_mouseup","_focusin","_focusout","_originalContents","_editorFunctions","_taExecCommand","_resizeMouseDown","_updateSelectedStylesTimeout","_resizeTimeout","_serial","oneEvent","wrapSelection","opt","isSelectableElementTool","displayElements","showHtml","taShowHtml","taFocussedClass","classes","focussed","taTextEditorClass","textEditor","taHtmlEditorClass","htmlEditor","taDefaultTagAttributes","fromJson","taTextEditorSetup","textEditorSetup","taHtmlEditorSetup","htmlEditorSetup","taFileDrop","defaultFileDropHandler","forminput","scrollWindow","popover","popoverArrow","popoverContainer","background","anchors","handlePopoverEvents","reflowPopover","resizeElement","reflowResizeOverlay","getScrollTop","bAddListener","cs","_notScrollable","overflowY","overflowX","scrollHeight","scrollWidth","isScrollable","_scrollListener","showPopover","hidePopover","_maxLeft","_targetLeft","_rleft","_marginLeft","scrollX","showResizeOverlay","_body","startPosition","mousemove","bForceAspectRatio","taResizeForceAspectRatio","bFlipKeyBinding","taResizeMaintainAspectRatio","newRatio","roundedMaxVal","updateTaBindtaTextElement","hideResizeOverlay","ng-show","ta-bind","ng-model","ng-model-options","ng-hide","taDisabled","updateTaBindtaHtmlElement","testAndSet","choice","beforeState","queryCommandState","_actionRunning","_beforeStateBold","_beforeStateItalic","_beforeStateUnderline","_beforeStateStrikethough","updateSelectedStyles","_bUpdateSelectedStyles","activeElement","unfocus","queryFormatBlockState","queryCommandValue","switchView","_firstRun","_initialValue","taTargetToolbars","registerEditor","_toolbar","taToolbar","taToolbarClass","taToolbarGroupClass","taToolbarButtonClass","taToolbarActiveButtonClass","unregisterEditor","triggerElementSelect","dropEvent","when","taToolExecuteAction","taRegisterTool","$interval","triggerIntervalTimer","toolbars","editors","timeRecentModification","updateStyles","editorFunctions","touchModification","editorName","editorScope","targetToolbars","toolbarScopes","_registerToolbarScope","toolbarScope","tools","toolScope","activeState","tool","elementHasAttrs","workerTools","unfilteredTools","onlyWithAttrsFilter","onElementSelect","onlyWithAttrs","retrieveEditor","registerToolbar","retrieveToolbar","retrieveToolbarsViaEditor","unregisterToolbar","updateToolsDisplay","newTaTools","_newTool","updateToolDisplay","resetToolsDisplay","resetToolDisplay","toolKey","toolbarKey","updateToolbarToolDisplay","resetToolbarToolDisplay","removeTool","toolbar","toolbarIndex","_$element","eq","addTool","toolDefinition","addToolToToolbar","refreshEditor","getVersion","getToolbarScopes","toolbarGroup","toolbarButton","toolbarButtonActive","setupToolElement","toolElement","tooltiptext","_display","buttontext","iconclass","icon","_lastToolDefinition","defaultChildScope","displayActiveToolClass","executeAction","groupElement","$new","forceNew","toolInstance","groupIndex","$sanitizeMinErr","START_TAG_REGEXP","END_TAG_REGEXP","ATTR_REGEXP","BEGIN_TAG_REGEXP","BEGING_END_TAGE_REGEXP","COMMENT_REGEXP","SINGLE_COMMENT_REGEXP","DOCTYPE_REGEXP","CDATA_REGEXP","SURROGATE_PAIR_REGEXP","NON_ALPHANUMERIC_REGEXP","WHITE_SPACE_REGEXP","voidElements","makeMap","optionalEndTagBlockElements","optionalEndTagInlineElements","optionalEndTagElements","blockElements","inlineElements","svgElements","specialElements","validElements","uriAttrs","htmlAttrs","svgAttrs","vhsTemplateAttrs","validAttrs","htmlParser","decodeEntities","parseEndTag","whitespace","comment","parseStartTag","unary","lowercase","doubleQuotedValue","singleQuotedValue","unquotedValue","hiddenPre","spaceRe","spaceBefore","spaceAfter","encodeEntities","htmlSanitizeWriter","buf","uriValidator","out","styleArray","lkey","isImage","validCustomTag","com","ws","provider","$get","$$sanitizeUri","LINKY_URL_REGEXP","MAILTO_REGEXP","addText","addLink"],"mappings":"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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,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,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,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,OACA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OACA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OACA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OACA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OACA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OACA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OAAA,OACA,OAAA,OAAA,OAAA,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","file":"vendor_002.min.js","sourcesContent":["var mod;\r\n\r\nmod = angular.module('infinite-scroll', []); \r\n\r\nmod.directive('infiniteScroll', ['$rootScope', '$window', '$timeout', function($rootScope, $window, $timeout) {\r\n return {\r\n link: function(scope, elem, attrs) {\r\n var checkWhenEnabled, handler, scrollDistance, scrollEnabled;\r\n $window = angular.element($window);\r\n elem.css('overflow-y', 'auto');\r\n elem.css('overflow-x', 'hidden');\r\n elem.css('height', 'inherit');\r\n scrollDistance = 0;\r\n if (attrs.infiniteScrollDistance != null) {\r\n scope.$watch(attrs.infiniteScrollDistance, function(value) {\r\n return (scrollDistance = parseInt(value, 10));\r\n });\r\n }\r\n scrollEnabled = true;\r\n checkWhenEnabled = false;\r\n if (attrs.infiniteScrollDisabled != null) {\r\n scope.$watch(attrs.infiniteScrollDisabled, function(value) {\r\n scrollEnabled = !value;\r\n if (scrollEnabled && checkWhenEnabled) {\r\n checkWhenEnabled = false;\r\n return handler();\r\n }\r\n });\r\n }\r\n $rootScope.$on('refreshStart', function(){\r\n elem.animate({ scrollTop: \"0\" });\r\n });\r\n handler = function() {\r\n var container, elementBottom, remaining, shouldScroll, containerBottom;\r\n container = $(elem.children()[0]);\r\n elementBottom = elem.offset().top + elem.height();\r\n containerBottom = container.offset().top + container.height();\r\n remaining = containerBottom - elementBottom ;\r\n shouldScroll = remaining <= elem.height() * scrollDistance;\r\n if (shouldScroll && scrollEnabled) {\r\n if ($rootScope.$$phase) {\r\n return scope.$eval(attrs.infiniteScroll);\r\n } else {\r\n return scope.$apply(attrs.infiniteScroll);\r\n }\r\n } else if (shouldScroll) {\r\n return (checkWhenEnabled = true);\r\n }\r\n };\r\n elem.on('scroll', handler);\r\n scope.$on('$destroy', function() {\r\n return $window.off('scroll', handler);\r\n });\r\n return $timeout((function() {\r\n if (attrs.infiniteScrollImmediateCheck) {\r\n if (scope.$eval(attrs.infiniteScrollImmediateCheck)) {\r\n return handler();\r\n }\r\n } else {\r\n return handler();\r\n }\r\n }), 0);\r\n }\r\n };\r\n }\r\n]);","/*\n * Toastr\n * Copyright 2012-2015\n * Authors: John Papa, Hans Fjällemark, and Tim Ferrell.\n * All Rights Reserved.\n * Use, reproduction, distribution, and modification of this code is subject to the terms and\n * conditions of the MIT license, available at http://www.opensource.org/licenses/mit-license.php\n *\n * ARIA Support: Greta Krafsig\n *\n * Project: https://github.com/CodeSeven/toastr\n */\n/* global define */\n(function (define) {\n define(['jquery'], function ($) {\n return (function () {\n var $container;\n var listener;\n var toastId = 0;\n var toastType = {\n error: 'error',\n info: 'info',\n success: 'success',\n warning: 'warning'\n };\n\n var toastr = {\n clear: clear,\n remove: remove,\n error: error,\n getContainer: getContainer,\n info: info,\n options: {},\n subscribe: subscribe,\n success: success,\n version: '2.1.4',\n warning: warning\n };\n\n var previousToast;\n\n return toastr;\n\n ////////////////\n\n function error(message, title, optionsOverride) {\n return notify({\n type: toastType.error,\n iconClass: getOptions().iconClasses.error,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function getContainer(options, create) {\n if (!options) { options = getOptions(); }\n $container = $('#' + options.containerId);\n if ($container.length) {\n return $container;\n }\n if (create) {\n $container = createContainer(options);\n }\n return $container;\n }\n\n function info(message, title, optionsOverride) {\n return notify({\n type: toastType.info,\n iconClass: getOptions().iconClasses.info,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function subscribe(callback) {\n listener = callback;\n }\n\n function success(message, title, optionsOverride) {\n return notify({\n type: toastType.success,\n iconClass: getOptions().iconClasses.success,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function warning(message, title, optionsOverride) {\n return notify({\n type: toastType.warning,\n iconClass: getOptions().iconClasses.warning,\n message: message,\n optionsOverride: optionsOverride,\n title: title\n });\n }\n\n function clear($toastElement, clearOptions) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if (!clearToast($toastElement, options, clearOptions)) {\n clearContainer(options);\n }\n }\n\n function remove($toastElement) {\n var options = getOptions();\n if (!$container) { getContainer(options); }\n if ($toastElement && $(':focus', $toastElement).length === 0) {\n removeToast($toastElement);\n return;\n }\n if ($container.children().length) {\n $container.remove();\n }\n }\n\n // internal functions\n\n function clearContainer (options) {\n var toastsToClear = $container.children();\n for (var i = toastsToClear.length - 1; i >= 0; i--) {\n clearToast($(toastsToClear[i]), options);\n }\n }\n\n function clearToast ($toastElement, options, clearOptions) {\n var force = clearOptions && clearOptions.force ? clearOptions.force : false;\n if ($toastElement && (force || $(':focus', $toastElement).length === 0)) {\n $toastElement[options.hideMethod]({\n duration: options.hideDuration,\n easing: options.hideEasing,\n complete: function () { removeToast($toastElement); }\n });\n return true;\n }\n return false;\n }\n\n function createContainer(options) {\n $container = $('
')\n .attr('id', options.containerId)\n .addClass(options.positionClass);\n\n $container.appendTo($(options.target));\n return $container;\n }\n\n function getDefaults() {\n return {\n tapToDismiss: true,\n toastClass: 'toast',\n containerId: 'toast-container',\n debug: false,\n\n showMethod: 'fadeIn', //fadeIn, slideDown, and show are built into jQuery\n showDuration: 300,\n showEasing: 'swing', //swing and linear are built into jQuery\n onShown: undefined,\n hideMethod: 'fadeOut',\n hideDuration: 1000,\n hideEasing: 'swing',\n onHidden: undefined,\n closeMethod: false,\n closeDuration: false,\n closeEasing: false,\n closeOnHover: true,\n\n extendedTimeOut: 1000,\n iconClasses: {\n error: 'toast-error',\n info: 'toast-info',\n success: 'toast-success',\n warning: 'toast-warning'\n },\n iconClass: 'toast-info',\n positionClass: 'toast-top-right',\n timeOut: 5000, // Set timeOut and extendedTimeOut to 0 to make it sticky\n titleClass: 'toast-title',\n messageClass: 'toast-message',\n escapeHtml: false,\n target: 'body',\n closeHtml: '',\n closeClass: 'toast-close-button',\n newestOnTop: true,\n preventDuplicates: false,\n progressBar: false,\n progressClass: 'toast-progress',\n rtl: false\n };\n }\n\n function publish(args) {\n if (!listener) { return; }\n listener(args);\n }\n\n function notify(map) {\n var options = getOptions();\n var iconClass = map.iconClass || options.iconClass;\n\n if (typeof (map.optionsOverride) !== 'undefined') {\n options = $.extend(options, map.optionsOverride);\n iconClass = map.optionsOverride.iconClass || iconClass;\n }\n\n if (shouldExit(options, map)) { return; }\n\n toastId++;\n\n $container = getContainer(options, true);\n\n var intervalId = null;\n var $toastElement = $('
');\n var $titleElement = $('
');\n var $messageElement = $('
');\n var $progressElement = $('
');\n var $closeElement = $(options.closeHtml);\n var progressBar = {\n intervalId: null,\n hideEta: null,\n maxHideTime: null\n };\n var response = {\n toastId: toastId,\n state: 'visible',\n startTime: new Date(),\n options: options,\n map: map\n };\n\n personalizeToast();\n\n displayToast();\n\n handleEvents();\n\n publish(response);\n\n if (options.debug && console) {\n console.log(response);\n }\n\n return $toastElement;\n\n function escapeHtml(source) {\n if (source == null) {\n source = '';\n }\n\n return source\n .replace(/&/g, '&')\n .replace(/\"/g, '"')\n .replace(/'/g, ''')\n .replace(//g, '>');\n }\n\n function personalizeToast() {\n setIcon();\n setTitle();\n setMessage();\n setCloseButton();\n setProgressBar();\n setRTL();\n setSequence();\n setAria();\n }\n\n function setAria() {\n var ariaValue = '';\n switch (map.iconClass) {\n case 'toast-success':\n case 'toast-info':\n ariaValue = 'polite';\n break;\n default:\n ariaValue = 'assertive';\n }\n $toastElement.attr('aria-live', ariaValue);\n }\n\n function handleEvents() {\n if (options.closeOnHover) {\n $toastElement.hover(stickAround, delayedHideToast);\n }\n\n if (!options.onclick && options.tapToDismiss) {\n $toastElement.click(hideToast);\n }\n\n if (options.closeButton && $closeElement) {\n $closeElement.click(function (event) {\n if (event.stopPropagation) {\n event.stopPropagation();\n } else if (event.cancelBubble !== undefined && event.cancelBubble !== true) {\n event.cancelBubble = true;\n }\n\n if (options.onCloseClick) {\n options.onCloseClick(event);\n }\n\n hideToast(true);\n });\n }\n\n if (options.onclick) {\n $toastElement.click(function (event) {\n options.onclick(event);\n hideToast();\n });\n }\n }\n\n function displayToast() {\n $toastElement.hide();\n\n $toastElement[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing, complete: options.onShown}\n );\n\n if (options.timeOut > 0) {\n intervalId = setTimeout(hideToast, options.timeOut);\n progressBar.maxHideTime = parseFloat(options.timeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n if (options.progressBar) {\n progressBar.intervalId = setInterval(updateProgress, 10);\n }\n }\n }\n\n function setIcon() {\n if (map.iconClass) {\n $toastElement.addClass(options.toastClass).addClass(iconClass);\n }\n }\n\n function setSequence() {\n if (options.newestOnTop) {\n $container.prepend($toastElement);\n } else {\n $container.append($toastElement);\n }\n }\n\n function setTitle() {\n if (map.title) {\n var suffix = map.title;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.title);\n }\n $titleElement.append(suffix).addClass(options.titleClass);\n $toastElement.append($titleElement);\n }\n }\n\n function setMessage() {\n if (map.message) {\n var suffix = map.message;\n if (options.escapeHtml) {\n suffix = escapeHtml(map.message);\n }\n $messageElement.append(suffix).addClass(options.messageClass);\n $toastElement.append($messageElement);\n }\n }\n\n function setCloseButton() {\n if (options.closeButton) {\n $closeElement.addClass(options.closeClass).attr('role', 'button');\n $toastElement.prepend($closeElement);\n }\n }\n\n function setProgressBar() {\n if (options.progressBar) {\n $progressElement.addClass(options.progressClass);\n $toastElement.prepend($progressElement);\n }\n }\n\n function setRTL() {\n if (options.rtl) {\n $toastElement.addClass('rtl');\n }\n }\n\n function shouldExit(options, map) {\n if (options.preventDuplicates) {\n if (map.message === previousToast) {\n return true;\n } else {\n previousToast = map.message;\n }\n }\n return false;\n }\n\n function hideToast(override) {\n var method = override && options.closeMethod !== false ? options.closeMethod : options.hideMethod;\n var duration = override && options.closeDuration !== false ?\n options.closeDuration : options.hideDuration;\n var easing = override && options.closeEasing !== false ? options.closeEasing : options.hideEasing;\n if ($(':focus', $toastElement).length && !override) {\n return;\n }\n clearTimeout(progressBar.intervalId);\n return $toastElement[method]({\n duration: duration,\n easing: easing,\n complete: function () {\n removeToast($toastElement);\n clearTimeout(intervalId);\n if (options.onHidden && response.state !== 'hidden') {\n options.onHidden();\n }\n response.state = 'hidden';\n response.endTime = new Date();\n publish(response);\n }\n });\n }\n\n function delayedHideToast() {\n if (options.timeOut > 0 || options.extendedTimeOut > 0) {\n intervalId = setTimeout(hideToast, options.extendedTimeOut);\n progressBar.maxHideTime = parseFloat(options.extendedTimeOut);\n progressBar.hideEta = new Date().getTime() + progressBar.maxHideTime;\n }\n }\n\n function stickAround() {\n clearTimeout(intervalId);\n progressBar.hideEta = 0;\n $toastElement.stop(true, true)[options.showMethod](\n {duration: options.showDuration, easing: options.showEasing}\n );\n }\n\n function updateProgress() {\n var percentage = ((progressBar.hideEta - (new Date().getTime())) / progressBar.maxHideTime) * 100;\n $progressElement.width(percentage + '%');\n }\n }\n\n function getOptions() {\n return $.extend({}, getDefaults(), toastr.options);\n }\n\n function removeToast($toastElement) {\n if (!$container) { $container = getContainer(); }\n if ($toastElement.is(':visible')) {\n return;\n }\n $toastElement.remove();\n $toastElement = null;\n if ($container.children().length === 0) {\n $container.remove();\n previousToast = undefined;\n }\n }\n\n })();\n });\n}(typeof define === 'function' && define.amd ? define : function (deps, factory) {\n if (typeof module !== 'undefined' && module.exports) { //Node\n module.exports = factory(require('jquery'));\n } else {\n window.toastr = factory(window.jQuery);\n }\n}));\n","!function(e){if(\"object\"==typeof exports)module.exports=e();else if(\"function\"==typeof define&&define.amd)define(e);else{var f;\"undefined\"!=typeof window?f=window:\"undefined\"!=typeof global?f=global:\"undefined\"!=typeof self&&(f=self),f.s=e()}}(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);throw new Error(\"Cannot find module '\"+o+\"'\")}var f=n[o]={exports:{}};t[o][0].call(f.exports,function(e){var n=t[o][1][e];return s(n?n:e)},f,f.exports,e,t,n,r)}return n[o].exports}var i=typeof require==\"function\"&&require;for(var o=0;o 0 ? str.match(new RegExp('.{1,' + step + '}', 'g')) : [str];\n};\n\n},{}],5:[function(_dereq_,module,exports){\nvar capitalize = _dereq_('./capitalize');\nvar camelize = _dereq_('./camelize');\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function classify(str) {\n str = makeString(str);\n return capitalize(camelize(str.replace(/[\\W_]/g, ' ')).replace(/\\s/g, ''));\n};\n\n},{\"./camelize\":1,\"./capitalize\":2,\"./helper/makeString\":19}],6:[function(_dereq_,module,exports){\nvar trim = _dereq_('./trim');\n\nmodule.exports = function clean(str) {\n return trim(str).replace(/\\s+/g, ' ');\n};\n\n},{\"./trim\":60}],7:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function(str, substr) {\n str = makeString(str);\n substr = makeString(substr);\n\n if (str.length === 0 || substr.length === 0) return 0;\n\n var count = 0,\n pos = 0,\n length = substr.length;\n\n while (true) {\n pos = str.indexOf(substr, pos);\n if (pos === -1) break;\n count++;\n pos += length;\n }\n\n return count;\n};\n\n},{\"./helper/makeString\":19}],8:[function(_dereq_,module,exports){\nvar trim = _dereq_('./trim');\n\nmodule.exports = function dasherize(str) {\n return trim(str).replace(/([A-Z])/g, '-$1').replace(/[-_\\s]+/g, '-').toLowerCase();\n};\n\n},{\"./trim\":60}],9:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function decapitalize(str) {\n str = makeString(str);\n return str.charAt(0).toLowerCase() + str.slice(1);\n};\n\n},{\"./helper/makeString\":19}],10:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nfunction getIndent(str) {\n var matches = str.match(/^[\\s\\\\t]*/gm);\n var indent = matches[0].length;\n \n for (var i = 1; i < matches.length; i++) {\n indent = Math.min(matches[i].length, indent);\n }\n\n return indent;\n}\n\nmodule.exports = function dedent(str, pattern) {\n str = makeString(str);\n var indent = getIndent(str);\n var reg;\n\n if (indent === 0) return str;\n\n if (typeof pattern === 'string') {\n reg = new RegExp('^' + pattern, 'gm');\n } else {\n reg = new RegExp('^[ \\\\t]{' + indent + '}', 'gm');\n }\n\n return str.replace(reg, '');\n};\n\n},{\"./helper/makeString\":19}],11:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\nvar toPositive = _dereq_('./helper/toPositive');\n\nmodule.exports = function endsWith(str, ends, position) {\n str = makeString(str);\n ends = '' + ends;\n if (typeof position == 'undefined') {\n position = str.length - ends.length;\n } else {\n position = Math.min(toPositive(position), str.length) - ends.length;\n }\n return position >= 0 && str.indexOf(ends, position) === position;\n};\n\n},{\"./helper/makeString\":19,\"./helper/toPositive\":21}],12:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\nvar escapeChars = _dereq_('./helper/escapeChars');\nvar reversedEscapeChars = {};\n\nfor(var key in escapeChars) reversedEscapeChars[escapeChars[key]] = key;\nreversedEscapeChars[\"'\"] = '#39';\n\nmodule.exports = function escapeHTML(str) {\n return makeString(str).replace(/[&<>\"']/g, function(m) {\n return '&' + reversedEscapeChars[m] + ';';\n });\n};\n\n},{\"./helper/escapeChars\":17,\"./helper/makeString\":19}],13:[function(_dereq_,module,exports){\nmodule.exports = function() {\n var result = {};\n\n for (var prop in this) {\n if (!this.hasOwnProperty(prop) || prop.match(/^(?:include|contains|reverse|join)$/)) continue;\n result[prop] = this[prop];\n }\n\n return result;\n};\n\n},{}],14:[function(_dereq_,module,exports){\n// Underscore.string\n// (c) 2010 Esa-Matti Suuronen \n// Underscore.string is freely distributable under the terms of the MIT license.\n// Documentation: https://github.com/epeli/underscore.string\n// Some code is borrowed from MooTools and Alexandru Marasteanu.\n// Version '3.0.3'\n\n'use strict';\n\nfunction s(value) {\n /* jshint validthis: true */\n if (!(this instanceof s)) return new s(value);\n this._wrapped = value;\n}\n\ns.VERSION = '3.0.3';\n\ns.isBlank = _dereq_('./isBlank');\ns.stripTags = _dereq_('./stripTags');\ns.capitalize = _dereq_('./capitalize');\ns.decapitalize = _dereq_('./decapitalize');\ns.chop = _dereq_('./chop');\ns.trim = _dereq_('./trim');\ns.clean = _dereq_('./clean');\ns.count = _dereq_('./count');\ns.chars = _dereq_('./chars');\ns.swapCase = _dereq_('./swapCase');\ns.escapeHTML = _dereq_('./escapeHTML');\ns.unescapeHTML = _dereq_('./unescapeHTML');\ns.splice = _dereq_('./splice');\ns.insert = _dereq_('./insert');\ns.replaceAll = _dereq_('./replaceAll');\ns.include = _dereq_('./include');\ns.join = _dereq_('./join');\ns.lines = _dereq_('./lines');\ns.dedent = _dereq_('./dedent');\ns.reverse = _dereq_('./reverse');\ns.startsWith = _dereq_('./startsWith');\ns.endsWith = _dereq_('./endsWith');\ns.pred = _dereq_('./pred');\ns.succ = _dereq_('./succ');\ns.titleize = _dereq_('./titleize');\ns.camelize = _dereq_('./camelize');\ns.underscored = _dereq_('./underscored');\ns.dasherize = _dereq_('./dasherize');\ns.classify = _dereq_('./classify');\ns.humanize = _dereq_('./humanize');\ns.ltrim = _dereq_('./ltrim');\ns.rtrim = _dereq_('./rtrim');\ns.truncate = _dereq_('./truncate');\ns.prune = _dereq_('./prune');\ns.words = _dereq_('./words');\ns.pad = _dereq_('./pad');\ns.lpad = _dereq_('./lpad');\ns.rpad = _dereq_('./rpad');\ns.lrpad = _dereq_('./lrpad');\ns.sprintf = _dereq_('./sprintf');\ns.vsprintf = _dereq_('./vsprintf');\ns.toNumber = _dereq_('./toNumber');\ns.numberFormat = _dereq_('./numberFormat');\ns.strRight = _dereq_('./strRight');\ns.strRightBack = _dereq_('./strRightBack');\ns.strLeft = _dereq_('./strLeft');\ns.strLeftBack = _dereq_('./strLeftBack');\ns.toSentence = _dereq_('./toSentence');\ns.toSentenceSerial = _dereq_('./toSentenceSerial');\ns.slugify = _dereq_('./slugify');\ns.surround = _dereq_('./surround');\ns.quote = _dereq_('./quote');\ns.unquote = _dereq_('./unquote');\ns.repeat = _dereq_('./repeat');\ns.naturalCmp = _dereq_('./naturalCmp');\ns.levenshtein = _dereq_('./levenshtein');\ns.toBoolean = _dereq_('./toBoolean');\ns.exports = _dereq_('./exports');\ns.escapeRegExp = _dereq_('./helper/escapeRegExp');\n\n// Aliases\ns.strip = s.trim;\ns.lstrip = s.ltrim;\ns.rstrip = s.rtrim;\ns.center = s.lrpad;\ns.rjust = s.lpad;\ns.ljust = s.rpad;\ns.contains = s.include;\ns.q = s.quote;\ns.toBool = s.toBoolean;\ns.camelcase = s.camelize;\n\n\n// Implement chaining\ns.prototype = {\n value: function value() {\n return this._wrapped;\n }\n};\n\nfunction fn2method(key, fn) {\n if (typeof fn !== \"function\") return;\n s.prototype[key] = function() {\n var args = [this._wrapped].concat(Array.prototype.slice.call(arguments));\n var res = fn.apply(null, args);\n // if the result is non-string stop the chain and return the value\n return typeof res === 'string' ? new s(res) : res;\n };\n}\n\n// Copy functions to instance methods for chaining\nfor (var key in s) fn2method(key, s[key]);\n\nfn2method(\"tap\", function tap(string, fn) {\n return fn(string);\n});\n\nfunction prototype2method(methodName) {\n fn2method(methodName, function(context) {\n var args = Array.prototype.slice.call(arguments, 1);\n return String.prototype[methodName].apply(context, args);\n });\n}\n\nvar prototypeMethods = [\n \"toUpperCase\",\n \"toLowerCase\",\n \"split\",\n \"replace\",\n \"slice\",\n \"substring\",\n \"substr\",\n \"concat\"\n];\n\nfor (var key in prototypeMethods) prototype2method(prototypeMethods[key]);\n\n\nmodule.exports = s;\n\n},{\"./camelize\":1,\"./capitalize\":2,\"./chars\":3,\"./chop\":4,\"./classify\":5,\"./clean\":6,\"./count\":7,\"./dasherize\":8,\"./decapitalize\":9,\"./dedent\":10,\"./endsWith\":11,\"./escapeHTML\":12,\"./exports\":13,\"./helper/escapeRegExp\":18,\"./humanize\":22,\"./include\":23,\"./insert\":24,\"./isBlank\":25,\"./join\":26,\"./levenshtein\":27,\"./lines\":28,\"./lpad\":29,\"./lrpad\":30,\"./ltrim\":31,\"./naturalCmp\":32,\"./numberFormat\":33,\"./pad\":34,\"./pred\":35,\"./prune\":36,\"./quote\":37,\"./repeat\":38,\"./replaceAll\":39,\"./reverse\":40,\"./rpad\":41,\"./rtrim\":42,\"./slugify\":43,\"./splice\":44,\"./sprintf\":45,\"./startsWith\":46,\"./strLeft\":47,\"./strLeftBack\":48,\"./strRight\":49,\"./strRightBack\":50,\"./stripTags\":51,\"./succ\":52,\"./surround\":53,\"./swapCase\":54,\"./titleize\":55,\"./toBoolean\":56,\"./toNumber\":57,\"./toSentence\":58,\"./toSentenceSerial\":59,\"./trim\":60,\"./truncate\":61,\"./underscored\":62,\"./unescapeHTML\":63,\"./unquote\":64,\"./vsprintf\":65,\"./words\":66}],15:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./makeString');\n\nmodule.exports = function adjacent(str, direction) {\n str = makeString(str);\n if (str.length === 0) {\n return '';\n }\n return str.slice(0, -1) + String.fromCharCode(str.charCodeAt(str.length - 1) + direction);\n};\n\n},{\"./makeString\":19}],16:[function(_dereq_,module,exports){\nvar escapeRegExp = _dereq_('./escapeRegExp');\n\nmodule.exports = function defaultToWhiteSpace(characters) {\n if (characters == null)\n return '\\\\s';\n else if (characters.source)\n return characters.source;\n else\n return '[' + escapeRegExp(characters) + ']';\n};\n\n},{\"./escapeRegExp\":18}],17:[function(_dereq_,module,exports){\nvar escapeChars = {\n lt: '<',\n gt: '>',\n quot: '\"',\n amp: '&',\n apos: \"'\"\n};\n\nmodule.exports = escapeChars;\n\n},{}],18:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./makeString');\n\nmodule.exports = function escapeRegExp(str) {\n return makeString(str).replace(/([.*+?^=!:${}()|[\\]\\/\\\\])/g, '\\\\$1');\n};\n\n},{\"./makeString\":19}],19:[function(_dereq_,module,exports){\n/**\n * Ensure some object is a coerced to a string\n **/\nmodule.exports = function makeString(object) {\n if (object == null) return '';\n return '' + object;\n};\n\n},{}],20:[function(_dereq_,module,exports){\nmodule.exports = function strRepeat(str, qty){\n if (qty < 1) return '';\n var result = '';\n while (qty > 0) {\n if (qty & 1) result += str;\n qty >>= 1, str += str;\n }\n return result;\n};\n\n},{}],21:[function(_dereq_,module,exports){\nmodule.exports = function toPositive(number) {\n return number < 0 ? 0 : (+number || 0);\n};\n\n},{}],22:[function(_dereq_,module,exports){\nvar capitalize = _dereq_('./capitalize');\nvar underscored = _dereq_('./underscored');\nvar trim = _dereq_('./trim');\n\nmodule.exports = function humanize(str) {\n return capitalize(trim(underscored(str).replace(/_id$/, '').replace(/_/g, ' ')));\n};\n\n},{\"./capitalize\":2,\"./trim\":60,\"./underscored\":62}],23:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function include(str, needle) {\n if (needle === '') return true;\n return makeString(str).indexOf(needle) !== -1;\n};\n\n},{\"./helper/makeString\":19}],24:[function(_dereq_,module,exports){\nvar splice = _dereq_('./splice');\n\nmodule.exports = function insert(str, i, substr) {\n return splice(str, i, 0, substr);\n};\n\n},{\"./splice\":44}],25:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function isBlank(str) {\n return (/^\\s*$/).test(makeString(str));\n};\n\n},{\"./helper/makeString\":19}],26:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\nvar slice = [].slice;\n\nmodule.exports = function join() {\n var args = slice.call(arguments),\n separator = args.shift();\n\n return args.join(makeString(separator));\n};\n\n},{\"./helper/makeString\":19}],27:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function levenshtein(str1, str2) {\n str1 = makeString(str1);\n str2 = makeString(str2);\n\n var current = [],\n prev, value;\n\n for (var i = 0; i <= str2.length; i++)\n for (var j = 0; j <= str1.length; j++) {\n if (i && j)\n if (str1.charAt(j - 1) === str2.charAt(i - 1))\n value = prev;\n else\n value = Math.min(current[j], current[j - 1], prev) + 1;\n else\n value = i + j;\n\n prev = current[j];\n current[j] = value;\n }\n\n return current.pop();\n};\n\n},{\"./helper/makeString\":19}],28:[function(_dereq_,module,exports){\nmodule.exports = function lines(str) {\n if (str == null) return [];\n return String(str).split(/\\r?\\n/);\n};\n\n},{}],29:[function(_dereq_,module,exports){\nvar pad = _dereq_('./pad');\n\nmodule.exports = function lpad(str, length, padStr) {\n return pad(str, length, padStr);\n};\n\n},{\"./pad\":34}],30:[function(_dereq_,module,exports){\nvar pad = _dereq_('./pad');\n\nmodule.exports = function lrpad(str, length, padStr) {\n return pad(str, length, padStr, 'both');\n};\n\n},{\"./pad\":34}],31:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\nvar defaultToWhiteSpace = _dereq_('./helper/defaultToWhiteSpace');\nvar nativeTrimLeft = String.prototype.trimLeft;\n\nmodule.exports = function ltrim(str, characters) {\n str = makeString(str);\n if (!characters && nativeTrimLeft) return nativeTrimLeft.call(str);\n characters = defaultToWhiteSpace(characters);\n return str.replace(new RegExp('^' + characters + '+'), '');\n};\n\n},{\"./helper/defaultToWhiteSpace\":16,\"./helper/makeString\":19}],32:[function(_dereq_,module,exports){\nmodule.exports = function naturalCmp(str1, str2) {\n if (str1 == str2) return 0;\n if (!str1) return -1;\n if (!str2) return 1;\n\n var cmpRegex = /(\\.\\d+)|(\\d+)|(\\D+)/g,\n tokens1 = String(str1).match(cmpRegex),\n tokens2 = String(str2).match(cmpRegex),\n count = Math.min(tokens1.length, tokens2.length);\n\n for (var i = 0; i < count; i++) {\n var a = tokens1[i],\n b = tokens2[i];\n\n if (a !== b) {\n var num1 = +a;\n var num2 = +b;\n if (num1 === num1 && num2 === num2) {\n return num1 > num2 ? 1 : -1;\n }\n return a < b ? -1 : 1;\n }\n }\n\n if (tokens1.length != tokens2.length)\n return tokens1.length - tokens2.length;\n\n return str1 < str2 ? -1 : 1;\n};\n\n},{}],33:[function(_dereq_,module,exports){\nmodule.exports = function numberFormat(number, dec, dsep, tsep) {\n if (isNaN(number) || number == null) return '';\n\n number = number.toFixed(~~dec);\n tsep = typeof tsep == 'string' ? tsep : ',';\n\n var parts = number.split('.'),\n fnums = parts[0],\n decimals = parts[1] ? (dsep || '.') + parts[1] : '';\n\n return fnums.replace(/(\\d)(?=(?:\\d{3})+$)/g, '$1' + tsep) + decimals;\n};\n\n},{}],34:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\nvar strRepeat = _dereq_('./helper/strRepeat');\n\nmodule.exports = function pad(str, length, padStr, type) {\n str = makeString(str);\n length = ~~length;\n\n var padlen = 0;\n\n if (!padStr)\n padStr = ' ';\n else if (padStr.length > 1)\n padStr = padStr.charAt(0);\n\n switch (type) {\n case 'right':\n padlen = length - str.length;\n return str + strRepeat(padStr, padlen);\n case 'both':\n padlen = length - str.length;\n return strRepeat(padStr, Math.ceil(padlen / 2)) + str + strRepeat(padStr, Math.floor(padlen / 2));\n default: // 'left'\n padlen = length - str.length;\n return strRepeat(padStr, padlen) + str;\n }\n};\n\n},{\"./helper/makeString\":19,\"./helper/strRepeat\":20}],35:[function(_dereq_,module,exports){\nvar adjacent = _dereq_('./helper/adjacent');\n\nmodule.exports = function succ(str) {\n return adjacent(str, -1);\n};\n\n},{\"./helper/adjacent\":15}],36:[function(_dereq_,module,exports){\n/**\n * _s.prune: a more elegant version of truncate\n * prune extra chars, never leaving a half-chopped word.\n * @author github.com/rwz\n */\nvar makeString = _dereq_('./helper/makeString');\nvar rtrim = _dereq_('./rtrim');\n\nmodule.exports = function prune(str, length, pruneStr) {\n str = makeString(str);\n length = ~~length;\n pruneStr = pruneStr != null ? String(pruneStr) : '...';\n\n if (str.length <= length) return str;\n\n var tmpl = function(c) {\n return c.toUpperCase() !== c.toLowerCase() ? 'A' : ' ';\n },\n template = str.slice(0, length + 1).replace(/.(?=\\W*\\w*$)/g, tmpl); // 'Hello, world' -> 'HellAA AAAAA'\n\n if (template.slice(template.length - 2).match(/\\w\\w/))\n template = template.replace(/\\s*\\S+$/, '');\n else\n template = rtrim(template.slice(0, template.length - 1));\n\n return (template + pruneStr).length > str.length ? str : str.slice(0, template.length) + pruneStr;\n};\n\n},{\"./helper/makeString\":19,\"./rtrim\":42}],37:[function(_dereq_,module,exports){\nvar surround = _dereq_('./surround');\n\nmodule.exports = function quote(str, quoteChar) {\n return surround(str, quoteChar || '\"');\n};\n\n},{\"./surround\":53}],38:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\nvar strRepeat = _dereq_('./helper/strRepeat');\n\nmodule.exports = function repeat(str, qty, separator) {\n str = makeString(str);\n\n qty = ~~qty;\n\n // using faster implementation if separator is not needed;\n if (separator == null) return strRepeat(str, qty);\n\n // this one is about 300x slower in Google Chrome\n for (var repeat = []; qty > 0; repeat[--qty] = str) {}\n return repeat.join(separator);\n};\n\n},{\"./helper/makeString\":19,\"./helper/strRepeat\":20}],39:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function replaceAll(str, find, replace, ignorecase) {\n var flags = (ignorecase === true)?'gi':'g';\n var reg = new RegExp(find, flags);\n\n return makeString(str).replace(reg, replace);\n};\n\n},{\"./helper/makeString\":19}],40:[function(_dereq_,module,exports){\nvar chars = _dereq_('./chars');\n\nmodule.exports = function reverse(str) {\n return chars(str).reverse().join('');\n};\n\n},{\"./chars\":3}],41:[function(_dereq_,module,exports){\nvar pad = _dereq_('./pad');\n\nmodule.exports = function rpad(str, length, padStr) {\n return pad(str, length, padStr, 'right');\n};\n\n},{\"./pad\":34}],42:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\nvar defaultToWhiteSpace = _dereq_('./helper/defaultToWhiteSpace');\nvar nativeTrimRight = String.prototype.trimRight;\n\nmodule.exports = function rtrim(str, characters) {\n str = makeString(str);\n if (!characters && nativeTrimRight) return nativeTrimRight.call(str);\n characters = defaultToWhiteSpace(characters);\n return str.replace(new RegExp(characters + '+$'), '');\n};\n\n},{\"./helper/defaultToWhiteSpace\":16,\"./helper/makeString\":19}],43:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\nvar defaultToWhiteSpace = _dereq_('./helper/defaultToWhiteSpace');\nvar trim = _dereq_('./trim');\nvar dasherize = _dereq_('./dasherize');\n\nmodule.exports = function slugify(str) {\n var from = \"ąàáäâãåæăćčĉęèéëêĝĥìíïîĵłľńňòóöőôõðøśșšŝťțŭùúüűûñÿýçżźž\",\n to = \"aaaaaaaaaccceeeeeghiiiijllnnoooooooossssttuuuuuunyyczzz\",\n regex = new RegExp(defaultToWhiteSpace(from), 'g');\n\n str = makeString(str).toLowerCase().replace(regex, function(c){\n var index = from.indexOf(c);\n return to.charAt(index) || '-';\n });\n\n return trim(dasherize(str.replace(/[^\\w\\s-]/g, '-')), '-');\n};\n\n},{\"./dasherize\":8,\"./helper/defaultToWhiteSpace\":16,\"./helper/makeString\":19,\"./trim\":60}],44:[function(_dereq_,module,exports){\nvar chars = _dereq_('./chars');\n\nmodule.exports = function splice(str, i, howmany, substr) {\n var arr = chars(str);\n arr.splice(~~i, ~~howmany, substr);\n return arr.join('');\n};\n\n},{\"./chars\":3}],45:[function(_dereq_,module,exports){\n// sprintf() for JavaScript 0.7-beta1\n// http://www.diveintojavascript.com/projects/javascript-sprintf\n//\n// Copyright (c) Alexandru Marasteanu \n// All rights reserved.\nvar strRepeat = _dereq_('./helper/strRepeat');\nvar toString = Object.prototype.toString;\nvar sprintf = (function() {\n function get_type(variable) {\n return toString.call(variable).slice(8, -1).toLowerCase();\n }\n\n var str_repeat = strRepeat;\n\n var str_format = function() {\n if (!str_format.cache.hasOwnProperty(arguments[0])) {\n str_format.cache[arguments[0]] = str_format.parse(arguments[0]);\n }\n return str_format.format.call(null, str_format.cache[arguments[0]], arguments);\n };\n\n str_format.format = function(parse_tree, argv) {\n var cursor = 1, tree_length = parse_tree.length, node_type = '', arg, output = [], i, k, match, pad, pad_character, pad_length;\n for (i = 0; i < tree_length; i++) {\n node_type = get_type(parse_tree[i]);\n if (node_type === 'string') {\n output.push(parse_tree[i]);\n }\n else if (node_type === 'array') {\n match = parse_tree[i]; // convenience purposes only\n if (match[2]) { // keyword argument\n arg = argv[cursor];\n for (k = 0; k < match[2].length; k++) {\n if (!arg.hasOwnProperty(match[2][k])) {\n throw new Error(sprintf('[_.sprintf] property \"%s\" does not exist', match[2][k]));\n }\n arg = arg[match[2][k]];\n }\n } else if (match[1]) { // positional argument (explicit)\n arg = argv[match[1]];\n }\n else { // positional argument (implicit)\n arg = argv[cursor++];\n }\n\n if (/[^s]/.test(match[8]) && (get_type(arg) != 'number')) {\n throw new Error(sprintf('[_.sprintf] expecting number but found %s', get_type(arg)));\n }\n switch (match[8]) {\n case 'b': arg = arg.toString(2); break;\n case 'c': arg = String.fromCharCode(arg); break;\n case 'd': arg = parseInt(arg, 10); break;\n case 'e': arg = match[7] ? arg.toExponential(match[7]) : arg.toExponential(); break;\n case 'f': arg = match[7] ? parseFloat(arg).toFixed(match[7]) : parseFloat(arg); break;\n case 'o': arg = arg.toString(8); break;\n case 's': arg = ((arg = String(arg)) && match[7] ? arg.substring(0, match[7]) : arg); break;\n case 'u': arg = Math.abs(arg); break;\n case 'x': arg = arg.toString(16); break;\n case 'X': arg = arg.toString(16).toUpperCase(); break;\n }\n arg = (/[def]/.test(match[8]) && match[3] && arg >= 0 ? '+'+ arg : arg);\n pad_character = match[4] ? match[4] == '0' ? '0' : match[4].charAt(1) : ' ';\n pad_length = match[6] - String(arg).length;\n pad = match[6] ? str_repeat(pad_character, pad_length) : '';\n output.push(match[5] ? arg + pad : pad + arg);\n }\n }\n return output.join('');\n };\n\n str_format.cache = {};\n\n str_format.parse = function(fmt) {\n var _fmt = fmt, match = [], parse_tree = [], arg_names = 0;\n while (_fmt) {\n if ((match = /^[^\\x25]+/.exec(_fmt)) !== null) {\n parse_tree.push(match[0]);\n }\n else if ((match = /^\\x25{2}/.exec(_fmt)) !== null) {\n parse_tree.push('%');\n }\n else if ((match = /^\\x25(?:([1-9]\\d*)\\$|\\(([^\\)]+)\\))?(\\+)?(0|'[^$])?(-)?(\\d+)?(?:\\.(\\d+))?([b-fosuxX])/.exec(_fmt)) !== null) {\n if (match[2]) {\n arg_names |= 1;\n var field_list = [], replacement_field = match[2], field_match = [];\n if ((field_match = /^([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n while ((replacement_field = replacement_field.substring(field_match[0].length)) !== '') {\n if ((field_match = /^\\.([a-z_][a-z_\\d]*)/i.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else if ((field_match = /^\\[(\\d+)\\]/.exec(replacement_field)) !== null) {\n field_list.push(field_match[1]);\n }\n else {\n throw new Error('[_.sprintf] huh?');\n }\n }\n }\n else {\n throw new Error('[_.sprintf] huh?');\n }\n match[2] = field_list;\n }\n else {\n arg_names |= 2;\n }\n if (arg_names === 3) {\n throw new Error('[_.sprintf] mixing positional and named placeholders is not (yet) supported');\n }\n parse_tree.push(match);\n }\n else {\n throw new Error('[_.sprintf] huh?');\n }\n _fmt = _fmt.substring(match[0].length);\n }\n return parse_tree;\n };\n\n return str_format;\n})();\n\nmodule.exports = sprintf;\n\n},{\"./helper/strRepeat\":20}],46:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\nvar toPositive = _dereq_('./helper/toPositive');\n\nmodule.exports = function startsWith(str, starts, position) {\n str = makeString(str);\n starts = '' + starts;\n position = position == null ? 0 : Math.min(toPositive(position), str.length);\n return str.lastIndexOf(starts, position) === position;\n};\n\n},{\"./helper/makeString\":19,\"./helper/toPositive\":21}],47:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function strLeft(str, sep) {\n str = makeString(str);\n sep = makeString(sep);\n var pos = !sep ? -1 : str.indexOf(sep);\n return~ pos ? str.slice(0, pos) : str;\n};\n\n},{\"./helper/makeString\":19}],48:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function strLeftBack(str, sep) {\n str = makeString(str);\n sep = makeString(sep);\n var pos = str.lastIndexOf(sep);\n return~ pos ? str.slice(0, pos) : str;\n};\n\n},{\"./helper/makeString\":19}],49:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function strRight(str, sep) {\n str = makeString(str);\n sep = makeString(sep);\n var pos = !sep ? -1 : str.indexOf(sep);\n return~ pos ? str.slice(pos + sep.length, str.length) : str;\n};\n\n},{\"./helper/makeString\":19}],50:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function strRightBack(str, sep) {\n str = makeString(str);\n sep = makeString(sep);\n var pos = !sep ? -1 : str.lastIndexOf(sep);\n return~ pos ? str.slice(pos + sep.length, str.length) : str;\n};\n\n},{\"./helper/makeString\":19}],51:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function stripTags(str) {\n return makeString(str).replace(/<\\/?[^>]+>/g, '');\n};\n\n},{\"./helper/makeString\":19}],52:[function(_dereq_,module,exports){\nvar adjacent = _dereq_('./helper/adjacent');\n\nmodule.exports = function succ(str) {\n return adjacent(str, 1);\n};\n\n},{\"./helper/adjacent\":15}],53:[function(_dereq_,module,exports){\nmodule.exports = function surround(str, wrapper) {\n return [wrapper, str, wrapper].join('');\n};\n\n},{}],54:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function swapCase(str) {\n return makeString(str).replace(/\\S/g, function(c) {\n return c === c.toUpperCase() ? c.toLowerCase() : c.toUpperCase();\n });\n};\n\n},{\"./helper/makeString\":19}],55:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function titleize(str) {\n return makeString(str).toLowerCase().replace(/(?:^|\\s|-)\\S/g, function(c) {\n return c.toUpperCase();\n });\n};\n\n},{\"./helper/makeString\":19}],56:[function(_dereq_,module,exports){\nvar trim = _dereq_('./trim');\n\nfunction boolMatch(s, matchers) {\n var i, matcher, down = s.toLowerCase();\n matchers = [].concat(matchers);\n for (i = 0; i < matchers.length; i += 1) {\n matcher = matchers[i];\n if (!matcher) continue;\n if (matcher.test && matcher.test(s)) return true;\n if (matcher.toLowerCase() === down) return true;\n }\n}\n\nmodule.exports = function toBoolean(str, trueValues, falseValues) {\n if (typeof str === \"number\") str = \"\" + str;\n if (typeof str !== \"string\") return !!str;\n str = trim(str);\n if (boolMatch(str, trueValues || [\"true\", \"1\"])) return true;\n if (boolMatch(str, falseValues || [\"false\", \"0\"])) return false;\n};\n\n},{\"./trim\":60}],57:[function(_dereq_,module,exports){\nvar trim = _dereq_('./trim');\nvar parseNumber = function(source) {\n return source * 1 || 0;\n};\n\nmodule.exports = function toNumber(num, precision) {\n if (num == null) return 0;\n var factor = Math.pow(10, isFinite(precision) ? precision : 0);\n return Math.round(num * factor) / factor;\n};\n\n},{\"./trim\":60}],58:[function(_dereq_,module,exports){\nvar rtrim = _dereq_('./rtrim');\n\nmodule.exports = function toSentence(array, separator, lastSeparator, serial) {\n separator = separator || ', ';\n lastSeparator = lastSeparator || ' and ';\n var a = array.slice(),\n lastMember = a.pop();\n\n if (array.length > 2 && serial) lastSeparator = rtrim(separator) + lastSeparator;\n\n return a.length ? a.join(separator) + lastSeparator + lastMember : lastMember;\n};\n\n},{\"./rtrim\":42}],59:[function(_dereq_,module,exports){\nvar toSentence = _dereq_('./toSentence');\n\nmodule.exports = function toSentenceSerial(array, sep, lastSep) {\n return toSentence(array, sep, lastSep, true);\n};\n\n},{\"./toSentence\":58}],60:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\nvar defaultToWhiteSpace = _dereq_('./helper/defaultToWhiteSpace');\nvar nativeTrim = String.prototype.trim;\n\nmodule.exports = function trim(str, characters) {\n str = makeString(str);\n if (!characters && nativeTrim) return nativeTrim.call(str);\n characters = defaultToWhiteSpace(characters);\n return str.replace(new RegExp('^' + characters + '+|' + characters + '+$', 'g'), '');\n};\n\n},{\"./helper/defaultToWhiteSpace\":16,\"./helper/makeString\":19}],61:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\n\nmodule.exports = function truncate(str, length, truncateStr) {\n str = makeString(str);\n truncateStr = truncateStr || '...';\n length = ~~length;\n return str.length > length ? str.slice(0, length) + truncateStr : str;\n};\n\n},{\"./helper/makeString\":19}],62:[function(_dereq_,module,exports){\nvar trim = _dereq_('./trim');\n\nmodule.exports = function underscored(str) {\n return trim(str).replace(/([a-z\\d])([A-Z]+)/g, '$1_$2').replace(/[-\\s]+/g, '_').toLowerCase();\n};\n\n},{\"./trim\":60}],63:[function(_dereq_,module,exports){\nvar makeString = _dereq_('./helper/makeString');\nvar escapeChars = _dereq_('./helper/escapeChars');\n\nmodule.exports = function unescapeHTML(str) {\n return makeString(str).replace(/\\&([^;]+);/g, function(entity, entityCode) {\n var match;\n\n if (entityCode in escapeChars) {\n return escapeChars[entityCode];\n } else if (match = entityCode.match(/^#x([\\da-fA-F]+)$/)) {\n return String.fromCharCode(parseInt(match[1], 16));\n } else if (match = entityCode.match(/^#(\\d+)$/)) {\n return String.fromCharCode(~~match[1]);\n } else {\n return entity;\n }\n });\n};\n\n},{\"./helper/escapeChars\":17,\"./helper/makeString\":19}],64:[function(_dereq_,module,exports){\nmodule.exports = function unquote(str, quoteChar) {\n quoteChar = quoteChar || '\"';\n if (str[0] === quoteChar && str[str.length - 1] === quoteChar)\n return str.slice(1, str.length - 1);\n else return str;\n};\n\n},{}],65:[function(_dereq_,module,exports){\nvar sprintf = _dereq_('./sprintf');\n\nmodule.exports = function vsprintf(fmt, argv) {\n argv.unshift(fmt);\n return sprintf.apply(null, argv);\n};\n\n},{\"./sprintf\":45}],66:[function(_dereq_,module,exports){\nvar isBlank = _dereq_('./isBlank');\nvar trim = _dereq_('./trim');\n\nmodule.exports = function words(str, delimiter) {\n if (isBlank(str)) return [];\n return trim(str, delimiter).split(delimiter || /\\s+/);\n};\n\n},{\"./isBlank\":25,\"./trim\":60}]},{},[14])\n(14)\n});","/**\r\n * @license\r\n * Video.js 5.9.0 \r\n * Copyright Brightcove, Inc. \r\n * Available under Apache License Version 2.0\r\n * \r\n *\r\n * Includes vtt.js \r\n * Available under Apache License Version 2.0\r\n * \r\n */\r\n\r\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\r\n */\r\nvar now = nativeNow || function() {\r\n return new Date().getTime();\r\n};\r\n\r\nmodule.exports = now;\r\n\r\n},{\"../internal/getNative\":20}],5:[function(_dereq_,module,exports){\r\nvar isObject = _dereq_('../lang/isObject'),\r\n now = _dereq_('../date/now');\r\n\r\n/** Used as the `TypeError` message for \"Functions\" methods. */\r\nvar FUNC_ERROR_TEXT = 'Expected a function';\r\n\r\n/* Native method references for those with the same name as other `lodash` methods. */\r\nvar nativeMax = Math.max;\r\n\r\n/**\r\n * Creates a debounced function that delays invoking `func` until after `wait`\r\n * milliseconds have elapsed since the last time the debounced function was\r\n * invoked. The debounced function comes with a `cancel` method to cancel\r\n * delayed invocations. Provide an options object to indicate that `func`\r\n * should be invoked on the leading and/or trailing edge of the `wait` timeout.\r\n * Subsequent calls to the debounced function return the result of the last\r\n * `func` invocation.\r\n *\r\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\r\n * on the trailing edge of the timeout only if the the debounced function is\r\n * invoked more than once during the `wait` timeout.\r\n *\r\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\r\n * for details over the differences between `_.debounce` and `_.throttle`.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Function\r\n * @param {Function} func The function to debounce.\r\n * @param {number} [wait=0] The number of milliseconds to delay.\r\n * @param {Object} [options] The options object.\r\n * @param {boolean} [options.leading=false] Specify invoking on the leading\r\n * edge of the timeout.\r\n * @param {number} [options.maxWait] The maximum time `func` is allowed to be\r\n * delayed before it's invoked.\r\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\r\n * edge of the timeout.\r\n * @returns {Function} Returns the new debounced function.\r\n * @example\r\n *\r\n * // avoid costly calculations while the window size is in flux\r\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\r\n *\r\n * // invoke `sendMail` when the click event is fired, debouncing subsequent calls\r\n * jQuery('#postbox').on('click', _.debounce(sendMail, 300, {\r\n * 'leading': true,\r\n * 'trailing': false\r\n * }));\r\n *\r\n * // ensure `batchLog` is invoked once after 1 second of debounced calls\r\n * var source = new EventSource('/stream');\r\n * jQuery(source).on('message', _.debounce(batchLog, 250, {\r\n * 'maxWait': 1000\r\n * }));\r\n *\r\n * // cancel a debounced call\r\n * var todoChanges = _.debounce(batchLog, 1000);\r\n * Object.observe(models.todo, todoChanges);\r\n *\r\n * Object.observe(models, function(changes) {\r\n * if (_.find(changes, { 'user': 'todo', 'type': 'delete'})) {\r\n * todoChanges.cancel();\r\n * }\r\n * }, ['delete']);\r\n *\r\n * // ...at some point `models.todo` is changed\r\n * models.todo.completed = true;\r\n *\r\n * // ...before 1 second has passed `models.todo` is deleted\r\n * // which cancels the debounced `todoChanges` call\r\n * delete models.todo;\r\n */\r\nfunction debounce(func, wait, options) {\r\n var args,\r\n maxTimeoutId,\r\n result,\r\n stamp,\r\n thisArg,\r\n timeoutId,\r\n trailingCall,\r\n lastCalled = 0,\r\n maxWait = false,\r\n trailing = true;\r\n\r\n if (typeof func != 'function') {\r\n throw new TypeError(FUNC_ERROR_TEXT);\r\n }\r\n wait = wait < 0 ? 0 : (+wait || 0);\r\n if (options === true) {\r\n var leading = true;\r\n trailing = false;\r\n } else if (isObject(options)) {\r\n leading = !!options.leading;\r\n maxWait = 'maxWait' in options && nativeMax(+options.maxWait || 0, wait);\r\n trailing = 'trailing' in options ? !!options.trailing : trailing;\r\n }\r\n\r\n function cancel() {\r\n if (timeoutId) {\r\n clearTimeout(timeoutId);\r\n }\r\n if (maxTimeoutId) {\r\n clearTimeout(maxTimeoutId);\r\n }\r\n lastCalled = 0;\r\n maxTimeoutId = timeoutId = trailingCall = undefined;\r\n }\r\n\r\n function complete(isCalled, id) {\r\n if (id) {\r\n clearTimeout(id);\r\n }\r\n maxTimeoutId = timeoutId = trailingCall = undefined;\r\n if (isCalled) {\r\n lastCalled = now();\r\n result = func.apply(thisArg, args);\r\n if (!timeoutId && !maxTimeoutId) {\r\n args = thisArg = undefined;\r\n }\r\n }\r\n }\r\n\r\n function delayed() {\r\n var remaining = wait - (now() - stamp);\r\n if (remaining <= 0 || remaining > wait) {\r\n complete(trailingCall, maxTimeoutId);\r\n } else {\r\n timeoutId = setTimeout(delayed, remaining);\r\n }\r\n }\r\n\r\n function maxDelayed() {\r\n complete(trailing, timeoutId);\r\n }\r\n\r\n function debounced() {\r\n args = arguments;\r\n stamp = now();\r\n thisArg = this;\r\n trailingCall = trailing && (timeoutId || !leading);\r\n\r\n if (maxWait === false) {\r\n var leadingCall = leading && !timeoutId;\r\n } else {\r\n if (!maxTimeoutId && !leading) {\r\n lastCalled = stamp;\r\n }\r\n var remaining = maxWait - (stamp - lastCalled),\r\n isCalled = remaining <= 0 || remaining > maxWait;\r\n\r\n if (isCalled) {\r\n if (maxTimeoutId) {\r\n maxTimeoutId = clearTimeout(maxTimeoutId);\r\n }\r\n lastCalled = stamp;\r\n result = func.apply(thisArg, args);\r\n }\r\n else if (!maxTimeoutId) {\r\n maxTimeoutId = setTimeout(maxDelayed, remaining);\r\n }\r\n }\r\n if (isCalled && timeoutId) {\r\n timeoutId = clearTimeout(timeoutId);\r\n }\r\n else if (!timeoutId && wait !== maxWait) {\r\n timeoutId = setTimeout(delayed, wait);\r\n }\r\n if (leadingCall) {\r\n isCalled = true;\r\n result = func.apply(thisArg, args);\r\n }\r\n if (isCalled && !timeoutId && !maxTimeoutId) {\r\n args = thisArg = undefined;\r\n }\r\n return result;\r\n }\r\n debounced.cancel = cancel;\r\n return debounced;\r\n}\r\n\r\nmodule.exports = debounce;\r\n\r\n},{\"../date/now\":4,\"../lang/isObject\":33}],6:[function(_dereq_,module,exports){\r\n/** Used as the `TypeError` message for \"Functions\" methods. */\r\nvar FUNC_ERROR_TEXT = 'Expected a function';\r\n\r\n/* Native method references for those with the same name as other `lodash` methods. */\r\nvar nativeMax = Math.max;\r\n\r\n/**\r\n * Creates a function that invokes `func` with the `this` binding of the\r\n * created function and arguments from `start` and beyond provided as an array.\r\n *\r\n * **Note:** This method is based on the [rest parameter](https://developer.mozilla.org/Web/JavaScript/Reference/Functions/rest_parameters).\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Function\r\n * @param {Function} func The function to apply a rest parameter to.\r\n * @param {number} [start=func.length-1] The start position of the rest parameter.\r\n * @returns {Function} Returns the new function.\r\n * @example\r\n *\r\n * var say = _.restParam(function(what, names) {\r\n * return what + ' ' + _.initial(names).join(', ') +\r\n * (_.size(names) > 1 ? ', & ' : '') + _.last(names);\r\n * });\r\n *\r\n * say('hello', 'fred', 'barney', 'pebbles');\r\n * // => 'hello fred, barney, & pebbles'\r\n */\r\nfunction restParam(func, start) {\r\n if (typeof func != 'function') {\r\n throw new TypeError(FUNC_ERROR_TEXT);\r\n }\r\n start = nativeMax(start === undefined ? (func.length - 1) : (+start || 0), 0);\r\n return function() {\r\n var args = arguments,\r\n index = -1,\r\n length = nativeMax(args.length - start, 0),\r\n rest = Array(length);\r\n\r\n while (++index < length) {\r\n rest[index] = args[start + index];\r\n }\r\n switch (start) {\r\n case 0: return func.call(this, rest);\r\n case 1: return func.call(this, args[0], rest);\r\n case 2: return func.call(this, args[0], args[1], rest);\r\n }\r\n var otherArgs = Array(start + 1);\r\n index = -1;\r\n while (++index < start) {\r\n otherArgs[index] = args[index];\r\n }\r\n otherArgs[start] = rest;\r\n return func.apply(this, otherArgs);\r\n };\r\n}\r\n\r\nmodule.exports = restParam;\r\n\r\n},{}],7:[function(_dereq_,module,exports){\r\nvar debounce = _dereq_('./debounce'),\r\n isObject = _dereq_('../lang/isObject');\r\n\r\n/** Used as the `TypeError` message for \"Functions\" methods. */\r\nvar FUNC_ERROR_TEXT = 'Expected a function';\r\n\r\n/**\r\n * Creates a throttled function that only invokes `func` at most once per\r\n * every `wait` milliseconds. The throttled function comes with a `cancel`\r\n * method to cancel delayed invocations. Provide an options object to indicate\r\n * that `func` should be invoked on the leading and/or trailing edge of the\r\n * `wait` timeout. Subsequent calls to the throttled function return the\r\n * result of the last `func` call.\r\n *\r\n * **Note:** If `leading` and `trailing` options are `true`, `func` is invoked\r\n * on the trailing edge of the timeout only if the the throttled function is\r\n * invoked more than once during the `wait` timeout.\r\n *\r\n * See [David Corbacho's article](http://drupalmotion.com/article/debounce-and-throttle-visual-explanation)\r\n * for details over the differences between `_.throttle` and `_.debounce`.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Function\r\n * @param {Function} func The function to throttle.\r\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\r\n * @param {Object} [options] The options object.\r\n * @param {boolean} [options.leading=true] Specify invoking on the leading\r\n * edge of the timeout.\r\n * @param {boolean} [options.trailing=true] Specify invoking on the trailing\r\n * edge of the timeout.\r\n * @returns {Function} Returns the new throttled function.\r\n * @example\r\n *\r\n * // avoid excessively updating the position while scrolling\r\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\r\n *\r\n * // invoke `renewToken` when the click event is fired, but not more than once every 5 minutes\r\n * jQuery('.interactive').on('click', _.throttle(renewToken, 300000, {\r\n * 'trailing': false\r\n * }));\r\n *\r\n * // cancel a trailing throttled call\r\n * jQuery(window).on('popstate', throttled.cancel);\r\n */\r\nfunction throttle(func, wait, options) {\r\n var leading = true,\r\n trailing = true;\r\n\r\n if (typeof func != 'function') {\r\n throw new TypeError(FUNC_ERROR_TEXT);\r\n }\r\n if (options === false) {\r\n leading = false;\r\n } else if (isObject(options)) {\r\n leading = 'leading' in options ? !!options.leading : leading;\r\n trailing = 'trailing' in options ? !!options.trailing : trailing;\r\n }\r\n return debounce(func, wait, { 'leading': leading, 'maxWait': +wait, 'trailing': trailing });\r\n}\r\n\r\nmodule.exports = throttle;\r\n\r\n},{\"../lang/isObject\":33,\"./debounce\":5}],8:[function(_dereq_,module,exports){\r\n/**\r\n * Copies the values of `source` to `array`.\r\n *\r\n * @private\r\n * @param {Array} source The array to copy values from.\r\n * @param {Array} [array=[]] The array to copy values to.\r\n * @returns {Array} Returns `array`.\r\n */\r\nfunction arrayCopy(source, array) {\r\n var index = -1,\r\n length = source.length;\r\n\r\n array || (array = Array(length));\r\n while (++index < length) {\r\n array[index] = source[index];\r\n }\r\n return array;\r\n}\r\n\r\nmodule.exports = arrayCopy;\r\n\r\n},{}],9:[function(_dereq_,module,exports){\r\n/**\r\n * A specialized version of `_.forEach` for arrays without support for callback\r\n * shorthands and `this` binding.\r\n *\r\n * @private\r\n * @param {Array} array The array to iterate over.\r\n * @param {Function} iteratee The function invoked per iteration.\r\n * @returns {Array} Returns `array`.\r\n */\r\nfunction arrayEach(array, iteratee) {\r\n var index = -1,\r\n length = array.length;\r\n\r\n while (++index < length) {\r\n if (iteratee(array[index], index, array) === false) {\r\n break;\r\n }\r\n }\r\n return array;\r\n}\r\n\r\nmodule.exports = arrayEach;\r\n\r\n},{}],10:[function(_dereq_,module,exports){\r\n/**\r\n * Copies properties of `source` to `object`.\r\n *\r\n * @private\r\n * @param {Object} source The object to copy properties from.\r\n * @param {Array} props The property names to copy.\r\n * @param {Object} [object={}] The object to copy properties to.\r\n * @returns {Object} Returns `object`.\r\n */\r\nfunction baseCopy(source, props, object) {\r\n object || (object = {});\r\n\r\n var index = -1,\r\n length = props.length;\r\n\r\n while (++index < length) {\r\n var key = props[index];\r\n object[key] = source[key];\r\n }\r\n return object;\r\n}\r\n\r\nmodule.exports = baseCopy;\r\n\r\n},{}],11:[function(_dereq_,module,exports){\r\nvar createBaseFor = _dereq_('./createBaseFor');\r\n\r\n/**\r\n * The base implementation of `baseForIn` and `baseForOwn` which iterates\r\n * over `object` properties returned by `keysFunc` invoking `iteratee` for\r\n * each property. Iteratee functions may exit iteration early by explicitly\r\n * returning `false`.\r\n *\r\n * @private\r\n * @param {Object} object The object to iterate over.\r\n * @param {Function} iteratee The function invoked per iteration.\r\n * @param {Function} keysFunc The function to get the keys of `object`.\r\n * @returns {Object} Returns `object`.\r\n */\r\nvar baseFor = createBaseFor();\r\n\r\nmodule.exports = baseFor;\r\n\r\n},{\"./createBaseFor\":18}],12:[function(_dereq_,module,exports){\r\nvar baseFor = _dereq_('./baseFor'),\r\n keysIn = _dereq_('../object/keysIn');\r\n\r\n/**\r\n * The base implementation of `_.forIn` without support for callback\r\n * shorthands and `this` binding.\r\n *\r\n * @private\r\n * @param {Object} object The object to iterate over.\r\n * @param {Function} iteratee The function invoked per iteration.\r\n * @returns {Object} Returns `object`.\r\n */\r\nfunction baseForIn(object, iteratee) {\r\n return baseFor(object, iteratee, keysIn);\r\n}\r\n\r\nmodule.exports = baseForIn;\r\n\r\n},{\"../object/keysIn\":39,\"./baseFor\":11}],13:[function(_dereq_,module,exports){\r\nvar arrayEach = _dereq_('./arrayEach'),\r\n baseMergeDeep = _dereq_('./baseMergeDeep'),\r\n isArray = _dereq_('../lang/isArray'),\r\n isArrayLike = _dereq_('./isArrayLike'),\r\n isObject = _dereq_('../lang/isObject'),\r\n isObjectLike = _dereq_('./isObjectLike'),\r\n isTypedArray = _dereq_('../lang/isTypedArray'),\r\n keys = _dereq_('../object/keys');\r\n\r\n/**\r\n * The base implementation of `_.merge` without support for argument juggling,\r\n * multiple sources, and `this` binding `customizer` functions.\r\n *\r\n * @private\r\n * @param {Object} object The destination object.\r\n * @param {Object} source The source object.\r\n * @param {Function} [customizer] The function to customize merged values.\r\n * @param {Array} [stackA=[]] Tracks traversed source objects.\r\n * @param {Array} [stackB=[]] Associates values with source counterparts.\r\n * @returns {Object} Returns `object`.\r\n */\r\nfunction baseMerge(object, source, customizer, stackA, stackB) {\r\n if (!isObject(object)) {\r\n return object;\r\n }\r\n var isSrcArr = isArrayLike(source) && (isArray(source) || isTypedArray(source)),\r\n props = isSrcArr ? undefined : keys(source);\r\n\r\n arrayEach(props || source, function(srcValue, key) {\r\n if (props) {\r\n key = srcValue;\r\n srcValue = source[key];\r\n }\r\n if (isObjectLike(srcValue)) {\r\n stackA || (stackA = []);\r\n stackB || (stackB = []);\r\n baseMergeDeep(object, source, key, baseMerge, customizer, stackA, stackB);\r\n }\r\n else {\r\n var value = object[key],\r\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\r\n isCommon = result === undefined;\r\n\r\n if (isCommon) {\r\n result = srcValue;\r\n }\r\n if ((result !== undefined || (isSrcArr && !(key in object))) &&\r\n (isCommon || (result === result ? (result !== value) : (value === value)))) {\r\n object[key] = result;\r\n }\r\n }\r\n });\r\n return object;\r\n}\r\n\r\nmodule.exports = baseMerge;\r\n\r\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){\r\nvar arrayCopy = _dereq_('./arrayCopy'),\r\n isArguments = _dereq_('../lang/isArguments'),\r\n isArray = _dereq_('../lang/isArray'),\r\n isArrayLike = _dereq_('./isArrayLike'),\r\n isPlainObject = _dereq_('../lang/isPlainObject'),\r\n isTypedArray = _dereq_('../lang/isTypedArray'),\r\n toPlainObject = _dereq_('../lang/toPlainObject');\r\n\r\n/**\r\n * A specialized version of `baseMerge` for arrays and objects which performs\r\n * deep merges and tracks traversed objects enabling objects with circular\r\n * references to be merged.\r\n *\r\n * @private\r\n * @param {Object} object The destination object.\r\n * @param {Object} source The source object.\r\n * @param {string} key The key of the value to merge.\r\n * @param {Function} mergeFunc The function to merge values.\r\n * @param {Function} [customizer] The function to customize merged values.\r\n * @param {Array} [stackA=[]] Tracks traversed source objects.\r\n * @param {Array} [stackB=[]] Associates values with source counterparts.\r\n * @returns {boolean} Returns `true` if the objects are equivalent, else `false`.\r\n */\r\nfunction baseMergeDeep(object, source, key, mergeFunc, customizer, stackA, stackB) {\r\n var length = stackA.length,\r\n srcValue = source[key];\r\n\r\n while (length--) {\r\n if (stackA[length] == srcValue) {\r\n object[key] = stackB[length];\r\n return;\r\n }\r\n }\r\n var value = object[key],\r\n result = customizer ? customizer(value, srcValue, key, object, source) : undefined,\r\n isCommon = result === undefined;\r\n\r\n if (isCommon) {\r\n result = srcValue;\r\n if (isArrayLike(srcValue) && (isArray(srcValue) || isTypedArray(srcValue))) {\r\n result = isArray(value)\r\n ? value\r\n : (isArrayLike(value) ? arrayCopy(value) : []);\r\n }\r\n else if (isPlainObject(srcValue) || isArguments(srcValue)) {\r\n result = isArguments(value)\r\n ? toPlainObject(value)\r\n : (isPlainObject(value) ? value : {});\r\n }\r\n else {\r\n isCommon = false;\r\n }\r\n }\r\n // Add the source value to the stack of traversed objects and associate\r\n // it with its merged value.\r\n stackA.push(srcValue);\r\n stackB.push(result);\r\n\r\n if (isCommon) {\r\n // Recursively merge objects and arrays (susceptible to call stack limits).\r\n object[key] = mergeFunc(result, srcValue, customizer, stackA, stackB);\r\n } else if (result === result ? (result !== value) : (value === value)) {\r\n object[key] = result;\r\n }\r\n}\r\n\r\nmodule.exports = baseMergeDeep;\r\n\r\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){\r\nvar toObject = _dereq_('./toObject');\r\n\r\n/**\r\n * The base implementation of `_.property` without support for deep paths.\r\n *\r\n * @private\r\n * @param {string} key The key of the property to get.\r\n * @returns {Function} Returns the new function.\r\n */\r\nfunction baseProperty(key) {\r\n return function(object) {\r\n return object == null ? undefined : toObject(object)[key];\r\n };\r\n}\r\n\r\nmodule.exports = baseProperty;\r\n\r\n},{\"./toObject\":28}],16:[function(_dereq_,module,exports){\r\nvar identity = _dereq_('../utility/identity');\r\n\r\n/**\r\n * A specialized version of `baseCallback` which only supports `this` binding\r\n * and specifying the number of arguments to provide to `func`.\r\n *\r\n * @private\r\n * @param {Function} func The function to bind.\r\n * @param {*} thisArg The `this` binding of `func`.\r\n * @param {number} [argCount] The number of arguments to provide to `func`.\r\n * @returns {Function} Returns the callback.\r\n */\r\nfunction bindCallback(func, thisArg, argCount) {\r\n if (typeof func != 'function') {\r\n return identity;\r\n }\r\n if (thisArg === undefined) {\r\n return func;\r\n }\r\n switch (argCount) {\r\n case 1: return function(value) {\r\n return func.call(thisArg, value);\r\n };\r\n case 3: return function(value, index, collection) {\r\n return func.call(thisArg, value, index, collection);\r\n };\r\n case 4: return function(accumulator, value, index, collection) {\r\n return func.call(thisArg, accumulator, value, index, collection);\r\n };\r\n case 5: return function(value, other, key, object, source) {\r\n return func.call(thisArg, value, other, key, object, source);\r\n };\r\n }\r\n return function() {\r\n return func.apply(thisArg, arguments);\r\n };\r\n}\r\n\r\nmodule.exports = bindCallback;\r\n\r\n},{\"../utility/identity\":42}],17:[function(_dereq_,module,exports){\r\nvar bindCallback = _dereq_('./bindCallback'),\r\n isIterateeCall = _dereq_('./isIterateeCall'),\r\n restParam = _dereq_('../function/restParam');\r\n\r\n/**\r\n * Creates a `_.assign`, `_.defaults`, or `_.merge` function.\r\n *\r\n * @private\r\n * @param {Function} assigner The function to assign values.\r\n * @returns {Function} Returns the new assigner function.\r\n */\r\nfunction createAssigner(assigner) {\r\n return restParam(function(object, sources) {\r\n var index = -1,\r\n length = object == null ? 0 : sources.length,\r\n customizer = length > 2 ? sources[length - 2] : undefined,\r\n guard = length > 2 ? sources[2] : undefined,\r\n thisArg = length > 1 ? sources[length - 1] : undefined;\r\n\r\n if (typeof customizer == 'function') {\r\n customizer = bindCallback(customizer, thisArg, 5);\r\n length -= 2;\r\n } else {\r\n customizer = typeof thisArg == 'function' ? thisArg : undefined;\r\n length -= (customizer ? 1 : 0);\r\n }\r\n if (guard && isIterateeCall(sources[0], sources[1], guard)) {\r\n customizer = length < 3 ? undefined : customizer;\r\n length = 1;\r\n }\r\n while (++index < length) {\r\n var source = sources[index];\r\n if (source) {\r\n assigner(object, source, customizer);\r\n }\r\n }\r\n return object;\r\n });\r\n}\r\n\r\nmodule.exports = createAssigner;\r\n\r\n},{\"../function/restParam\":6,\"./bindCallback\":16,\"./isIterateeCall\":24}],18:[function(_dereq_,module,exports){\r\nvar toObject = _dereq_('./toObject');\r\n\r\n/**\r\n * Creates a base function for `_.forIn` or `_.forInRight`.\r\n *\r\n * @private\r\n * @param {boolean} [fromRight] Specify iterating from right to left.\r\n * @returns {Function} Returns the new base function.\r\n */\r\nfunction createBaseFor(fromRight) {\r\n return function(object, iteratee, keysFunc) {\r\n var iterable = toObject(object),\r\n props = keysFunc(object),\r\n length = props.length,\r\n index = fromRight ? length : -1;\r\n\r\n while ((fromRight ? index-- : ++index < length)) {\r\n var key = props[index];\r\n if (iteratee(iterable[key], key, iterable) === false) {\r\n break;\r\n }\r\n }\r\n return object;\r\n };\r\n}\r\n\r\nmodule.exports = createBaseFor;\r\n\r\n},{\"./toObject\":28}],19:[function(_dereq_,module,exports){\r\nvar baseProperty = _dereq_('./baseProperty');\r\n\r\n/**\r\n * Gets the \"length\" property value of `object`.\r\n *\r\n * **Note:** This function is used to avoid a [JIT bug](https://bugs.webkit.org/show_bug.cgi?id=142792)\r\n * that affects Safari on at least iOS 8.1-8.3 ARM64.\r\n *\r\n * @private\r\n * @param {Object} object The object to query.\r\n * @returns {*} Returns the \"length\" value.\r\n */\r\nvar getLength = baseProperty('length');\r\n\r\nmodule.exports = getLength;\r\n\r\n},{\"./baseProperty\":15}],20:[function(_dereq_,module,exports){\r\nvar isNative = _dereq_('../lang/isNative');\r\n\r\n/**\r\n * Gets the native function at `key` of `object`.\r\n *\r\n * @private\r\n * @param {Object} object The object to query.\r\n * @param {string} key The key of the method to get.\r\n * @returns {*} Returns the function if it's native, else `undefined`.\r\n */\r\nfunction getNative(object, key) {\r\n var value = object == null ? undefined : object[key];\r\n return isNative(value) ? value : undefined;\r\n}\r\n\r\nmodule.exports = getNative;\r\n\r\n},{\"../lang/isNative\":32}],21:[function(_dereq_,module,exports){\r\nvar getLength = _dereq_('./getLength'),\r\n isLength = _dereq_('./isLength');\r\n\r\n/**\r\n * Checks if `value` is array-like.\r\n *\r\n * @private\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is array-like, else `false`.\r\n */\r\nfunction isArrayLike(value) {\r\n return value != null && isLength(getLength(value));\r\n}\r\n\r\nmodule.exports = isArrayLike;\r\n\r\n},{\"./getLength\":19,\"./isLength\":25}],22:[function(_dereq_,module,exports){\r\n/**\r\n * Checks if `value` is a host object in IE < 9.\r\n *\r\n * @private\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is a host object, else `false`.\r\n */\r\nvar isHostObject = (function() {\r\n try {\r\n Object({ 'toString': 0 } + '');\r\n } catch(e) {\r\n return function() { return false; };\r\n }\r\n return function(value) {\r\n // IE < 9 presents many host objects as `Object` objects that can coerce\r\n // to strings despite having improperly defined `toString` methods.\r\n return typeof value.toString != 'function' && typeof (value + '') == 'string';\r\n };\r\n}());\r\n\r\nmodule.exports = isHostObject;\r\n\r\n},{}],23:[function(_dereq_,module,exports){\r\n/** Used to detect unsigned integer values. */\r\nvar reIsUint = /^\\d+$/;\r\n\r\n/**\r\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\r\n * of an array-like value.\r\n */\r\nvar MAX_SAFE_INTEGER = 9007199254740991;\r\n\r\n/**\r\n * Checks if `value` is a valid array-like index.\r\n *\r\n * @private\r\n * @param {*} value The value to check.\r\n * @param {number} [length=MAX_SAFE_INTEGER] The upper bounds of a valid index.\r\n * @returns {boolean} Returns `true` if `value` is a valid index, else `false`.\r\n */\r\nfunction isIndex(value, length) {\r\n value = (typeof value == 'number' || reIsUint.test(value)) ? +value : -1;\r\n length = length == null ? MAX_SAFE_INTEGER : length;\r\n return value > -1 && value % 1 == 0 && value < length;\r\n}\r\n\r\nmodule.exports = isIndex;\r\n\r\n},{}],24:[function(_dereq_,module,exports){\r\nvar isArrayLike = _dereq_('./isArrayLike'),\r\n isIndex = _dereq_('./isIndex'),\r\n isObject = _dereq_('../lang/isObject');\r\n\r\n/**\r\n * Checks if the provided arguments are from an iteratee call.\r\n *\r\n * @private\r\n * @param {*} value The potential iteratee value argument.\r\n * @param {*} index The potential iteratee index or key argument.\r\n * @param {*} object The potential iteratee object argument.\r\n * @returns {boolean} Returns `true` if the arguments are from an iteratee call, else `false`.\r\n */\r\nfunction isIterateeCall(value, index, object) {\r\n if (!isObject(object)) {\r\n return false;\r\n }\r\n var type = typeof index;\r\n if (type == 'number'\r\n ? (isArrayLike(object) && isIndex(index, object.length))\r\n : (type == 'string' && index in object)) {\r\n var other = object[index];\r\n return value === value ? (value === other) : (other !== other);\r\n }\r\n return false;\r\n}\r\n\r\nmodule.exports = isIterateeCall;\r\n\r\n},{\"../lang/isObject\":33,\"./isArrayLike\":21,\"./isIndex\":23}],25:[function(_dereq_,module,exports){\r\n/**\r\n * Used as the [maximum length](http://ecma-international.org/ecma-262/6.0/#sec-number.max_safe_integer)\r\n * of an array-like value.\r\n */\r\nvar MAX_SAFE_INTEGER = 9007199254740991;\r\n\r\n/**\r\n * Checks if `value` is a valid array-like length.\r\n *\r\n * **Note:** This function is based on [`ToLength`](http://ecma-international.org/ecma-262/6.0/#sec-tolength).\r\n *\r\n * @private\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is a valid length, else `false`.\r\n */\r\nfunction isLength(value) {\r\n return typeof value == 'number' && value > -1 && value % 1 == 0 && value <= MAX_SAFE_INTEGER;\r\n}\r\n\r\nmodule.exports = isLength;\r\n\r\n},{}],26:[function(_dereq_,module,exports){\r\n/**\r\n * Checks if `value` is object-like.\r\n *\r\n * @private\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\r\n */\r\nfunction isObjectLike(value) {\r\n return !!value && typeof value == 'object';\r\n}\r\n\r\nmodule.exports = isObjectLike;\r\n\r\n},{}],27:[function(_dereq_,module,exports){\r\nvar isArguments = _dereq_('../lang/isArguments'),\r\n isArray = _dereq_('../lang/isArray'),\r\n isIndex = _dereq_('./isIndex'),\r\n isLength = _dereq_('./isLength'),\r\n isString = _dereq_('../lang/isString'),\r\n keysIn = _dereq_('../object/keysIn');\r\n\r\n/** Used for native method references. */\r\nvar objectProto = Object.prototype;\r\n\r\n/** Used to check objects for own properties. */\r\nvar hasOwnProperty = objectProto.hasOwnProperty;\r\n\r\n/**\r\n * A fallback implementation of `Object.keys` which creates an array of the\r\n * own enumerable property names of `object`.\r\n *\r\n * @private\r\n * @param {Object} object The object to query.\r\n * @returns {Array} Returns the array of property names.\r\n */\r\nfunction shimKeys(object) {\r\n var props = keysIn(object),\r\n propsLength = props.length,\r\n length = propsLength && object.length;\r\n\r\n var allowIndexes = !!length && isLength(length) &&\r\n (isArray(object) || isArguments(object) || isString(object));\r\n\r\n var index = -1,\r\n result = [];\r\n\r\n while (++index < propsLength) {\r\n var key = props[index];\r\n if ((allowIndexes && isIndex(key, length)) || hasOwnProperty.call(object, key)) {\r\n result.push(key);\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = shimKeys;\r\n\r\n},{\"../lang/isArguments\":29,\"../lang/isArray\":30,\"../lang/isString\":35,\"../object/keysIn\":39,\"./isIndex\":23,\"./isLength\":25}],28:[function(_dereq_,module,exports){\r\nvar isObject = _dereq_('../lang/isObject'),\r\n isString = _dereq_('../lang/isString'),\r\n support = _dereq_('../support');\r\n\r\n/**\r\n * Converts `value` to an object if it's not one.\r\n *\r\n * @private\r\n * @param {*} value The value to process.\r\n * @returns {Object} Returns the object.\r\n */\r\nfunction toObject(value) {\r\n if (support.unindexedChars && isString(value)) {\r\n var index = -1,\r\n length = value.length,\r\n result = Object(value);\r\n\r\n while (++index < length) {\r\n result[index] = value.charAt(index);\r\n }\r\n return result;\r\n }\r\n return isObject(value) ? value : Object(value);\r\n}\r\n\r\nmodule.exports = toObject;\r\n\r\n},{\"../lang/isObject\":33,\"../lang/isString\":35,\"../support\":41}],29:[function(_dereq_,module,exports){\r\nvar isArrayLike = _dereq_('../internal/isArrayLike'),\r\n isObjectLike = _dereq_('../internal/isObjectLike');\r\n\r\n/** Used for native method references. */\r\nvar objectProto = Object.prototype;\r\n\r\n/** Used to check objects for own properties. */\r\nvar hasOwnProperty = objectProto.hasOwnProperty;\r\n\r\n/** Native method references. */\r\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable;\r\n\r\n/**\r\n * Checks if `value` is classified as an `arguments` object.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\r\n * @example\r\n *\r\n * _.isArguments(function() { return arguments; }());\r\n * // => true\r\n *\r\n * _.isArguments([1, 2, 3]);\r\n * // => false\r\n */\r\nfunction isArguments(value) {\r\n return isObjectLike(value) && isArrayLike(value) &&\r\n hasOwnProperty.call(value, 'callee') && !propertyIsEnumerable.call(value, 'callee');\r\n}\r\n\r\nmodule.exports = isArguments;\r\n\r\n},{\"../internal/isArrayLike\":21,\"../internal/isObjectLike\":26}],30:[function(_dereq_,module,exports){\r\nvar getNative = _dereq_('../internal/getNative'),\r\n isLength = _dereq_('../internal/isLength'),\r\n isObjectLike = _dereq_('../internal/isObjectLike');\r\n\r\n/** `Object#toString` result references. */\r\nvar arrayTag = '[object Array]';\r\n\r\n/** Used for native method references. */\r\nvar objectProto = Object.prototype;\r\n\r\n/**\r\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\r\n * of values.\r\n */\r\nvar objToString = objectProto.toString;\r\n\r\n/* Native method references for those with the same name as other `lodash` methods. */\r\nvar nativeIsArray = getNative(Array, 'isArray');\r\n\r\n/**\r\n * Checks if `value` is classified as an `Array` object.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\r\n * @example\r\n *\r\n * _.isArray([1, 2, 3]);\r\n * // => true\r\n *\r\n * _.isArray(function() { return arguments; }());\r\n * // => false\r\n */\r\nvar isArray = nativeIsArray || function(value) {\r\n return isObjectLike(value) && isLength(value.length) && objToString.call(value) == arrayTag;\r\n};\r\n\r\nmodule.exports = isArray;\r\n\r\n},{\"../internal/getNative\":20,\"../internal/isLength\":25,\"../internal/isObjectLike\":26}],31:[function(_dereq_,module,exports){\r\nvar isObject = _dereq_('./isObject');\r\n\r\n/** `Object#toString` result references. */\r\nvar funcTag = '[object Function]';\r\n\r\n/** Used for native method references. */\r\nvar objectProto = Object.prototype;\r\n\r\n/**\r\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\r\n * of values.\r\n */\r\nvar objToString = objectProto.toString;\r\n\r\n/**\r\n * Checks if `value` is classified as a `Function` object.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\r\n * @example\r\n *\r\n * _.isFunction(_);\r\n * // => true\r\n *\r\n * _.isFunction(/abc/);\r\n * // => false\r\n */\r\nfunction isFunction(value) {\r\n // The use of `Object#toString` avoids issues with the `typeof` operator\r\n // in older versions of Chrome and Safari which return 'function' for regexes\r\n // and Safari 8 which returns 'object' for typed array constructors.\r\n return isObject(value) && objToString.call(value) == funcTag;\r\n}\r\n\r\nmodule.exports = isFunction;\r\n\r\n},{\"./isObject\":33}],32:[function(_dereq_,module,exports){\r\nvar isFunction = _dereq_('./isFunction'),\r\n isHostObject = _dereq_('../internal/isHostObject'),\r\n isObjectLike = _dereq_('../internal/isObjectLike');\r\n\r\n/** Used to detect host constructors (Safari > 5). */\r\nvar reIsHostCtor = /^\\[object .+?Constructor\\]$/;\r\n\r\n/** Used for native method references. */\r\nvar objectProto = Object.prototype;\r\n\r\n/** Used to resolve the decompiled source of functions. */\r\nvar fnToString = Function.prototype.toString;\r\n\r\n/** Used to check objects for own properties. */\r\nvar hasOwnProperty = objectProto.hasOwnProperty;\r\n\r\n/** Used to detect if a method is native. */\r\nvar reIsNative = RegExp('^' +\r\n fnToString.call(hasOwnProperty).replace(/[\\\\^$.*+?()[\\]{}|]/g, '\\\\$&')\r\n .replace(/hasOwnProperty|(function).*?(?=\\\\\\()| for .+?(?=\\\\\\])/g, '$1.*?') + '$'\r\n);\r\n\r\n/**\r\n * Checks if `value` is a native function.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is a native function, else `false`.\r\n * @example\r\n *\r\n * _.isNative(Array.prototype.push);\r\n * // => true\r\n *\r\n * _.isNative(_);\r\n * // => false\r\n */\r\nfunction isNative(value) {\r\n if (value == null) {\r\n return false;\r\n }\r\n if (isFunction(value)) {\r\n return reIsNative.test(fnToString.call(value));\r\n }\r\n return isObjectLike(value) && (isHostObject(value) ? reIsNative : reIsHostCtor).test(value);\r\n}\r\n\r\nmodule.exports = isNative;\r\n\r\n},{\"../internal/isHostObject\":22,\"../internal/isObjectLike\":26,\"./isFunction\":31}],33:[function(_dereq_,module,exports){\r\n/**\r\n * Checks if `value` is the [language type](https://es5.github.io/#x8) of `Object`.\r\n * (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\r\n * @example\r\n *\r\n * _.isObject({});\r\n * // => true\r\n *\r\n * _.isObject([1, 2, 3]);\r\n * // => true\r\n *\r\n * _.isObject(1);\r\n * // => false\r\n */\r\nfunction isObject(value) {\r\n // Avoid a V8 JIT bug in Chrome 19-20.\r\n // See https://code.google.com/p/v8/issues/detail?id=2291 for more details.\r\n var type = typeof value;\r\n return !!value && (type == 'object' || type == 'function');\r\n}\r\n\r\nmodule.exports = isObject;\r\n\r\n},{}],34:[function(_dereq_,module,exports){\r\nvar baseForIn = _dereq_('../internal/baseForIn'),\r\n isArguments = _dereq_('./isArguments'),\r\n isHostObject = _dereq_('../internal/isHostObject'),\r\n isObjectLike = _dereq_('../internal/isObjectLike'),\r\n support = _dereq_('../support');\r\n\r\n/** `Object#toString` result references. */\r\nvar objectTag = '[object Object]';\r\n\r\n/** Used for native method references. */\r\nvar objectProto = Object.prototype;\r\n\r\n/** Used to check objects for own properties. */\r\nvar hasOwnProperty = objectProto.hasOwnProperty;\r\n\r\n/**\r\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\r\n * of values.\r\n */\r\nvar objToString = objectProto.toString;\r\n\r\n/**\r\n * Checks if `value` is a plain object, that is, an object created by the\r\n * `Object` constructor or one with a `[[Prototype]]` of `null`.\r\n *\r\n * **Note:** This method assumes objects created by the `Object` constructor\r\n * have no inherited enumerable properties.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is a plain object, else `false`.\r\n * @example\r\n *\r\n * function Foo() {\r\n * this.a = 1;\r\n * }\r\n *\r\n * _.isPlainObject(new Foo);\r\n * // => false\r\n *\r\n * _.isPlainObject([1, 2, 3]);\r\n * // => false\r\n *\r\n * _.isPlainObject({ 'x': 0, 'y': 0 });\r\n * // => true\r\n *\r\n * _.isPlainObject(Object.create(null));\r\n * // => true\r\n */\r\nfunction isPlainObject(value) {\r\n var Ctor;\r\n\r\n // Exit early for non `Object` objects.\r\n if (!(isObjectLike(value) && objToString.call(value) == objectTag && !isHostObject(value) && !isArguments(value)) ||\r\n (!hasOwnProperty.call(value, 'constructor') && (Ctor = value.constructor, typeof Ctor == 'function' && !(Ctor instanceof Ctor)))) {\r\n return false;\r\n }\r\n // IE < 9 iterates inherited properties before own properties. If the first\r\n // iterated property is an object's own property then there are no inherited\r\n // enumerable properties.\r\n var result;\r\n if (support.ownLast) {\r\n baseForIn(value, function(subValue, key, object) {\r\n result = hasOwnProperty.call(object, key);\r\n return false;\r\n });\r\n return result !== false;\r\n }\r\n // In most environments an object's own properties are iterated before\r\n // its inherited properties. If the last iterated property is an object's\r\n // own property then there are no inherited enumerable properties.\r\n baseForIn(value, function(subValue, key) {\r\n result = key;\r\n });\r\n return result === undefined || hasOwnProperty.call(value, result);\r\n}\r\n\r\nmodule.exports = isPlainObject;\r\n\r\n},{\"../internal/baseForIn\":12,\"../internal/isHostObject\":22,\"../internal/isObjectLike\":26,\"../support\":41,\"./isArguments\":29}],35:[function(_dereq_,module,exports){\r\nvar isObjectLike = _dereq_('../internal/isObjectLike');\r\n\r\n/** `Object#toString` result references. */\r\nvar stringTag = '[object String]';\r\n\r\n/** Used for native method references. */\r\nvar objectProto = Object.prototype;\r\n\r\n/**\r\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\r\n * of values.\r\n */\r\nvar objToString = objectProto.toString;\r\n\r\n/**\r\n * Checks if `value` is classified as a `String` primitive or object.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\r\n * @example\r\n *\r\n * _.isString('abc');\r\n * // => true\r\n *\r\n * _.isString(1);\r\n * // => false\r\n */\r\nfunction isString(value) {\r\n return typeof value == 'string' || (isObjectLike(value) && objToString.call(value) == stringTag);\r\n}\r\n\r\nmodule.exports = isString;\r\n\r\n},{\"../internal/isObjectLike\":26}],36:[function(_dereq_,module,exports){\r\nvar isLength = _dereq_('../internal/isLength'),\r\n isObjectLike = _dereq_('../internal/isObjectLike');\r\n\r\n/** `Object#toString` result references. */\r\nvar argsTag = '[object Arguments]',\r\n arrayTag = '[object Array]',\r\n boolTag = '[object Boolean]',\r\n dateTag = '[object Date]',\r\n errorTag = '[object Error]',\r\n funcTag = '[object Function]',\r\n mapTag = '[object Map]',\r\n numberTag = '[object Number]',\r\n objectTag = '[object Object]',\r\n regexpTag = '[object RegExp]',\r\n setTag = '[object Set]',\r\n stringTag = '[object String]',\r\n weakMapTag = '[object WeakMap]';\r\n\r\nvar arrayBufferTag = '[object ArrayBuffer]',\r\n float32Tag = '[object Float32Array]',\r\n float64Tag = '[object Float64Array]',\r\n int8Tag = '[object Int8Array]',\r\n int16Tag = '[object Int16Array]',\r\n int32Tag = '[object Int32Array]',\r\n uint8Tag = '[object Uint8Array]',\r\n uint8ClampedTag = '[object Uint8ClampedArray]',\r\n uint16Tag = '[object Uint16Array]',\r\n uint32Tag = '[object Uint32Array]';\r\n\r\n/** Used to identify `toStringTag` values of typed arrays. */\r\nvar typedArrayTags = {};\r\ntypedArrayTags[float32Tag] = typedArrayTags[float64Tag] =\r\ntypedArrayTags[int8Tag] = typedArrayTags[int16Tag] =\r\ntypedArrayTags[int32Tag] = typedArrayTags[uint8Tag] =\r\ntypedArrayTags[uint8ClampedTag] = typedArrayTags[uint16Tag] =\r\ntypedArrayTags[uint32Tag] = true;\r\ntypedArrayTags[argsTag] = typedArrayTags[arrayTag] =\r\ntypedArrayTags[arrayBufferTag] = typedArrayTags[boolTag] =\r\ntypedArrayTags[dateTag] = typedArrayTags[errorTag] =\r\ntypedArrayTags[funcTag] = typedArrayTags[mapTag] =\r\ntypedArrayTags[numberTag] = typedArrayTags[objectTag] =\r\ntypedArrayTags[regexpTag] = typedArrayTags[setTag] =\r\ntypedArrayTags[stringTag] = typedArrayTags[weakMapTag] = false;\r\n\r\n/** Used for native method references. */\r\nvar objectProto = Object.prototype;\r\n\r\n/**\r\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\r\n * of values.\r\n */\r\nvar objToString = objectProto.toString;\r\n\r\n/**\r\n * Checks if `value` is classified as a typed array.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Lang\r\n * @param {*} value The value to check.\r\n * @returns {boolean} Returns `true` if `value` is correctly classified, else `false`.\r\n * @example\r\n *\r\n * _.isTypedArray(new Uint8Array);\r\n * // => true\r\n *\r\n * _.isTypedArray([]);\r\n * // => false\r\n */\r\nfunction isTypedArray(value) {\r\n return isObjectLike(value) && isLength(value.length) && !!typedArrayTags[objToString.call(value)];\r\n}\r\n\r\nmodule.exports = isTypedArray;\r\n\r\n},{\"../internal/isLength\":25,\"../internal/isObjectLike\":26}],37:[function(_dereq_,module,exports){\r\nvar baseCopy = _dereq_('../internal/baseCopy'),\r\n keysIn = _dereq_('../object/keysIn');\r\n\r\n/**\r\n * Converts `value` to a plain object flattening inherited enumerable\r\n * properties of `value` to own properties of the plain object.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Lang\r\n * @param {*} value The value to convert.\r\n * @returns {Object} Returns the converted plain object.\r\n * @example\r\n *\r\n * function Foo() {\r\n * this.b = 2;\r\n * }\r\n *\r\n * Foo.prototype.c = 3;\r\n *\r\n * _.assign({ 'a': 1 }, new Foo);\r\n * // => { 'a': 1, 'b': 2 }\r\n *\r\n * _.assign({ 'a': 1 }, _.toPlainObject(new Foo));\r\n * // => { 'a': 1, 'b': 2, 'c': 3 }\r\n */\r\nfunction toPlainObject(value) {\r\n return baseCopy(value, keysIn(value));\r\n}\r\n\r\nmodule.exports = toPlainObject;\r\n\r\n},{\"../internal/baseCopy\":10,\"../object/keysIn\":39}],38:[function(_dereq_,module,exports){\r\nvar getNative = _dereq_('../internal/getNative'),\r\n isArrayLike = _dereq_('../internal/isArrayLike'),\r\n isObject = _dereq_('../lang/isObject'),\r\n shimKeys = _dereq_('../internal/shimKeys'),\r\n support = _dereq_('../support');\r\n\r\n/* Native method references for those with the same name as other `lodash` methods. */\r\nvar nativeKeys = getNative(Object, 'keys');\r\n\r\n/**\r\n * Creates an array of the own enumerable property names of `object`.\r\n *\r\n * **Note:** Non-object values are coerced to objects. See the\r\n * [ES spec](http://ecma-international.org/ecma-262/6.0/#sec-object.keys)\r\n * for more details.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Object\r\n * @param {Object} object The object to query.\r\n * @returns {Array} Returns the array of property names.\r\n * @example\r\n *\r\n * function Foo() {\r\n * this.a = 1;\r\n * this.b = 2;\r\n * }\r\n *\r\n * Foo.prototype.c = 3;\r\n *\r\n * _.keys(new Foo);\r\n * // => ['a', 'b'] (iteration order is not guaranteed)\r\n *\r\n * _.keys('hi');\r\n * // => ['0', '1']\r\n */\r\nvar keys = !nativeKeys ? shimKeys : function(object) {\r\n var Ctor = object == null ? undefined : object.constructor;\r\n if ((typeof Ctor == 'function' && Ctor.prototype === object) ||\r\n (typeof object == 'function' ? support.enumPrototypes : isArrayLike(object))) {\r\n return shimKeys(object);\r\n }\r\n return isObject(object) ? nativeKeys(object) : [];\r\n};\r\n\r\nmodule.exports = keys;\r\n\r\n},{\"../internal/getNative\":20,\"../internal/isArrayLike\":21,\"../internal/shimKeys\":27,\"../lang/isObject\":33,\"../support\":41}],39:[function(_dereq_,module,exports){\r\nvar arrayEach = _dereq_('../internal/arrayEach'),\r\n isArguments = _dereq_('../lang/isArguments'),\r\n isArray = _dereq_('../lang/isArray'),\r\n isFunction = _dereq_('../lang/isFunction'),\r\n isIndex = _dereq_('../internal/isIndex'),\r\n isLength = _dereq_('../internal/isLength'),\r\n isObject = _dereq_('../lang/isObject'),\r\n isString = _dereq_('../lang/isString'),\r\n support = _dereq_('../support');\r\n\r\n/** `Object#toString` result references. */\r\nvar arrayTag = '[object Array]',\r\n boolTag = '[object Boolean]',\r\n dateTag = '[object Date]',\r\n errorTag = '[object Error]',\r\n funcTag = '[object Function]',\r\n numberTag = '[object Number]',\r\n objectTag = '[object Object]',\r\n regexpTag = '[object RegExp]',\r\n stringTag = '[object String]';\r\n\r\n/** Used to fix the JScript `[[DontEnum]]` bug. */\r\nvar shadowProps = [\r\n 'constructor', 'hasOwnProperty', 'isPrototypeOf', 'propertyIsEnumerable',\r\n 'toLocaleString', 'toString', 'valueOf'\r\n];\r\n\r\n/** Used for native method references. */\r\nvar errorProto = Error.prototype,\r\n objectProto = Object.prototype,\r\n stringProto = String.prototype;\r\n\r\n/** Used to check objects for own properties. */\r\nvar hasOwnProperty = objectProto.hasOwnProperty;\r\n\r\n/**\r\n * Used to resolve the [`toStringTag`](http://ecma-international.org/ecma-262/6.0/#sec-object.prototype.tostring)\r\n * of values.\r\n */\r\nvar objToString = objectProto.toString;\r\n\r\n/** Used to avoid iterating over non-enumerable properties in IE < 9. */\r\nvar nonEnumProps = {};\r\nnonEnumProps[arrayTag] = nonEnumProps[dateTag] = nonEnumProps[numberTag] = { 'constructor': true, 'toLocaleString': true, 'toString': true, 'valueOf': true };\r\nnonEnumProps[boolTag] = nonEnumProps[stringTag] = { 'constructor': true, 'toString': true, 'valueOf': true };\r\nnonEnumProps[errorTag] = nonEnumProps[funcTag] = nonEnumProps[regexpTag] = { 'constructor': true, 'toString': true };\r\nnonEnumProps[objectTag] = { 'constructor': true };\r\n\r\narrayEach(shadowProps, function(key) {\r\n for (var tag in nonEnumProps) {\r\n if (hasOwnProperty.call(nonEnumProps, tag)) {\r\n var props = nonEnumProps[tag];\r\n props[key] = hasOwnProperty.call(props, key);\r\n }\r\n }\r\n});\r\n\r\n/**\r\n * Creates an array of the own and inherited enumerable property names of `object`.\r\n *\r\n * **Note:** Non-object values are coerced to objects.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Object\r\n * @param {Object} object The object to query.\r\n * @returns {Array} Returns the array of property names.\r\n * @example\r\n *\r\n * function Foo() {\r\n * this.a = 1;\r\n * this.b = 2;\r\n * }\r\n *\r\n * Foo.prototype.c = 3;\r\n *\r\n * _.keysIn(new Foo);\r\n * // => ['a', 'b', 'c'] (iteration order is not guaranteed)\r\n */\r\nfunction keysIn(object) {\r\n if (object == null) {\r\n return [];\r\n }\r\n if (!isObject(object)) {\r\n object = Object(object);\r\n }\r\n var length = object.length;\r\n\r\n length = (length && isLength(length) &&\r\n (isArray(object) || isArguments(object) || isString(object)) && length) || 0;\r\n\r\n var Ctor = object.constructor,\r\n index = -1,\r\n proto = (isFunction(Ctor) && Ctor.prototype) || objectProto,\r\n isProto = proto === object,\r\n result = Array(length),\r\n skipIndexes = length > 0,\r\n skipErrorProps = support.enumErrorProps && (object === errorProto || object instanceof Error),\r\n skipProto = support.enumPrototypes && isFunction(object);\r\n\r\n while (++index < length) {\r\n result[index] = (index + '');\r\n }\r\n // lodash skips the `constructor` property when it infers it's iterating\r\n // over a `prototype` object because IE < 9 can't set the `[[Enumerable]]`\r\n // attribute of an existing property and the `constructor` property of a\r\n // prototype defaults to non-enumerable.\r\n for (var key in object) {\r\n if (!(skipProto && key == 'prototype') &&\r\n !(skipErrorProps && (key == 'message' || key == 'name')) &&\r\n !(skipIndexes && isIndex(key, length)) &&\r\n !(key == 'constructor' && (isProto || !hasOwnProperty.call(object, key)))) {\r\n result.push(key);\r\n }\r\n }\r\n if (support.nonEnumShadows && object !== objectProto) {\r\n var tag = object === stringProto ? stringTag : (object === errorProto ? errorTag : objToString.call(object)),\r\n nonEnums = nonEnumProps[tag] || nonEnumProps[objectTag];\r\n\r\n if (tag == objectTag) {\r\n proto = objectProto;\r\n }\r\n length = shadowProps.length;\r\n while (length--) {\r\n key = shadowProps[length];\r\n var nonEnum = nonEnums[key];\r\n if (!(isProto && nonEnum) &&\r\n (nonEnum ? hasOwnProperty.call(object, key) : object[key] !== proto[key])) {\r\n result.push(key);\r\n }\r\n }\r\n }\r\n return result;\r\n}\r\n\r\nmodule.exports = keysIn;\r\n\r\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){\r\nvar baseMerge = _dereq_('../internal/baseMerge'),\r\n createAssigner = _dereq_('../internal/createAssigner');\r\n\r\n/**\r\n * Recursively merges own enumerable properties of the source object(s), that\r\n * don't resolve to `undefined` into the destination object. Subsequent sources\r\n * overwrite property assignments of previous sources. If `customizer` is\r\n * provided it's invoked to produce the merged values of the destination and\r\n * source properties. If `customizer` returns `undefined` merging is handled\r\n * by the method instead. The `customizer` is bound to `thisArg` and invoked\r\n * with five arguments: (objectValue, sourceValue, key, object, source).\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Object\r\n * @param {Object} object The destination object.\r\n * @param {...Object} [sources] The source objects.\r\n * @param {Function} [customizer] The function to customize assigned values.\r\n * @param {*} [thisArg] The `this` binding of `customizer`.\r\n * @returns {Object} Returns `object`.\r\n * @example\r\n *\r\n * var users = {\r\n * 'data': [{ 'user': 'barney' }, { 'user': 'fred' }]\r\n * };\r\n *\r\n * var ages = {\r\n * 'data': [{ 'age': 36 }, { 'age': 40 }]\r\n * };\r\n *\r\n * _.merge(users, ages);\r\n * // => { 'data': [{ 'user': 'barney', 'age': 36 }, { 'user': 'fred', 'age': 40 }] }\r\n *\r\n * // using a customizer callback\r\n * var object = {\r\n * 'fruits': ['apple'],\r\n * 'vegetables': ['beet']\r\n * };\r\n *\r\n * var other = {\r\n * 'fruits': ['banana'],\r\n * 'vegetables': ['carrot']\r\n * };\r\n *\r\n * _.merge(object, other, function(a, b) {\r\n * if (_.isArray(a)) {\r\n * return a.concat(b);\r\n * }\r\n * });\r\n * // => { 'fruits': ['apple', 'banana'], 'vegetables': ['beet', 'carrot'] }\r\n */\r\nvar merge = createAssigner(baseMerge);\r\n\r\nmodule.exports = merge;\r\n\r\n},{\"../internal/baseMerge\":13,\"../internal/createAssigner\":17}],41:[function(_dereq_,module,exports){\r\n/** Used for native method references. */\r\nvar arrayProto = Array.prototype,\r\n errorProto = Error.prototype,\r\n objectProto = Object.prototype;\r\n\r\n/** Native method references. */\r\nvar propertyIsEnumerable = objectProto.propertyIsEnumerable,\r\n splice = arrayProto.splice;\r\n\r\n/**\r\n * An object environment feature flags.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @type Object\r\n */\r\nvar support = {};\r\n\r\n(function(x) {\r\n var Ctor = function() { this.x = x; },\r\n object = { '0': x, 'length': x },\r\n props = [];\r\n\r\n Ctor.prototype = { 'valueOf': x, 'y': x };\r\n for (var key in new Ctor) { props.push(key); }\r\n\r\n /**\r\n * Detect if `name` or `message` properties of `Error.prototype` are\r\n * enumerable by default (IE < 9, Safari < 5.1).\r\n *\r\n * @memberOf _.support\r\n * @type boolean\r\n */\r\n support.enumErrorProps = propertyIsEnumerable.call(errorProto, 'message') ||\r\n propertyIsEnumerable.call(errorProto, 'name');\r\n\r\n /**\r\n * Detect if `prototype` properties are enumerable by default.\r\n *\r\n * Firefox < 3.6, Opera > 9.50 - Opera < 11.60, and Safari < 5.1\r\n * (if the prototype or a property on the prototype has been set)\r\n * incorrectly set the `[[Enumerable]]` value of a function's `prototype`\r\n * property to `true`.\r\n *\r\n * @memberOf _.support\r\n * @type boolean\r\n */\r\n support.enumPrototypes = propertyIsEnumerable.call(Ctor, 'prototype');\r\n\r\n /**\r\n * Detect if properties shadowing those on `Object.prototype` are non-enumerable.\r\n *\r\n * In IE < 9 an object's own properties, shadowing non-enumerable ones,\r\n * are made non-enumerable as well (a.k.a the JScript `[[DontEnum]]` bug).\r\n *\r\n * @memberOf _.support\r\n * @type boolean\r\n */\r\n support.nonEnumShadows = !/valueOf/.test(props);\r\n\r\n /**\r\n * Detect if own properties are iterated after inherited properties (IE < 9).\r\n *\r\n * @memberOf _.support\r\n * @type boolean\r\n */\r\n support.ownLast = props[0] != 'x';\r\n\r\n /**\r\n * Detect if `Array#shift` and `Array#splice` augment array-like objects\r\n * correctly.\r\n *\r\n * Firefox < 10, compatibility modes of IE 8, and IE < 9 have buggy Array\r\n * `shift()` and `splice()` functions that fail to remove the last element,\r\n * `value[0]`, of array-like objects even though the \"length\" property is\r\n * set to `0`. The `shift()` method is buggy in compatibility modes of IE 8,\r\n * while `splice()` is buggy regardless of mode in IE < 9.\r\n *\r\n * @memberOf _.support\r\n * @type boolean\r\n */\r\n support.spliceObjects = (splice.call(object, 0, 1), !object[0]);\r\n\r\n /**\r\n * Detect lack of support for accessing string characters by index.\r\n *\r\n * IE < 8 can't access characters by index. IE 8 can only access characters\r\n * by index on string literals, not string objects.\r\n *\r\n * @memberOf _.support\r\n * @type boolean\r\n */\r\n support.unindexedChars = ('x'[0] + Object('x')[0]) != 'xx';\r\n}(1, 0));\r\n\r\nmodule.exports = support;\r\n\r\n},{}],42:[function(_dereq_,module,exports){\r\n/**\r\n * This method returns the first argument provided to it.\r\n *\r\n * @static\r\n * @memberOf _\r\n * @category Utility\r\n * @param {*} value Any value.\r\n * @returns {*} Returns `value`.\r\n * @example\r\n *\r\n * var object = { 'user': 'fred' };\r\n *\r\n * _.identity(object) === object;\r\n * // => true\r\n */\r\nfunction identity(value) {\r\n return value;\r\n}\r\n\r\nmodule.exports = identity;\r\n\r\n},{}],43:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\nvar keys = _dereq_('object-keys');\r\n\r\nmodule.exports = function hasSymbols() {\r\n\tif (typeof Symbol !== 'function' || typeof Object.getOwnPropertySymbols !== 'function') { return false; }\r\n\tif (typeof Symbol.iterator === 'symbol') { return true; }\r\n\r\n\tvar obj = {};\r\n\tvar sym = Symbol('test');\r\n\tif (typeof sym === 'string') { return false; }\r\n\r\n\t// temp disabled per https://github.com/ljharb/object.assign/issues/17\r\n\t// if (sym instanceof Symbol) { return false; }\r\n\t// temp disabled per https://github.com/WebReflection/get-own-property-symbols/issues/4\r\n\t// if (!(Object(sym) instanceof Symbol)) { return false; }\r\n\r\n\tvar symVal = 42;\r\n\tobj[sym] = symVal;\r\n\tfor (sym in obj) { return false; }\r\n\tif (keys(obj).length !== 0) { return false; }\r\n\tif (typeof Object.keys === 'function' && Object.keys(obj).length !== 0) { return false; }\r\n\r\n\tif (typeof Object.getOwnPropertyNames === 'function' && Object.getOwnPropertyNames(obj).length !== 0) { return false; }\r\n\r\n\tvar syms = Object.getOwnPropertySymbols(obj);\r\n\tif (syms.length !== 1 || syms[0] !== sym) { return false; }\r\n\r\n\tif (!Object.prototype.propertyIsEnumerable.call(obj, sym)) { return false; }\r\n\r\n\tif (typeof Object.getOwnPropertyDescriptor === 'function') {\r\n\t\tvar descriptor = Object.getOwnPropertyDescriptor(obj, sym);\r\n\t\tif (descriptor.value !== symVal || descriptor.enumerable !== true) { return false; }\r\n\t}\r\n\r\n\treturn true;\r\n};\r\n\r\n},{\"object-keys\":50}],44:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\n// modified from https://github.com/es-shims/es6-shim\r\nvar keys = _dereq_('object-keys');\r\nvar bind = _dereq_('function-bind');\r\nvar canBeObject = function (obj) {\r\n\treturn typeof obj !== 'undefined' && obj !== null;\r\n};\r\nvar hasSymbols = _dereq_('./hasSymbols')();\r\nvar toObject = Object;\r\nvar push = bind.call(Function.call, Array.prototype.push);\r\nvar propIsEnumerable = bind.call(Function.call, Object.prototype.propertyIsEnumerable);\r\n\r\nmodule.exports = function assign(target, source1) {\r\n\tif (!canBeObject(target)) { throw new TypeError('target must be an object'); }\r\n\tvar objTarget = toObject(target);\r\n\tvar s, source, i, props, syms, value, key;\r\n\tfor (s = 1; s < arguments.length; ++s) {\r\n\t\tsource = toObject(arguments[s]);\r\n\t\tprops = keys(source);\r\n\t\tif (hasSymbols && Object.getOwnPropertySymbols) {\r\n\t\t\tsyms = Object.getOwnPropertySymbols(source);\r\n\t\t\tfor (i = 0; i < syms.length; ++i) {\r\n\t\t\t\tkey = syms[i];\r\n\t\t\t\tif (propIsEnumerable(source, key)) {\r\n\t\t\t\t\tpush(props, key);\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}\r\n\t\tfor (i = 0; i < props.length; ++i) {\r\n\t\t\tkey = props[i];\r\n\t\t\tvalue = source[key];\r\n\t\t\tif (propIsEnumerable(source, key)) {\r\n\t\t\t\tobjTarget[key] = value;\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn objTarget;\r\n};\r\n\r\n},{\"./hasSymbols\":43,\"function-bind\":49,\"object-keys\":50}],45:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\nvar defineProperties = _dereq_('define-properties');\r\n\r\nvar implementation = _dereq_('./implementation');\r\nvar getPolyfill = _dereq_('./polyfill');\r\nvar shim = _dereq_('./shim');\r\n\r\ndefineProperties(implementation, {\r\n\timplementation: implementation,\r\n\tgetPolyfill: getPolyfill,\r\n\tshim: shim\r\n});\r\n\r\nmodule.exports = implementation;\r\n\r\n},{\"./implementation\":44,\"./polyfill\":52,\"./shim\":53,\"define-properties\":46}],46:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\nvar keys = _dereq_('object-keys');\r\nvar foreach = _dereq_('foreach');\r\nvar hasSymbols = typeof Symbol === 'function' && typeof Symbol() === 'symbol';\r\n\r\nvar toStr = Object.prototype.toString;\r\n\r\nvar isFunction = function (fn) {\r\n\treturn typeof fn === 'function' && toStr.call(fn) === '[object Function]';\r\n};\r\n\r\nvar arePropertyDescriptorsSupported = function () {\r\n\tvar obj = {};\r\n\ttry {\r\n\t\tObject.defineProperty(obj, 'x', { enumerable: false, value: obj });\r\n /* eslint-disable no-unused-vars, no-restricted-syntax */\r\n for (var _ in obj) { return false; }\r\n /* eslint-enable no-unused-vars, no-restricted-syntax */\r\n\t\treturn obj.x === obj;\r\n\t} catch (e) { /* this is IE 8. */\r\n\t\treturn false;\r\n\t}\r\n};\r\nvar supportsDescriptors = Object.defineProperty && arePropertyDescriptorsSupported();\r\n\r\nvar defineProperty = function (object, name, value, predicate) {\r\n\tif (name in object && (!isFunction(predicate) || !predicate())) {\r\n\t\treturn;\r\n\t}\r\n\tif (supportsDescriptors) {\r\n\t\tObject.defineProperty(object, name, {\r\n\t\t\tconfigurable: true,\r\n\t\t\tenumerable: false,\r\n\t\t\tvalue: value,\r\n\t\t\twritable: true\r\n\t\t});\r\n\t} else {\r\n\t\tobject[name] = value;\r\n\t}\r\n};\r\n\r\nvar defineProperties = function (object, map) {\r\n\tvar predicates = arguments.length > 2 ? arguments[2] : {};\r\n\tvar props = keys(map);\r\n\tif (hasSymbols) {\r\n\t\tprops = props.concat(Object.getOwnPropertySymbols(map));\r\n\t}\r\n\tforeach(props, function (name) {\r\n\t\tdefineProperty(object, name, map[name], predicates[name]);\r\n\t});\r\n};\r\n\r\ndefineProperties.supportsDescriptors = !!supportsDescriptors;\r\n\r\nmodule.exports = defineProperties;\r\n\r\n},{\"foreach\":47,\"object-keys\":50}],47:[function(_dereq_,module,exports){\r\n\r\nvar hasOwn = Object.prototype.hasOwnProperty;\r\nvar toString = Object.prototype.toString;\r\n\r\nmodule.exports = function forEach (obj, fn, ctx) {\r\n if (toString.call(fn) !== '[object Function]') {\r\n throw new TypeError('iterator must be a function');\r\n }\r\n var l = obj.length;\r\n if (l === +l) {\r\n for (var i = 0; i < l; i++) {\r\n fn.call(ctx, obj[i], i, obj);\r\n }\r\n } else {\r\n for (var k in obj) {\r\n if (hasOwn.call(obj, k)) {\r\n fn.call(ctx, obj[k], k, obj);\r\n }\r\n }\r\n }\r\n};\r\n\r\n\r\n},{}],48:[function(_dereq_,module,exports){\r\nvar ERROR_MESSAGE = 'Function.prototype.bind called on incompatible ';\r\nvar slice = Array.prototype.slice;\r\nvar toStr = Object.prototype.toString;\r\nvar funcType = '[object Function]';\r\n\r\nmodule.exports = function bind(that) {\r\n var target = this;\r\n if (typeof target !== 'function' || toStr.call(target) !== funcType) {\r\n throw new TypeError(ERROR_MESSAGE + target);\r\n }\r\n var args = slice.call(arguments, 1);\r\n\r\n var bound;\r\n var binder = function () {\r\n if (this instanceof bound) {\r\n var result = target.apply(\r\n this,\r\n args.concat(slice.call(arguments))\r\n );\r\n if (Object(result) === result) {\r\n return result;\r\n }\r\n return this;\r\n } else {\r\n return target.apply(\r\n that,\r\n args.concat(slice.call(arguments))\r\n );\r\n }\r\n };\r\n\r\n var boundLength = Math.max(0, target.length - args.length);\r\n var boundArgs = [];\r\n for (var i = 0; i < boundLength; i++) {\r\n boundArgs.push('$' + i);\r\n }\r\n\r\n bound = Function('binder', 'return function (' + boundArgs.join(',') + '){ return binder.apply(this,arguments); }')(binder);\r\n\r\n if (target.prototype) {\r\n var Empty = function Empty() {};\r\n Empty.prototype = target.prototype;\r\n bound.prototype = new Empty();\r\n Empty.prototype = null;\r\n }\r\n\r\n return bound;\r\n};\r\n\r\n},{}],49:[function(_dereq_,module,exports){\r\nvar implementation = _dereq_('./implementation');\r\n\r\nmodule.exports = Function.prototype.bind || implementation;\r\n\r\n},{\"./implementation\":48}],50:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\n// modified from https://github.com/es-shims/es5-shim\r\nvar has = Object.prototype.hasOwnProperty;\r\nvar toStr = Object.prototype.toString;\r\nvar slice = Array.prototype.slice;\r\nvar isArgs = _dereq_('./isArguments');\r\nvar hasDontEnumBug = !({ toString: null }).propertyIsEnumerable('toString');\r\nvar hasProtoEnumBug = function () {}.propertyIsEnumerable('prototype');\r\nvar dontEnums = [\r\n\t'toString',\r\n\t'toLocaleString',\r\n\t'valueOf',\r\n\t'hasOwnProperty',\r\n\t'isPrototypeOf',\r\n\t'propertyIsEnumerable',\r\n\t'constructor'\r\n];\r\nvar equalsConstructorPrototype = function (o) {\r\n\tvar ctor = o.constructor;\r\n\treturn ctor && ctor.prototype === o;\r\n};\r\nvar blacklistedKeys = {\r\n\t$console: true,\r\n\t$frame: true,\r\n\t$frameElement: true,\r\n\t$frames: true,\r\n\t$parent: true,\r\n\t$self: true,\r\n\t$webkitIndexedDB: true,\r\n\t$webkitStorageInfo: true,\r\n\t$window: true\r\n};\r\nvar hasAutomationEqualityBug = (function () {\r\n\t/* global window */\r\n\tif (typeof window === 'undefined') { return false; }\r\n\tfor (var k in window) {\r\n\t\ttry {\r\n\t\t\tif (!blacklistedKeys['$' + k] && has.call(window, k) && window[k] !== null && typeof window[k] === 'object') {\r\n\t\t\t\ttry {\r\n\t\t\t\t\tequalsConstructorPrototype(window[k]);\r\n\t\t\t\t} catch (e) {\r\n\t\t\t\t\treturn true;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t} catch (e) {\r\n\t\t\treturn true;\r\n\t\t}\r\n\t}\r\n\treturn false;\r\n}());\r\nvar equalsConstructorPrototypeIfNotBuggy = function (o) {\r\n\t/* global window */\r\n\tif (typeof window === 'undefined' || !hasAutomationEqualityBug) {\r\n\t\treturn equalsConstructorPrototype(o);\r\n\t}\r\n\ttry {\r\n\t\treturn equalsConstructorPrototype(o);\r\n\t} catch (e) {\r\n\t\treturn false;\r\n\t}\r\n};\r\n\r\nvar keysShim = function keys(object) {\r\n\tvar isObject = object !== null && typeof object === 'object';\r\n\tvar isFunction = toStr.call(object) === '[object Function]';\r\n\tvar isArguments = isArgs(object);\r\n\tvar isString = isObject && toStr.call(object) === '[object String]';\r\n\tvar theKeys = [];\r\n\r\n\tif (!isObject && !isFunction && !isArguments) {\r\n\t\tthrow new TypeError('Object.keys called on a non-object');\r\n\t}\r\n\r\n\tvar skipProto = hasProtoEnumBug && isFunction;\r\n\tif (isString && object.length > 0 && !has.call(object, 0)) {\r\n\t\tfor (var i = 0; i < object.length; ++i) {\r\n\t\t\ttheKeys.push(String(i));\r\n\t\t}\r\n\t}\r\n\r\n\tif (isArguments && object.length > 0) {\r\n\t\tfor (var j = 0; j < object.length; ++j) {\r\n\t\t\ttheKeys.push(String(j));\r\n\t\t}\r\n\t} else {\r\n\t\tfor (var name in object) {\r\n\t\t\tif (!(skipProto && name === 'prototype') && has.call(object, name)) {\r\n\t\t\t\ttheKeys.push(String(name));\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\r\n\tif (hasDontEnumBug) {\r\n\t\tvar skipConstructor = equalsConstructorPrototypeIfNotBuggy(object);\r\n\r\n\t\tfor (var k = 0; k < dontEnums.length; ++k) {\r\n\t\t\tif (!(skipConstructor && dontEnums[k] === 'constructor') && has.call(object, dontEnums[k])) {\r\n\t\t\t\ttheKeys.push(dontEnums[k]);\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\treturn theKeys;\r\n};\r\n\r\nkeysShim.shim = function shimObjectKeys() {\r\n\tif (Object.keys) {\r\n\t\tvar keysWorksWithArguments = (function () {\r\n\t\t\t// Safari 5.0 bug\r\n\t\t\treturn (Object.keys(arguments) || '').length === 2;\r\n\t\t}(1, 2));\r\n\t\tif (!keysWorksWithArguments) {\r\n\t\t\tvar originalKeys = Object.keys;\r\n\t\t\tObject.keys = function keys(object) {\r\n\t\t\t\tif (isArgs(object)) {\r\n\t\t\t\t\treturn originalKeys(slice.call(object));\r\n\t\t\t\t} else {\r\n\t\t\t\t\treturn originalKeys(object);\r\n\t\t\t\t}\r\n\t\t\t};\r\n\t\t}\r\n\t} else {\r\n\t\tObject.keys = keysShim;\r\n\t}\r\n\treturn Object.keys || keysShim;\r\n};\r\n\r\nmodule.exports = keysShim;\r\n\r\n},{\"./isArguments\":51}],51:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\nvar toStr = Object.prototype.toString;\r\n\r\nmodule.exports = function isArguments(value) {\r\n\tvar str = toStr.call(value);\r\n\tvar isArgs = str === '[object Arguments]';\r\n\tif (!isArgs) {\r\n\t\tisArgs = str !== '[object Array]' &&\r\n\t\t\tvalue !== null &&\r\n\t\t\ttypeof value === 'object' &&\r\n\t\t\ttypeof value.length === 'number' &&\r\n\t\t\tvalue.length >= 0 &&\r\n\t\t\ttoStr.call(value.callee) === '[object Function]';\r\n\t}\r\n\treturn isArgs;\r\n};\r\n\r\n},{}],52:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\nvar implementation = _dereq_('./implementation');\r\n\r\nvar lacksProperEnumerationOrder = function () {\r\n\tif (!Object.assign) {\r\n\t\treturn false;\r\n\t}\r\n\t// v8, specifically in node 4.x, has a bug with incorrect property enumeration order\r\n\t// note: this does not detect the bug unless there's 20 characters\r\n\tvar str = 'abcdefghijklmnopqrst';\r\n\tvar letters = str.split('');\r\n\tvar map = {};\r\n\tfor (var i = 0; i < letters.length; ++i) {\r\n\t\tmap[letters[i]] = letters[i];\r\n\t}\r\n\tvar obj = Object.assign({}, map);\r\n\tvar actual = '';\r\n\tfor (var k in obj) {\r\n\t\tactual += k;\r\n\t}\r\n\treturn str !== actual;\r\n};\r\n\r\nvar assignHasPendingExceptions = function () {\r\n\tif (!Object.assign || !Object.preventExtensions) {\r\n\t\treturn false;\r\n\t}\r\n\t// Firefox 37 still has \"pending exception\" logic in its Object.assign implementation,\r\n\t// which is 72% slower than our shim, and Firefox 40's native implementation.\r\n\tvar thrower = Object.preventExtensions({ 1: 2 });\r\n\ttry {\r\n\t\tObject.assign(thrower, 'xy');\r\n\t} catch (e) {\r\n\t\treturn thrower[1] === 'y';\r\n\t}\r\n};\r\n\r\nmodule.exports = function getPolyfill() {\r\n\tif (!Object.assign) {\r\n\t\treturn implementation;\r\n\t}\r\n\tif (lacksProperEnumerationOrder()) {\r\n\t\treturn implementation;\r\n\t}\r\n\tif (assignHasPendingExceptions()) {\r\n\t\treturn implementation;\r\n\t}\r\n\treturn Object.assign;\r\n};\r\n\r\n},{\"./implementation\":44}],53:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\nvar define = _dereq_('define-properties');\r\nvar getPolyfill = _dereq_('./polyfill');\r\n\r\nmodule.exports = function shimAssign() {\r\n\tvar polyfill = getPolyfill();\r\n\tdefine(\r\n\t\tObject,\r\n\t\t{ assign: polyfill },\r\n\t\t{ assign: function () { return Object.assign !== polyfill; } }\r\n\t);\r\n\treturn polyfill;\r\n};\r\n\r\n},{\"./polyfill\":52,\"define-properties\":46}],54:[function(_dereq_,module,exports){\r\nmodule.exports = SafeParseTuple\r\n\r\nfunction SafeParseTuple(obj, reviver) {\r\n var json\r\n var error = null\r\n\r\n try {\r\n json = JSON.parse(obj, reviver)\r\n } catch (err) {\r\n error = err\r\n }\r\n\r\n return [error, json]\r\n}\r\n\r\n},{}],55:[function(_dereq_,module,exports){\r\nfunction clean (s) {\r\n return s.replace(/\\n\\r?\\s*/g, '')\r\n}\r\n\r\n\r\nmodule.exports = function tsml (sa) {\r\n var s = ''\r\n , i = 0\r\n\r\n for (; i < arguments.length; i++)\r\n s += clean(sa[i]) + (arguments[i + 1] || '')\r\n\r\n return s\r\n}\r\n},{}],56:[function(_dereq_,module,exports){\r\n\"use strict\";\r\nvar window = _dereq_(\"global/window\")\r\nvar once = _dereq_(\"once\")\r\nvar isFunction = _dereq_(\"is-function\")\r\nvar parseHeaders = _dereq_(\"parse-headers\")\r\nvar xtend = _dereq_(\"xtend\")\r\n\r\nmodule.exports = createXHR\r\ncreateXHR.XMLHttpRequest = window.XMLHttpRequest || noop\r\ncreateXHR.XDomainRequest = \"withCredentials\" in (new createXHR.XMLHttpRequest()) ? createXHR.XMLHttpRequest : window.XDomainRequest\r\n\r\nforEachArray([\"get\", \"put\", \"post\", \"patch\", \"head\", \"delete\"], function(method) {\r\n createXHR[method === \"delete\" ? \"del\" : method] = function(uri, options, callback) {\r\n options = initParams(uri, options, callback)\r\n options.method = method.toUpperCase()\r\n return _createXHR(options)\r\n }\r\n})\r\n\r\nfunction forEachArray(array, iterator) {\r\n for (var i = 0; i < array.length; i++) {\r\n iterator(array[i])\r\n }\r\n}\r\n\r\nfunction isEmpty(obj){\r\n for(var i in obj){\r\n if(obj.hasOwnProperty(i)) return false\r\n }\r\n return true\r\n}\r\n\r\nfunction initParams(uri, options, callback) {\r\n var params = uri\r\n\r\n if (isFunction(options)) {\r\n callback = options\r\n if (typeof uri === \"string\") {\r\n params = {uri:uri}\r\n }\r\n } else {\r\n params = xtend(options, {uri: uri})\r\n }\r\n\r\n params.callback = callback\r\n return params\r\n}\r\n\r\nfunction createXHR(uri, options, callback) {\r\n options = initParams(uri, options, callback)\r\n return _createXHR(options)\r\n}\r\n\r\nfunction _createXHR(options) {\r\n var callback = options.callback\r\n if(typeof callback === \"undefined\"){\r\n throw new Error(\"callback argument missing\")\r\n }\r\n callback = once(callback)\r\n\r\n function readystatechange() {\r\n if (xhr.readyState === 4) {\r\n loadFunc()\r\n }\r\n }\r\n\r\n function getBody() {\r\n // Chrome with requestType=blob throws errors arround when even testing access to responseText\r\n var body = undefined\r\n\r\n if (xhr.response) {\r\n body = xhr.response\r\n } else if (xhr.responseType === \"text\" || !xhr.responseType) {\r\n body = xhr.responseText || xhr.responseXML\r\n }\r\n\r\n if (isJson) {\r\n try {\r\n body = JSON.parse(body)\r\n } catch (e) {}\r\n }\r\n\r\n return body\r\n }\r\n\r\n var failureResponse = {\r\n body: undefined,\r\n headers: {},\r\n statusCode: 0,\r\n method: method,\r\n url: uri,\r\n rawRequest: xhr\r\n }\r\n\r\n function errorFunc(evt) {\r\n clearTimeout(timeoutTimer)\r\n if(!(evt instanceof Error)){\r\n evt = new Error(\"\" + (evt || \"Unknown XMLHttpRequest Error\") )\r\n }\r\n evt.statusCode = 0\r\n callback(evt, failureResponse)\r\n }\r\n\r\n // will load the data & process the response in a special response object\r\n function loadFunc() {\r\n if (aborted) return\r\n var status\r\n clearTimeout(timeoutTimer)\r\n if(options.useXDR && xhr.status===undefined) {\r\n //IE8 CORS GET successful response doesn't have a status field, but body is fine\r\n status = 200\r\n } else {\r\n status = (xhr.status === 1223 ? 204 : xhr.status)\r\n }\r\n var response = failureResponse\r\n var err = null\r\n\r\n if (status !== 0){\r\n response = {\r\n body: getBody(),\r\n statusCode: status,\r\n method: method,\r\n headers: {},\r\n url: uri,\r\n rawRequest: xhr\r\n }\r\n if(xhr.getAllResponseHeaders){ //remember xhr can in fact be XDR for CORS in IE\r\n response.headers = parseHeaders(xhr.getAllResponseHeaders())\r\n }\r\n } else {\r\n err = new Error(\"Internal XMLHttpRequest Error\")\r\n }\r\n callback(err, response, response.body)\r\n\r\n }\r\n\r\n var xhr = options.xhr || null\r\n\r\n if (!xhr) {\r\n if (options.cors || options.useXDR) {\r\n xhr = new createXHR.XDomainRequest()\r\n }else{\r\n xhr = new createXHR.XMLHttpRequest()\r\n }\r\n }\r\n\r\n var key\r\n var aborted\r\n var uri = xhr.url = options.uri || options.url\r\n var method = xhr.method = options.method || \"GET\"\r\n var body = options.body || options.data || null\r\n var headers = xhr.headers = options.headers || {}\r\n var sync = !!options.sync\r\n var isJson = false\r\n var timeoutTimer\r\n\r\n if (\"json\" in options) {\r\n isJson = true\r\n headers[\"accept\"] || headers[\"Accept\"] || (headers[\"Accept\"] = \"application/json\") //Don't override existing accept header declared by user\r\n if (method !== \"GET\" && method !== \"HEAD\") {\r\n headers[\"content-type\"] || headers[\"Content-Type\"] || (headers[\"Content-Type\"] = \"application/json\") //Don't override existing accept header declared by user\r\n body = JSON.stringify(options.json)\r\n }\r\n }\r\n\r\n xhr.onreadystatechange = readystatechange\r\n xhr.onload = loadFunc\r\n xhr.onerror = errorFunc\r\n // IE9 must have onprogress be set to a unique function.\r\n xhr.onprogress = function () {\r\n // IE must die\r\n }\r\n xhr.ontimeout = errorFunc\r\n xhr.open(method, uri, !sync, options.username, options.password)\r\n //has to be after open\r\n if(!sync) {\r\n xhr.withCredentials = !!options.withCredentials\r\n }\r\n // Cannot set timeout with sync request\r\n // not setting timeout on the xhr object, because of old webkits etc. not handling that correctly\r\n // both npm's request and jquery 1.x use this kind of timeout, so this is being consistent\r\n if (!sync && options.timeout > 0 ) {\r\n timeoutTimer = setTimeout(function(){\r\n aborted=true//IE9 may still call readystatechange\r\n xhr.abort(\"timeout\")\r\n var e = new Error(\"XMLHttpRequest timeout\")\r\n e.code = \"ETIMEDOUT\"\r\n errorFunc(e)\r\n }, options.timeout )\r\n }\r\n\r\n if (xhr.setRequestHeader) {\r\n for(key in headers){\r\n if(headers.hasOwnProperty(key)){\r\n xhr.setRequestHeader(key, headers[key])\r\n }\r\n }\r\n } else if (options.headers && !isEmpty(options.headers)) {\r\n throw new Error(\"Headers cannot be set on an XDomainRequest object\")\r\n }\r\n\r\n if (\"responseType\" in options) {\r\n xhr.responseType = options.responseType\r\n }\r\n\r\n if (\"beforeSend\" in options &&\r\n typeof options.beforeSend === \"function\"\r\n ) {\r\n options.beforeSend(xhr)\r\n }\r\n\r\n xhr.send(body)\r\n\r\n return xhr\r\n\r\n\r\n}\r\n\r\nfunction noop() {}\r\n\r\n},{\"global/window\":2,\"is-function\":57,\"once\":58,\"parse-headers\":61,\"xtend\":62}],57:[function(_dereq_,module,exports){\r\nmodule.exports = isFunction\r\n\r\nvar toString = Object.prototype.toString\r\n\r\nfunction isFunction (fn) {\r\n var string = toString.call(fn)\r\n return string === '[object Function]' ||\r\n (typeof fn === 'function' && string !== '[object RegExp]') ||\r\n (typeof window !== 'undefined' &&\r\n // IE8 and below\r\n (fn === window.setTimeout ||\r\n fn === window.alert ||\r\n fn === window.confirm ||\r\n fn === window.prompt))\r\n};\r\n\r\n},{}],58:[function(_dereq_,module,exports){\r\nmodule.exports = once\r\n\r\nonce.proto = once(function () {\r\n Object.defineProperty(Function.prototype, 'once', {\r\n value: function () {\r\n return once(this)\r\n },\r\n configurable: true\r\n })\r\n})\r\n\r\nfunction once (fn) {\r\n var called = false\r\n return function () {\r\n if (called) return\r\n called = true\r\n return fn.apply(this, arguments)\r\n }\r\n}\r\n\r\n},{}],59:[function(_dereq_,module,exports){\r\nvar isFunction = _dereq_('is-function')\r\n\r\nmodule.exports = forEach\r\n\r\nvar toString = Object.prototype.toString\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty\r\n\r\nfunction forEach(list, iterator, context) {\r\n if (!isFunction(iterator)) {\r\n throw new TypeError('iterator must be a function')\r\n }\r\n\r\n if (arguments.length < 3) {\r\n context = this\r\n }\r\n \r\n if (toString.call(list) === '[object Array]')\r\n forEachArray(list, iterator, context)\r\n else if (typeof list === 'string')\r\n forEachString(list, iterator, context)\r\n else\r\n forEachObject(list, iterator, context)\r\n}\r\n\r\nfunction forEachArray(array, iterator, context) {\r\n for (var i = 0, len = array.length; i < len; i++) {\r\n if (hasOwnProperty.call(array, i)) {\r\n iterator.call(context, array[i], i, array)\r\n }\r\n }\r\n}\r\n\r\nfunction forEachString(string, iterator, context) {\r\n for (var i = 0, len = string.length; i < len; i++) {\r\n // no such thing as a sparse string.\r\n iterator.call(context, string.charAt(i), i, string)\r\n }\r\n}\r\n\r\nfunction forEachObject(object, iterator, context) {\r\n for (var k in object) {\r\n if (hasOwnProperty.call(object, k)) {\r\n iterator.call(context, object[k], k, object)\r\n }\r\n }\r\n}\r\n\r\n},{\"is-function\":57}],60:[function(_dereq_,module,exports){\r\n\r\nexports = module.exports = trim;\r\n\r\nfunction trim(str){\r\n return str.replace(/^\\s*|\\s*$/g, '');\r\n}\r\n\r\nexports.left = function(str){\r\n return str.replace(/^\\s*/, '');\r\n};\r\n\r\nexports.right = function(str){\r\n return str.replace(/\\s*$/, '');\r\n};\r\n\r\n},{}],61:[function(_dereq_,module,exports){\r\nvar trim = _dereq_('trim')\r\n , forEach = _dereq_('for-each')\r\n , isArray = function(arg) {\r\n return Object.prototype.toString.call(arg) === '[object Array]';\r\n }\r\n\r\nmodule.exports = function (headers) {\r\n if (!headers)\r\n return {}\r\n\r\n var result = {}\r\n\r\n forEach(\r\n trim(headers).split('\\n')\r\n , function (row) {\r\n var index = row.indexOf(':')\r\n , key = trim(row.slice(0, index)).toLowerCase()\r\n , value = trim(row.slice(index + 1))\r\n\r\n if (typeof(result[key]) === 'undefined') {\r\n result[key] = value\r\n } else if (isArray(result[key])) {\r\n result[key].push(value)\r\n } else {\r\n result[key] = [ result[key], value ]\r\n }\r\n }\r\n )\r\n\r\n return result\r\n}\r\n},{\"for-each\":59,\"trim\":60}],62:[function(_dereq_,module,exports){\r\nmodule.exports = extend\r\n\r\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\r\n\r\nfunction extend() {\r\n var target = {}\r\n\r\n for (var i = 0; i < arguments.length; i++) {\r\n var source = arguments[i]\r\n\r\n for (var key in source) {\r\n if (hasOwnProperty.call(source, key)) {\r\n target[key] = source[key]\r\n }\r\n }\r\n }\r\n\r\n return target\r\n}\r\n\r\n},{}],63:[function(_dereq_,module,exports){\r\n/**\r\n * @file big-play-button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _buttonJs = _dereq_('./button.js');\r\n\r\nvar _buttonJs2 = _interopRequireDefault(_buttonJs);\r\n\r\nvar _componentJs = _dereq_('./component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n/**\r\n * Initial play button. Shows before the video has played. The hiding of the\r\n * big play button is done via CSS and player states.\r\n *\r\n * @param {Object} player Main Player\r\n * @param {Object=} options Object of option names and values\r\n * @extends Button\r\n * @class BigPlayButton\r\n */\r\n\r\nvar BigPlayButton = (function (_Button) {\r\n _inherits(BigPlayButton, _Button);\r\n\r\n function BigPlayButton(player, options) {\r\n _classCallCheck(this, BigPlayButton);\r\n\r\n _Button.call(this, player, options);\r\n }\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n BigPlayButton.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-big-play-button';\r\n };\r\n\r\n /**\r\n * Handles click for play\r\n *\r\n * @method handleClick\r\n */\r\n\r\n BigPlayButton.prototype.handleClick = function handleClick() {\r\n this.player_.play();\r\n };\r\n\r\n return BigPlayButton;\r\n})(_buttonJs2['default']);\r\n\r\nBigPlayButton.prototype.controlText_ = 'Play Video';\r\n\r\n_componentJs2['default'].registerComponent('BigPlayButton', BigPlayButton);\r\nexports['default'] = BigPlayButton;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./button.js\":64,\"./component.js\":67}],64:[function(_dereq_,module,exports){\r\n/**\r\n * @file button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _clickableComponentJs = _dereq_('./clickable-component.js');\r\n\r\nvar _clickableComponentJs2 = _interopRequireDefault(_clickableComponentJs);\r\n\r\nvar _component = _dereq_('./component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _utilsEventsJs = _dereq_('./utils/events.js');\r\n\r\nvar Events = _interopRequireWildcard(_utilsEventsJs);\r\n\r\nvar _utilsFnJs = _dereq_('./utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsLogJs = _dereq_('./utils/log.js');\r\n\r\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _objectAssign = _dereq_('object.assign');\r\n\r\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\r\n\r\n/**\r\n * Base class for all buttons\r\n *\r\n * @param {Object} player Main Player\r\n * @param {Object=} options Object of option names and values\r\n * @extends ClickableComponent\r\n * @class Button\r\n */\r\n\r\nvar Button = (function (_ClickableComponent) {\r\n _inherits(Button, _ClickableComponent);\r\n\r\n function Button(player, options) {\r\n _classCallCheck(this, Button);\r\n\r\n _ClickableComponent.call(this, player, options);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @param {String=} type Element's node type. e.g. 'div'\r\n * @param {Object=} props An object of properties that should be set on the element\r\n * @param {Object=} attributes An object of attributes that should be set on the element\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n Button.prototype.createEl = function createEl() {\r\n var tag = arguments.length <= 0 || arguments[0] === undefined ? 'button' : arguments[0];\r\n var props = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n var attributes = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\r\n\r\n props = _objectAssign2['default']({\r\n className: this.buildCSSClass()\r\n }, props);\r\n\r\n if (tag !== 'button') {\r\n _utilsLogJs2['default'].warn('Creating a Button with an HTML element of ' + tag + ' is deprecated; use ClickableComponent instead.');\r\n\r\n // Add properties for clickable element which is not a native HTML button\r\n props = _objectAssign2['default']({\r\n tabIndex: 0\r\n }, props);\r\n\r\n // Add ARIA attributes for clickable element which is not a native HTML button\r\n attributes = _objectAssign2['default']({\r\n role: 'button'\r\n }, attributes);\r\n }\r\n\r\n // Add attributes for button element\r\n attributes = _objectAssign2['default']({\r\n type: 'button', // Necessary since the default button type is \"submit\"\r\n 'aria-live': 'polite' // let the screen reader user know that the text of the button may change\r\n }, attributes);\r\n\r\n var el = _component2['default'].prototype.createEl.call(this, tag, props, attributes);\r\n\r\n this.createControlTextEl(el);\r\n\r\n return el;\r\n };\r\n\r\n /**\r\n * Adds a child component inside this button\r\n *\r\n * @param {String|Component} child The class name or instance of a child to add\r\n * @param {Object=} options Options, including options to be passed to children of the child.\r\n * @return {Component} The child component (created by this process if a string was used)\r\n * @deprecated\r\n * @method addChild\r\n */\r\n\r\n Button.prototype.addChild = function addChild(child) {\r\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n\r\n var className = this.constructor.name;\r\n _utilsLogJs2['default'].warn('Adding an actionable (user controllable) child to a Button (' + className + ') is not supported; use a ClickableComponent instead.');\r\n\r\n // Avoid the error message generated by ClickableComponent's addChild method\r\n return _component2['default'].prototype.addChild.call(this, child, options);\r\n };\r\n\r\n /**\r\n * Handle KeyPress (document level) - Extend with specific functionality for button\r\n *\r\n * @method handleKeyPress\r\n */\r\n\r\n Button.prototype.handleKeyPress = function handleKeyPress(event) {\r\n // Ignore Space (32) or Enter (13) key operation, which is handled by the browser for a button.\r\n if (event.which === 32 || event.which === 13) {} else {\r\n _ClickableComponent.prototype.handleKeyPress.call(this, event); // Pass keypress handling up for unsupported keys\r\n }\r\n };\r\n\r\n return Button;\r\n})(_clickableComponentJs2['default']);\r\n\r\n_component2['default'].registerComponent('Button', Button);\r\nexports['default'] = Button;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./clickable-component.js\":65,\"./component\":67,\"./utils/events.js\":135,\"./utils/fn.js\":136,\"./utils/log.js\":139,\"global/document\":1,\"object.assign\":45}],65:[function(_dereq_,module,exports){\r\n/**\r\n * @file button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _component = _dereq_('./component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _utilsDomJs = _dereq_('./utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsEventsJs = _dereq_('./utils/events.js');\r\n\r\nvar Events = _interopRequireWildcard(_utilsEventsJs);\r\n\r\nvar _utilsFnJs = _dereq_('./utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsLogJs = _dereq_('./utils/log.js');\r\n\r\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _objectAssign = _dereq_('object.assign');\r\n\r\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\r\n\r\n/**\r\n * Clickable Component which is clickable or keyboard actionable, but is not a native HTML button\r\n *\r\n * @param {Object} player Main Player\r\n * @param {Object=} options Object of option names and values\r\n * @extends Component\r\n * @class ClickableComponent\r\n */\r\n\r\nvar ClickableComponent = (function (_Component) {\r\n _inherits(ClickableComponent, _Component);\r\n\r\n function ClickableComponent(player, options) {\r\n _classCallCheck(this, ClickableComponent);\r\n\r\n _Component.call(this, player, options);\r\n\r\n this.emitTapEvents();\r\n\r\n this.on('tap', this.handleClick);\r\n this.on('click', this.handleClick);\r\n this.on('focus', this.handleFocus);\r\n this.on('blur', this.handleBlur);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @param {String=} type Element's node type. e.g. 'div'\r\n * @param {Object=} props An object of properties that should be set on the element\r\n * @param {Object=} attributes An object of attributes that should be set on the element\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n ClickableComponent.prototype.createEl = function createEl() {\r\n var tag = arguments.length <= 0 || arguments[0] === undefined ? 'div' : arguments[0];\r\n var props = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n var attributes = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\r\n\r\n props = _objectAssign2['default']({\r\n className: this.buildCSSClass(),\r\n tabIndex: 0\r\n }, props);\r\n\r\n if (tag === 'button') {\r\n _utilsLogJs2['default'].error('Creating a ClickableComponent with an HTML element of ' + tag + ' is not supported; use a Button instead.');\r\n }\r\n\r\n // Add ARIA attributes for clickable element which is not a native HTML button\r\n attributes = _objectAssign2['default']({\r\n role: 'button',\r\n 'aria-live': 'polite' // let the screen reader user know that the text of the element may change\r\n }, attributes);\r\n\r\n var el = _Component.prototype.createEl.call(this, tag, props, attributes);\r\n\r\n this.createControlTextEl(el);\r\n\r\n return el;\r\n };\r\n\r\n /**\r\n * create control text\r\n *\r\n * @param {Element} el Parent element for the control text\r\n * @return {Element}\r\n * @method controlText\r\n */\r\n\r\n ClickableComponent.prototype.createControlTextEl = function createControlTextEl(el) {\r\n this.controlTextEl_ = Dom.createEl('span', {\r\n className: 'vjs-control-text'\r\n });\r\n\r\n if (el) {\r\n el.appendChild(this.controlTextEl_);\r\n }\r\n\r\n this.controlText(this.controlText_);\r\n\r\n return this.controlTextEl_;\r\n };\r\n\r\n /**\r\n * Controls text - both request and localize\r\n *\r\n * @param {String} text Text for element\r\n * @return {String}\r\n * @method controlText\r\n */\r\n\r\n ClickableComponent.prototype.controlText = function controlText(text) {\r\n if (!text) return this.controlText_ || 'Need Text';\r\n\r\n this.controlText_ = text;\r\n this.controlTextEl_.innerHTML = this.localize(this.controlText_);\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Allows sub components to stack CSS class names\r\n *\r\n * @return {String}\r\n * @method buildCSSClass\r\n */\r\n\r\n ClickableComponent.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-control vjs-button ' + _Component.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * Adds a child component inside this clickable-component\r\n *\r\n * @param {String|Component} child The class name or instance of a child to add\r\n * @param {Object=} options Options, including options to be passed to children of the child.\r\n * @return {Component} The child component (created by this process if a string was used)\r\n * @method addChild\r\n */\r\n\r\n ClickableComponent.prototype.addChild = function addChild(child) {\r\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n\r\n // TODO: Fix adding an actionable child to a ClickableComponent; currently\r\n // it will cause issues with assistive technology (e.g. screen readers)\r\n // which support ARIA, since an element with role=\"button\" cannot have\r\n // actionable child elements.\r\n\r\n //let className = this.constructor.name;\r\n //log.warn(`Adding a child to a ClickableComponent (${className}) can cause issues with assistive technology which supports ARIA, since an element with role=\"button\" cannot have actionable child elements.`);\r\n\r\n return _Component.prototype.addChild.call(this, child, options);\r\n };\r\n\r\n /**\r\n * Enable the component element\r\n *\r\n * @return {Component}\r\n * @method enable\r\n */\r\n\r\n ClickableComponent.prototype.enable = function enable() {\r\n this.removeClass('vjs-disabled');\r\n this.el_.setAttribute('aria-disabled', 'false');\r\n return this;\r\n };\r\n\r\n /**\r\n * Disable the component element\r\n *\r\n * @return {Component}\r\n * @method disable\r\n */\r\n\r\n ClickableComponent.prototype.disable = function disable() {\r\n this.addClass('vjs-disabled');\r\n this.el_.setAttribute('aria-disabled', 'true');\r\n return this;\r\n };\r\n\r\n /**\r\n * Handle Click - Override with specific functionality for component\r\n *\r\n * @method handleClick\r\n */\r\n\r\n ClickableComponent.prototype.handleClick = function handleClick() {};\r\n\r\n /**\r\n * Handle Focus - Add keyboard functionality to element\r\n *\r\n * @method handleFocus\r\n */\r\n\r\n ClickableComponent.prototype.handleFocus = function handleFocus() {\r\n Events.on(_globalDocument2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));\r\n };\r\n\r\n /**\r\n * Handle KeyPress (document level) - Trigger click when Space or Enter key is pressed\r\n *\r\n * @method handleKeyPress\r\n */\r\n\r\n ClickableComponent.prototype.handleKeyPress = function handleKeyPress(event) {\r\n // Support Space (32) or Enter (13) key operation to fire a click event\r\n if (event.which === 32 || event.which === 13) {\r\n event.preventDefault();\r\n this.handleClick(event);\r\n } else if (_Component.prototype.handleKeyPress) {\r\n _Component.prototype.handleKeyPress.call(this, event); // Pass keypress handling up for unsupported keys\r\n }\r\n };\r\n\r\n /**\r\n * Handle Blur - Remove keyboard triggers\r\n *\r\n * @method handleBlur\r\n */\r\n\r\n ClickableComponent.prototype.handleBlur = function handleBlur() {\r\n Events.off(_globalDocument2['default'], 'keydown', Fn.bind(this, this.handleKeyPress));\r\n };\r\n\r\n return ClickableComponent;\r\n})(_component2['default']);\r\n\r\n_component2['default'].registerComponent('ClickableComponent', ClickableComponent);\r\nexports['default'] = ClickableComponent;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./component\":67,\"./utils/dom.js\":134,\"./utils/events.js\":135,\"./utils/fn.js\":136,\"./utils/log.js\":139,\"global/document\":1,\"object.assign\":45}],66:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _button = _dereq_('./button');\r\n\r\nvar _button2 = _interopRequireDefault(_button);\r\n\r\nvar _component = _dereq_('./component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\n/**\r\n * The `CloseButton` component is a button which fires a \"close\" event\r\n * when it is activated.\r\n *\r\n * @extends Button\r\n * @class CloseButton\r\n */\r\n\r\nvar CloseButton = (function (_Button) {\r\n _inherits(CloseButton, _Button);\r\n\r\n function CloseButton(player, options) {\r\n _classCallCheck(this, CloseButton);\r\n\r\n _Button.call(this, player, options);\r\n this.controlText(options && options.controlText || this.localize('Close'));\r\n }\r\n\r\n CloseButton.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-close-button ' + _Button.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n CloseButton.prototype.handleClick = function handleClick() {\r\n this.trigger({ type: 'close', bubbles: false });\r\n };\r\n\r\n return CloseButton;\r\n})(_button2['default']);\r\n\r\n_component2['default'].registerComponent('CloseButton', CloseButton);\r\nexports['default'] = CloseButton;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./button\":64,\"./component\":67}],67:[function(_dereq_,module,exports){\r\n/**\r\n * @file component.js\r\n *\r\n * Player Component - Base class for all UI objects\r\n */\r\n\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _utilsDomJs = _dereq_('./utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFnJs = _dereq_('./utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsGuidJs = _dereq_('./utils/guid.js');\r\n\r\nvar Guid = _interopRequireWildcard(_utilsGuidJs);\r\n\r\nvar _utilsEventsJs = _dereq_('./utils/events.js');\r\n\r\nvar Events = _interopRequireWildcard(_utilsEventsJs);\r\n\r\nvar _utilsLogJs = _dereq_('./utils/log.js');\r\n\r\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\r\n\r\nvar _utilsToTitleCaseJs = _dereq_('./utils/to-title-case.js');\r\n\r\nvar _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);\r\n\r\nvar _objectAssign = _dereq_('object.assign');\r\n\r\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\r\n\r\nvar _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');\r\n\r\nvar _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);\r\n\r\n/**\r\n * Base UI Component class\r\n * Components are embeddable UI objects that are represented by both a\r\n * javascript object and an element in the DOM. They can be children of other\r\n * components, and can have many children themselves.\r\n * ```js\r\n * // adding a button to the player\r\n * var button = player.addChild('button');\r\n * button.el(); // -> button element\r\n * ```\r\n * ```html\r\n *
\r\n *
Button
\r\n *
\r\n * ```\r\n * Components are also event targets.\r\n * ```js\r\n * button.on('click', function(){\r\n * console.log('Button Clicked!');\r\n * });\r\n * button.trigger('customevent');\r\n * ```\r\n *\r\n * @param {Object} player Main Player\r\n * @param {Object=} options Object of option names and values\r\n * @param {Function=} ready Ready callback function\r\n * @class Component\r\n */\r\n\r\nvar Component = (function () {\r\n function Component(player, options, ready) {\r\n _classCallCheck(this, Component);\r\n\r\n // The component might be the player itself and we can't pass `this` to super\r\n if (!player && this.play) {\r\n this.player_ = player = this; // eslint-disable-line\r\n } else {\r\n this.player_ = player;\r\n }\r\n\r\n // Make a copy of prototype.options_ to protect against overriding defaults\r\n this.options_ = _utilsMergeOptionsJs2['default']({}, this.options_);\r\n\r\n // Updated options with supplied options\r\n options = this.options_ = _utilsMergeOptionsJs2['default'](this.options_, options);\r\n\r\n // Get ID from options or options element if one is supplied\r\n this.id_ = options.id || options.el && options.el.id;\r\n\r\n // If there was no ID from the options, generate one\r\n if (!this.id_) {\r\n // Don't require the player ID function in the case of mock players\r\n var id = player && player.id && player.id() || 'no_player';\r\n\r\n this.id_ = id + '_component_' + Guid.newGUID();\r\n }\r\n\r\n this.name_ = options.name || null;\r\n\r\n // Create element if one wasn't provided in options\r\n if (options.el) {\r\n this.el_ = options.el;\r\n } else if (options.createEl !== false) {\r\n this.el_ = this.createEl();\r\n }\r\n\r\n this.children_ = [];\r\n this.childIndex_ = {};\r\n this.childNameIndex_ = {};\r\n\r\n // Add any child components in options\r\n if (options.initChildren !== false) {\r\n this.initChildren();\r\n }\r\n\r\n this.ready(ready);\r\n // Don't want to trigger ready here or it will before init is actually\r\n // finished for all children that run this constructor\r\n\r\n if (options.reportTouchActivity !== false) {\r\n this.enableTouchActivity();\r\n }\r\n }\r\n\r\n /**\r\n * Dispose of the component and all child components\r\n *\r\n * @method dispose\r\n */\r\n\r\n Component.prototype.dispose = function dispose() {\r\n this.trigger({ type: 'dispose', bubbles: false });\r\n\r\n // Dispose all children.\r\n if (this.children_) {\r\n for (var i = this.children_.length - 1; i >= 0; i--) {\r\n if (this.children_[i].dispose) {\r\n this.children_[i].dispose();\r\n }\r\n }\r\n }\r\n\r\n // Delete child references\r\n this.children_ = null;\r\n this.childIndex_ = null;\r\n this.childNameIndex_ = null;\r\n\r\n // Remove all event listeners.\r\n this.off();\r\n\r\n // Remove element from DOM\r\n if (this.el_.parentNode) {\r\n this.el_.parentNode.removeChild(this.el_);\r\n }\r\n\r\n Dom.removeElData(this.el_);\r\n this.el_ = null;\r\n };\r\n\r\n /**\r\n * Return the component's player\r\n *\r\n * @return {Player}\r\n * @method player\r\n */\r\n\r\n Component.prototype.player = function player() {\r\n return this.player_;\r\n };\r\n\r\n /**\r\n * Deep merge of options objects\r\n * Whenever a property is an object on both options objects\r\n * the two properties will be merged using mergeOptions.\r\n *\r\n * ```js\r\n * Parent.prototype.options_ = {\r\n * optionSet: {\r\n * 'childOne': { 'foo': 'bar', 'asdf': 'fdsa' },\r\n * 'childTwo': {},\r\n * 'childThree': {}\r\n * }\r\n * }\r\n * newOptions = {\r\n * optionSet: {\r\n * 'childOne': { 'foo': 'baz', 'abc': '123' }\r\n * 'childTwo': null,\r\n * 'childFour': {}\r\n * }\r\n * }\r\n *\r\n * this.options(newOptions);\r\n * ```\r\n * RESULT\r\n * ```js\r\n * {\r\n * optionSet: {\r\n * 'childOne': { 'foo': 'baz', 'asdf': 'fdsa', 'abc': '123' },\r\n * 'childTwo': null, // Disabled. Won't be initialized.\r\n * 'childThree': {},\r\n * 'childFour': {}\r\n * }\r\n * }\r\n * ```\r\n *\r\n * @param {Object} obj Object of new option values\r\n * @return {Object} A NEW object of this.options_ and obj merged\r\n * @method options\r\n */\r\n\r\n Component.prototype.options = function options(obj) {\r\n _utilsLogJs2['default'].warn('this.options() has been deprecated and will be moved to the constructor in 6.0');\r\n\r\n if (!obj) {\r\n return this.options_;\r\n }\r\n\r\n this.options_ = _utilsMergeOptionsJs2['default'](this.options_, obj);\r\n return this.options_;\r\n };\r\n\r\n /**\r\n * Get the component's DOM element\r\n * ```js\r\n * var domEl = myComponent.el();\r\n * ```\r\n *\r\n * @return {Element}\r\n * @method el\r\n */\r\n\r\n Component.prototype.el = function el() {\r\n return this.el_;\r\n };\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @param {String=} tagName Element's node type. e.g. 'div'\r\n * @param {Object=} properties An object of properties that should be set\r\n * @param {Object=} attributes An object of attributes that should be set\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n Component.prototype.createEl = function createEl(tagName, properties, attributes) {\r\n return Dom.createEl(tagName, properties, attributes);\r\n };\r\n\r\n Component.prototype.localize = function localize(string) {\r\n var code = this.player_.language && this.player_.language();\r\n var languages = this.player_.languages && this.player_.languages();\r\n\r\n if (!code || !languages) {\r\n return string;\r\n }\r\n\r\n var language = languages[code];\r\n\r\n if (language && language[string]) {\r\n return language[string];\r\n }\r\n\r\n var primaryCode = code.split('-')[0];\r\n var primaryLang = languages[primaryCode];\r\n\r\n if (primaryLang && primaryLang[string]) {\r\n return primaryLang[string];\r\n }\r\n\r\n return string;\r\n };\r\n\r\n /**\r\n * Return the component's DOM element where children are inserted.\r\n * Will either be the same as el() or a new element defined in createEl().\r\n *\r\n * @return {Element}\r\n * @method contentEl\r\n */\r\n\r\n Component.prototype.contentEl = function contentEl() {\r\n return this.contentEl_ || this.el_;\r\n };\r\n\r\n /**\r\n * Get the component's ID\r\n * ```js\r\n * var id = myComponent.id();\r\n * ```\r\n *\r\n * @return {String}\r\n * @method id\r\n */\r\n\r\n Component.prototype.id = function id() {\r\n return this.id_;\r\n };\r\n\r\n /**\r\n * Get the component's name. The name is often used to reference the component.\r\n * ```js\r\n * var name = myComponent.name();\r\n * ```\r\n *\r\n * @return {String}\r\n * @method name\r\n */\r\n\r\n Component.prototype.name = function name() {\r\n return this.name_;\r\n };\r\n\r\n /**\r\n * Get an array of all child components\r\n * ```js\r\n * var kids = myComponent.children();\r\n * ```\r\n *\r\n * @return {Array} The children\r\n * @method children\r\n */\r\n\r\n Component.prototype.children = function children() {\r\n return this.children_;\r\n };\r\n\r\n /**\r\n * Returns a child component with the provided ID\r\n *\r\n * @return {Component}\r\n * @method getChildById\r\n */\r\n\r\n Component.prototype.getChildById = function getChildById(id) {\r\n return this.childIndex_[id];\r\n };\r\n\r\n /**\r\n * Returns a child component with the provided name\r\n *\r\n * @return {Component}\r\n * @method getChild\r\n */\r\n\r\n Component.prototype.getChild = function getChild(name) {\r\n return this.childNameIndex_[name];\r\n };\r\n\r\n /**\r\n * Adds a child component inside this component\r\n * ```js\r\n * myComponent.el();\r\n * // ->
\r\n * myComponent.children();\r\n * // [empty array]\r\n *\r\n * var myButton = myComponent.addChild('MyButton');\r\n * // ->
myButton
\r\n * // -> myButton === myComponent.children()[0];\r\n * ```\r\n * Pass in options for child constructors and options for children of the child\r\n * ```js\r\n * var myButton = myComponent.addChild('MyButton', {\r\n * text: 'Press Me',\r\n * buttonChildExample: {\r\n * buttonChildOption: true\r\n * }\r\n * });\r\n * ```\r\n *\r\n * @param {String|Component} child The class name or instance of a child to add\r\n * @param {Object=} options Options, including options to be passed to children of the child.\r\n * @param {Number} index into our children array to attempt to add the child\r\n * @return {Component} The child component (created by this process if a string was used)\r\n * @method addChild\r\n */\r\n\r\n Component.prototype.addChild = function addChild(child) {\r\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n var index = arguments.length <= 2 || arguments[2] === undefined ? this.children_.length : arguments[2];\r\n\r\n var component = undefined;\r\n var componentName = undefined;\r\n\r\n // If child is a string, create nt with options\r\n if (typeof child === 'string') {\r\n componentName = child;\r\n\r\n // Options can also be specified as a boolean, so convert to an empty object if false.\r\n if (!options) {\r\n options = {};\r\n }\r\n\r\n // Same as above, but true is deprecated so show a warning.\r\n if (options === true) {\r\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`.');\r\n options = {};\r\n }\r\n\r\n // If no componentClass in options, assume componentClass is the name lowercased\r\n // (e.g. playButton)\r\n var componentClassName = options.componentClass || _utilsToTitleCaseJs2['default'](componentName);\r\n\r\n // Set name through options\r\n options.name = componentName;\r\n\r\n // Create a new object & element for this controls set\r\n // If there's no .player_, this is a player\r\n var ComponentClass = Component.getComponent(componentClassName);\r\n\r\n if (!ComponentClass) {\r\n throw new Error('Component ' + componentClassName + ' does not exist');\r\n }\r\n\r\n // data stored directly on the videojs object may be\r\n // misidentified as a component to retain\r\n // backwards-compatibility with 4.x. check to make sure the\r\n // component class can be instantiated.\r\n if (typeof ComponentClass !== 'function') {\r\n return null;\r\n }\r\n\r\n component = new ComponentClass(this.player_ || this, options);\r\n\r\n // child is a component instance\r\n } else {\r\n component = child;\r\n }\r\n\r\n this.children_.splice(index, 0, component);\r\n\r\n if (typeof component.id === 'function') {\r\n this.childIndex_[component.id()] = component;\r\n }\r\n\r\n // If a name wasn't used to create the component, check if we can use the\r\n // name function of the component\r\n componentName = componentName || component.name && component.name();\r\n\r\n if (componentName) {\r\n this.childNameIndex_[componentName] = component;\r\n }\r\n\r\n // Add the UI object's element to the container div (box)\r\n // Having an element is not required\r\n if (typeof component.el === 'function' && component.el()) {\r\n var childNodes = this.contentEl().children;\r\n var refNode = childNodes[index] || null;\r\n this.contentEl().insertBefore(component.el(), refNode);\r\n }\r\n\r\n // Return so it can stored on parent object if desired.\r\n return component;\r\n };\r\n\r\n /**\r\n * Remove a child component from this component's list of children, and the\r\n * child component's element from this component's element\r\n *\r\n * @param {Component} component Component to remove\r\n * @method removeChild\r\n */\r\n\r\n Component.prototype.removeChild = function removeChild(component) {\r\n if (typeof component === 'string') {\r\n component = this.getChild(component);\r\n }\r\n\r\n if (!component || !this.children_) {\r\n return;\r\n }\r\n\r\n var childFound = false;\r\n\r\n for (var i = this.children_.length - 1; i >= 0; i--) {\r\n if (this.children_[i] === component) {\r\n childFound = true;\r\n this.children_.splice(i, 1);\r\n break;\r\n }\r\n }\r\n\r\n if (!childFound) {\r\n return;\r\n }\r\n\r\n this.childIndex_[component.id()] = null;\r\n this.childNameIndex_[component.name()] = null;\r\n\r\n var compEl = component.el();\r\n\r\n if (compEl && compEl.parentNode === this.contentEl()) {\r\n this.contentEl().removeChild(component.el());\r\n }\r\n };\r\n\r\n /**\r\n * Add and initialize default child components from options\r\n * ```js\r\n * // when an instance of MyComponent is created, all children in options\r\n * // will be added to the instance by their name strings and options\r\n * MyComponent.prototype.options_ = {\r\n * children: [\r\n * 'myChildComponent'\r\n * ],\r\n * myChildComponent: {\r\n * myChildOption: true\r\n * }\r\n * };\r\n *\r\n * // Or when creating the component\r\n * var myComp = new MyComponent(player, {\r\n * children: [\r\n * 'myChildComponent'\r\n * ],\r\n * myChildComponent: {\r\n * myChildOption: true\r\n * }\r\n * });\r\n * ```\r\n * The children option can also be an array of\r\n * child options objects (that also include a 'name' key).\r\n * This can be used if you have two child components of the\r\n * same type that need different options.\r\n * ```js\r\n * var myComp = new MyComponent(player, {\r\n * children: [\r\n * 'button',\r\n * {\r\n * name: 'button',\r\n * someOtherOption: true\r\n * },\r\n * {\r\n * name: 'button',\r\n * someOtherOption: false\r\n * }\r\n * ]\r\n * });\r\n * ```\r\n *\r\n * @method initChildren\r\n */\r\n\r\n Component.prototype.initChildren = function initChildren() {\r\n var _this = this;\r\n\r\n var children = this.options_.children;\r\n\r\n if (children) {\r\n (function () {\r\n // `this` is `parent`\r\n var parentOptions = _this.options_;\r\n\r\n var handleAdd = function handleAdd(child) {\r\n var name = child.name;\r\n var opts = child.opts;\r\n\r\n // Allow options for children to be set at the parent options\r\n // e.g. videojs(id, { controlBar: false });\r\n // instead of videojs(id, { children: { controlBar: false });\r\n if (parentOptions[name] !== undefined) {\r\n opts = parentOptions[name];\r\n }\r\n\r\n // Allow for disabling default components\r\n // e.g. options['children']['posterImage'] = false\r\n if (opts === false) {\r\n return;\r\n }\r\n\r\n // Allow options to be passed as a simple boolean if no configuration\r\n // is necessary.\r\n if (opts === true) {\r\n opts = {};\r\n }\r\n\r\n // We also want to pass the original player options to each component as well so they don't need to\r\n // reach back into the player for options later.\r\n opts.playerOptions = _this.options_.playerOptions;\r\n\r\n // Create and add the child component.\r\n // Add a direct reference to the child by name on the parent instance.\r\n // If two of the same component are used, different names should be supplied\r\n // for each\r\n var newChild = _this.addChild(name, opts);\r\n if (newChild) {\r\n _this[name] = newChild;\r\n }\r\n };\r\n\r\n // Allow for an array of children details to passed in the options\r\n var workingChildren = undefined;\r\n var Tech = Component.getComponent('Tech');\r\n\r\n if (Array.isArray(children)) {\r\n workingChildren = children;\r\n } else {\r\n workingChildren = Object.keys(children);\r\n }\r\n\r\n workingChildren\r\n // children that are in this.options_ but also in workingChildren would\r\n // give us extra children we do not want. So, we want to filter them out.\r\n .concat(Object.keys(_this.options_).filter(function (child) {\r\n return !workingChildren.some(function (wchild) {\r\n if (typeof wchild === 'string') {\r\n return child === wchild;\r\n } else {\r\n return child === wchild.name;\r\n }\r\n });\r\n })).map(function (child) {\r\n var name = undefined,\r\n opts = undefined;\r\n\r\n if (typeof child === 'string') {\r\n name = child;\r\n opts = children[name] || _this.options_[name] || {};\r\n } else {\r\n name = child.name;\r\n opts = child;\r\n }\r\n\r\n return { name: name, opts: opts };\r\n }).filter(function (child) {\r\n // we have to make sure that child.name isn't in the techOrder since\r\n // techs are registerd as Components but can't aren't compatible\r\n // See https://github.com/videojs/video.js/issues/2772\r\n var c = Component.getComponent(child.opts.componentClass || _utilsToTitleCaseJs2['default'](child.name));\r\n return c && !Tech.isTech(c);\r\n }).forEach(handleAdd);\r\n })();\r\n }\r\n };\r\n\r\n /**\r\n * Allows sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n Component.prototype.buildCSSClass = function buildCSSClass() {\r\n // Child classes can include a function that does:\r\n // return 'CLASS NAME' + this._super();\r\n return '';\r\n };\r\n\r\n /**\r\n * Add an event listener to this component's element\r\n * ```js\r\n * var myFunc = function(){\r\n * var myComponent = this;\r\n * // Do something when the event is fired\r\n * };\r\n *\r\n * myComponent.on('eventType', myFunc);\r\n * ```\r\n * The context of myFunc will be myComponent unless previously bound.\r\n * Alternatively, you can add a listener to another element or component.\r\n * ```js\r\n * myComponent.on(otherElement, 'eventName', myFunc);\r\n * myComponent.on(otherComponent, 'eventName', myFunc);\r\n * ```\r\n * The benefit of using this over `VjsEvents.on(otherElement, 'eventName', myFunc)`\r\n * and `otherComponent.on('eventName', myFunc)` is that this way the listeners\r\n * will be automatically cleaned up when either component is disposed.\r\n * It will also bind myComponent as the context of myFunc.\r\n * **NOTE**: When using this on elements in the page other than window\r\n * and document (both permanent), if you remove the element from the DOM\r\n * you need to call `myComponent.trigger(el, 'dispose')` on it to clean up\r\n * references to it and allow the browser to garbage collect it.\r\n *\r\n * @param {String|Component} first The event type or other component\r\n * @param {Function|String} second The event handler or event type\r\n * @param {Function} third The event handler\r\n * @return {Component}\r\n * @method on\r\n */\r\n\r\n Component.prototype.on = function on(first, second, third) {\r\n var _this2 = this;\r\n\r\n if (typeof first === 'string' || Array.isArray(first)) {\r\n Events.on(this.el_, first, Fn.bind(this, second));\r\n\r\n // Targeting another component or element\r\n } else {\r\n (function () {\r\n var target = first;\r\n var type = second;\r\n var fn = Fn.bind(_this2, third);\r\n\r\n // When this component is disposed, remove the listener from the other component\r\n var removeOnDispose = function removeOnDispose() {\r\n return _this2.off(target, type, fn);\r\n };\r\n\r\n // Use the same function ID so we can remove it later it using the ID\r\n // of the original listener\r\n removeOnDispose.guid = fn.guid;\r\n _this2.on('dispose', removeOnDispose);\r\n\r\n // If the other component is disposed first we need to clean the reference\r\n // to the other component in this component's removeOnDispose listener\r\n // Otherwise we create a memory leak.\r\n var cleanRemover = function cleanRemover() {\r\n return _this2.off('dispose', removeOnDispose);\r\n };\r\n\r\n // Add the same function ID so we can easily remove it later\r\n cleanRemover.guid = fn.guid;\r\n\r\n // Check if this is a DOM node\r\n if (first.nodeName) {\r\n // Add the listener to the other element\r\n Events.on(target, type, fn);\r\n Events.on(target, 'dispose', cleanRemover);\r\n\r\n // Should be a component\r\n // Not using `instanceof Component` because it makes mock players difficult\r\n } else if (typeof first.on === 'function') {\r\n // Add the listener to the other component\r\n target.on(type, fn);\r\n target.on('dispose', cleanRemover);\r\n }\r\n })();\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Remove an event listener from this component's element\r\n * ```js\r\n * myComponent.off('eventType', myFunc);\r\n * ```\r\n * If myFunc is excluded, ALL listeners for the event type will be removed.\r\n * If eventType is excluded, ALL listeners will be removed from the component.\r\n * Alternatively you can use `off` to remove listeners that were added to other\r\n * elements or components using `myComponent.on(otherComponent...`.\r\n * In this case both the event type and listener function are REQUIRED.\r\n * ```js\r\n * myComponent.off(otherElement, 'eventType', myFunc);\r\n * myComponent.off(otherComponent, 'eventType', myFunc);\r\n * ```\r\n *\r\n * @param {String=|Component} first The event type or other component\r\n * @param {Function=|String} second The listener function or event type\r\n * @param {Function=} third The listener for other component\r\n * @return {Component}\r\n * @method off\r\n */\r\n\r\n Component.prototype.off = function off(first, second, third) {\r\n if (!first || typeof first === 'string' || Array.isArray(first)) {\r\n Events.off(this.el_, first, second);\r\n } else {\r\n var target = first;\r\n var type = second;\r\n // Ensure there's at least a guid, even if the function hasn't been used\r\n var fn = Fn.bind(this, third);\r\n\r\n // Remove the dispose listener on this component,\r\n // which was given the same guid as the event listener\r\n this.off('dispose', fn);\r\n\r\n if (first.nodeName) {\r\n // Remove the listener\r\n Events.off(target, type, fn);\r\n // Remove the listener for cleaning the dispose listener\r\n Events.off(target, 'dispose', fn);\r\n } else {\r\n target.off(type, fn);\r\n target.off('dispose', fn);\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Add an event listener to be triggered only once and then removed\r\n * ```js\r\n * myComponent.one('eventName', myFunc);\r\n * ```\r\n * Alternatively you can add a listener to another element or component\r\n * that will be triggered only once.\r\n * ```js\r\n * myComponent.one(otherElement, 'eventName', myFunc);\r\n * myComponent.one(otherComponent, 'eventName', myFunc);\r\n * ```\r\n *\r\n * @param {String|Component} first The event type or other component\r\n * @param {Function|String} second The listener function or event type\r\n * @param {Function=} third The listener function for other component\r\n * @return {Component}\r\n * @method one\r\n */\r\n\r\n Component.prototype.one = function one(first, second, third) {\r\n var _this3 = this,\r\n _arguments = arguments;\r\n\r\n if (typeof first === 'string' || Array.isArray(first)) {\r\n Events.one(this.el_, first, Fn.bind(this, second));\r\n } else {\r\n (function () {\r\n var target = first;\r\n var type = second;\r\n var fn = Fn.bind(_this3, third);\r\n\r\n var newFunc = function newFunc() {\r\n _this3.off(target, type, newFunc);\r\n fn.apply(null, _arguments);\r\n };\r\n\r\n // Keep the same function ID so we can remove it later\r\n newFunc.guid = fn.guid;\r\n\r\n _this3.on(target, type, newFunc);\r\n })();\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Trigger an event on an element\r\n * ```js\r\n * myComponent.trigger('eventName');\r\n * myComponent.trigger({'type':'eventName'});\r\n * myComponent.trigger('eventName', {data: 'some data'});\r\n * myComponent.trigger({'type':'eventName'}, {data: 'some data'});\r\n * ```\r\n *\r\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\r\n * @param {Object} [hash] data hash to pass along with the event\r\n * @return {Component} self\r\n * @method trigger\r\n */\r\n\r\n Component.prototype.trigger = function trigger(event, hash) {\r\n Events.trigger(this.el_, event, hash);\r\n return this;\r\n };\r\n\r\n /**\r\n * Bind a listener to the component's ready state.\r\n * Different from event listeners in that if the ready event has already happened\r\n * it will trigger the function immediately.\r\n *\r\n * @param {Function} fn Ready listener\r\n * @param {Boolean} sync Exec the listener synchronously if component is ready\r\n * @return {Component}\r\n * @method ready\r\n */\r\n\r\n Component.prototype.ready = function ready(fn) {\r\n var sync = arguments.length <= 1 || arguments[1] === undefined ? false : arguments[1];\r\n\r\n if (fn) {\r\n if (this.isReady_) {\r\n if (sync) {\r\n fn.call(this);\r\n } else {\r\n // Call the function asynchronously by default for consistency\r\n this.setTimeout(fn, 1);\r\n }\r\n } else {\r\n this.readyQueue_ = this.readyQueue_ || [];\r\n this.readyQueue_.push(fn);\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Trigger the ready listeners\r\n *\r\n * @return {Component}\r\n * @method triggerReady\r\n */\r\n\r\n Component.prototype.triggerReady = function triggerReady() {\r\n this.isReady_ = true;\r\n\r\n // Ensure ready is triggerd asynchronously\r\n this.setTimeout(function () {\r\n var readyQueue = this.readyQueue_;\r\n\r\n // Reset Ready Queue\r\n this.readyQueue_ = [];\r\n\r\n if (readyQueue && readyQueue.length > 0) {\r\n readyQueue.forEach(function (fn) {\r\n fn.call(this);\r\n }, this);\r\n }\r\n\r\n // Allow for using event listeners also\r\n this.trigger('ready');\r\n }, 1);\r\n };\r\n\r\n /**\r\n * Finds a single DOM element matching `selector` within the component's\r\n * `contentEl` or another custom context.\r\n *\r\n * @method $\r\n * @param {String} selector\r\n * A valid CSS selector, which will be passed to `querySelector`.\r\n *\r\n * @param {Element|String} [context=document]\r\n * A DOM element within which to query. Can also be a selector\r\n * string in which case the first matching element will be used\r\n * as context. If missing (or no element matches selector), falls\r\n * back to `document`.\r\n *\r\n * @return {Element|null}\r\n */\r\n\r\n Component.prototype.$ = function $(selector, context) {\r\n return Dom.$(selector, context || this.contentEl());\r\n };\r\n\r\n /**\r\n * Finds a all DOM elements matching `selector` within the component's\r\n * `contentEl` or another custom context.\r\n *\r\n * @method $$\r\n * @param {String} selector\r\n * A valid CSS selector, which will be passed to `querySelectorAll`.\r\n *\r\n * @param {Element|String} [context=document]\r\n * A DOM element within which to query. Can also be a selector\r\n * string in which case the first matching element will be used\r\n * as context. If missing (or no element matches selector), falls\r\n * back to `document`.\r\n *\r\n * @return {NodeList}\r\n */\r\n\r\n Component.prototype.$$ = function $$(selector, context) {\r\n return Dom.$$(selector, context || this.contentEl());\r\n };\r\n\r\n /**\r\n * Check if a component's element has a CSS class name\r\n *\r\n * @param {String} classToCheck Classname to check\r\n * @return {Component}\r\n * @method hasClass\r\n */\r\n\r\n Component.prototype.hasClass = function hasClass(classToCheck) {\r\n return Dom.hasElClass(this.el_, classToCheck);\r\n };\r\n\r\n /**\r\n * Add a CSS class name to the component's element\r\n *\r\n * @param {String} classToAdd Classname to add\r\n * @return {Component}\r\n * @method addClass\r\n */\r\n\r\n Component.prototype.addClass = function addClass(classToAdd) {\r\n Dom.addElClass(this.el_, classToAdd);\r\n return this;\r\n };\r\n\r\n /**\r\n * Remove a CSS class name from the component's element\r\n *\r\n * @param {String} classToRemove Classname to remove\r\n * @return {Component}\r\n * @method removeClass\r\n */\r\n\r\n Component.prototype.removeClass = function removeClass(classToRemove) {\r\n Dom.removeElClass(this.el_, classToRemove);\r\n return this;\r\n };\r\n\r\n /**\r\n * Add or remove a CSS class name from the component's element\r\n *\r\n * @param {String} classToToggle\r\n * @param {Boolean|Function} [predicate]\r\n * Can be a function that returns a Boolean. If `true`, the class\r\n * will be added; if `false`, the class will be removed. If not\r\n * given, the class will be added if not present and vice versa.\r\n *\r\n * @return {Component}\r\n * @method toggleClass\r\n */\r\n\r\n Component.prototype.toggleClass = function toggleClass(classToToggle, predicate) {\r\n Dom.toggleElClass(this.el_, classToToggle, predicate);\r\n return this;\r\n };\r\n\r\n /**\r\n * Show the component element if hidden\r\n *\r\n * @return {Component}\r\n * @method show\r\n */\r\n\r\n Component.prototype.show = function show() {\r\n this.removeClass('vjs-hidden');\r\n return this;\r\n };\r\n\r\n /**\r\n * Hide the component element if currently showing\r\n *\r\n * @return {Component}\r\n * @method hide\r\n */\r\n\r\n Component.prototype.hide = function hide() {\r\n this.addClass('vjs-hidden');\r\n return this;\r\n };\r\n\r\n /**\r\n * Lock an item in its visible state\r\n * To be used with fadeIn/fadeOut.\r\n *\r\n * @return {Component}\r\n * @private\r\n * @method lockShowing\r\n */\r\n\r\n Component.prototype.lockShowing = function lockShowing() {\r\n this.addClass('vjs-lock-showing');\r\n return this;\r\n };\r\n\r\n /**\r\n * Unlock an item to be hidden\r\n * To be used with fadeIn/fadeOut.\r\n *\r\n * @return {Component}\r\n * @private\r\n * @method unlockShowing\r\n */\r\n\r\n Component.prototype.unlockShowing = function unlockShowing() {\r\n this.removeClass('vjs-lock-showing');\r\n return this;\r\n };\r\n\r\n /**\r\n * Set or get the width of the component (CSS values)\r\n * Setting the video tag dimension values only works with values in pixels.\r\n * Percent values will not work.\r\n * Some percents can be used, but width()/height() will return the number + %,\r\n * not the actual computed width/height.\r\n *\r\n * @param {Number|String=} num Optional width number\r\n * @param {Boolean} skipListeners Skip the 'resize' event trigger\r\n * @return {Component} This component, when setting the width\r\n * @return {Number|String} The width, when getting\r\n * @method width\r\n */\r\n\r\n Component.prototype.width = function width(num, skipListeners) {\r\n return this.dimension('width', num, skipListeners);\r\n };\r\n\r\n /**\r\n * Get or set the height of the component (CSS values)\r\n * Setting the video tag dimension values only works with values in pixels.\r\n * Percent values will not work.\r\n * Some percents can be used, but width()/height() will return the number + %,\r\n * not the actual computed width/height.\r\n *\r\n * @param {Number|String=} num New component height\r\n * @param {Boolean=} skipListeners Skip the resize event trigger\r\n * @return {Component} This component, when setting the height\r\n * @return {Number|String} The height, when getting\r\n * @method height\r\n */\r\n\r\n Component.prototype.height = function height(num, skipListeners) {\r\n return this.dimension('height', num, skipListeners);\r\n };\r\n\r\n /**\r\n * Set both width and height at the same time\r\n *\r\n * @param {Number|String} width Width of player\r\n * @param {Number|String} height Height of player\r\n * @return {Component} The component\r\n * @method dimensions\r\n */\r\n\r\n Component.prototype.dimensions = function dimensions(width, height) {\r\n // Skip resize listeners on width for optimization\r\n return this.width(width, true).height(height);\r\n };\r\n\r\n /**\r\n * Get or set width or height\r\n * This is the shared code for the width() and height() methods.\r\n * All for an integer, integer + 'px' or integer + '%';\r\n * Known issue: Hidden elements officially have a width of 0. We're defaulting\r\n * to the style.width value and falling back to computedStyle which has the\r\n * hidden element issue. Info, but probably not an efficient fix:\r\n * http://www.foliotek.com/devblog/getting-the-width-of-a-hidden-element-with-jquery-using-width/\r\n *\r\n * @param {String} widthOrHeight 'width' or 'height'\r\n * @param {Number|String=} num New dimension\r\n * @param {Boolean=} skipListeners Skip resize event trigger\r\n * @return {Component} The component if a dimension was set\r\n * @return {Number|String} The dimension if nothing was set\r\n * @private\r\n * @method dimension\r\n */\r\n\r\n Component.prototype.dimension = function dimension(widthOrHeight, num, skipListeners) {\r\n if (num !== undefined) {\r\n // Set to zero if null or literally NaN (NaN !== NaN)\r\n if (num === null || num !== num) {\r\n num = 0;\r\n }\r\n\r\n // Check if using css width/height (% or px) and adjust\r\n if (('' + num).indexOf('%') !== -1 || ('' + num).indexOf('px') !== -1) {\r\n this.el_.style[widthOrHeight] = num;\r\n } else if (num === 'auto') {\r\n this.el_.style[widthOrHeight] = '';\r\n } else {\r\n this.el_.style[widthOrHeight] = num + 'px';\r\n }\r\n\r\n // skipListeners allows us to avoid triggering the resize event when setting both width and height\r\n if (!skipListeners) {\r\n this.trigger('resize');\r\n }\r\n\r\n // Return component\r\n return this;\r\n }\r\n\r\n // Not setting a value, so getting it\r\n // Make sure element exists\r\n if (!this.el_) {\r\n return 0;\r\n }\r\n\r\n // Get dimension value from style\r\n var val = this.el_.style[widthOrHeight];\r\n var pxIndex = val.indexOf('px');\r\n\r\n if (pxIndex !== -1) {\r\n // Return the pixel value with no 'px'\r\n return parseInt(val.slice(0, pxIndex), 10);\r\n }\r\n\r\n // No px so using % or no style was set, so falling back to offsetWidth/height\r\n // If component has display:none, offset will return 0\r\n // TODO: handle display:none and no dimension style using px\r\n return parseInt(this.el_['offset' + _utilsToTitleCaseJs2['default'](widthOrHeight)], 10);\r\n };\r\n\r\n /**\r\n * Get width or height of computed style\r\n * @param {String} widthOrHeight 'width' or 'height'\r\n * @return {Number|Boolean} The bolean false if nothing was set\r\n * @method currentDimension\r\n */\r\n\r\n Component.prototype.currentDimension = function currentDimension(widthOrHeight) {\r\n var computedWidthOrHeight = 0;\r\n\r\n if (widthOrHeight !== 'width' && widthOrHeight !== 'height') {\r\n throw new Error('currentDimension only accepts width or height value');\r\n }\r\n\r\n if (typeof _globalWindow2['default'].getComputedStyle === 'function') {\r\n var computedStyle = _globalWindow2['default'].getComputedStyle(this.el_);\r\n computedWidthOrHeight = computedStyle.getPropertyValue(widthOrHeight) || computedStyle[widthOrHeight];\r\n } else if (this.el_.currentStyle) {\r\n // ie 8 doesn't support computed style, shim it\r\n // return clientWidth or clientHeight instead for better accuracy\r\n var rule = 'offset' + _utilsToTitleCaseJs2['default'](widthOrHeight);\r\n computedWidthOrHeight = this.el_[rule];\r\n }\r\n\r\n // remove 'px' from variable and parse as integer\r\n computedWidthOrHeight = parseFloat(computedWidthOrHeight);\r\n return computedWidthOrHeight;\r\n };\r\n\r\n /**\r\n * Get an object which contains width and height values of computed style\r\n * @return {Object} The dimensions of element\r\n * @method currentDimensions\r\n */\r\n\r\n Component.prototype.currentDimensions = function currentDimensions() {\r\n return {\r\n width: this.currentDimension('width'),\r\n height: this.currentDimension('height')\r\n };\r\n };\r\n\r\n /**\r\n * Get width of computed style\r\n * @return {Integer}\r\n * @method currentWidth\r\n */\r\n\r\n Component.prototype.currentWidth = function currentWidth() {\r\n return this.currentDimension('width');\r\n };\r\n\r\n /**\r\n * Get height of computed style\r\n * @return {Integer}\r\n * @method currentHeight\r\n */\r\n\r\n Component.prototype.currentHeight = function currentHeight() {\r\n return this.currentDimension('height');\r\n };\r\n\r\n /**\r\n * Emit 'tap' events when touch events are supported\r\n * This is used to support toggling the controls through a tap on the video.\r\n * We're requiring them to be enabled because otherwise every component would\r\n * have this extra overhead unnecessarily, on mobile devices where extra\r\n * overhead is especially bad.\r\n *\r\n * @private\r\n * @method emitTapEvents\r\n */\r\n\r\n Component.prototype.emitTapEvents = function emitTapEvents() {\r\n // Track the start time so we can determine how long the touch lasted\r\n var touchStart = 0;\r\n var firstTouch = null;\r\n\r\n // Maximum movement allowed during a touch event to still be considered a tap\r\n // Other popular libs use anywhere from 2 (hammer.js) to 15, so 10 seems like a nice, round number.\r\n var tapMovementThreshold = 10;\r\n\r\n // The maximum length a touch can be while still being considered a tap\r\n var touchTimeThreshold = 200;\r\n\r\n var couldBeTap = undefined;\r\n\r\n this.on('touchstart', function (event) {\r\n // If more than one finger, don't consider treating this as a click\r\n if (event.touches.length === 1) {\r\n // Copy the touches object to prevent modifying the original\r\n firstTouch = _objectAssign2['default']({}, event.touches[0]);\r\n // Record start time so we can detect a tap vs. \"touch and hold\"\r\n touchStart = new Date().getTime();\r\n // Reset couldBeTap tracking\r\n couldBeTap = true;\r\n }\r\n });\r\n\r\n this.on('touchmove', function (event) {\r\n // If more than one finger, don't consider treating this as a click\r\n if (event.touches.length > 1) {\r\n couldBeTap = false;\r\n } else if (firstTouch) {\r\n // Some devices will throw touchmoves for all but the slightest of taps.\r\n // So, if we moved only a small distance, this could still be a tap\r\n var xdiff = event.touches[0].pageX - firstTouch.pageX;\r\n var ydiff = event.touches[0].pageY - firstTouch.pageY;\r\n var touchDistance = Math.sqrt(xdiff * xdiff + ydiff * ydiff);\r\n\r\n if (touchDistance > tapMovementThreshold) {\r\n couldBeTap = false;\r\n }\r\n }\r\n });\r\n\r\n var noTap = function noTap() {\r\n couldBeTap = false;\r\n };\r\n\r\n // TODO: Listen to the original target. http://youtu.be/DujfpXOKUp8?t=13m8s\r\n this.on('touchleave', noTap);\r\n this.on('touchcancel', noTap);\r\n\r\n // When the touch ends, measure how long it took and trigger the appropriate\r\n // event\r\n this.on('touchend', function (event) {\r\n firstTouch = null;\r\n // Proceed only if the touchmove/leave/cancel event didn't happen\r\n if (couldBeTap === true) {\r\n // Measure how long the touch lasted\r\n var touchTime = new Date().getTime() - touchStart;\r\n\r\n // Make sure the touch was less than the threshold to be considered a tap\r\n if (touchTime < touchTimeThreshold) {\r\n // Don't let browser turn this into a click\r\n event.preventDefault();\r\n this.trigger('tap');\r\n // It may be good to copy the touchend event object and change the\r\n // type to tap, if the other event properties aren't exact after\r\n // Events.fixEvent runs (e.g. event.target)\r\n }\r\n }\r\n });\r\n };\r\n\r\n /**\r\n * Report user touch activity when touch events occur\r\n * User activity is used to determine when controls should show/hide. It's\r\n * relatively simple when it comes to mouse events, because any mouse event\r\n * should show the controls. So we capture mouse events that bubble up to the\r\n * player and report activity when that happens.\r\n * With touch events it isn't as easy. We can't rely on touch events at the\r\n * player level, because a tap (touchstart + touchend) on the video itself on\r\n * mobile devices is meant to turn controls off (and on). User activity is\r\n * checked asynchronously, so what could happen is a tap event on the video\r\n * turns the controls off, then the touchend event bubbles up to the player,\r\n * which if it reported user activity, would turn the controls right back on.\r\n * (We also don't want to completely block touch events from bubbling up)\r\n * Also a touchmove, touch+hold, and anything other than a tap is not supposed\r\n * to turn the controls back on on a mobile device.\r\n * Here we're setting the default component behavior to report user activity\r\n * whenever touch events happen, and this can be turned off by components that\r\n * want touch events to act differently.\r\n *\r\n * @method enableTouchActivity\r\n */\r\n\r\n Component.prototype.enableTouchActivity = function enableTouchActivity() {\r\n // Don't continue if the root player doesn't support reporting user activity\r\n if (!this.player() || !this.player().reportUserActivity) {\r\n return;\r\n }\r\n\r\n // listener for reporting that the user is active\r\n var report = Fn.bind(this.player(), this.player().reportUserActivity);\r\n\r\n var touchHolding = undefined;\r\n\r\n this.on('touchstart', function () {\r\n report();\r\n // For as long as the they are touching the device or have their mouse down,\r\n // we consider them active even if they're not moving their finger or mouse.\r\n // So we want to continue to update that they are active\r\n this.clearInterval(touchHolding);\r\n // report at the same interval as activityCheck\r\n touchHolding = this.setInterval(report, 250);\r\n });\r\n\r\n var touchEnd = function touchEnd(event) {\r\n report();\r\n // stop the interval that maintains activity if the touch is holding\r\n this.clearInterval(touchHolding);\r\n };\r\n\r\n this.on('touchmove', report);\r\n this.on('touchend', touchEnd);\r\n this.on('touchcancel', touchEnd);\r\n };\r\n\r\n /**\r\n * Creates timeout and sets up disposal automatically.\r\n *\r\n * @param {Function} fn The function to run after the timeout.\r\n * @param {Number} timeout Number of ms to delay before executing specified function.\r\n * @return {Number} Returns the timeout ID\r\n * @method setTimeout\r\n */\r\n\r\n Component.prototype.setTimeout = function setTimeout(fn, timeout) {\r\n fn = Fn.bind(this, fn);\r\n\r\n // window.setTimeout would be preferable here, but due to some bizarre issue with Sinon and/or Phantomjs, we can't.\r\n var timeoutId = _globalWindow2['default'].setTimeout(fn, timeout);\r\n\r\n var disposeFn = function disposeFn() {\r\n this.clearTimeout(timeoutId);\r\n };\r\n\r\n disposeFn.guid = 'vjs-timeout-' + timeoutId;\r\n\r\n this.on('dispose', disposeFn);\r\n\r\n return timeoutId;\r\n };\r\n\r\n /**\r\n * Clears a timeout and removes the associated dispose listener\r\n *\r\n * @param {Number} timeoutId The id of the timeout to clear\r\n * @return {Number} Returns the timeout ID\r\n * @method clearTimeout\r\n */\r\n\r\n Component.prototype.clearTimeout = function clearTimeout(timeoutId) {\r\n _globalWindow2['default'].clearTimeout(timeoutId);\r\n\r\n var disposeFn = function disposeFn() {};\r\n\r\n disposeFn.guid = 'vjs-timeout-' + timeoutId;\r\n\r\n this.off('dispose', disposeFn);\r\n\r\n return timeoutId;\r\n };\r\n\r\n /**\r\n * Creates an interval and sets up disposal automatically.\r\n *\r\n * @param {Function} fn The function to run every N seconds.\r\n * @param {Number} interval Number of ms to delay before executing specified function.\r\n * @return {Number} Returns the interval ID\r\n * @method setInterval\r\n */\r\n\r\n Component.prototype.setInterval = function setInterval(fn, interval) {\r\n fn = Fn.bind(this, fn);\r\n\r\n var intervalId = _globalWindow2['default'].setInterval(fn, interval);\r\n\r\n var disposeFn = function disposeFn() {\r\n this.clearInterval(intervalId);\r\n };\r\n\r\n disposeFn.guid = 'vjs-interval-' + intervalId;\r\n\r\n this.on('dispose', disposeFn);\r\n\r\n return intervalId;\r\n };\r\n\r\n /**\r\n * Clears an interval and removes the associated dispose listener\r\n *\r\n * @param {Number} intervalId The id of the interval to clear\r\n * @return {Number} Returns the interval ID\r\n * @method clearInterval\r\n */\r\n\r\n Component.prototype.clearInterval = function clearInterval(intervalId) {\r\n _globalWindow2['default'].clearInterval(intervalId);\r\n\r\n var disposeFn = function disposeFn() {};\r\n\r\n disposeFn.guid = 'vjs-interval-' + intervalId;\r\n\r\n this.off('dispose', disposeFn);\r\n\r\n return intervalId;\r\n };\r\n\r\n /**\r\n * Registers a component\r\n *\r\n * @param {String} name Name of the component to register\r\n * @param {Object} comp The component to register\r\n * @static\r\n * @method registerComponent\r\n */\r\n\r\n Component.registerComponent = function registerComponent(name, comp) {\r\n if (!Component.components_) {\r\n Component.components_ = {};\r\n }\r\n\r\n Component.components_[name] = comp;\r\n return comp;\r\n };\r\n\r\n /**\r\n * Gets a component by name\r\n *\r\n * @param {String} name Name of the component to get\r\n * @return {Component}\r\n * @static\r\n * @method getComponent\r\n */\r\n\r\n Component.getComponent = function getComponent(name) {\r\n if (Component.components_ && Component.components_[name]) {\r\n return Component.components_[name];\r\n }\r\n\r\n if (_globalWindow2['default'] && _globalWindow2['default'].videojs && _globalWindow2['default'].videojs[name]) {\r\n _utilsLogJs2['default'].warn('The ' + name + ' component was added to the videojs object when it should be registered using videojs.registerComponent(name, component)');\r\n return _globalWindow2['default'].videojs[name];\r\n }\r\n };\r\n\r\n /**\r\n * Sets up the constructor using the supplied init method\r\n * or uses the init of the parent object\r\n *\r\n * @param {Object} props An object of properties\r\n * @static\r\n * @deprecated\r\n * @method extend\r\n */\r\n\r\n Component.extend = function extend(props) {\r\n props = props || {};\r\n\r\n _utilsLogJs2['default'].warn('Component.extend({}) has been deprecated, use videojs.extend(Component, {}) instead');\r\n\r\n // Set up the constructor using the supplied init method\r\n // or using the init of the parent object\r\n // Make sure to check the unobfuscated version for external libs\r\n var init = props.init || props.init || this.prototype.init || this.prototype.init || function () {};\r\n // In Resig's simple class inheritance (previously used) the constructor\r\n // is a function that calls `this.init.apply(arguments)`\r\n // However that would prevent us from using `ParentObject.call(this);`\r\n // in a Child constructor because the `this` in `this.init`\r\n // would still refer to the Child and cause an infinite loop.\r\n // We would instead have to do\r\n // `ParentObject.prototype.init.apply(this, arguments);`\r\n // Bleh. We're not creating a _super() function, so it's good to keep\r\n // the parent constructor reference simple.\r\n var subObj = function subObj() {\r\n init.apply(this, arguments);\r\n };\r\n\r\n // Inherit from this object's prototype\r\n subObj.prototype = Object.create(this.prototype);\r\n // Reset the constructor property for subObj otherwise\r\n // instances of subObj would have the constructor of the parent Object\r\n subObj.prototype.constructor = subObj;\r\n\r\n // Make the class extendable\r\n subObj.extend = Component.extend;\r\n\r\n // Extend subObj's prototype with functions and other properties from props\r\n for (var _name in props) {\r\n if (props.hasOwnProperty(_name)) {\r\n subObj.prototype[_name] = props[_name];\r\n }\r\n }\r\n\r\n return subObj;\r\n };\r\n\r\n return Component;\r\n})();\r\n\r\nComponent.registerComponent('Component', Component);\r\nexports['default'] = Component;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./utils/dom.js\":134,\"./utils/events.js\":135,\"./utils/fn.js\":136,\"./utils/guid.js\":138,\"./utils/log.js\":139,\"./utils/merge-options.js\":140,\"./utils/to-title-case.js\":143,\"global/window\":2,\"object.assign\":45}],68:[function(_dereq_,module,exports){\r\n/**\r\n * @file control-bar.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n// Required children\r\n\r\nvar _playToggleJs = _dereq_('./play-toggle.js');\r\n\r\nvar _playToggleJs2 = _interopRequireDefault(_playToggleJs);\r\n\r\nvar _timeControlsCurrentTimeDisplayJs = _dereq_('./time-controls/current-time-display.js');\r\n\r\nvar _timeControlsCurrentTimeDisplayJs2 = _interopRequireDefault(_timeControlsCurrentTimeDisplayJs);\r\n\r\nvar _timeControlsDurationDisplayJs = _dereq_('./time-controls/duration-display.js');\r\n\r\nvar _timeControlsDurationDisplayJs2 = _interopRequireDefault(_timeControlsDurationDisplayJs);\r\n\r\nvar _timeControlsTimeDividerJs = _dereq_('./time-controls/time-divider.js');\r\n\r\nvar _timeControlsTimeDividerJs2 = _interopRequireDefault(_timeControlsTimeDividerJs);\r\n\r\nvar _timeControlsRemainingTimeDisplayJs = _dereq_('./time-controls/remaining-time-display.js');\r\n\r\nvar _timeControlsRemainingTimeDisplayJs2 = _interopRequireDefault(_timeControlsRemainingTimeDisplayJs);\r\n\r\nvar _liveDisplayJs = _dereq_('./live-display.js');\r\n\r\nvar _liveDisplayJs2 = _interopRequireDefault(_liveDisplayJs);\r\n\r\nvar _progressControlProgressControlJs = _dereq_('./progress-control/progress-control.js');\r\n\r\nvar _progressControlProgressControlJs2 = _interopRequireDefault(_progressControlProgressControlJs);\r\n\r\nvar _fullscreenToggleJs = _dereq_('./fullscreen-toggle.js');\r\n\r\nvar _fullscreenToggleJs2 = _interopRequireDefault(_fullscreenToggleJs);\r\n\r\nvar _volumeControlVolumeControlJs = _dereq_('./volume-control/volume-control.js');\r\n\r\nvar _volumeControlVolumeControlJs2 = _interopRequireDefault(_volumeControlVolumeControlJs);\r\n\r\nvar _volumeMenuButtonJs = _dereq_('./volume-menu-button.js');\r\n\r\nvar _volumeMenuButtonJs2 = _interopRequireDefault(_volumeMenuButtonJs);\r\n\r\nvar _muteToggleJs = _dereq_('./mute-toggle.js');\r\n\r\nvar _muteToggleJs2 = _interopRequireDefault(_muteToggleJs);\r\n\r\nvar _textTrackControlsChaptersButtonJs = _dereq_('./text-track-controls/chapters-button.js');\r\n\r\nvar _textTrackControlsChaptersButtonJs2 = _interopRequireDefault(_textTrackControlsChaptersButtonJs);\r\n\r\nvar _textTrackControlsDescriptionsButtonJs = _dereq_('./text-track-controls/descriptions-button.js');\r\n\r\nvar _textTrackControlsDescriptionsButtonJs2 = _interopRequireDefault(_textTrackControlsDescriptionsButtonJs);\r\n\r\nvar _textTrackControlsSubtitlesButtonJs = _dereq_('./text-track-controls/subtitles-button.js');\r\n\r\nvar _textTrackControlsSubtitlesButtonJs2 = _interopRequireDefault(_textTrackControlsSubtitlesButtonJs);\r\n\r\nvar _textTrackControlsCaptionsButtonJs = _dereq_('./text-track-controls/captions-button.js');\r\n\r\nvar _textTrackControlsCaptionsButtonJs2 = _interopRequireDefault(_textTrackControlsCaptionsButtonJs);\r\n\r\nvar _playbackRateMenuPlaybackRateMenuButtonJs = _dereq_('./playback-rate-menu/playback-rate-menu-button.js');\r\n\r\nvar _playbackRateMenuPlaybackRateMenuButtonJs2 = _interopRequireDefault(_playbackRateMenuPlaybackRateMenuButtonJs);\r\n\r\nvar _spacerControlsCustomControlSpacerJs = _dereq_('./spacer-controls/custom-control-spacer.js');\r\n\r\nvar _spacerControlsCustomControlSpacerJs2 = _interopRequireDefault(_spacerControlsCustomControlSpacerJs);\r\n\r\n/**\r\n * Container of main controls\r\n *\r\n * @extends Component\r\n * @class ControlBar\r\n */\r\n\r\nvar ControlBar = (function (_Component) {\r\n _inherits(ControlBar, _Component);\r\n\r\n function ControlBar() {\r\n _classCallCheck(this, ControlBar);\r\n\r\n _Component.apply(this, arguments);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n ControlBar.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-control-bar',\r\n dir: 'ltr'\r\n }, {\r\n 'role': 'group' // The control bar is a group, so it can contain menuitems\r\n });\r\n };\r\n\r\n return ControlBar;\r\n})(_componentJs2['default']);\r\n\r\nControlBar.prototype.options_ = {\r\n loadEvent: 'play',\r\n children: ['playToggle', 'volumeMenuButton', 'currentTimeDisplay', 'timeDivider', 'durationDisplay', 'progressControl', 'liveDisplay', 'remainingTimeDisplay', 'customControlSpacer', 'playbackRateMenuButton', 'chaptersButton', 'descriptionsButton', 'subtitlesButton', 'captionsButton', 'fullscreenToggle']\r\n};\r\n\r\n_componentJs2['default'].registerComponent('ControlBar', ControlBar);\r\nexports['default'] = ControlBar;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component.js\":67,\"./fullscreen-toggle.js\":69,\"./live-display.js\":70,\"./mute-toggle.js\":71,\"./play-toggle.js\":72,\"./playback-rate-menu/playback-rate-menu-button.js\":73,\"./progress-control/progress-control.js\":78,\"./spacer-controls/custom-control-spacer.js\":81,\"./text-track-controls/captions-button.js\":84,\"./text-track-controls/chapters-button.js\":85,\"./text-track-controls/descriptions-button.js\":87,\"./text-track-controls/subtitles-button.js\":89,\"./time-controls/current-time-display.js\":92,\"./time-controls/duration-display.js\":93,\"./time-controls/remaining-time-display.js\":94,\"./time-controls/time-divider.js\":95,\"./volume-control/volume-control.js\":97,\"./volume-menu-button.js\":99}],69:[function(_dereq_,module,exports){\r\n/**\r\n * @file fullscreen-toggle.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _buttonJs = _dereq_('../button.js');\r\n\r\nvar _buttonJs2 = _interopRequireDefault(_buttonJs);\r\n\r\nvar _componentJs = _dereq_('../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n/**\r\n * Toggle fullscreen video\r\n *\r\n * @extends Button\r\n * @class FullscreenToggle\r\n */\r\n\r\nvar FullscreenToggle = (function (_Button) {\r\n _inherits(FullscreenToggle, _Button);\r\n\r\n function FullscreenToggle() {\r\n _classCallCheck(this, FullscreenToggle);\r\n\r\n _Button.apply(this, arguments);\r\n }\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n FullscreenToggle.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-fullscreen-control ' + _Button.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * Handles click for full screen\r\n *\r\n * @method handleClick\r\n */\r\n\r\n FullscreenToggle.prototype.handleClick = function handleClick() {\r\n if (!this.player_.isFullscreen()) {\r\n this.player_.requestFullscreen();\r\n this.controlText('Non-Fullscreen');\r\n } else {\r\n this.player_.exitFullscreen();\r\n this.controlText('Fullscreen');\r\n }\r\n };\r\n\r\n return FullscreenToggle;\r\n})(_buttonJs2['default']);\r\n\r\nFullscreenToggle.prototype.controlText_ = 'Fullscreen';\r\n\r\n_componentJs2['default'].registerComponent('FullscreenToggle', FullscreenToggle);\r\nexports['default'] = FullscreenToggle;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../button.js\":64,\"../component.js\":67}],70:[function(_dereq_,module,exports){\r\n/**\r\n * @file live-display.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _component = _dereq_('../component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _utilsDomJs = _dereq_('../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\n/**\r\n * Displays the live indicator\r\n * TODO - Future make it click to snap to live\r\n *\r\n * @extends Component\r\n * @class LiveDisplay\r\n */\r\n\r\nvar LiveDisplay = (function (_Component) {\r\n _inherits(LiveDisplay, _Component);\r\n\r\n function LiveDisplay(player, options) {\r\n _classCallCheck(this, LiveDisplay);\r\n\r\n _Component.call(this, player, options);\r\n\r\n this.updateShowing();\r\n this.on(this.player(), 'durationchange', this.updateShowing);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n LiveDisplay.prototype.createEl = function createEl() {\r\n var el = _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-live-control vjs-control'\r\n });\r\n\r\n this.contentEl_ = Dom.createEl('div', {\r\n className: 'vjs-live-display',\r\n innerHTML: '' + this.localize('Stream Type') + '' + this.localize('LIVE')\r\n }, {\r\n 'aria-live': 'off'\r\n });\r\n\r\n el.appendChild(this.contentEl_);\r\n return el;\r\n };\r\n\r\n LiveDisplay.prototype.updateShowing = function updateShowing() {\r\n if (this.player().duration() === Infinity) {\r\n this.show();\r\n } else {\r\n this.hide();\r\n }\r\n };\r\n\r\n return LiveDisplay;\r\n})(_component2['default']);\r\n\r\n_component2['default'].registerComponent('LiveDisplay', LiveDisplay);\r\nexports['default'] = LiveDisplay;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component\":67,\"../utils/dom.js\":134}],71:[function(_dereq_,module,exports){\r\n/**\r\n * @file mute-toggle.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _button = _dereq_('../button');\r\n\r\nvar _button2 = _interopRequireDefault(_button);\r\n\r\nvar _component = _dereq_('../component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _utilsDomJs = _dereq_('../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\n/**\r\n * A button component for muting the audio\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Button\r\n * @class MuteToggle\r\n */\r\n\r\nvar MuteToggle = (function (_Button) {\r\n _inherits(MuteToggle, _Button);\r\n\r\n function MuteToggle(player, options) {\r\n _classCallCheck(this, MuteToggle);\r\n\r\n _Button.call(this, player, options);\r\n\r\n this.on(player, 'volumechange', this.update);\r\n\r\n // hide mute toggle if the current tech doesn't support volume control\r\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\r\n this.addClass('vjs-hidden');\r\n }\r\n\r\n this.on(player, 'loadstart', function () {\r\n this.update(); // We need to update the button to account for a default muted state.\r\n\r\n if (player.tech_['featuresVolumeControl'] === false) {\r\n this.addClass('vjs-hidden');\r\n } else {\r\n this.removeClass('vjs-hidden');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n MuteToggle.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-mute-control ' + _Button.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * Handle click on mute\r\n *\r\n * @method handleClick\r\n */\r\n\r\n MuteToggle.prototype.handleClick = function handleClick() {\r\n this.player_.muted(this.player_.muted() ? false : true);\r\n };\r\n\r\n /**\r\n * Update volume\r\n *\r\n * @method update\r\n */\r\n\r\n MuteToggle.prototype.update = function update() {\r\n var vol = this.player_.volume(),\r\n level = 3;\r\n\r\n if (vol === 0 || this.player_.muted()) {\r\n level = 0;\r\n } else if (vol < 0.33) {\r\n level = 1;\r\n } else if (vol < 0.67) {\r\n level = 2;\r\n }\r\n\r\n // Don't rewrite the button text if the actual text doesn't change.\r\n // This causes unnecessary and confusing information for screen reader users.\r\n // This check is needed because this function gets called every time the volume level is changed.\r\n var toMute = this.player_.muted() ? 'Unmute' : 'Mute';\r\n if (this.controlText() !== toMute) {\r\n this.controlText(toMute);\r\n }\r\n\r\n /* TODO improve muted icon classes */\r\n for (var i = 0; i < 4; i++) {\r\n Dom.removeElClass(this.el_, 'vjs-vol-' + i);\r\n }\r\n Dom.addElClass(this.el_, 'vjs-vol-' + level);\r\n };\r\n\r\n return MuteToggle;\r\n})(_button2['default']);\r\n\r\nMuteToggle.prototype.controlText_ = 'Mute';\r\n\r\n_component2['default'].registerComponent('MuteToggle', MuteToggle);\r\nexports['default'] = MuteToggle;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../button\":64,\"../component\":67,\"../utils/dom.js\":134}],72:[function(_dereq_,module,exports){\r\n/**\r\n * @file play-toggle.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _buttonJs = _dereq_('../button.js');\r\n\r\nvar _buttonJs2 = _interopRequireDefault(_buttonJs);\r\n\r\nvar _componentJs = _dereq_('../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n/**\r\n * Button to toggle between play and pause\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Button\r\n * @class PlayToggle\r\n */\r\n\r\nvar PlayToggle = (function (_Button) {\r\n _inherits(PlayToggle, _Button);\r\n\r\n function PlayToggle(player, options) {\r\n _classCallCheck(this, PlayToggle);\r\n\r\n _Button.call(this, player, options);\r\n\r\n this.on(player, 'play', this.handlePlay);\r\n this.on(player, 'pause', this.handlePause);\r\n }\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n PlayToggle.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-play-control ' + _Button.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * Handle click to toggle between play and pause\r\n *\r\n * @method handleClick\r\n */\r\n\r\n PlayToggle.prototype.handleClick = function handleClick() {\r\n if (this.player_.paused()) {\r\n this.player_.play();\r\n } else {\r\n this.player_.pause();\r\n }\r\n };\r\n\r\n /**\r\n * Add the vjs-playing class to the element so it can change appearance\r\n *\r\n * @method handlePlay\r\n */\r\n\r\n PlayToggle.prototype.handlePlay = function handlePlay() {\r\n this.removeClass('vjs-paused');\r\n this.addClass('vjs-playing');\r\n this.controlText('Pause'); // change the button text to \"Pause\"\r\n };\r\n\r\n /**\r\n * Add the vjs-paused class to the element so it can change appearance\r\n *\r\n * @method handlePause\r\n */\r\n\r\n PlayToggle.prototype.handlePause = function handlePause() {\r\n this.removeClass('vjs-playing');\r\n this.addClass('vjs-paused');\r\n this.controlText('Play'); // change the button text to \"Play\"\r\n };\r\n\r\n return PlayToggle;\r\n})(_buttonJs2['default']);\r\n\r\nPlayToggle.prototype.controlText_ = 'Play';\r\n\r\n_componentJs2['default'].registerComponent('PlayToggle', PlayToggle);\r\nexports['default'] = PlayToggle;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../button.js\":64,\"../component.js\":67}],73:[function(_dereq_,module,exports){\r\n/**\r\n * @file playback-rate-menu-button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _menuMenuButtonJs = _dereq_('../../menu/menu-button.js');\r\n\r\nvar _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);\r\n\r\nvar _menuMenuJs = _dereq_('../../menu/menu.js');\r\n\r\nvar _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);\r\n\r\nvar _playbackRateMenuItemJs = _dereq_('./playback-rate-menu-item.js');\r\n\r\nvar _playbackRateMenuItemJs2 = _interopRequireDefault(_playbackRateMenuItemJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\n/**\r\n * The component for controlling the playback rate\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends MenuButton\r\n * @class PlaybackRateMenuButton\r\n */\r\n\r\nvar PlaybackRateMenuButton = (function (_MenuButton) {\r\n _inherits(PlaybackRateMenuButton, _MenuButton);\r\n\r\n function PlaybackRateMenuButton(player, options) {\r\n _classCallCheck(this, PlaybackRateMenuButton);\r\n\r\n _MenuButton.call(this, player, options);\r\n\r\n this.updateVisibility();\r\n this.updateLabel();\r\n\r\n this.on(player, 'loadstart', this.updateVisibility);\r\n this.on(player, 'ratechange', this.updateLabel);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n PlaybackRateMenuButton.prototype.createEl = function createEl() {\r\n var el = _MenuButton.prototype.createEl.call(this);\r\n\r\n this.labelEl_ = Dom.createEl('div', {\r\n className: 'vjs-playback-rate-value',\r\n innerHTML: 1.0\r\n });\r\n\r\n el.appendChild(this.labelEl_);\r\n\r\n return el;\r\n };\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n PlaybackRateMenuButton.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-playback-rate ' + _MenuButton.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * Create the playback rate menu\r\n *\r\n * @return {Menu} Menu object populated with items\r\n * @method createMenu\r\n */\r\n\r\n PlaybackRateMenuButton.prototype.createMenu = function createMenu() {\r\n var menu = new _menuMenuJs2['default'](this.player());\r\n var rates = this.playbackRates();\r\n\r\n if (rates) {\r\n for (var i = rates.length - 1; i >= 0; i--) {\r\n menu.addChild(new _playbackRateMenuItemJs2['default'](this.player(), { 'rate': rates[i] + 'x' }));\r\n }\r\n }\r\n\r\n return menu;\r\n };\r\n\r\n /**\r\n * Updates ARIA accessibility attributes\r\n *\r\n * @method updateARIAAttributes\r\n */\r\n\r\n PlaybackRateMenuButton.prototype.updateARIAAttributes = function updateARIAAttributes() {\r\n // Current playback rate\r\n this.el().setAttribute('aria-valuenow', this.player().playbackRate());\r\n };\r\n\r\n /**\r\n * Handle menu item click\r\n *\r\n * @method handleClick\r\n */\r\n\r\n PlaybackRateMenuButton.prototype.handleClick = function handleClick() {\r\n // select next rate option\r\n var currentRate = this.player().playbackRate();\r\n var rates = this.playbackRates();\r\n\r\n // this will select first one if the last one currently selected\r\n var newRate = rates[0];\r\n for (var i = 0; i < rates.length; i++) {\r\n if (rates[i] > currentRate) {\r\n newRate = rates[i];\r\n break;\r\n }\r\n }\r\n this.player().playbackRate(newRate);\r\n };\r\n\r\n /**\r\n * Get possible playback rates\r\n *\r\n * @return {Array} Possible playback rates\r\n * @method playbackRates\r\n */\r\n\r\n PlaybackRateMenuButton.prototype.playbackRates = function playbackRates() {\r\n return this.options_['playbackRates'] || this.options_.playerOptions && this.options_.playerOptions['playbackRates'];\r\n };\r\n\r\n /**\r\n * Get supported playback rates\r\n *\r\n * @return {Array} Supported playback rates\r\n * @method playbackRateSupported\r\n */\r\n\r\n PlaybackRateMenuButton.prototype.playbackRateSupported = function playbackRateSupported() {\r\n return this.player().tech_ && this.player().tech_['featuresPlaybackRate'] && this.playbackRates() && this.playbackRates().length > 0;\r\n };\r\n\r\n /**\r\n * Hide playback rate controls when they're no playback rate options to select\r\n *\r\n * @method updateVisibility\r\n */\r\n\r\n PlaybackRateMenuButton.prototype.updateVisibility = function updateVisibility() {\r\n if (this.playbackRateSupported()) {\r\n this.removeClass('vjs-hidden');\r\n } else {\r\n this.addClass('vjs-hidden');\r\n }\r\n };\r\n\r\n /**\r\n * Update button label when rate changed\r\n *\r\n * @method updateLabel\r\n */\r\n\r\n PlaybackRateMenuButton.prototype.updateLabel = function updateLabel() {\r\n if (this.playbackRateSupported()) {\r\n this.labelEl_.innerHTML = this.player().playbackRate() + 'x';\r\n }\r\n };\r\n\r\n return PlaybackRateMenuButton;\r\n})(_menuMenuButtonJs2['default']);\r\n\r\nPlaybackRateMenuButton.prototype.controlText_ = 'Playback Rate';\r\n\r\n_componentJs2['default'].registerComponent('PlaybackRateMenuButton', PlaybackRateMenuButton);\r\nexports['default'] = PlaybackRateMenuButton;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../menu/menu-button.js\":106,\"../../menu/menu.js\":108,\"../../utils/dom.js\":134,\"./playback-rate-menu-item.js\":74}],74:[function(_dereq_,module,exports){\r\n/**\r\n * @file playback-rate-menu-item.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _menuMenuItemJs = _dereq_('../../menu/menu-item.js');\r\n\r\nvar _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n/**\r\n * The specific menu item type for selecting a playback rate\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends MenuItem\r\n * @class PlaybackRateMenuItem\r\n */\r\n\r\nvar PlaybackRateMenuItem = (function (_MenuItem) {\r\n _inherits(PlaybackRateMenuItem, _MenuItem);\r\n\r\n function PlaybackRateMenuItem(player, options) {\r\n _classCallCheck(this, PlaybackRateMenuItem);\r\n\r\n var label = options['rate'];\r\n var rate = parseFloat(label, 10);\r\n\r\n // Modify options for parent MenuItem class's init.\r\n options['label'] = label;\r\n options['selected'] = rate === 1;\r\n _MenuItem.call(this, player, options);\r\n\r\n this.label = label;\r\n this.rate = rate;\r\n\r\n this.on(player, 'ratechange', this.update);\r\n }\r\n\r\n /**\r\n * Handle click on menu item\r\n *\r\n * @method handleClick\r\n */\r\n\r\n PlaybackRateMenuItem.prototype.handleClick = function handleClick() {\r\n _MenuItem.prototype.handleClick.call(this);\r\n this.player().playbackRate(this.rate);\r\n };\r\n\r\n /**\r\n * Update playback rate with selected rate\r\n *\r\n * @method update\r\n */\r\n\r\n PlaybackRateMenuItem.prototype.update = function update() {\r\n this.selected(this.player().playbackRate() === this.rate);\r\n };\r\n\r\n return PlaybackRateMenuItem;\r\n})(_menuMenuItemJs2['default']);\r\n\r\nPlaybackRateMenuItem.prototype.contentElType = 'button';\r\n\r\n_componentJs2['default'].registerComponent('PlaybackRateMenuItem', PlaybackRateMenuItem);\r\nexports['default'] = PlaybackRateMenuItem;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../menu/menu-item.js\":107}],75:[function(_dereq_,module,exports){\r\n/**\r\n * @file load-progress-bar.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\n/**\r\n * Shows load progress\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class LoadProgressBar\r\n */\r\n\r\nvar LoadProgressBar = (function (_Component) {\r\n _inherits(LoadProgressBar, _Component);\r\n\r\n function LoadProgressBar(player, options) {\r\n _classCallCheck(this, LoadProgressBar);\r\n\r\n _Component.call(this, player, options);\r\n this.on(player, 'progress', this.update);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n LoadProgressBar.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-load-progress',\r\n innerHTML: '' + this.localize('Loaded') + ': 0%'\r\n });\r\n };\r\n\r\n /**\r\n * Update progress bar\r\n *\r\n * @method update\r\n */\r\n\r\n LoadProgressBar.prototype.update = function update() {\r\n var buffered = this.player_.buffered();\r\n var duration = this.player_.duration();\r\n var bufferedEnd = this.player_.bufferedEnd();\r\n var children = this.el_.children;\r\n\r\n // get the percent width of a time compared to the total end\r\n var percentify = function percentify(time, end) {\r\n var percent = time / end || 0; // no NaN\r\n return (percent >= 1 ? 1 : percent) * 100 + '%';\r\n };\r\n\r\n // update the width of the progress bar\r\n this.el_.style.width = percentify(bufferedEnd, duration);\r\n\r\n // add child elements to represent the individual buffered time ranges\r\n for (var i = 0; i < buffered.length; i++) {\r\n var start = buffered.start(i);\r\n var end = buffered.end(i);\r\n var part = children[i];\r\n\r\n if (!part) {\r\n part = this.el_.appendChild(Dom.createEl());\r\n }\r\n\r\n // set the percent based on the width of the progress bar (bufferedEnd)\r\n part.style.left = percentify(start, bufferedEnd);\r\n part.style.width = percentify(end - start, bufferedEnd);\r\n }\r\n\r\n // remove unused buffered range elements\r\n for (var i = children.length; i > buffered.length; i--) {\r\n this.el_.removeChild(children[i - 1]);\r\n }\r\n };\r\n\r\n return LoadProgressBar;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('LoadProgressBar', LoadProgressBar);\r\nexports['default'] = LoadProgressBar;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../utils/dom.js\":134}],76:[function(_dereq_,module,exports){\r\n/**\r\n * @file mouse-time-display.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\r\n\r\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\r\n\r\nvar _lodashCompatFunctionThrottle = _dereq_('lodash-compat/function/throttle');\r\n\r\nvar _lodashCompatFunctionThrottle2 = _interopRequireDefault(_lodashCompatFunctionThrottle);\r\n\r\n/**\r\n * The Mouse Time Display component shows the time you will seek to\r\n * when hovering over the progress bar\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class MouseTimeDisplay\r\n */\r\n\r\nvar MouseTimeDisplay = (function (_Component) {\r\n _inherits(MouseTimeDisplay, _Component);\r\n\r\n function MouseTimeDisplay(player, options) {\r\n var _this = this;\r\n\r\n _classCallCheck(this, MouseTimeDisplay);\r\n\r\n _Component.call(this, player, options);\r\n\r\n if (options.playerOptions && options.playerOptions.controlBar && options.playerOptions.controlBar.progressControl && options.playerOptions.controlBar.progressControl.keepTooltipsInside) {\r\n this.keepTooltipsInside = options.playerOptions.controlBar.progressControl.keepTooltipsInside;\r\n }\r\n\r\n if (this.keepTooltipsInside) {\r\n this.tooltip = Dom.createEl('div', { className: 'vjs-time-tooltip' });\r\n this.el().appendChild(this.tooltip);\r\n this.addClass('vjs-keep-tooltips-inside');\r\n }\r\n\r\n this.update(0, 0);\r\n\r\n player.on('ready', function () {\r\n _this.on(player.controlBar.progressControl.el(), 'mousemove', _lodashCompatFunctionThrottle2['default'](Fn.bind(_this, _this.handleMouseMove), 25));\r\n });\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n MouseTimeDisplay.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-mouse-display'\r\n });\r\n };\r\n\r\n MouseTimeDisplay.prototype.handleMouseMove = function handleMouseMove(event) {\r\n var duration = this.player_.duration();\r\n var newTime = this.calculateDistance(event) * duration;\r\n var position = event.pageX - Dom.findElPosition(this.el().parentNode).left;\r\n\r\n this.update(newTime, position);\r\n };\r\n\r\n MouseTimeDisplay.prototype.update = function update(newTime, position) {\r\n var time = _utilsFormatTimeJs2['default'](newTime, this.player_.duration());\r\n\r\n this.el().style.left = position + 'px';\r\n this.el().setAttribute('data-current-time', time);\r\n\r\n if (this.keepTooltipsInside) {\r\n var clampedPosition = this.clampPosition_(position);\r\n var difference = position - clampedPosition + 1;\r\n var tooltipWidth = parseFloat(_globalWindow2['default'].getComputedStyle(this.tooltip).width);\r\n var tooltipWidthHalf = tooltipWidth / 2;\r\n\r\n this.tooltip.innerHTML = time;\r\n this.tooltip.style.right = '-' + (tooltipWidthHalf - difference) + 'px';\r\n }\r\n };\r\n\r\n MouseTimeDisplay.prototype.calculateDistance = function calculateDistance(event) {\r\n return Dom.getPointerPosition(this.el().parentNode, event).x;\r\n };\r\n\r\n /**\r\n * This takes in a horizontal position for the bar and returns a clamped position.\r\n * Clamped position means that it will keep the position greater than half the width\r\n * of the tooltip and smaller than the player width minus half the width o the tooltip.\r\n * It will only clamp the position if `keepTooltipsInside` option is set.\r\n *\r\n * @param {Number} position the position the bar wants to be\r\n * @return {Number} newPosition the (potentially) clamped position\r\n * @method clampPosition_\r\n */\r\n\r\n MouseTimeDisplay.prototype.clampPosition_ = function clampPosition_(position) {\r\n if (!this.keepTooltipsInside) {\r\n return position;\r\n }\r\n\r\n var playerWidth = parseFloat(_globalWindow2['default'].getComputedStyle(this.player().el()).width);\r\n var tooltipWidth = parseFloat(_globalWindow2['default'].getComputedStyle(this.tooltip).width);\r\n var tooltipWidthHalf = tooltipWidth / 2;\r\n var actualPosition = position;\r\n\r\n if (position < tooltipWidthHalf) {\r\n actualPosition = Math.ceil(tooltipWidthHalf);\r\n } else if (position > playerWidth - tooltipWidthHalf) {\r\n actualPosition = Math.floor(playerWidth - tooltipWidthHalf);\r\n }\r\n\r\n return actualPosition;\r\n };\r\n\r\n return MouseTimeDisplay;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('MouseTimeDisplay', MouseTimeDisplay);\r\nexports['default'] = MouseTimeDisplay;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../utils/dom.js\":134,\"../../utils/fn.js\":136,\"../../utils/format-time.js\":137,\"global/window\":2,\"lodash-compat/function/throttle\":7}],77:[function(_dereq_,module,exports){\r\n/**\r\n * @file play-progress-bar.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\r\n\r\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\r\n\r\n/**\r\n * Shows play progress\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class PlayProgressBar\r\n */\r\n\r\nvar PlayProgressBar = (function (_Component) {\r\n _inherits(PlayProgressBar, _Component);\r\n\r\n function PlayProgressBar(player, options) {\r\n _classCallCheck(this, PlayProgressBar);\r\n\r\n _Component.call(this, player, options);\r\n this.updateDataAttr();\r\n this.on(player, 'timeupdate', this.updateDataAttr);\r\n player.ready(Fn.bind(this, this.updateDataAttr));\r\n\r\n if (options.playerOptions && options.playerOptions.controlBar && options.playerOptions.controlBar.progressControl && options.playerOptions.controlBar.progressControl.keepTooltipsInside) {\r\n this.keepTooltipsInside = options.playerOptions.controlBar.progressControl.keepTooltipsInside;\r\n }\r\n\r\n if (this.keepTooltipsInside) {\r\n this.addClass('vjs-keep-tooltips-inside');\r\n }\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n PlayProgressBar.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-play-progress vjs-slider-bar',\r\n innerHTML: '' + this.localize('Progress') + ': 0%'\r\n });\r\n };\r\n\r\n PlayProgressBar.prototype.updateDataAttr = function updateDataAttr() {\r\n var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();\r\n this.el_.setAttribute('data-current-time', _utilsFormatTimeJs2['default'](time, this.player_.duration()));\r\n };\r\n\r\n return PlayProgressBar;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('PlayProgressBar', PlayProgressBar);\r\nexports['default'] = PlayProgressBar;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../utils/dom.js\":134,\"../../utils/fn.js\":136,\"../../utils/format-time.js\":137}],78:[function(_dereq_,module,exports){\r\n/**\r\n * @file progress-control.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _seekBarJs = _dereq_('./seek-bar.js');\r\n\r\nvar _seekBarJs2 = _interopRequireDefault(_seekBarJs);\r\n\r\nvar _mouseTimeDisplayJs = _dereq_('./mouse-time-display.js');\r\n\r\nvar _mouseTimeDisplayJs2 = _interopRequireDefault(_mouseTimeDisplayJs);\r\n\r\n/**\r\n * The Progress Control component contains the seek bar, load progress,\r\n * and play progress\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class ProgressControl\r\n */\r\n\r\nvar ProgressControl = (function (_Component) {\r\n _inherits(ProgressControl, _Component);\r\n\r\n function ProgressControl() {\r\n _classCallCheck(this, ProgressControl);\r\n\r\n _Component.apply(this, arguments);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n ProgressControl.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-progress-control vjs-control'\r\n });\r\n };\r\n\r\n return ProgressControl;\r\n})(_componentJs2['default']);\r\n\r\nProgressControl.prototype.options_ = {\r\n children: ['seekBar']\r\n};\r\n\r\n_componentJs2['default'].registerComponent('ProgressControl', ProgressControl);\r\nexports['default'] = ProgressControl;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"./mouse-time-display.js\":76,\"./seek-bar.js\":79}],79:[function(_dereq_,module,exports){\r\n/**\r\n * @file seek-bar.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _sliderSliderJs = _dereq_('../../slider/slider.js');\r\n\r\nvar _sliderSliderJs2 = _interopRequireDefault(_sliderSliderJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _loadProgressBarJs = _dereq_('./load-progress-bar.js');\r\n\r\nvar _loadProgressBarJs2 = _interopRequireDefault(_loadProgressBarJs);\r\n\r\nvar _playProgressBarJs = _dereq_('./play-progress-bar.js');\r\n\r\nvar _playProgressBarJs2 = _interopRequireDefault(_playProgressBarJs);\r\n\r\nvar _tooltipProgressBarJs = _dereq_('./tooltip-progress-bar.js');\r\n\r\nvar _tooltipProgressBarJs2 = _interopRequireDefault(_tooltipProgressBarJs);\r\n\r\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\r\n\r\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\r\n\r\nvar _objectAssign = _dereq_('object.assign');\r\n\r\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\r\n\r\n/**\r\n * Seek Bar and holder for the progress bars\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Slider\r\n * @class SeekBar\r\n */\r\n\r\nvar SeekBar = (function (_Slider) {\r\n _inherits(SeekBar, _Slider);\r\n\r\n function SeekBar(player, options) {\r\n _classCallCheck(this, SeekBar);\r\n\r\n _Slider.call(this, player, options);\r\n this.on(player, 'timeupdate', this.updateProgress);\r\n this.on(player, 'ended', this.updateProgress);\r\n player.ready(Fn.bind(this, this.updateProgress));\r\n\r\n if (options.playerOptions && options.playerOptions.controlBar && options.playerOptions.controlBar.progressControl && options.playerOptions.controlBar.progressControl.keepTooltipsInside) {\r\n this.keepTooltipsInside = options.playerOptions.controlBar.progressControl.keepTooltipsInside;\r\n }\r\n\r\n if (this.keepTooltipsInside) {\r\n this.tooltipProgressBar = this.addChild('TooltipProgressBar');\r\n }\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n SeekBar.prototype.createEl = function createEl() {\r\n return _Slider.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-progress-holder'\r\n }, {\r\n 'aria-label': 'progress bar'\r\n });\r\n };\r\n\r\n /**\r\n * Update ARIA accessibility attributes\r\n *\r\n * @method updateARIAAttributes\r\n */\r\n\r\n SeekBar.prototype.updateProgress = function updateProgress() {\r\n this.updateAriaAttributes(this.el_);\r\n\r\n if (this.keepTooltipsInside) {\r\n this.updateAriaAttributes(this.tooltipProgressBar.el_);\r\n this.tooltipProgressBar.el_.style.width = this.bar.el_.style.width;\r\n\r\n var playerWidth = parseFloat(_globalWindow2['default'].getComputedStyle(this.player().el()).width);\r\n var tooltipWidth = parseFloat(_globalWindow2['default'].getComputedStyle(this.tooltipProgressBar.tooltip).width);\r\n var tooltipStyle = this.tooltipProgressBar.el().style;\r\n tooltipStyle.maxWidth = Math.floor(playerWidth - tooltipWidth / 2) + 'px';\r\n tooltipStyle.minWidth = Math.ceil(tooltipWidth / 2) + 'px';\r\n tooltipStyle.right = '-' + tooltipWidth / 2 + 'px';\r\n }\r\n };\r\n\r\n SeekBar.prototype.updateAriaAttributes = function updateAriaAttributes(el) {\r\n // Allows for smooth scrubbing, when player can't keep up.\r\n var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();\r\n el.setAttribute('aria-valuenow', (this.getPercent() * 100).toFixed(2)); // machine readable value of progress bar (percentage complete)\r\n el.setAttribute('aria-valuetext', _utilsFormatTimeJs2['default'](time, this.player_.duration())); // human readable value of progress bar (time complete)\r\n };\r\n\r\n /**\r\n * Get percentage of video played\r\n *\r\n * @return {Number} Percentage played\r\n * @method getPercent\r\n */\r\n\r\n SeekBar.prototype.getPercent = function getPercent() {\r\n var percent = this.player_.currentTime() / this.player_.duration();\r\n return percent >= 1 ? 1 : percent;\r\n };\r\n\r\n /**\r\n * Handle mouse down on seek bar\r\n *\r\n * @method handleMouseDown\r\n */\r\n\r\n SeekBar.prototype.handleMouseDown = function handleMouseDown(event) {\r\n _Slider.prototype.handleMouseDown.call(this, event);\r\n\r\n this.player_.scrubbing(true);\r\n\r\n this.videoWasPlaying = !this.player_.paused();\r\n this.player_.pause();\r\n };\r\n\r\n /**\r\n * Handle mouse move on seek bar\r\n *\r\n * @method handleMouseMove\r\n */\r\n\r\n SeekBar.prototype.handleMouseMove = function handleMouseMove(event) {\r\n var newTime = this.calculateDistance(event) * this.player_.duration();\r\n\r\n // Don't let video end while scrubbing.\r\n if (newTime === this.player_.duration()) {\r\n newTime = newTime - 0.1;\r\n }\r\n\r\n // Set new time (tell player to seek to new time)\r\n this.player_.currentTime(newTime);\r\n };\r\n\r\n /**\r\n * Handle mouse up on seek bar\r\n *\r\n * @method handleMouseUp\r\n */\r\n\r\n SeekBar.prototype.handleMouseUp = function handleMouseUp(event) {\r\n _Slider.prototype.handleMouseUp.call(this, event);\r\n\r\n this.player_.scrubbing(false);\r\n if (this.videoWasPlaying) {\r\n this.player_.play();\r\n }\r\n };\r\n\r\n /**\r\n * Move more quickly fast forward for keyboard-only users\r\n *\r\n * @method stepForward\r\n */\r\n\r\n SeekBar.prototype.stepForward = function stepForward() {\r\n this.player_.currentTime(this.player_.currentTime() + 5); // more quickly fast forward for keyboard-only users\r\n };\r\n\r\n /**\r\n * Move more quickly rewind for keyboard-only users\r\n *\r\n * @method stepBack\r\n */\r\n\r\n SeekBar.prototype.stepBack = function stepBack() {\r\n this.player_.currentTime(this.player_.currentTime() - 5); // more quickly rewind for keyboard-only users\r\n };\r\n\r\n return SeekBar;\r\n})(_sliderSliderJs2['default']);\r\n\r\nSeekBar.prototype.options_ = {\r\n children: ['loadProgressBar', 'mouseTimeDisplay', 'playProgressBar'],\r\n 'barName': 'playProgressBar'\r\n};\r\n\r\nSeekBar.prototype.playerEvent = 'timeupdate';\r\n\r\n_componentJs2['default'].registerComponent('SeekBar', SeekBar);\r\nexports['default'] = SeekBar;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../slider/slider.js\":116,\"../../utils/fn.js\":136,\"../../utils/format-time.js\":137,\"./load-progress-bar.js\":75,\"./play-progress-bar.js\":77,\"./tooltip-progress-bar.js\":80,\"global/window\":2,\"object.assign\":45}],80:[function(_dereq_,module,exports){\r\n/**\r\n * @file play-progress-bar.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\r\n\r\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\r\n\r\n/**\r\n * Shows play progress\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class PlayProgressBar\r\n */\r\n\r\nvar TooltipProgressBar = (function (_Component) {\r\n _inherits(TooltipProgressBar, _Component);\r\n\r\n function TooltipProgressBar(player, options) {\r\n _classCallCheck(this, TooltipProgressBar);\r\n\r\n _Component.call(this, player, options);\r\n this.updateDataAttr();\r\n this.on(player, 'timeupdate', this.updateDataAttr);\r\n player.ready(Fn.bind(this, this.updateDataAttr));\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n TooltipProgressBar.prototype.createEl = function createEl() {\r\n var el = _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-tooltip-progress-bar vjs-slider-bar',\r\n innerHTML: '
\\n ' + this.localize('Progress') + ': 0%'\r\n });\r\n\r\n this.tooltip = el.querySelector('.vjs-time-tooltip');\r\n\r\n return el;\r\n };\r\n\r\n TooltipProgressBar.prototype.updateDataAttr = function updateDataAttr() {\r\n var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();\r\n var formattedTime = _utilsFormatTimeJs2['default'](time, this.player_.duration());\r\n this.el_.setAttribute('data-current-time', formattedTime);\r\n this.tooltip.innerHTML = formattedTime;\r\n };\r\n\r\n return TooltipProgressBar;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('TooltipProgressBar', TooltipProgressBar);\r\nexports['default'] = TooltipProgressBar;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../utils/dom.js\":134,\"../../utils/fn.js\":136,\"../../utils/format-time.js\":137}],81:[function(_dereq_,module,exports){\r\n/**\r\n * @file custom-control-spacer.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _spacerJs = _dereq_('./spacer.js');\r\n\r\nvar _spacerJs2 = _interopRequireDefault(_spacerJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n/**\r\n * Spacer specifically meant to be used as an insertion point for new plugins, etc.\r\n *\r\n * @extends Spacer\r\n * @class CustomControlSpacer\r\n */\r\n\r\nvar CustomControlSpacer = (function (_Spacer) {\r\n _inherits(CustomControlSpacer, _Spacer);\r\n\r\n function CustomControlSpacer() {\r\n _classCallCheck(this, CustomControlSpacer);\r\n\r\n _Spacer.apply(this, arguments);\r\n }\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n CustomControlSpacer.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-custom-control-spacer ' + _Spacer.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n CustomControlSpacer.prototype.createEl = function createEl() {\r\n var el = _Spacer.prototype.createEl.call(this, {\r\n className: this.buildCSSClass()\r\n });\r\n\r\n // No-flex/table-cell mode requires there be some content\r\n // in the cell to fill the remaining space of the table.\r\n el.innerHTML = ' ';\r\n return el;\r\n };\r\n\r\n return CustomControlSpacer;\r\n})(_spacerJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('CustomControlSpacer', CustomControlSpacer);\r\nexports['default'] = CustomControlSpacer;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"./spacer.js\":82}],82:[function(_dereq_,module,exports){\r\n/**\r\n * @file spacer.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n/**\r\n * Just an empty spacer element that can be used as an append point for plugins, etc.\r\n * Also can be used to create space between elements when necessary.\r\n *\r\n * @extends Component\r\n * @class Spacer\r\n */\r\n\r\nvar Spacer = (function (_Component) {\r\n _inherits(Spacer, _Component);\r\n\r\n function Spacer() {\r\n _classCallCheck(this, Spacer);\r\n\r\n _Component.apply(this, arguments);\r\n }\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n Spacer.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-spacer ' + _Component.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n Spacer.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: this.buildCSSClass()\r\n });\r\n };\r\n\r\n return Spacer;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('Spacer', Spacer);\r\n\r\nexports['default'] = Spacer;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67}],83:[function(_dereq_,module,exports){\r\n/**\r\n * @file caption-settings-menu-item.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');\r\n\r\nvar _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n/**\r\n * The menu item for caption track settings menu\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends TextTrackMenuItem\r\n * @class CaptionSettingsMenuItem\r\n */\r\n\r\nvar CaptionSettingsMenuItem = (function (_TextTrackMenuItem) {\r\n _inherits(CaptionSettingsMenuItem, _TextTrackMenuItem);\r\n\r\n function CaptionSettingsMenuItem(player, options) {\r\n _classCallCheck(this, CaptionSettingsMenuItem);\r\n\r\n options['track'] = {\r\n 'kind': options['kind'],\r\n 'player': player,\r\n 'label': options['kind'] + ' settings',\r\n 'selectable': false,\r\n 'default': false,\r\n mode: 'disabled'\r\n };\r\n\r\n // CaptionSettingsMenuItem has no concept of 'selected'\r\n options['selectable'] = false;\r\n\r\n _TextTrackMenuItem.call(this, player, options);\r\n this.addClass('vjs-texttrack-settings');\r\n this.controlText(', opens ' + options['kind'] + ' settings dialog');\r\n }\r\n\r\n /**\r\n * Handle click on menu item\r\n *\r\n * @method handleClick\r\n */\r\n\r\n CaptionSettingsMenuItem.prototype.handleClick = function handleClick() {\r\n this.player().getChild('textTrackSettings').show();\r\n this.player().getChild('textTrackSettings').el_.focus();\r\n };\r\n\r\n return CaptionSettingsMenuItem;\r\n})(_textTrackMenuItemJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('CaptionSettingsMenuItem', CaptionSettingsMenuItem);\r\nexports['default'] = CaptionSettingsMenuItem;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"./text-track-menu-item.js\":91}],84:[function(_dereq_,module,exports){\r\n/**\r\n * @file captions-button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _textTrackButtonJs = _dereq_('./text-track-button.js');\r\n\r\nvar _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _captionSettingsMenuItemJs = _dereq_('./caption-settings-menu-item.js');\r\n\r\nvar _captionSettingsMenuItemJs2 = _interopRequireDefault(_captionSettingsMenuItemJs);\r\n\r\n/**\r\n * The button component for toggling and selecting captions\r\n *\r\n * @param {Object} player Player object\r\n * @param {Object=} options Object of option names and values\r\n * @param {Function=} ready Ready callback function\r\n * @extends TextTrackButton\r\n * @class CaptionsButton\r\n */\r\n\r\nvar CaptionsButton = (function (_TextTrackButton) {\r\n _inherits(CaptionsButton, _TextTrackButton);\r\n\r\n function CaptionsButton(player, options, ready) {\r\n _classCallCheck(this, CaptionsButton);\r\n\r\n _TextTrackButton.call(this, player, options, ready);\r\n this.el_.setAttribute('aria-label', 'Captions Menu');\r\n }\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n CaptionsButton.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-captions-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * Update caption menu items\r\n *\r\n * @method update\r\n */\r\n\r\n CaptionsButton.prototype.update = function update() {\r\n var threshold = 2;\r\n _TextTrackButton.prototype.update.call(this);\r\n\r\n // if native, then threshold is 1 because no settings button\r\n if (this.player().tech_ && this.player().tech_['featuresNativeTextTracks']) {\r\n threshold = 1;\r\n }\r\n\r\n if (this.items && this.items.length > threshold) {\r\n this.show();\r\n } else {\r\n this.hide();\r\n }\r\n };\r\n\r\n /**\r\n * Create caption menu items\r\n *\r\n * @return {Array} Array of menu items\r\n * @method createItems\r\n */\r\n\r\n CaptionsButton.prototype.createItems = function createItems() {\r\n var items = [];\r\n\r\n if (!(this.player().tech_ && this.player().tech_['featuresNativeTextTracks'])) {\r\n items.push(new _captionSettingsMenuItemJs2['default'](this.player_, { 'kind': this.kind_ }));\r\n }\r\n\r\n return _TextTrackButton.prototype.createItems.call(this, items);\r\n };\r\n\r\n return CaptionsButton;\r\n})(_textTrackButtonJs2['default']);\r\n\r\nCaptionsButton.prototype.kind_ = 'captions';\r\nCaptionsButton.prototype.controlText_ = 'Captions';\r\n\r\n_componentJs2['default'].registerComponent('CaptionsButton', CaptionsButton);\r\nexports['default'] = CaptionsButton;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"./caption-settings-menu-item.js\":83,\"./text-track-button.js\":90}],85:[function(_dereq_,module,exports){\r\n/**\r\n * @file chapters-button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _textTrackButtonJs = _dereq_('./text-track-button.js');\r\n\r\nvar _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');\r\n\r\nvar _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);\r\n\r\nvar _chaptersTrackMenuItemJs = _dereq_('./chapters-track-menu-item.js');\r\n\r\nvar _chaptersTrackMenuItemJs2 = _interopRequireDefault(_chaptersTrackMenuItemJs);\r\n\r\nvar _menuMenuJs = _dereq_('../../menu/menu.js');\r\n\r\nvar _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);\r\n\r\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsToTitleCaseJs = _dereq_('../../utils/to-title-case.js');\r\n\r\nvar _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\n/**\r\n * The button component for toggling and selecting chapters\r\n * Chapters act much differently than other text tracks\r\n * Cues are navigation vs. other tracks of alternative languages\r\n *\r\n * @param {Object} player Player object\r\n * @param {Object=} options Object of option names and values\r\n * @param {Function=} ready Ready callback function\r\n * @extends TextTrackButton\r\n * @class ChaptersButton\r\n */\r\n\r\nvar ChaptersButton = (function (_TextTrackButton) {\r\n _inherits(ChaptersButton, _TextTrackButton);\r\n\r\n function ChaptersButton(player, options, ready) {\r\n _classCallCheck(this, ChaptersButton);\r\n\r\n _TextTrackButton.call(this, player, options, ready);\r\n this.el_.setAttribute('aria-label', 'Chapters Menu');\r\n }\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n ChaptersButton.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-chapters-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * Create a menu item for each text track\r\n *\r\n * @return {Array} Array of menu items\r\n * @method createItems\r\n */\r\n\r\n ChaptersButton.prototype.createItems = function createItems() {\r\n var items = [];\r\n\r\n var tracks = this.player_.textTracks();\r\n\r\n if (!tracks) {\r\n return items;\r\n }\r\n\r\n for (var i = 0; i < tracks.length; i++) {\r\n var track = tracks[i];\r\n if (track['kind'] === this.kind_) {\r\n items.push(new _textTrackMenuItemJs2['default'](this.player_, {\r\n 'track': track\r\n }));\r\n }\r\n }\r\n\r\n return items;\r\n };\r\n\r\n /**\r\n * Create menu from chapter buttons\r\n *\r\n * @return {Menu} Menu of chapter buttons\r\n * @method createMenu\r\n */\r\n\r\n ChaptersButton.prototype.createMenu = function createMenu() {\r\n var _this = this;\r\n\r\n var tracks = this.player_.textTracks() || [];\r\n var chaptersTrack = undefined;\r\n var items = this.items = [];\r\n\r\n for (var i = 0, _length = tracks.length; i < _length; i++) {\r\n var track = tracks[i];\r\n\r\n if (track['kind'] === this.kind_) {\r\n chaptersTrack = track;\r\n\r\n break;\r\n }\r\n }\r\n\r\n var menu = this.menu;\r\n if (menu === undefined) {\r\n menu = new _menuMenuJs2['default'](this.player_);\r\n var title = Dom.createEl('li', {\r\n className: 'vjs-menu-title',\r\n innerHTML: _utilsToTitleCaseJs2['default'](this.kind_),\r\n tabIndex: -1\r\n });\r\n menu.children_.unshift(title);\r\n Dom.insertElFirst(title, menu.contentEl());\r\n }\r\n\r\n if (chaptersTrack && chaptersTrack.cues == null) {\r\n chaptersTrack['mode'] = 'hidden';\r\n\r\n var remoteTextTrackEl = this.player_.remoteTextTrackEls().getTrackElementByTrack_(chaptersTrack);\r\n\r\n if (remoteTextTrackEl) {\r\n remoteTextTrackEl.addEventListener('load', function (event) {\r\n return _this.update();\r\n });\r\n }\r\n }\r\n\r\n if (chaptersTrack && chaptersTrack.cues && chaptersTrack.cues.length > 0) {\r\n var cues = chaptersTrack['cues'],\r\n cue = undefined;\r\n\r\n for (var i = 0, l = cues.length; i < l; i++) {\r\n cue = cues[i];\r\n\r\n var mi = new _chaptersTrackMenuItemJs2['default'](this.player_, {\r\n 'track': chaptersTrack,\r\n 'cue': cue\r\n });\r\n\r\n items.push(mi);\r\n\r\n menu.addChild(mi);\r\n }\r\n\r\n this.addChild(menu);\r\n }\r\n\r\n if (this.items.length > 0) {\r\n this.show();\r\n }\r\n\r\n return menu;\r\n };\r\n\r\n return ChaptersButton;\r\n})(_textTrackButtonJs2['default']);\r\n\r\nChaptersButton.prototype.kind_ = 'chapters';\r\nChaptersButton.prototype.controlText_ = 'Chapters';\r\n\r\n_componentJs2['default'].registerComponent('ChaptersButton', ChaptersButton);\r\nexports['default'] = ChaptersButton;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../menu/menu.js\":108,\"../../utils/dom.js\":134,\"../../utils/fn.js\":136,\"../../utils/to-title-case.js\":143,\"./chapters-track-menu-item.js\":86,\"./text-track-button.js\":90,\"./text-track-menu-item.js\":91,\"global/window\":2}],86:[function(_dereq_,module,exports){\r\n/**\r\n * @file chapters-track-menu-item.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _menuMenuItemJs = _dereq_('../../menu/menu-item.js');\r\n\r\nvar _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\n/**\r\n * The chapter track menu item\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends MenuItem\r\n * @class ChaptersTrackMenuItem\r\n */\r\n\r\nvar ChaptersTrackMenuItem = (function (_MenuItem) {\r\n _inherits(ChaptersTrackMenuItem, _MenuItem);\r\n\r\n function ChaptersTrackMenuItem(player, options) {\r\n _classCallCheck(this, ChaptersTrackMenuItem);\r\n\r\n var track = options['track'];\r\n var cue = options['cue'];\r\n var currentTime = player.currentTime();\r\n\r\n // Modify options for parent MenuItem class's init.\r\n options['label'] = cue.text;\r\n options['selected'] = cue['startTime'] <= currentTime && currentTime < cue['endTime'];\r\n _MenuItem.call(this, player, options);\r\n\r\n this.track = track;\r\n this.cue = cue;\r\n track.addEventListener('cuechange', Fn.bind(this, this.update));\r\n }\r\n\r\n /**\r\n * Handle click on menu item\r\n *\r\n * @method handleClick\r\n */\r\n\r\n ChaptersTrackMenuItem.prototype.handleClick = function handleClick() {\r\n _MenuItem.prototype.handleClick.call(this);\r\n this.player_.currentTime(this.cue.startTime);\r\n this.update(this.cue.startTime);\r\n };\r\n\r\n /**\r\n * Update chapter menu item\r\n *\r\n * @method update\r\n */\r\n\r\n ChaptersTrackMenuItem.prototype.update = function update() {\r\n var cue = this.cue;\r\n var currentTime = this.player_.currentTime();\r\n\r\n // vjs.log(currentTime, cue.startTime);\r\n this.selected(cue['startTime'] <= currentTime && currentTime < cue['endTime']);\r\n };\r\n\r\n return ChaptersTrackMenuItem;\r\n})(_menuMenuItemJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('ChaptersTrackMenuItem', ChaptersTrackMenuItem);\r\nexports['default'] = ChaptersTrackMenuItem;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../menu/menu-item.js\":107,\"../../utils/fn.js\":136}],87:[function(_dereq_,module,exports){\r\n/**\r\n * @file descriptions-button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _textTrackButtonJs = _dereq_('./text-track-button.js');\r\n\r\nvar _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\n/**\r\n * The button component for toggling and selecting descriptions\r\n *\r\n * @param {Object} player Player object\r\n * @param {Object=} options Object of option names and values\r\n * @param {Function=} ready Ready callback function\r\n * @extends TextTrackButton\r\n * @class DescriptionsButton\r\n */\r\n\r\nvar DescriptionsButton = (function (_TextTrackButton) {\r\n _inherits(DescriptionsButton, _TextTrackButton);\r\n\r\n function DescriptionsButton(player, options, ready) {\r\n var _this = this;\r\n\r\n _classCallCheck(this, DescriptionsButton);\r\n\r\n _TextTrackButton.call(this, player, options, ready);\r\n this.el_.setAttribute('aria-label', 'Descriptions Menu');\r\n\r\n var tracks = player.textTracks();\r\n\r\n if (tracks) {\r\n (function () {\r\n var changeHandler = Fn.bind(_this, _this.handleTracksChange);\r\n\r\n tracks.addEventListener('change', changeHandler);\r\n _this.on('dispose', function () {\r\n tracks.removeEventListener('change', changeHandler);\r\n });\r\n })();\r\n }\r\n }\r\n\r\n /**\r\n * Handle text track change\r\n *\r\n * @method handleTracksChange\r\n */\r\n\r\n DescriptionsButton.prototype.handleTracksChange = function handleTracksChange(event) {\r\n var tracks = this.player().textTracks();\r\n var disabled = false;\r\n\r\n // Check whether a track of a different kind is showing\r\n for (var i = 0, l = tracks.length; i < l; i++) {\r\n var track = tracks[i];\r\n if (track['kind'] !== this.kind_ && track['mode'] === 'showing') {\r\n disabled = true;\r\n break;\r\n }\r\n }\r\n\r\n // If another track is showing, disable this menu button\r\n if (disabled) {\r\n this.disable();\r\n } else {\r\n this.enable();\r\n }\r\n };\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n DescriptionsButton.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-descriptions-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n return DescriptionsButton;\r\n})(_textTrackButtonJs2['default']);\r\n\r\nDescriptionsButton.prototype.kind_ = 'descriptions';\r\nDescriptionsButton.prototype.controlText_ = 'Descriptions';\r\n\r\n_componentJs2['default'].registerComponent('DescriptionsButton', DescriptionsButton);\r\nexports['default'] = DescriptionsButton;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../utils/fn.js\":136,\"./text-track-button.js\":90}],88:[function(_dereq_,module,exports){\r\n/**\r\n * @file off-text-track-menu-item.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');\r\n\r\nvar _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n/**\r\n * A special menu item for turning of a specific type of text track\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends TextTrackMenuItem\r\n * @class OffTextTrackMenuItem\r\n */\r\n\r\nvar OffTextTrackMenuItem = (function (_TextTrackMenuItem) {\r\n _inherits(OffTextTrackMenuItem, _TextTrackMenuItem);\r\n\r\n function OffTextTrackMenuItem(player, options) {\r\n _classCallCheck(this, OffTextTrackMenuItem);\r\n\r\n // Create pseudo track info\r\n // Requires options['kind']\r\n options['track'] = {\r\n 'kind': options['kind'],\r\n 'player': player,\r\n 'label': options['kind'] + ' off',\r\n 'default': false,\r\n 'mode': 'disabled'\r\n };\r\n\r\n // MenuItem is selectable\r\n options['selectable'] = true;\r\n\r\n _TextTrackMenuItem.call(this, player, options);\r\n this.selected(true);\r\n }\r\n\r\n /**\r\n * Handle text track change\r\n *\r\n * @param {Object} event Event object\r\n * @method handleTracksChange\r\n */\r\n\r\n OffTextTrackMenuItem.prototype.handleTracksChange = function handleTracksChange(event) {\r\n var tracks = this.player().textTracks();\r\n var selected = true;\r\n\r\n for (var i = 0, l = tracks.length; i < l; i++) {\r\n var track = tracks[i];\r\n if (track['kind'] === this.track['kind'] && track['mode'] === 'showing') {\r\n selected = false;\r\n break;\r\n }\r\n }\r\n\r\n this.selected(selected);\r\n };\r\n\r\n return OffTextTrackMenuItem;\r\n})(_textTrackMenuItemJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('OffTextTrackMenuItem', OffTextTrackMenuItem);\r\nexports['default'] = OffTextTrackMenuItem;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"./text-track-menu-item.js\":91}],89:[function(_dereq_,module,exports){\r\n/**\r\n * @file subtitles-button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _textTrackButtonJs = _dereq_('./text-track-button.js');\r\n\r\nvar _textTrackButtonJs2 = _interopRequireDefault(_textTrackButtonJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n/**\r\n * The button component for toggling and selecting subtitles\r\n *\r\n * @param {Object} player Player object\r\n * @param {Object=} options Object of option names and values\r\n * @param {Function=} ready Ready callback function\r\n * @extends TextTrackButton\r\n * @class SubtitlesButton\r\n */\r\n\r\nvar SubtitlesButton = (function (_TextTrackButton) {\r\n _inherits(SubtitlesButton, _TextTrackButton);\r\n\r\n function SubtitlesButton(player, options, ready) {\r\n _classCallCheck(this, SubtitlesButton);\r\n\r\n _TextTrackButton.call(this, player, options, ready);\r\n this.el_.setAttribute('aria-label', 'Subtitles Menu');\r\n }\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n SubtitlesButton.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-subtitles-button ' + _TextTrackButton.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n return SubtitlesButton;\r\n})(_textTrackButtonJs2['default']);\r\n\r\nSubtitlesButton.prototype.kind_ = 'subtitles';\r\nSubtitlesButton.prototype.controlText_ = 'Subtitles';\r\n\r\n_componentJs2['default'].registerComponent('SubtitlesButton', SubtitlesButton);\r\nexports['default'] = SubtitlesButton;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"./text-track-button.js\":90}],90:[function(_dereq_,module,exports){\r\n/**\r\n * @file text-track-button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _menuMenuButtonJs = _dereq_('../../menu/menu-button.js');\r\n\r\nvar _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _textTrackMenuItemJs = _dereq_('./text-track-menu-item.js');\r\n\r\nvar _textTrackMenuItemJs2 = _interopRequireDefault(_textTrackMenuItemJs);\r\n\r\nvar _offTextTrackMenuItemJs = _dereq_('./off-text-track-menu-item.js');\r\n\r\nvar _offTextTrackMenuItemJs2 = _interopRequireDefault(_offTextTrackMenuItemJs);\r\n\r\n/**\r\n * The base class for buttons that toggle specific text track types (e.g. subtitles)\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends MenuButton\r\n * @class TextTrackButton\r\n */\r\n\r\nvar TextTrackButton = (function (_MenuButton) {\r\n _inherits(TextTrackButton, _MenuButton);\r\n\r\n function TextTrackButton(player, options) {\r\n _classCallCheck(this, TextTrackButton);\r\n\r\n _MenuButton.call(this, player, options);\r\n\r\n var tracks = this.player_.textTracks();\r\n\r\n if (this.items.length <= 1) {\r\n this.hide();\r\n }\r\n\r\n if (!tracks) {\r\n return;\r\n }\r\n\r\n var updateHandler = Fn.bind(this, this.update);\r\n tracks.addEventListener('removetrack', updateHandler);\r\n tracks.addEventListener('addtrack', updateHandler);\r\n\r\n this.player_.on('dispose', function () {\r\n tracks.removeEventListener('removetrack', updateHandler);\r\n tracks.removeEventListener('addtrack', updateHandler);\r\n });\r\n }\r\n\r\n // Create a menu item for each text track\r\n\r\n TextTrackButton.prototype.createItems = function createItems() {\r\n var items = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];\r\n\r\n // Add an OFF menu item to turn all tracks off\r\n items.push(new _offTextTrackMenuItemJs2['default'](this.player_, { 'kind': this.kind_ }));\r\n\r\n var tracks = this.player_.textTracks();\r\n\r\n if (!tracks) {\r\n return items;\r\n }\r\n\r\n for (var i = 0; i < tracks.length; i++) {\r\n var track = tracks[i];\r\n\r\n // only add tracks that are of the appropriate kind and have a label\r\n if (track['kind'] === this.kind_) {\r\n items.push(new _textTrackMenuItemJs2['default'](this.player_, {\r\n // MenuItem is selectable\r\n 'selectable': true,\r\n 'track': track\r\n }));\r\n }\r\n }\r\n\r\n return items;\r\n };\r\n\r\n return TextTrackButton;\r\n})(_menuMenuButtonJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('TextTrackButton', TextTrackButton);\r\nexports['default'] = TextTrackButton;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../menu/menu-button.js\":106,\"../../utils/fn.js\":136,\"./off-text-track-menu-item.js\":88,\"./text-track-menu-item.js\":91}],91:[function(_dereq_,module,exports){\r\n/**\r\n * @file text-track-menu-item.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _menuMenuItemJs = _dereq_('../../menu/menu-item.js');\r\n\r\nvar _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\n/**\r\n * The specific menu item type for selecting a language within a text track kind\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends MenuItem\r\n * @class TextTrackMenuItem\r\n */\r\n\r\nvar TextTrackMenuItem = (function (_MenuItem) {\r\n _inherits(TextTrackMenuItem, _MenuItem);\r\n\r\n function TextTrackMenuItem(player, options) {\r\n var _this = this;\r\n\r\n _classCallCheck(this, TextTrackMenuItem);\r\n\r\n var track = options['track'];\r\n var tracks = player.textTracks();\r\n\r\n // Modify options for parent MenuItem class's init.\r\n options['label'] = track['label'] || track['language'] || 'Unknown';\r\n options['selected'] = track['default'] || track['mode'] === 'showing';\r\n\r\n _MenuItem.call(this, player, options);\r\n\r\n this.track = track;\r\n\r\n if (tracks) {\r\n (function () {\r\n var changeHandler = Fn.bind(_this, _this.handleTracksChange);\r\n\r\n tracks.addEventListener('change', changeHandler);\r\n _this.on('dispose', function () {\r\n tracks.removeEventListener('change', changeHandler);\r\n });\r\n })();\r\n }\r\n\r\n // iOS7 doesn't dispatch change events to TextTrackLists when an\r\n // associated track's mode changes. Without something like\r\n // Object.observe() (also not present on iOS7), it's not\r\n // possible to detect changes to the mode attribute and polyfill\r\n // the change event. As a poor substitute, we manually dispatch\r\n // change events whenever the controls modify the mode.\r\n if (tracks && tracks.onchange === undefined) {\r\n (function () {\r\n var event = undefined;\r\n\r\n _this.on(['tap', 'click'], function () {\r\n if (typeof _globalWindow2['default'].Event !== 'object') {\r\n // Android 2.3 throws an Illegal Constructor error for window.Event\r\n try {\r\n event = new _globalWindow2['default'].Event('change');\r\n } catch (err) {}\r\n }\r\n\r\n if (!event) {\r\n event = _globalDocument2['default'].createEvent('Event');\r\n event.initEvent('change', true, true);\r\n }\r\n\r\n tracks.dispatchEvent(event);\r\n });\r\n })();\r\n }\r\n }\r\n\r\n /**\r\n * Handle click on text track\r\n *\r\n * @method handleClick\r\n */\r\n\r\n TextTrackMenuItem.prototype.handleClick = function handleClick(event) {\r\n var kind = this.track['kind'];\r\n var tracks = this.player_.textTracks();\r\n\r\n _MenuItem.prototype.handleClick.call(this, event);\r\n\r\n if (!tracks) return;\r\n\r\n for (var i = 0; i < tracks.length; i++) {\r\n var track = tracks[i];\r\n\r\n if (track['kind'] !== kind) {\r\n continue;\r\n }\r\n\r\n if (track === this.track) {\r\n track['mode'] = 'showing';\r\n } else {\r\n track['mode'] = 'disabled';\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Handle text track change\r\n *\r\n * @method handleTracksChange\r\n */\r\n\r\n TextTrackMenuItem.prototype.handleTracksChange = function handleTracksChange(event) {\r\n this.selected(this.track['mode'] === 'showing');\r\n };\r\n\r\n return TextTrackMenuItem;\r\n})(_menuMenuItemJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('TextTrackMenuItem', TextTrackMenuItem);\r\nexports['default'] = TextTrackMenuItem;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../menu/menu-item.js\":107,\"../../utils/fn.js\":136,\"global/document\":1,\"global/window\":2}],92:[function(_dereq_,module,exports){\r\n/**\r\n * @file current-time-display.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\r\n\r\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\r\n\r\n/**\r\n * Displays the current time\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class CurrentTimeDisplay\r\n */\r\n\r\nvar CurrentTimeDisplay = (function (_Component) {\r\n _inherits(CurrentTimeDisplay, _Component);\r\n\r\n function CurrentTimeDisplay(player, options) {\r\n _classCallCheck(this, CurrentTimeDisplay);\r\n\r\n _Component.call(this, player, options);\r\n\r\n this.on(player, 'timeupdate', this.updateContent);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n CurrentTimeDisplay.prototype.createEl = function createEl() {\r\n var el = _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-current-time vjs-time-control vjs-control'\r\n });\r\n\r\n this.contentEl_ = Dom.createEl('div', {\r\n className: 'vjs-current-time-display',\r\n // label the current time for screen reader users\r\n innerHTML: 'Current Time ' + '0:00'\r\n }, {\r\n // tell screen readers not to automatically read the time as it changes\r\n 'aria-live': 'off'\r\n });\r\n\r\n el.appendChild(this.contentEl_);\r\n return el;\r\n };\r\n\r\n /**\r\n * Update current time display\r\n *\r\n * @method updateContent\r\n */\r\n\r\n CurrentTimeDisplay.prototype.updateContent = function updateContent() {\r\n // Allows for smooth scrubbing, when player can't keep up.\r\n var time = this.player_.scrubbing() ? this.player_.getCache().currentTime : this.player_.currentTime();\r\n var localizedText = this.localize('Current Time');\r\n var formattedTime = _utilsFormatTimeJs2['default'](time, this.player_.duration());\r\n if (formattedTime !== this.formattedTime_) {\r\n this.formattedTime_ = formattedTime;\r\n this.contentEl_.innerHTML = '' + localizedText + ' ' + formattedTime;\r\n }\r\n };\r\n\r\n return CurrentTimeDisplay;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('CurrentTimeDisplay', CurrentTimeDisplay);\r\nexports['default'] = CurrentTimeDisplay;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../utils/dom.js\":134,\"../../utils/format-time.js\":137}],93:[function(_dereq_,module,exports){\r\n/**\r\n * @file duration-display.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\r\n\r\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\r\n\r\n/**\r\n * Displays the duration\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class DurationDisplay\r\n */\r\n\r\nvar DurationDisplay = (function (_Component) {\r\n _inherits(DurationDisplay, _Component);\r\n\r\n function DurationDisplay(player, options) {\r\n _classCallCheck(this, DurationDisplay);\r\n\r\n _Component.call(this, player, options);\r\n\r\n // this might need to be changed to 'durationchange' instead of 'timeupdate' eventually,\r\n // however the durationchange event fires before this.player_.duration() is set,\r\n // so the value cannot be written out using this method.\r\n // Once the order of durationchange and this.player_.duration() being set is figured out,\r\n // this can be updated.\r\n this.on(player, 'timeupdate', this.updateContent);\r\n this.on(player, 'loadedmetadata', this.updateContent);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n DurationDisplay.prototype.createEl = function createEl() {\r\n var el = _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-duration vjs-time-control vjs-control'\r\n });\r\n\r\n this.contentEl_ = Dom.createEl('div', {\r\n className: 'vjs-duration-display',\r\n // label the duration time for screen reader users\r\n innerHTML: '' + this.localize('Duration Time') + ' 0:00'\r\n }, {\r\n // tell screen readers not to automatically read the time as it changes\r\n 'aria-live': 'off'\r\n });\r\n\r\n el.appendChild(this.contentEl_);\r\n return el;\r\n };\r\n\r\n /**\r\n * Update duration time display\r\n *\r\n * @method updateContent\r\n */\r\n\r\n DurationDisplay.prototype.updateContent = function updateContent() {\r\n var duration = this.player_.duration();\r\n if (duration && this.duration_ !== duration) {\r\n this.duration_ = duration;\r\n var localizedText = this.localize('Duration Time');\r\n var formattedTime = _utilsFormatTimeJs2['default'](duration);\r\n this.contentEl_.innerHTML = '' + localizedText + ' ' + formattedTime; // label the duration time for screen reader users\r\n }\r\n };\r\n\r\n return DurationDisplay;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('DurationDisplay', DurationDisplay);\r\nexports['default'] = DurationDisplay;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../utils/dom.js\":134,\"../../utils/format-time.js\":137}],94:[function(_dereq_,module,exports){\r\n/**\r\n * @file remaining-time-display.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsDomJs = _dereq_('../../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFormatTimeJs = _dereq_('../../utils/format-time.js');\r\n\r\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\r\n\r\n/**\r\n * Displays the time left in the video\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class RemainingTimeDisplay\r\n */\r\n\r\nvar RemainingTimeDisplay = (function (_Component) {\r\n _inherits(RemainingTimeDisplay, _Component);\r\n\r\n function RemainingTimeDisplay(player, options) {\r\n _classCallCheck(this, RemainingTimeDisplay);\r\n\r\n _Component.call(this, player, options);\r\n\r\n this.on(player, 'timeupdate', this.updateContent);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n RemainingTimeDisplay.prototype.createEl = function createEl() {\r\n var el = _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-remaining-time vjs-time-control vjs-control'\r\n });\r\n\r\n this.contentEl_ = Dom.createEl('div', {\r\n className: 'vjs-remaining-time-display',\r\n // label the remaining time for screen reader users\r\n innerHTML: '' + this.localize('Remaining Time') + ' -0:00'\r\n }, {\r\n // tell screen readers not to automatically read the time as it changes\r\n 'aria-live': 'off'\r\n });\r\n\r\n el.appendChild(this.contentEl_);\r\n return el;\r\n };\r\n\r\n /**\r\n * Update remaining time display\r\n *\r\n * @method updateContent\r\n */\r\n\r\n RemainingTimeDisplay.prototype.updateContent = function updateContent() {\r\n if (this.player_.duration()) {\r\n var localizedText = this.localize('Remaining Time');\r\n var formattedTime = _utilsFormatTimeJs2['default'](this.player_.remainingTime());\r\n if (formattedTime !== this.formattedTime_) {\r\n this.formattedTime_ = formattedTime;\r\n this.contentEl_.innerHTML = '' + localizedText + ' -' + formattedTime;\r\n }\r\n }\r\n\r\n // Allows for smooth scrubbing, when player can't keep up.\r\n // var time = (this.player_.scrubbing()) ? this.player_.getCache().currentTime : this.player_.currentTime();\r\n // this.contentEl_.innerHTML = vjs.formatTime(time, this.player_.duration());\r\n };\r\n\r\n return RemainingTimeDisplay;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('RemainingTimeDisplay', RemainingTimeDisplay);\r\nexports['default'] = RemainingTimeDisplay;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../utils/dom.js\":134,\"../../utils/format-time.js\":137}],95:[function(_dereq_,module,exports){\r\n/**\r\n * @file time-divider.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n/**\r\n * The separator between the current time and duration.\r\n * Can be hidden if it's not needed in the design.\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class TimeDivider\r\n */\r\n\r\nvar TimeDivider = (function (_Component) {\r\n _inherits(TimeDivider, _Component);\r\n\r\n function TimeDivider() {\r\n _classCallCheck(this, TimeDivider);\r\n\r\n _Component.apply(this, arguments);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n TimeDivider.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-time-control vjs-time-divider',\r\n innerHTML: '
/
'\r\n });\r\n };\r\n\r\n return TimeDivider;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('TimeDivider', TimeDivider);\r\nexports['default'] = TimeDivider;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67}],96:[function(_dereq_,module,exports){\r\n/**\r\n * @file volume-bar.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _sliderSliderJs = _dereq_('../../slider/slider.js');\r\n\r\nvar _sliderSliderJs2 = _interopRequireDefault(_sliderSliderJs);\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsFnJs = _dereq_('../../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\n// Required children\r\n\r\nvar _volumeLevelJs = _dereq_('./volume-level.js');\r\n\r\nvar _volumeLevelJs2 = _interopRequireDefault(_volumeLevelJs);\r\n\r\n/**\r\n * The bar that contains the volume level and can be clicked on to adjust the level\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Slider\r\n * @class VolumeBar\r\n */\r\n\r\nvar VolumeBar = (function (_Slider) {\r\n _inherits(VolumeBar, _Slider);\r\n\r\n function VolumeBar(player, options) {\r\n _classCallCheck(this, VolumeBar);\r\n\r\n _Slider.call(this, player, options);\r\n this.on(player, 'volumechange', this.updateARIAAttributes);\r\n player.ready(Fn.bind(this, this.updateARIAAttributes));\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n VolumeBar.prototype.createEl = function createEl() {\r\n return _Slider.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-volume-bar vjs-slider-bar'\r\n }, {\r\n 'aria-label': 'volume level'\r\n });\r\n };\r\n\r\n /**\r\n * Handle mouse move on volume bar\r\n *\r\n * @method handleMouseMove\r\n */\r\n\r\n VolumeBar.prototype.handleMouseMove = function handleMouseMove(event) {\r\n this.checkMuted();\r\n this.player_.volume(this.calculateDistance(event));\r\n };\r\n\r\n VolumeBar.prototype.checkMuted = function checkMuted() {\r\n if (this.player_.muted()) {\r\n this.player_.muted(false);\r\n }\r\n };\r\n\r\n /**\r\n * Get percent of volume level\r\n *\r\n * @retun {Number} Volume level percent\r\n * @method getPercent\r\n */\r\n\r\n VolumeBar.prototype.getPercent = function getPercent() {\r\n if (this.player_.muted()) {\r\n return 0;\r\n } else {\r\n return this.player_.volume();\r\n }\r\n };\r\n\r\n /**\r\n * Increase volume level for keyboard users\r\n *\r\n * @method stepForward\r\n */\r\n\r\n VolumeBar.prototype.stepForward = function stepForward() {\r\n this.checkMuted();\r\n this.player_.volume(this.player_.volume() + 0.1);\r\n };\r\n\r\n /**\r\n * Decrease volume level for keyboard users\r\n *\r\n * @method stepBack\r\n */\r\n\r\n VolumeBar.prototype.stepBack = function stepBack() {\r\n this.checkMuted();\r\n this.player_.volume(this.player_.volume() - 0.1);\r\n };\r\n\r\n /**\r\n * Update ARIA accessibility attributes\r\n *\r\n * @method updateARIAAttributes\r\n */\r\n\r\n VolumeBar.prototype.updateARIAAttributes = function updateARIAAttributes() {\r\n // Current value of volume bar as a percentage\r\n var volume = (this.player_.volume() * 100).toFixed(2);\r\n this.el_.setAttribute('aria-valuenow', volume);\r\n this.el_.setAttribute('aria-valuetext', volume + '%');\r\n };\r\n\r\n return VolumeBar;\r\n})(_sliderSliderJs2['default']);\r\n\r\nVolumeBar.prototype.options_ = {\r\n children: ['volumeLevel'],\r\n 'barName': 'volumeLevel'\r\n};\r\n\r\nVolumeBar.prototype.playerEvent = 'volumechange';\r\n\r\n_componentJs2['default'].registerComponent('VolumeBar', VolumeBar);\r\nexports['default'] = VolumeBar;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"../../slider/slider.js\":116,\"../../utils/fn.js\":136,\"./volume-level.js\":98}],97:[function(_dereq_,module,exports){\r\n/**\r\n * @file volume-control.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n// Required children\r\n\r\nvar _volumeBarJs = _dereq_('./volume-bar.js');\r\n\r\nvar _volumeBarJs2 = _interopRequireDefault(_volumeBarJs);\r\n\r\n/**\r\n * The component for controlling the volume level\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class VolumeControl\r\n */\r\n\r\nvar VolumeControl = (function (_Component) {\r\n _inherits(VolumeControl, _Component);\r\n\r\n function VolumeControl(player, options) {\r\n _classCallCheck(this, VolumeControl);\r\n\r\n _Component.call(this, player, options);\r\n\r\n // hide volume controls when they're not supported by the current tech\r\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\r\n this.addClass('vjs-hidden');\r\n }\r\n this.on(player, 'loadstart', function () {\r\n if (player.tech_['featuresVolumeControl'] === false) {\r\n this.addClass('vjs-hidden');\r\n } else {\r\n this.removeClass('vjs-hidden');\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n VolumeControl.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-volume-control vjs-control'\r\n });\r\n };\r\n\r\n return VolumeControl;\r\n})(_componentJs2['default']);\r\n\r\nVolumeControl.prototype.options_ = {\r\n children: ['volumeBar']\r\n};\r\n\r\n_componentJs2['default'].registerComponent('VolumeControl', VolumeControl);\r\nexports['default'] = VolumeControl;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67,\"./volume-bar.js\":96}],98:[function(_dereq_,module,exports){\r\n/**\r\n * @file volume-level.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\n/**\r\n * Shows volume level\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class VolumeLevel\r\n */\r\n\r\nvar VolumeLevel = (function (_Component) {\r\n _inherits(VolumeLevel, _Component);\r\n\r\n function VolumeLevel() {\r\n _classCallCheck(this, VolumeLevel);\r\n\r\n _Component.apply(this, arguments);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n VolumeLevel.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-volume-level',\r\n innerHTML: ''\r\n });\r\n };\r\n\r\n return VolumeLevel;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('VolumeLevel', VolumeLevel);\r\nexports['default'] = VolumeLevel;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../component.js\":67}],99:[function(_dereq_,module,exports){\r\n/**\r\n * @file volume-menu-button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\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; } }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _utilsFnJs = _dereq_('../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _componentJs = _dereq_('../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _popupPopupJs = _dereq_('../popup/popup.js');\r\n\r\nvar _popupPopupJs2 = _interopRequireDefault(_popupPopupJs);\r\n\r\nvar _popupPopupButtonJs = _dereq_('../popup/popup-button.js');\r\n\r\nvar _popupPopupButtonJs2 = _interopRequireDefault(_popupPopupButtonJs);\r\n\r\nvar _muteToggleJs = _dereq_('./mute-toggle.js');\r\n\r\nvar _muteToggleJs2 = _interopRequireDefault(_muteToggleJs);\r\n\r\nvar _volumeControlVolumeBarJs = _dereq_('./volume-control/volume-bar.js');\r\n\r\nvar _volumeControlVolumeBarJs2 = _interopRequireDefault(_volumeControlVolumeBarJs);\r\n\r\n/**\r\n * Button for volume popup\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends PopupButton\r\n * @class VolumeMenuButton\r\n */\r\n\r\nvar VolumeMenuButton = (function (_PopupButton) {\r\n _inherits(VolumeMenuButton, _PopupButton);\r\n\r\n function VolumeMenuButton(player) {\r\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n\r\n _classCallCheck(this, VolumeMenuButton);\r\n\r\n // Default to inline\r\n if (options.inline === undefined) {\r\n options.inline = true;\r\n }\r\n\r\n // If the vertical option isn't passed at all, default to true.\r\n if (options.vertical === undefined) {\r\n // If an inline volumeMenuButton is used, we should default to using\r\n // a horizontal slider for obvious reasons.\r\n if (options.inline) {\r\n options.vertical = false;\r\n } else {\r\n options.vertical = true;\r\n }\r\n }\r\n\r\n // The vertical option needs to be set on the volumeBar as well,\r\n // since that will need to be passed along to the VolumeBar constructor\r\n options.volumeBar = options.volumeBar || {};\r\n options.volumeBar.vertical = !!options.vertical;\r\n\r\n _PopupButton.call(this, player, options);\r\n\r\n // Same listeners as MuteToggle\r\n this.on(player, 'volumechange', this.volumeUpdate);\r\n this.on(player, 'loadstart', this.volumeUpdate);\r\n\r\n // hide mute toggle if the current tech doesn't support volume control\r\n function updateVisibility() {\r\n if (player.tech_ && player.tech_['featuresVolumeControl'] === false) {\r\n this.addClass('vjs-hidden');\r\n } else {\r\n this.removeClass('vjs-hidden');\r\n }\r\n }\r\n\r\n updateVisibility.call(this);\r\n this.on(player, 'loadstart', updateVisibility);\r\n\r\n this.on(this.volumeBar, ['slideractive', 'focus'], function () {\r\n this.addClass('vjs-slider-active');\r\n });\r\n\r\n this.on(this.volumeBar, ['sliderinactive', 'blur'], function () {\r\n this.removeClass('vjs-slider-active');\r\n });\r\n\r\n this.on(this.volumeBar, ['focus'], function () {\r\n this.addClass('vjs-lock-showing');\r\n });\r\n\r\n this.on(this.volumeBar, ['blur'], function () {\r\n this.removeClass('vjs-lock-showing');\r\n });\r\n }\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n VolumeMenuButton.prototype.buildCSSClass = function buildCSSClass() {\r\n var orientationClass = '';\r\n if (!!this.options_.vertical) {\r\n orientationClass = 'vjs-volume-menu-button-vertical';\r\n } else {\r\n orientationClass = 'vjs-volume-menu-button-horizontal';\r\n }\r\n\r\n return 'vjs-volume-menu-button ' + _PopupButton.prototype.buildCSSClass.call(this) + ' ' + orientationClass;\r\n };\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {Popup} The volume popup button\r\n * @method createPopup\r\n */\r\n\r\n VolumeMenuButton.prototype.createPopup = function createPopup() {\r\n var popup = new _popupPopupJs2['default'](this.player_, {\r\n contentElType: 'div'\r\n });\r\n\r\n var vb = new _volumeControlVolumeBarJs2['default'](this.player_, this.options_.volumeBar);\r\n\r\n popup.addChild(vb);\r\n\r\n this.menuContent = popup;\r\n this.volumeBar = vb;\r\n\r\n this.attachVolumeBarEvents();\r\n\r\n return popup;\r\n };\r\n\r\n /**\r\n * Handle click on volume popup and calls super\r\n *\r\n * @method handleClick\r\n */\r\n\r\n VolumeMenuButton.prototype.handleClick = function handleClick() {\r\n _muteToggleJs2['default'].prototype.handleClick.call(this);\r\n _PopupButton.prototype.handleClick.call(this);\r\n };\r\n\r\n VolumeMenuButton.prototype.attachVolumeBarEvents = function attachVolumeBarEvents() {\r\n this.menuContent.on(['mousedown', 'touchdown'], Fn.bind(this, this.handleMouseDown));\r\n };\r\n\r\n VolumeMenuButton.prototype.handleMouseDown = function handleMouseDown(event) {\r\n this.on(['mousemove', 'touchmove'], Fn.bind(this.volumeBar, this.volumeBar.handleMouseMove));\r\n this.on(this.el_.ownerDocument, ['mouseup', 'touchend'], this.handleMouseUp);\r\n };\r\n\r\n VolumeMenuButton.prototype.handleMouseUp = function handleMouseUp(event) {\r\n this.off(['mousemove', 'touchmove'], Fn.bind(this.volumeBar, this.volumeBar.handleMouseMove));\r\n };\r\n\r\n return VolumeMenuButton;\r\n})(_popupPopupButtonJs2['default']);\r\n\r\nVolumeMenuButton.prototype.volumeUpdate = _muteToggleJs2['default'].prototype.update;\r\nVolumeMenuButton.prototype.controlText_ = 'Mute';\r\n\r\n_componentJs2['default'].registerComponent('VolumeMenuButton', VolumeMenuButton);\r\nexports['default'] = VolumeMenuButton;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component.js\":67,\"../popup/popup-button.js\":112,\"../popup/popup.js\":113,\"../utils/fn.js\":136,\"./mute-toggle.js\":71,\"./volume-control/volume-bar.js\":96}],100:[function(_dereq_,module,exports){\r\n/**\r\n * @file error-display.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _component = _dereq_('./component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _modalDialog = _dereq_('./modal-dialog');\r\n\r\nvar _modalDialog2 = _interopRequireDefault(_modalDialog);\r\n\r\nvar _utilsDom = _dereq_('./utils/dom');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDom);\r\n\r\nvar _utilsMergeOptions = _dereq_('./utils/merge-options');\r\n\r\nvar _utilsMergeOptions2 = _interopRequireDefault(_utilsMergeOptions);\r\n\r\n/**\r\n * Display that an error has occurred making the video unplayable.\r\n *\r\n * @extends ModalDialog\r\n * @class ErrorDisplay\r\n */\r\n\r\nvar ErrorDisplay = (function (_ModalDialog) {\r\n _inherits(ErrorDisplay, _ModalDialog);\r\n\r\n /**\r\n * Constructor for error display modal.\r\n *\r\n * @param {Player} player\r\n * @param {Object} [options]\r\n */\r\n\r\n function ErrorDisplay(player, options) {\r\n _classCallCheck(this, ErrorDisplay);\r\n\r\n _ModalDialog.call(this, player, options);\r\n this.on(player, 'error', this.open);\r\n }\r\n\r\n /**\r\n * Include the old class for backward-compatibility.\r\n *\r\n * This can be removed in 6.0.\r\n *\r\n * @method buildCSSClass\r\n * @deprecated\r\n * @return {String}\r\n */\r\n\r\n ErrorDisplay.prototype.buildCSSClass = function buildCSSClass() {\r\n return 'vjs-error-display ' + _ModalDialog.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * Generates the modal content based on the player error.\r\n *\r\n * @return {String|Null}\r\n */\r\n\r\n ErrorDisplay.prototype.content = function content() {\r\n var error = this.player().error();\r\n return error ? this.localize(error.message) : '';\r\n };\r\n\r\n return ErrorDisplay;\r\n})(_modalDialog2['default']);\r\n\r\nErrorDisplay.prototype.options_ = _utilsMergeOptions2['default'](_modalDialog2['default'].prototype.options_, {\r\n fillAlways: true,\r\n temporary: false,\r\n uncloseable: true\r\n});\r\n\r\n_component2['default'].registerComponent('ErrorDisplay', ErrorDisplay);\r\nexports['default'] = ErrorDisplay;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./component\":67,\"./modal-dialog\":109,\"./utils/dom\":134,\"./utils/merge-options\":140}],101:[function(_dereq_,module,exports){\r\n/**\r\n * @file event-target.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nvar _utilsEventsJs = _dereq_('./utils/events.js');\r\n\r\nvar Events = _interopRequireWildcard(_utilsEventsJs);\r\n\r\nvar EventTarget = function EventTarget() {};\r\n\r\nEventTarget.prototype.allowedEvents_ = {};\r\n\r\nEventTarget.prototype.on = function (type, fn) {\r\n // Remove the addEventListener alias before calling Events.on\r\n // so we don't get into an infinite type loop\r\n var ael = this.addEventListener;\r\n this.addEventListener = Function.prototype;\r\n Events.on(this, type, fn);\r\n this.addEventListener = ael;\r\n};\r\nEventTarget.prototype.addEventListener = EventTarget.prototype.on;\r\n\r\nEventTarget.prototype.off = function (type, fn) {\r\n Events.off(this, type, fn);\r\n};\r\nEventTarget.prototype.removeEventListener = EventTarget.prototype.off;\r\n\r\nEventTarget.prototype.one = function (type, fn) {\r\n Events.one(this, type, fn);\r\n};\r\n\r\nEventTarget.prototype.trigger = function (event) {\r\n var type = event.type || event;\r\n\r\n if (typeof event === 'string') {\r\n event = {\r\n type: type\r\n };\r\n }\r\n event = Events.fixEvent(event);\r\n\r\n if (this.allowedEvents_[type] && this['on' + type]) {\r\n this['on' + type](event);\r\n }\r\n\r\n Events.trigger(this, event);\r\n};\r\n// The standard DOM EventTarget.dispatchEvent() is aliased to trigger()\r\nEventTarget.prototype.dispatchEvent = EventTarget.prototype.trigger;\r\n\r\nexports['default'] = EventTarget;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./utils/events.js\":135}],102:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _utilsLog = _dereq_('./utils/log');\r\n\r\nvar _utilsLog2 = _interopRequireDefault(_utilsLog);\r\n\r\n/*\r\n * @file extend.js\r\n *\r\n * A combination of node inherits and babel's inherits (after transpile).\r\n * Both work the same but node adds `super_` to the subClass\r\n * and Bable adds the superClass as __proto__. Both seem useful.\r\n */\r\nvar _inherits = function _inherits(subClass, superClass) {\r\n if (typeof superClass !== 'function' && superClass !== null) {\r\n throw new TypeError('Super expression must either be null or a function, not ' + typeof superClass);\r\n }\r\n\r\n subClass.prototype = Object.create(superClass && superClass.prototype, {\r\n constructor: {\r\n value: subClass,\r\n enumerable: false,\r\n writable: true,\r\n configurable: true\r\n }\r\n });\r\n\r\n if (superClass) {\r\n // node\r\n subClass.super_ = superClass;\r\n }\r\n};\r\n\r\n/*\r\n * Function for subclassing using the same inheritance that\r\n * videojs uses internally\r\n * ```js\r\n * var Button = videojs.getComponent('Button');\r\n * ```\r\n * ```js\r\n * var MyButton = videojs.extend(Button, {\r\n * constructor: function(player, options) {\r\n * Button.call(this, player, options);\r\n * },\r\n * onClick: function() {\r\n * // doSomething\r\n * }\r\n * });\r\n * ```\r\n */\r\nvar extendFn = function extendFn(superClass) {\r\n var subClassMethods = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n\r\n var subClass = function subClass() {\r\n superClass.apply(this, arguments);\r\n };\r\n var methods = {};\r\n\r\n if (typeof subClassMethods === 'object') {\r\n if (typeof subClassMethods.init === 'function') {\r\n _utilsLog2['default'].warn('Constructor logic via init() is deprecated; please use constructor() instead.');\r\n subClassMethods.constructor = subClassMethods.init;\r\n }\r\n if (subClassMethods.constructor !== Object.prototype.constructor) {\r\n subClass = subClassMethods.constructor;\r\n }\r\n methods = subClassMethods;\r\n } else if (typeof subClassMethods === 'function') {\r\n subClass = subClassMethods;\r\n }\r\n\r\n _inherits(subClass, superClass);\r\n\r\n // Extend subObj's prototype with functions and other properties from props\r\n for (var name in methods) {\r\n if (methods.hasOwnProperty(name)) {\r\n subClass.prototype[name] = methods[name];\r\n }\r\n }\r\n\r\n return subClass;\r\n};\r\n\r\nexports['default'] = extendFn;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./utils/log\":139}],103:[function(_dereq_,module,exports){\r\n/**\r\n * @file fullscreen-api.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\n/*\r\n * Store the browser-specific methods for the fullscreen API\r\n * @type {Object|undefined}\r\n * @private\r\n */\r\nvar FullscreenApi = {};\r\n\r\n// browser API methods\r\n// map approach from Screenful.js - https://github.com/sindresorhus/screenfull.js\r\nvar apiMap = [\r\n// Spec: https://dvcs.w3.org/hg/fullscreen/raw-file/tip/Overview.html\r\n['requestFullscreen', 'exitFullscreen', 'fullscreenElement', 'fullscreenEnabled', 'fullscreenchange', 'fullscreenerror'],\r\n// WebKit\r\n['webkitRequestFullscreen', 'webkitExitFullscreen', 'webkitFullscreenElement', 'webkitFullscreenEnabled', 'webkitfullscreenchange', 'webkitfullscreenerror'],\r\n// Old WebKit (Safari 5.1)\r\n['webkitRequestFullScreen', 'webkitCancelFullScreen', 'webkitCurrentFullScreenElement', 'webkitCancelFullScreen', 'webkitfullscreenchange', 'webkitfullscreenerror'],\r\n// Mozilla\r\n['mozRequestFullScreen', 'mozCancelFullScreen', 'mozFullScreenElement', 'mozFullScreenEnabled', 'mozfullscreenchange', 'mozfullscreenerror'],\r\n// Microsoft\r\n['msRequestFullscreen', 'msExitFullscreen', 'msFullscreenElement', 'msFullscreenEnabled', 'MSFullscreenChange', 'MSFullscreenError']];\r\n\r\nvar specApi = apiMap[0];\r\nvar browserApi = undefined;\r\n\r\n// determine the supported set of functions\r\nfor (var i = 0; i < apiMap.length; i++) {\r\n // check for exitFullscreen function\r\n if (apiMap[i][1] in _globalDocument2['default']) {\r\n browserApi = apiMap[i];\r\n break;\r\n }\r\n}\r\n\r\n// map the browser API names to the spec API names\r\nif (browserApi) {\r\n for (var i = 0; i < browserApi.length; i++) {\r\n FullscreenApi[specApi[i]] = browserApi[i];\r\n }\r\n}\r\n\r\nexports['default'] = FullscreenApi;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"global/document\":1}],104:[function(_dereq_,module,exports){\r\n/**\r\n * @file loading-spinner.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _component = _dereq_('./component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\n/* Loading Spinner\r\n================================================================================ */\r\n/**\r\n * Loading spinner for waiting events\r\n *\r\n * @extends Component\r\n * @class LoadingSpinner\r\n */\r\n\r\nvar LoadingSpinner = (function (_Component) {\r\n _inherits(LoadingSpinner, _Component);\r\n\r\n function LoadingSpinner() {\r\n _classCallCheck(this, LoadingSpinner);\r\n\r\n _Component.apply(this, arguments);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @method createEl\r\n */\r\n\r\n LoadingSpinner.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-loading-spinner',\r\n dir: 'ltr'\r\n });\r\n };\r\n\r\n return LoadingSpinner;\r\n})(_component2['default']);\r\n\r\n_component2['default'].registerComponent('LoadingSpinner', LoadingSpinner);\r\nexports['default'] = LoadingSpinner;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./component\":67}],105:[function(_dereq_,module,exports){\r\n/**\r\n * @file media-error.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _objectAssign = _dereq_('object.assign');\r\n\r\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\r\n\r\n/*\r\n * Custom MediaError to mimic the HTML5 MediaError\r\n *\r\n * @param {Number} code The media error code\r\n */\r\nvar MediaError = function MediaError(code) {\r\n if (typeof code === 'number') {\r\n this.code = code;\r\n } else if (typeof code === 'string') {\r\n // default code is zero, so this is a custom error\r\n this.message = code;\r\n } else if (typeof code === 'object') {\r\n // object\r\n _objectAssign2['default'](this, code);\r\n }\r\n\r\n if (!this.message) {\r\n this.message = MediaError.defaultMessages[this.code] || '';\r\n }\r\n};\r\n\r\n/*\r\n * The error code that refers two one of the defined\r\n * MediaError types\r\n *\r\n * @type {Number}\r\n */\r\nMediaError.prototype.code = 0;\r\n\r\n/*\r\n * An optional message to be shown with the error.\r\n * Message is not part of the HTML5 video spec\r\n * but allows for more informative custom errors.\r\n *\r\n * @type {String}\r\n */\r\nMediaError.prototype.message = '';\r\n\r\n/*\r\n * An optional status code that can be set by plugins\r\n * to allow even more detail about the error.\r\n * For example the HLS plugin might provide the specific\r\n * HTTP status code that was returned when the error\r\n * occurred, then allowing a custom error overlay\r\n * to display more information.\r\n *\r\n * @type {Array}\r\n */\r\nMediaError.prototype.status = null;\r\n\r\nMediaError.errorTypes = ['MEDIA_ERR_CUSTOM', // = 0\r\n'MEDIA_ERR_ABORTED', // = 1\r\n'MEDIA_ERR_NETWORK', // = 2\r\n'MEDIA_ERR_DECODE', // = 3\r\n'MEDIA_ERR_SRC_NOT_SUPPORTED', // = 4\r\n'MEDIA_ERR_ENCRYPTED' // = 5\r\n];\r\n\r\nMediaError.defaultMessages = {\r\n 1: 'You aborted the media playback',\r\n 2: 'A network error caused the media download to fail part-way.',\r\n 3: 'The media playback was aborted due to a corruption problem or because the media used features your browser did not support.',\r\n 4: 'The media could not be loaded, either because the server or network failed or because the format is not supported.',\r\n 5: 'The media is encrypted and we do not have the keys to decrypt it.'\r\n};\r\n\r\n// Add types as properties on MediaError\r\n// e.g. MediaError.MEDIA_ERR_SRC_NOT_SUPPORTED = 4;\r\nfor (var errNum = 0; errNum < MediaError.errorTypes.length; errNum++) {\r\n MediaError[MediaError.errorTypes[errNum]] = errNum;\r\n // values should be accessible on both the class and instance\r\n MediaError.prototype[MediaError.errorTypes[errNum]] = errNum;\r\n}\r\n\r\nexports['default'] = MediaError;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"object.assign\":45}],106:[function(_dereq_,module,exports){\r\n/**\r\n * @file menu-button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _clickableComponentJs = _dereq_('../clickable-component.js');\r\n\r\nvar _clickableComponentJs2 = _interopRequireDefault(_clickableComponentJs);\r\n\r\nvar _componentJs = _dereq_('../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _menuJs = _dereq_('./menu.js');\r\n\r\nvar _menuJs2 = _interopRequireDefault(_menuJs);\r\n\r\nvar _utilsDomJs = _dereq_('../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFnJs = _dereq_('../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsToTitleCaseJs = _dereq_('../utils/to-title-case.js');\r\n\r\nvar _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);\r\n\r\n/**\r\n * A button class with a popup menu\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Button\r\n * @class MenuButton\r\n */\r\n\r\nvar MenuButton = (function (_ClickableComponent) {\r\n _inherits(MenuButton, _ClickableComponent);\r\n\r\n function MenuButton(player) {\r\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n\r\n _classCallCheck(this, MenuButton);\r\n\r\n _ClickableComponent.call(this, player, options);\r\n\r\n this.update();\r\n\r\n this.enabled_ = true;\r\n\r\n this.el_.setAttribute('aria-haspopup', 'true');\r\n this.el_.setAttribute('role', 'menuitem');\r\n this.on('keydown', this.handleSubmenuKeyPress);\r\n }\r\n\r\n /**\r\n * Update menu\r\n *\r\n * @method update\r\n */\r\n\r\n MenuButton.prototype.update = function update() {\r\n var menu = this.createMenu();\r\n\r\n if (this.menu) {\r\n this.removeChild(this.menu);\r\n }\r\n\r\n this.menu = menu;\r\n this.addChild(menu);\r\n\r\n /**\r\n * Track the state of the menu button\r\n *\r\n * @type {Boolean}\r\n * @private\r\n */\r\n this.buttonPressed_ = false;\r\n this.el_.setAttribute('aria-expanded', 'false');\r\n\r\n if (this.items && this.items.length === 0) {\r\n this.hide();\r\n } else if (this.items && this.items.length > 1) {\r\n this.show();\r\n }\r\n };\r\n\r\n /**\r\n * Create menu\r\n *\r\n * @return {Menu} The constructed menu\r\n * @method createMenu\r\n */\r\n\r\n MenuButton.prototype.createMenu = function createMenu() {\r\n var menu = new _menuJs2['default'](this.player_);\r\n\r\n // Add a title list item to the top\r\n if (this.options_.title) {\r\n var title = Dom.createEl('li', {\r\n className: 'vjs-menu-title',\r\n innerHTML: _utilsToTitleCaseJs2['default'](this.options_.title),\r\n tabIndex: -1\r\n });\r\n menu.children_.unshift(title);\r\n Dom.insertElFirst(title, menu.contentEl());\r\n }\r\n\r\n this.items = this['createItems']();\r\n\r\n if (this.items) {\r\n // Add menu items to the menu\r\n for (var i = 0; i < this.items.length; i++) {\r\n menu.addItem(this.items[i]);\r\n }\r\n }\r\n\r\n return menu;\r\n };\r\n\r\n /**\r\n * Create the list of menu items. Specific to each subclass.\r\n *\r\n * @method createItems\r\n */\r\n\r\n MenuButton.prototype.createItems = function createItems() {};\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n MenuButton.prototype.createEl = function createEl() {\r\n return _ClickableComponent.prototype.createEl.call(this, 'div', {\r\n className: this.buildCSSClass()\r\n });\r\n };\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n MenuButton.prototype.buildCSSClass = function buildCSSClass() {\r\n var menuButtonClass = 'vjs-menu-button';\r\n\r\n // If the inline option is passed, we want to use different styles altogether.\r\n if (this.options_.inline === true) {\r\n menuButtonClass += '-inline';\r\n } else {\r\n menuButtonClass += '-popup';\r\n }\r\n\r\n return 'vjs-menu-button ' + menuButtonClass + ' ' + _ClickableComponent.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * When you click the button it adds focus, which\r\n * will show the menu indefinitely.\r\n * So we'll remove focus when the mouse leaves the button.\r\n * Focus is needed for tab navigation.\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @method handleClick\r\n */\r\n\r\n MenuButton.prototype.handleClick = function handleClick() {\r\n this.one('mouseout', Fn.bind(this, function () {\r\n this.menu.unlockShowing();\r\n this.el_.blur();\r\n }));\r\n if (this.buttonPressed_) {\r\n this.unpressButton();\r\n } else {\r\n this.pressButton();\r\n }\r\n };\r\n\r\n /**\r\n * Handle key press on menu\r\n *\r\n * @param {Object} event Key press event\r\n * @method handleKeyPress\r\n */\r\n\r\n MenuButton.prototype.handleKeyPress = function handleKeyPress(event) {\r\n\r\n // Escape (27) key or Tab (9) key unpress the 'button'\r\n if (event.which === 27 || event.which === 9) {\r\n if (this.buttonPressed_) {\r\n this.unpressButton();\r\n }\r\n // Don't preventDefault for Tab key - we still want to lose focus\r\n if (event.which !== 9) {\r\n event.preventDefault();\r\n }\r\n // Up (38) key or Down (40) key press the 'button'\r\n } else if (event.which === 38 || event.which === 40) {\r\n if (!this.buttonPressed_) {\r\n this.pressButton();\r\n event.preventDefault();\r\n }\r\n } else {\r\n _ClickableComponent.prototype.handleKeyPress.call(this, event);\r\n }\r\n };\r\n\r\n /**\r\n * Handle key press on submenu\r\n *\r\n * @param {Object} event Key press event\r\n * @method handleSubmenuKeyPress\r\n */\r\n\r\n MenuButton.prototype.handleSubmenuKeyPress = function handleSubmenuKeyPress(event) {\r\n\r\n // Escape (27) key or Tab (9) key unpress the 'button'\r\n if (event.which === 27 || event.which === 9) {\r\n if (this.buttonPressed_) {\r\n this.unpressButton();\r\n }\r\n // Don't preventDefault for Tab key - we still want to lose focus\r\n if (event.which !== 9) {\r\n event.preventDefault();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Makes changes based on button pressed\r\n *\r\n * @method pressButton\r\n */\r\n\r\n MenuButton.prototype.pressButton = function pressButton() {\r\n if (this.enabled_) {\r\n this.buttonPressed_ = true;\r\n this.menu.lockShowing();\r\n this.el_.setAttribute('aria-expanded', 'true');\r\n this.menu.focus(); // set the focus into the submenu\r\n }\r\n };\r\n\r\n /**\r\n * Makes changes based on button unpressed\r\n *\r\n * @method unpressButton\r\n */\r\n\r\n MenuButton.prototype.unpressButton = function unpressButton() {\r\n if (this.enabled_) {\r\n this.buttonPressed_ = false;\r\n this.menu.unlockShowing();\r\n this.el_.setAttribute('aria-expanded', 'false');\r\n this.el_.focus(); // Set focus back to this menu button\r\n }\r\n };\r\n\r\n /**\r\n * Disable the menu button\r\n *\r\n * @return {Component}\r\n * @method disable\r\n */\r\n\r\n MenuButton.prototype.disable = function disable() {\r\n // Unpress, but don't force focus on this button\r\n this.buttonPressed_ = false;\r\n this.menu.unlockShowing();\r\n this.el_.setAttribute('aria-expanded', 'false');\r\n\r\n this.enabled_ = false;\r\n\r\n return _ClickableComponent.prototype.disable.call(this);\r\n };\r\n\r\n /**\r\n * Enable the menu button\r\n *\r\n * @return {Component}\r\n * @method disable\r\n */\r\n\r\n MenuButton.prototype.enable = function enable() {\r\n this.enabled_ = true;\r\n\r\n return _ClickableComponent.prototype.enable.call(this);\r\n };\r\n\r\n return MenuButton;\r\n})(_clickableComponentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('MenuButton', MenuButton);\r\nexports['default'] = MenuButton;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../clickable-component.js\":65,\"../component.js\":67,\"../utils/dom.js\":134,\"../utils/fn.js\":136,\"../utils/to-title-case.js\":143,\"./menu.js\":108}],107:[function(_dereq_,module,exports){\r\n/**\r\n * @file menu-item.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _clickableComponentJs = _dereq_('../clickable-component.js');\r\n\r\nvar _clickableComponentJs2 = _interopRequireDefault(_clickableComponentJs);\r\n\r\nvar _componentJs = _dereq_('../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _objectAssign = _dereq_('object.assign');\r\n\r\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\r\n\r\n/**\r\n * The component for a menu item. `
  • `\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Button\r\n * @class MenuItem\r\n */\r\n\r\nvar MenuItem = (function (_ClickableComponent) {\r\n _inherits(MenuItem, _ClickableComponent);\r\n\r\n function MenuItem(player, options) {\r\n _classCallCheck(this, MenuItem);\r\n\r\n _ClickableComponent.call(this, player, options);\r\n\r\n this.selectable = options['selectable'];\r\n\r\n this.selected(options['selected']);\r\n\r\n if (this.selectable) {\r\n // TODO: May need to be either menuitemcheckbox or menuitemradio,\r\n // and may need logical grouping of menu items.\r\n this.el_.setAttribute('role', 'menuitemcheckbox');\r\n } else {\r\n this.el_.setAttribute('role', 'menuitem');\r\n }\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @param {String=} type Desc\r\n * @param {Object=} props Desc\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n MenuItem.prototype.createEl = function createEl(type, props, attrs) {\r\n return _ClickableComponent.prototype.createEl.call(this, 'li', _objectAssign2['default']({\r\n className: 'vjs-menu-item',\r\n innerHTML: this.localize(this.options_['label']),\r\n tabIndex: -1\r\n }, props), attrs);\r\n };\r\n\r\n /**\r\n * Handle a click on the menu item, and set it to selected\r\n *\r\n * @method handleClick\r\n */\r\n\r\n MenuItem.prototype.handleClick = function handleClick() {\r\n this.selected(true);\r\n };\r\n\r\n /**\r\n * Set this menu item as selected or not\r\n *\r\n * @param {Boolean} selected\r\n * @method selected\r\n */\r\n\r\n MenuItem.prototype.selected = function selected(_selected) {\r\n if (this.selectable) {\r\n if (_selected) {\r\n this.addClass('vjs-selected');\r\n this.el_.setAttribute('aria-checked', 'true');\r\n // aria-checked isn't fully supported by browsers/screen readers,\r\n // so indicate selected state to screen reader in the control text.\r\n this.controlText(', selected');\r\n } else {\r\n this.removeClass('vjs-selected');\r\n this.el_.setAttribute('aria-checked', 'false');\r\n // Indicate un-selected state to screen reader\r\n // Note that a space clears out the selected state text\r\n this.controlText(' ');\r\n }\r\n }\r\n };\r\n\r\n return MenuItem;\r\n})(_clickableComponentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('MenuItem', MenuItem);\r\nexports['default'] = MenuItem;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../clickable-component.js\":65,\"../component.js\":67,\"object.assign\":45}],108:[function(_dereq_,module,exports){\r\n/**\r\n * @file menu.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsDomJs = _dereq_('../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFnJs = _dereq_('../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsEventsJs = _dereq_('../utils/events.js');\r\n\r\nvar Events = _interopRequireWildcard(_utilsEventsJs);\r\n\r\n/**\r\n * The Menu component is used to build pop up menus, including subtitle and\r\n * captions selection menus.\r\n *\r\n * @extends Component\r\n * @class Menu\r\n */\r\n\r\nvar Menu = (function (_Component) {\r\n _inherits(Menu, _Component);\r\n\r\n function Menu(player, options) {\r\n _classCallCheck(this, Menu);\r\n\r\n _Component.call(this, player, options);\r\n\r\n this.focusedChild_ = -1;\r\n\r\n this.on('keydown', this.handleKeyPress);\r\n }\r\n\r\n /**\r\n * Add a menu item to the menu\r\n *\r\n * @param {Object|String} component Component or component type to add\r\n * @method addItem\r\n */\r\n\r\n Menu.prototype.addItem = function addItem(component) {\r\n this.addChild(component);\r\n component.on('click', Fn.bind(this, function () {\r\n this.unlockShowing();\r\n //TODO: Need to set keyboard focus back to the menuButton\r\n }));\r\n };\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n Menu.prototype.createEl = function createEl() {\r\n var contentElType = this.options_.contentElType || 'ul';\r\n this.contentEl_ = Dom.createEl(contentElType, {\r\n className: 'vjs-menu-content'\r\n });\r\n this.contentEl_.setAttribute('role', 'menu');\r\n var el = _Component.prototype.createEl.call(this, 'div', {\r\n append: this.contentEl_,\r\n className: 'vjs-menu'\r\n });\r\n el.setAttribute('role', 'presentation');\r\n el.setAttribute('style', 'max-width: none !important;');\r\n el.appendChild(this.contentEl_);\r\n\r\n // Prevent clicks from bubbling up. Needed for Menu Buttons,\r\n // where a click on the parent is significant\r\n Events.on(el, 'click', function (event) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n });\r\n\r\n return el;\r\n };\r\n\r\n /**\r\n * Handle key press for menu\r\n *\r\n * @param {Object} event Event object\r\n * @method handleKeyPress\r\n */\r\n\r\n Menu.prototype.handleKeyPress = function handleKeyPress(event) {\r\n if (event.which === 37 || event.which === 40) {\r\n // Left and Down Arrows\r\n event.preventDefault();\r\n this.stepForward();\r\n } else if (event.which === 38 || event.which === 39) {\r\n // Up and Right Arrows\r\n event.preventDefault();\r\n this.stepBack();\r\n }\r\n };\r\n\r\n /**\r\n * Move to next (lower) menu item for keyboard users\r\n *\r\n * @method stepForward\r\n */\r\n\r\n Menu.prototype.stepForward = function stepForward() {\r\n var stepChild = 0;\r\n\r\n if (this.focusedChild_ !== undefined) {\r\n stepChild = this.focusedChild_ + 1;\r\n }\r\n this.focus(stepChild);\r\n };\r\n\r\n /**\r\n * Move to previous (higher) menu item for keyboard users\r\n *\r\n * @method stepBack\r\n */\r\n\r\n Menu.prototype.stepBack = function stepBack() {\r\n var stepChild = 0;\r\n\r\n if (this.focusedChild_ !== undefined) {\r\n stepChild = this.focusedChild_ - 1;\r\n }\r\n this.focus(stepChild);\r\n };\r\n\r\n /**\r\n * Set focus on a menu item in the menu\r\n *\r\n * @param {Object|String} item Index of child item set focus on\r\n * @method focus\r\n */\r\n\r\n Menu.prototype.focus = function focus() {\r\n var item = arguments.length <= 0 || arguments[0] === undefined ? 0 : arguments[0];\r\n\r\n var children = this.children().slice();\r\n var haveTitle = children.length && children[0].className && /vjs-menu-title/.test(children[0].className);\r\n\r\n if (haveTitle) {\r\n children.shift();\r\n }\r\n\r\n if (children.length > 0) {\r\n if (item < 0) {\r\n item = 0;\r\n } else if (item >= children.length) {\r\n item = children.length - 1;\r\n }\r\n\r\n this.focusedChild_ = item;\r\n\r\n children[item].el_.focus();\r\n }\r\n };\r\n\r\n return Menu;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('Menu', Menu);\r\nexports['default'] = Menu;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component.js\":67,\"../utils/dom.js\":134,\"../utils/events.js\":135,\"../utils/fn.js\":136}],109:[function(_dereq_,module,exports){\r\n/**\r\n * @file modal-dialog.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\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; } }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _utilsDom = _dereq_('./utils/dom');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDom);\r\n\r\nvar _utilsFn = _dereq_('./utils/fn');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFn);\r\n\r\nvar _utilsLog = _dereq_('./utils/log');\r\n\r\nvar _utilsLog2 = _interopRequireDefault(_utilsLog);\r\n\r\nvar _component = _dereq_('./component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _closeButton = _dereq_('./close-button');\r\n\r\nvar _closeButton2 = _interopRequireDefault(_closeButton);\r\n\r\nvar MODAL_CLASS_NAME = 'vjs-modal-dialog';\r\nvar ESC = 27;\r\n\r\n/**\r\n * The `ModalDialog` displays over the video and its controls, which blocks\r\n * interaction with the player until it is closed.\r\n *\r\n * Modal dialogs include a \"Close\" button and will close when that button\r\n * is activated - or when ESC is pressed anywhere.\r\n *\r\n * @extends Component\r\n * @class ModalDialog\r\n */\r\n\r\nvar ModalDialog = (function (_Component) {\r\n _inherits(ModalDialog, _Component);\r\n\r\n /**\r\n * Constructor for modals.\r\n *\r\n * @param {Player} player\r\n * @param {Object} [options]\r\n * @param {Mixed} [options.content=undefined]\r\n * Provide customized content for this modal.\r\n *\r\n * @param {String} [options.description]\r\n * A text description for the modal, primarily for accessibility.\r\n *\r\n * @param {Boolean} [options.fillAlways=false]\r\n * Normally, modals are automatically filled only the first time\r\n * they open. This tells the modal to refresh its content\r\n * every time it opens.\r\n *\r\n * @param {String} [options.label]\r\n * A text label for the modal, primarily for accessibility.\r\n *\r\n * @param {Boolean} [options.temporary=true]\r\n * If `true`, the modal can only be opened once; it will be\r\n * disposed as soon as it's closed.\r\n *\r\n * @param {Boolean} [options.uncloseable=false]\r\n * If `true`, the user will not be able to close the modal\r\n * through the UI in the normal ways. Programmatic closing is\r\n * still possible.\r\n *\r\n */\r\n\r\n function ModalDialog(player, options) {\r\n _classCallCheck(this, ModalDialog);\r\n\r\n _Component.call(this, player, options);\r\n this.opened_ = this.hasBeenOpened_ = this.hasBeenFilled_ = false;\r\n\r\n this.closeable(!this.options_.uncloseable);\r\n this.content(this.options_.content);\r\n\r\n // Make sure the contentEl is defined AFTER any children are initialized\r\n // because we only want the contents of the modal in the contentEl\r\n // (not the UI elements like the close button).\r\n this.contentEl_ = Dom.createEl('div', {\r\n className: MODAL_CLASS_NAME + '-content'\r\n }, {\r\n role: 'document'\r\n });\r\n\r\n this.descEl_ = Dom.createEl('p', {\r\n className: MODAL_CLASS_NAME + '-description vjs-offscreen',\r\n id: this.el().getAttribute('aria-describedby')\r\n });\r\n\r\n Dom.textContent(this.descEl_, this.description());\r\n this.el_.appendChild(this.descEl_);\r\n this.el_.appendChild(this.contentEl_);\r\n }\r\n\r\n /*\r\n * Modal dialog default options.\r\n *\r\n * @type {Object}\r\n * @private\r\n */\r\n\r\n /**\r\n * Create the modal's DOM element\r\n *\r\n * @method createEl\r\n * @return {Element}\r\n */\r\n\r\n ModalDialog.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: this.buildCSSClass(),\r\n tabIndex: -1\r\n }, {\r\n 'aria-describedby': this.id() + '_description',\r\n 'aria-hidden': 'true',\r\n 'aria-label': this.label(),\r\n role: 'dialog'\r\n });\r\n };\r\n\r\n /**\r\n * Build the modal's CSS class.\r\n *\r\n * @method buildCSSClass\r\n * @return {String}\r\n */\r\n\r\n ModalDialog.prototype.buildCSSClass = function buildCSSClass() {\r\n return MODAL_CLASS_NAME + ' vjs-hidden ' + _Component.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n /**\r\n * Handles key presses on the document, looking for ESC, which closes\r\n * the modal.\r\n *\r\n * @method handleKeyPress\r\n * @param {Event} e\r\n */\r\n\r\n ModalDialog.prototype.handleKeyPress = function handleKeyPress(e) {\r\n if (e.which === ESC && this.closeable()) {\r\n this.close();\r\n }\r\n };\r\n\r\n /**\r\n * Returns the label string for this modal. Primarily used for accessibility.\r\n *\r\n * @return {String}\r\n */\r\n\r\n ModalDialog.prototype.label = function label() {\r\n return this.options_.label || this.localize('Modal Window');\r\n };\r\n\r\n /**\r\n * Returns the description string for this modal. Primarily used for\r\n * accessibility.\r\n *\r\n * @return {String}\r\n */\r\n\r\n ModalDialog.prototype.description = function description() {\r\n var desc = this.options_.description || this.localize('This is a modal window.');\r\n\r\n // Append a universal closeability message if the modal is closeable.\r\n if (this.closeable()) {\r\n desc += ' ' + this.localize('This modal can be closed by pressing the Escape key or activating the close button.');\r\n }\r\n\r\n return desc;\r\n };\r\n\r\n /**\r\n * Opens the modal.\r\n *\r\n * @method open\r\n * @return {ModalDialog}\r\n */\r\n\r\n ModalDialog.prototype.open = function open() {\r\n if (!this.opened_) {\r\n var player = this.player();\r\n\r\n this.trigger('beforemodalopen');\r\n this.opened_ = true;\r\n\r\n // Fill content if the modal has never opened before and\r\n // never been filled.\r\n if (this.options_.fillAlways || !this.hasBeenOpened_ && !this.hasBeenFilled_) {\r\n this.fill();\r\n }\r\n\r\n // If the player was playing, pause it and take note of its previously\r\n // playing state.\r\n this.wasPlaying_ = !player.paused();\r\n\r\n if (this.wasPlaying_) {\r\n player.pause();\r\n }\r\n\r\n if (this.closeable()) {\r\n this.on(this.el_.ownerDocument, 'keydown', Fn.bind(this, this.handleKeyPress));\r\n }\r\n\r\n player.controls(false);\r\n this.show();\r\n this.el().setAttribute('aria-hidden', 'false');\r\n this.trigger('modalopen');\r\n this.hasBeenOpened_ = true;\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Whether or not the modal is opened currently.\r\n *\r\n * @method opened\r\n * @param {Boolean} [value]\r\n * If given, it will open (`true`) or close (`false`) the modal.\r\n *\r\n * @return {Boolean}\r\n */\r\n\r\n ModalDialog.prototype.opened = function opened(value) {\r\n if (typeof value === 'boolean') {\r\n this[value ? 'open' : 'close']();\r\n }\r\n return this.opened_;\r\n };\r\n\r\n /**\r\n * Closes the modal.\r\n *\r\n * @method close\r\n * @return {ModalDialog}\r\n */\r\n\r\n ModalDialog.prototype.close = function close() {\r\n if (this.opened_) {\r\n var player = this.player();\r\n\r\n this.trigger('beforemodalclose');\r\n this.opened_ = false;\r\n\r\n if (this.wasPlaying_) {\r\n player.play();\r\n }\r\n\r\n if (this.closeable()) {\r\n this.off(this.el_.ownerDocument, 'keydown', Fn.bind(this, this.handleKeyPress));\r\n }\r\n\r\n player.controls(true);\r\n this.hide();\r\n this.el().setAttribute('aria-hidden', 'true');\r\n this.trigger('modalclose');\r\n\r\n if (this.options_.temporary) {\r\n this.dispose();\r\n }\r\n }\r\n return this;\r\n };\r\n\r\n /**\r\n * Whether or not the modal is closeable via the UI.\r\n *\r\n * @method closeable\r\n * @param {Boolean} [value]\r\n * If given as a Boolean, it will set the `closeable` option.\r\n *\r\n * @return {Boolean}\r\n */\r\n\r\n ModalDialog.prototype.closeable = function closeable(value) {\r\n if (typeof value === 'boolean') {\r\n var closeable = this.closeable_ = !!value;\r\n var _close = this.getChild('closeButton');\r\n\r\n // If this is being made closeable and has no close button, add one.\r\n if (closeable && !_close) {\r\n\r\n // The close button should be a child of the modal - not its\r\n // content element, so temporarily change the content element.\r\n var temp = this.contentEl_;\r\n this.contentEl_ = this.el_;\r\n _close = this.addChild('closeButton');\r\n this.contentEl_ = temp;\r\n this.on(_close, 'close', this.close);\r\n }\r\n\r\n // If this is being made uncloseable and has a close button, remove it.\r\n if (!closeable && _close) {\r\n this.off(_close, 'close', this.close);\r\n this.removeChild(_close);\r\n _close.dispose();\r\n }\r\n }\r\n return this.closeable_;\r\n };\r\n\r\n /**\r\n * Fill the modal's content element with the modal's \"content\" option.\r\n *\r\n * The content element will be emptied before this change takes place.\r\n *\r\n * @method fill\r\n * @return {ModalDialog}\r\n */\r\n\r\n ModalDialog.prototype.fill = function fill() {\r\n return this.fillWith(this.content());\r\n };\r\n\r\n /**\r\n * Fill the modal's content element with arbitrary content.\r\n *\r\n * The content element will be emptied before this change takes place.\r\n *\r\n * @method fillWith\r\n * @param {Mixed} [content]\r\n * The same rules apply to this as apply to the `content` option.\r\n *\r\n * @return {ModalDialog}\r\n */\r\n\r\n ModalDialog.prototype.fillWith = function fillWith(content) {\r\n var contentEl = this.contentEl();\r\n var parentEl = contentEl.parentNode;\r\n var nextSiblingEl = contentEl.nextSibling;\r\n\r\n this.trigger('beforemodalfill');\r\n this.hasBeenFilled_ = true;\r\n\r\n // Detach the content element from the DOM before performing\r\n // manipulation to avoid modifying the live DOM multiple times.\r\n parentEl.removeChild(contentEl);\r\n this.empty();\r\n Dom.insertContent(contentEl, content);\r\n this.trigger('modalfill');\r\n\r\n // Re-inject the re-filled content element.\r\n if (nextSiblingEl) {\r\n parentEl.insertBefore(contentEl, nextSiblingEl);\r\n } else {\r\n parentEl.appendChild(contentEl);\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Empties the content element.\r\n *\r\n * This happens automatically anytime the modal is filled.\r\n *\r\n * @method empty\r\n * @return {ModalDialog}\r\n */\r\n\r\n ModalDialog.prototype.empty = function empty() {\r\n this.trigger('beforemodalempty');\r\n Dom.emptyEl(this.contentEl());\r\n this.trigger('modalempty');\r\n return this;\r\n };\r\n\r\n /**\r\n * Gets or sets the modal content, which gets normalized before being\r\n * rendered into the DOM.\r\n *\r\n * This does not update the DOM or fill the modal, but it is called during\r\n * that process.\r\n *\r\n * @method content\r\n * @param {Mixed} [value]\r\n * If defined, sets the internal content value to be used on the\r\n * next call(s) to `fill`. This value is normalized before being\r\n * inserted. To \"clear\" the internal content value, pass `null`.\r\n *\r\n * @return {Mixed}\r\n */\r\n\r\n ModalDialog.prototype.content = function content(value) {\r\n if (typeof value !== 'undefined') {\r\n this.content_ = value;\r\n }\r\n return this.content_;\r\n };\r\n\r\n return ModalDialog;\r\n})(_component2['default']);\r\n\r\nModalDialog.prototype.options_ = {\r\n temporary: true\r\n};\r\n\r\n_component2['default'].registerComponent('ModalDialog', ModalDialog);\r\nexports['default'] = ModalDialog;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./close-button\":66,\"./component\":67,\"./utils/dom\":134,\"./utils/fn\":136,\"./utils/log\":139}],110:[function(_dereq_,module,exports){\r\n/**\r\n * @file player.js\r\n */\r\n// Subclasses Component\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('./component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _utilsEventsJs = _dereq_('./utils/events.js');\r\n\r\nvar Events = _interopRequireWildcard(_utilsEventsJs);\r\n\r\nvar _utilsDomJs = _dereq_('./utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFnJs = _dereq_('./utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsGuidJs = _dereq_('./utils/guid.js');\r\n\r\nvar Guid = _interopRequireWildcard(_utilsGuidJs);\r\n\r\nvar _utilsBrowserJs = _dereq_('./utils/browser.js');\r\n\r\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\r\n\r\nvar _utilsLogJs = _dereq_('./utils/log.js');\r\n\r\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\r\n\r\nvar _utilsToTitleCaseJs = _dereq_('./utils/to-title-case.js');\r\n\r\nvar _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);\r\n\r\nvar _utilsTimeRangesJs = _dereq_('./utils/time-ranges.js');\r\n\r\nvar _utilsBufferJs = _dereq_('./utils/buffer.js');\r\n\r\nvar _utilsStylesheetJs = _dereq_('./utils/stylesheet.js');\r\n\r\nvar stylesheet = _interopRequireWildcard(_utilsStylesheetJs);\r\n\r\nvar _fullscreenApiJs = _dereq_('./fullscreen-api.js');\r\n\r\nvar _fullscreenApiJs2 = _interopRequireDefault(_fullscreenApiJs);\r\n\r\nvar _mediaErrorJs = _dereq_('./media-error.js');\r\n\r\nvar _mediaErrorJs2 = _interopRequireDefault(_mediaErrorJs);\r\n\r\nvar _safeJsonParseTuple = _dereq_('safe-json-parse/tuple');\r\n\r\nvar _safeJsonParseTuple2 = _interopRequireDefault(_safeJsonParseTuple);\r\n\r\nvar _objectAssign = _dereq_('object.assign');\r\n\r\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\r\n\r\nvar _utilsMergeOptionsJs = _dereq_('./utils/merge-options.js');\r\n\r\nvar _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);\r\n\r\nvar _tracksTextTrackListConverterJs = _dereq_('./tracks/text-track-list-converter.js');\r\n\r\nvar _tracksTextTrackListConverterJs2 = _interopRequireDefault(_tracksTextTrackListConverterJs);\r\n\r\n// Include required child components (importing also registers them)\r\n\r\nvar _techLoaderJs = _dereq_('./tech/loader.js');\r\n\r\nvar _techLoaderJs2 = _interopRequireDefault(_techLoaderJs);\r\n\r\nvar _posterImageJs = _dereq_('./poster-image.js');\r\n\r\nvar _posterImageJs2 = _interopRequireDefault(_posterImageJs);\r\n\r\nvar _tracksTextTrackDisplayJs = _dereq_('./tracks/text-track-display.js');\r\n\r\nvar _tracksTextTrackDisplayJs2 = _interopRequireDefault(_tracksTextTrackDisplayJs);\r\n\r\nvar _loadingSpinnerJs = _dereq_('./loading-spinner.js');\r\n\r\nvar _loadingSpinnerJs2 = _interopRequireDefault(_loadingSpinnerJs);\r\n\r\nvar _bigPlayButtonJs = _dereq_('./big-play-button.js');\r\n\r\nvar _bigPlayButtonJs2 = _interopRequireDefault(_bigPlayButtonJs);\r\n\r\nvar _controlBarControlBarJs = _dereq_('./control-bar/control-bar.js');\r\n\r\nvar _controlBarControlBarJs2 = _interopRequireDefault(_controlBarControlBarJs);\r\n\r\nvar _errorDisplayJs = _dereq_('./error-display.js');\r\n\r\nvar _errorDisplayJs2 = _interopRequireDefault(_errorDisplayJs);\r\n\r\nvar _tracksTextTrackSettingsJs = _dereq_('./tracks/text-track-settings.js');\r\n\r\nvar _tracksTextTrackSettingsJs2 = _interopRequireDefault(_tracksTextTrackSettingsJs);\r\n\r\nvar _modalDialog = _dereq_('./modal-dialog');\r\n\r\nvar _modalDialog2 = _interopRequireDefault(_modalDialog);\r\n\r\n// Require html5 tech, at least for disposing the original video tag\r\n\r\nvar _techTechJs = _dereq_('./tech/tech.js');\r\n\r\nvar _techTechJs2 = _interopRequireDefault(_techTechJs);\r\n\r\nvar _techHtml5Js = _dereq_('./tech/html5.js');\r\n\r\nvar _techHtml5Js2 = _interopRequireDefault(_techHtml5Js);\r\n\r\n/**\r\n * An instance of the `Player` class is created when any of the Video.js setup methods are used to initialize a video.\r\n * ```js\r\n * var myPlayer = videojs('example_video_1');\r\n * ```\r\n * In the following example, the `data-setup` attribute tells the Video.js library to create a player instance when the library is ready.\r\n * ```html\r\n * \r\n * ```\r\n * After an instance has been created it can be accessed globally using `Video('example_video_1')`.\r\n *\r\n * @param {Element} tag The original video tag used for configuring options\r\n * @param {Object=} options Object of option names and values\r\n * @param {Function=} ready Ready callback function\r\n * @extends Component\r\n * @class Player\r\n */\r\n\r\nvar Player = (function (_Component) {\r\n _inherits(Player, _Component);\r\n\r\n /**\r\n * player's constructor function\r\n *\r\n * @constructs\r\n * @method init\r\n * @param {Element} tag The original video tag used for configuring options\r\n * @param {Object=} options Player options\r\n * @param {Function=} ready Ready callback function\r\n */\r\n\r\n function Player(tag, options, ready) {\r\n var _this = this;\r\n\r\n _classCallCheck(this, Player);\r\n\r\n // Make sure tag ID exists\r\n tag.id = tag.id || 'vjs_video_' + Guid.newGUID();\r\n\r\n // Set Options\r\n // The options argument overrides options set in the video tag\r\n // which overrides globally set options.\r\n // This latter part coincides with the load order\r\n // (tag must exist before Player)\r\n options = _objectAssign2['default'](Player.getTagSettings(tag), options);\r\n\r\n // Delay the initialization of children because we need to set up\r\n // player properties first, and can't use `this` before `super()`\r\n options.initChildren = false;\r\n\r\n // Same with creating the element\r\n options.createEl = false;\r\n\r\n // we don't want the player to report touch activity on itself\r\n // see enableTouchActivity in Component\r\n options.reportTouchActivity = false;\r\n\r\n // Run base component initializing with new options\r\n _Component.call(this, null, options, ready);\r\n\r\n // if the global option object was accidentally blown away by\r\n // someone, bail early with an informative error\r\n if (!this.options_ || !this.options_.techOrder || !this.options_.techOrder.length) {\r\n throw new Error('No techOrder specified. Did you overwrite ' + 'videojs.options instead of just changing the ' + 'properties you want to override?');\r\n }\r\n\r\n this.tag = tag; // Store the original tag used to set options\r\n\r\n // Store the tag attributes used to restore html5 element\r\n this.tagAttributes = tag && Dom.getElAttributes(tag);\r\n\r\n // Update current language\r\n this.language(this.options_.language);\r\n\r\n // Update Supported Languages\r\n if (options.languages) {\r\n (function () {\r\n // Normalise player option languages to lowercase\r\n var languagesToLower = {};\r\n\r\n Object.getOwnPropertyNames(options.languages).forEach(function (name) {\r\n languagesToLower[name.toLowerCase()] = options.languages[name];\r\n });\r\n _this.languages_ = languagesToLower;\r\n })();\r\n } else {\r\n this.languages_ = Player.prototype.options_.languages;\r\n }\r\n\r\n // Cache for video property values.\r\n this.cache_ = {};\r\n\r\n // Set poster\r\n this.poster_ = options.poster || '';\r\n\r\n // Set controls\r\n this.controls_ = !!options.controls;\r\n\r\n // Original tag settings stored in options\r\n // now remove immediately so native controls don't flash.\r\n // May be turned back on by HTML5 tech if nativeControlsForTouch is true\r\n tag.controls = false;\r\n\r\n /*\r\n * Store the internal state of scrubbing\r\n *\r\n * @private\r\n * @return {Boolean} True if the user is scrubbing\r\n */\r\n this.scrubbing_ = false;\r\n\r\n this.el_ = this.createEl();\r\n\r\n // We also want to pass the original player options to each component and plugin\r\n // as well so they don't need to reach back into the player for options later.\r\n // We also need to do another copy of this.options_ so we don't end up with\r\n // an infinite loop.\r\n var playerOptionsCopy = _utilsMergeOptionsJs2['default'](this.options_);\r\n\r\n // Load plugins\r\n if (options.plugins) {\r\n (function () {\r\n var plugins = options.plugins;\r\n\r\n Object.getOwnPropertyNames(plugins).forEach(function (name) {\r\n if (typeof this[name] === 'function') {\r\n this[name](plugins[name]);\r\n } else {\r\n _utilsLogJs2['default'].error('Unable to find plugin:', name);\r\n }\r\n }, _this);\r\n })();\r\n }\r\n\r\n this.options_.playerOptions = playerOptionsCopy;\r\n\r\n this.initChildren();\r\n\r\n // Set isAudio based on whether or not an audio tag was used\r\n this.isAudio(tag.nodeName.toLowerCase() === 'audio');\r\n\r\n // Update controls className. Can't do this when the controls are initially\r\n // set because the element doesn't exist yet.\r\n if (this.controls()) {\r\n this.addClass('vjs-controls-enabled');\r\n } else {\r\n this.addClass('vjs-controls-disabled');\r\n }\r\n\r\n // Set ARIA label and region role depending on player type\r\n this.el_.setAttribute('role', 'region');\r\n if (this.isAudio()) {\r\n this.el_.setAttribute('aria-label', 'audio player');\r\n } else {\r\n this.el_.setAttribute('aria-label', 'video player');\r\n }\r\n\r\n if (this.isAudio()) {\r\n this.addClass('vjs-audio');\r\n }\r\n\r\n if (this.flexNotSupported_()) {\r\n this.addClass('vjs-no-flex');\r\n }\r\n\r\n // TODO: Make this smarter. Toggle user state between touching/mousing\r\n // using events, since devices can have both touch and mouse events.\r\n // if (browser.TOUCH_ENABLED) {\r\n // this.addClass('vjs-touch-enabled');\r\n // }\r\n\r\n // iOS Safari has broken hover handling\r\n if (!browser.IS_IOS) {\r\n this.addClass('vjs-workinghover');\r\n }\r\n\r\n // Make player easily findable by ID\r\n Player.players[this.id_] = this;\r\n\r\n // When the player is first initialized, trigger activity so components\r\n // like the control bar show themselves if needed\r\n this.userActive(true);\r\n this.reportUserActivity();\r\n this.listenForUserActivity_();\r\n\r\n this.on('fullscreenchange', this.handleFullscreenChange_);\r\n this.on('stageclick', this.handleStageClick_);\r\n }\r\n\r\n /*\r\n * Global player list\r\n *\r\n * @type {Object}\r\n */\r\n\r\n /**\r\n * Destroys the video player and does any necessary cleanup\r\n * ```js\r\n * myPlayer.dispose();\r\n * ```\r\n * This is especially helpful if you are dynamically adding and removing videos\r\n * to/from the DOM.\r\n *\r\n * @method dispose\r\n */\r\n\r\n Player.prototype.dispose = function dispose() {\r\n this.trigger('dispose');\r\n // prevent dispose from being called twice\r\n this.off('dispose');\r\n\r\n if (this.styleEl_ && this.styleEl_.parentNode) {\r\n this.styleEl_.parentNode.removeChild(this.styleEl_);\r\n }\r\n\r\n // Kill reference to this player\r\n Player.players[this.id_] = null;\r\n if (this.tag && this.tag.player) {\r\n this.tag.player = null;\r\n }\r\n if (this.el_ && this.el_.player) {\r\n this.el_.player = null;\r\n }\r\n\r\n if (this.tech_) {\r\n this.tech_.dispose();\r\n }\r\n\r\n _Component.prototype.dispose.call(this);\r\n };\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n Player.prototype.createEl = function createEl() {\r\n var el = this.el_ = _Component.prototype.createEl.call(this, 'div');\r\n var tag = this.tag;\r\n\r\n // Remove width/height attrs from tag so CSS can make it 100% width/height\r\n tag.removeAttribute('width');\r\n tag.removeAttribute('height');\r\n\r\n // Copy over all the attributes from the tag, including ID and class\r\n // ID will now reference player box, not the video tag\r\n var attrs = Dom.getElAttributes(tag);\r\n\r\n Object.getOwnPropertyNames(attrs).forEach(function (attr) {\r\n // workaround so we don't totally break IE7\r\n // http://stackoverflow.com/questions/3653444/css-styles-not-applied-on-dynamic-elements-in-internet-explorer-7\r\n if (attr === 'class') {\r\n el.className = attrs[attr];\r\n } else {\r\n el.setAttribute(attr, attrs[attr]);\r\n }\r\n });\r\n\r\n // Update tag id/class for use as HTML5 playback tech\r\n // Might think we should do this after embedding in container so .vjs-tech class\r\n // doesn't flash 100% width/height, but class only applies with .video-js parent\r\n tag.playerId = tag.id;\r\n tag.id += '_html5_api';\r\n tag.className = 'vjs-tech';\r\n\r\n // Make player findable on elements\r\n tag.player = el.player = this;\r\n // Default state of video is paused\r\n this.addClass('vjs-paused');\r\n\r\n // Add a style element in the player that we'll use to set the width/height\r\n // of the player in a way that's still overrideable by CSS, just like the\r\n // video element\r\n if (_globalWindow2['default'].VIDEOJS_NO_DYNAMIC_STYLE !== true) {\r\n this.styleEl_ = stylesheet.createStyleElement('vjs-styles-dimensions');\r\n var defaultsStyleEl = Dom.$('.vjs-styles-defaults');\r\n var head = Dom.$('head');\r\n head.insertBefore(this.styleEl_, defaultsStyleEl ? defaultsStyleEl.nextSibling : head.firstChild);\r\n }\r\n\r\n // Pass in the width/height/aspectRatio options which will update the style el\r\n this.width(this.options_.width);\r\n this.height(this.options_.height);\r\n this.fluid(this.options_.fluid);\r\n this.aspectRatio(this.options_.aspectRatio);\r\n\r\n // Hide any links within the video/audio tag, because IE doesn't hide them completely.\r\n var links = tag.getElementsByTagName('a');\r\n for (var i = 0; i < links.length; i++) {\r\n var linkEl = links.item(i);\r\n Dom.addElClass(linkEl, 'vjs-hidden');\r\n linkEl.setAttribute('hidden', 'hidden');\r\n }\r\n\r\n // insertElFirst seems to cause the networkState to flicker from 3 to 2, so\r\n // keep track of the original for later so we can know if the source originally failed\r\n tag.initNetworkState_ = tag.networkState;\r\n\r\n // Wrap video tag in div (el/box) container\r\n if (tag.parentNode) {\r\n tag.parentNode.insertBefore(el, tag);\r\n }\r\n\r\n // insert the tag as the first child of the player element\r\n // then manually add it to the children array so that this.addChild\r\n // will work properly for other components\r\n Dom.insertElFirst(tag, el); // Breaks iPhone, fixed in HTML5 setup.\r\n this.children_.unshift(tag);\r\n\r\n this.el_ = el;\r\n\r\n return el;\r\n };\r\n\r\n /**\r\n * Get/set player width\r\n *\r\n * @param {Number=} value Value for width\r\n * @return {Number} Width when getting\r\n * @method width\r\n */\r\n\r\n Player.prototype.width = function width(value) {\r\n return this.dimension('width', value);\r\n };\r\n\r\n /**\r\n * Get/set player height\r\n *\r\n * @param {Number=} value Value for height\r\n * @return {Number} Height when getting\r\n * @method height\r\n */\r\n\r\n Player.prototype.height = function height(value) {\r\n return this.dimension('height', value);\r\n };\r\n\r\n /**\r\n * Get/set dimension for player\r\n *\r\n * @param {String} dimension Either width or height\r\n * @param {Number=} value Value for dimension\r\n * @return {Component}\r\n * @method dimension\r\n */\r\n\r\n Player.prototype.dimension = function dimension(_dimension, value) {\r\n var privDimension = _dimension + '_';\r\n\r\n if (value === undefined) {\r\n return this[privDimension] || 0;\r\n }\r\n\r\n if (value === '') {\r\n // If an empty string is given, reset the dimension to be automatic\r\n this[privDimension] = undefined;\r\n } else {\r\n var parsedVal = parseFloat(value);\r\n\r\n if (isNaN(parsedVal)) {\r\n _utilsLogJs2['default'].error('Improper value \"' + value + '\" supplied for for ' + _dimension);\r\n return this;\r\n }\r\n\r\n this[privDimension] = parsedVal;\r\n }\r\n\r\n this.updateStyleEl_();\r\n return this;\r\n };\r\n\r\n /**\r\n * Add/remove the vjs-fluid class\r\n *\r\n * @param {Boolean} bool Value of true adds the class, value of false removes the class\r\n * @method fluid\r\n */\r\n\r\n Player.prototype.fluid = function fluid(bool) {\r\n if (bool === undefined) {\r\n return !!this.fluid_;\r\n }\r\n\r\n this.fluid_ = !!bool;\r\n\r\n if (bool) {\r\n this.addClass('vjs-fluid');\r\n } else {\r\n this.removeClass('vjs-fluid');\r\n }\r\n };\r\n\r\n /**\r\n * Get/Set the aspect ratio\r\n *\r\n * @param {String=} ratio Aspect ratio for player\r\n * @return aspectRatio\r\n * @method aspectRatio\r\n */\r\n\r\n Player.prototype.aspectRatio = function aspectRatio(ratio) {\r\n if (ratio === undefined) {\r\n return this.aspectRatio_;\r\n }\r\n\r\n // Check for width:height format\r\n if (!/^\\d+\\:\\d+$/.test(ratio)) {\r\n throw new Error('Improper value supplied for aspect ratio. The format should be width:height, for example 16:9.');\r\n }\r\n this.aspectRatio_ = ratio;\r\n\r\n // We're assuming if you set an aspect ratio you want fluid mode,\r\n // because in fixed mode you could calculate width and height yourself.\r\n this.fluid(true);\r\n\r\n this.updateStyleEl_();\r\n };\r\n\r\n /**\r\n * Update styles of the player element (height, width and aspect ratio)\r\n *\r\n * @method updateStyleEl_\r\n */\r\n\r\n Player.prototype.updateStyleEl_ = function updateStyleEl_() {\r\n if (_globalWindow2['default'].VIDEOJS_NO_DYNAMIC_STYLE === true) {\r\n var _width = typeof this.width_ === 'number' ? this.width_ : this.options_.width;\r\n var _height = typeof this.height_ === 'number' ? this.height_ : this.options_.height;\r\n var techEl = this.tech_ && this.tech_.el();\r\n\r\n if (techEl) {\r\n if (_width >= 0) {\r\n techEl.width = _width;\r\n }\r\n if (_height >= 0) {\r\n techEl.height = _height;\r\n }\r\n }\r\n\r\n return;\r\n }\r\n\r\n var width = undefined;\r\n var height = undefined;\r\n var aspectRatio = undefined;\r\n var idClass = undefined;\r\n\r\n // The aspect ratio is either used directly or to calculate width and height.\r\n if (this.aspectRatio_ !== undefined && this.aspectRatio_ !== 'auto') {\r\n // Use any aspectRatio that's been specifically set\r\n aspectRatio = this.aspectRatio_;\r\n } else if (this.videoWidth()) {\r\n // Otherwise try to get the aspect ratio from the video metadata\r\n aspectRatio = this.videoWidth() + ':' + this.videoHeight();\r\n } else {\r\n // Or use a default. The video element's is 2:1, but 16:9 is more common.\r\n aspectRatio = '16:9';\r\n }\r\n\r\n // Get the ratio as a decimal we can use to calculate dimensions\r\n var ratioParts = aspectRatio.split(':');\r\n var ratioMultiplier = ratioParts[1] / ratioParts[0];\r\n\r\n if (this.width_ !== undefined) {\r\n // Use any width that's been specifically set\r\n width = this.width_;\r\n } else if (this.height_ !== undefined) {\r\n // Or calulate the width from the aspect ratio if a height has been set\r\n width = this.height_ / ratioMultiplier;\r\n } else {\r\n // Or use the video's metadata, or use the video el's default of 300\r\n width = this.videoWidth() || 300;\r\n }\r\n\r\n if (this.height_ !== undefined) {\r\n // Use any height that's been specifically set\r\n height = this.height_;\r\n } else {\r\n // Otherwise calculate the height from the ratio and the width\r\n height = width * ratioMultiplier;\r\n }\r\n\r\n // Ensure the CSS class is valid by starting with an alpha character\r\n if (/^[^a-zA-Z]/.test(this.id())) {\r\n idClass = 'dimensions-' + this.id();\r\n } else {\r\n idClass = this.id() + '-dimensions';\r\n }\r\n\r\n // Ensure the right class is still on the player for the style element\r\n this.addClass(idClass);\r\n\r\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 ');\r\n };\r\n\r\n /**\r\n * Load the Media Playback Technology (tech)\r\n * Load/Create an instance of playback technology including element and API methods\r\n * And append playback element in player div.\r\n *\r\n * @param {String} techName Name of the playback technology\r\n * @param {String} source Video source\r\n * @method loadTech_\r\n * @private\r\n */\r\n\r\n Player.prototype.loadTech_ = function loadTech_(techName, source) {\r\n\r\n // Pause and remove current playback technology\r\n if (this.tech_) {\r\n this.unloadTech_();\r\n }\r\n\r\n // get rid of the HTML5 video tag as soon as we are using another tech\r\n if (techName !== 'Html5' && this.tag) {\r\n _techTechJs2['default'].getTech('Html5').disposeMediaElement(this.tag);\r\n this.tag.player = null;\r\n this.tag = null;\r\n }\r\n\r\n this.techName_ = techName;\r\n\r\n // Turn off API access because we're loading a new tech that might load asynchronously\r\n this.isReady_ = false;\r\n\r\n // Grab tech-specific options from player options and add source and parent element to use.\r\n var techOptions = _objectAssign2['default']({\r\n 'nativeControlsForTouch': this.options_.nativeControlsForTouch,\r\n 'source': source,\r\n 'playerId': this.id(),\r\n 'techId': this.id() + '_' + techName + '_api',\r\n 'textTracks': this.textTracks_,\r\n 'autoplay': this.options_.autoplay,\r\n 'preload': this.options_.preload,\r\n 'loop': this.options_.loop,\r\n 'muted': this.options_.muted,\r\n 'poster': this.poster(),\r\n 'language': this.language(),\r\n 'vtt.js': this.options_['vtt.js']\r\n }, this.options_[techName.toLowerCase()]);\r\n\r\n if (this.tag) {\r\n techOptions.tag = this.tag;\r\n }\r\n\r\n if (source) {\r\n this.currentType_ = source.type;\r\n if (source.src === this.cache_.src && this.cache_.currentTime > 0) {\r\n techOptions.startTime = this.cache_.currentTime;\r\n }\r\n\r\n this.cache_.src = source.src;\r\n }\r\n\r\n // Initialize tech instance\r\n var techComponent = _techTechJs2['default'].getTech(techName);\r\n // Support old behavior of techs being registered as components.\r\n // Remove once that deprecated behavior is removed.\r\n if (!techComponent) {\r\n techComponent = _componentJs2['default'].getComponent(techName);\r\n }\r\n this.tech_ = new techComponent(techOptions);\r\n\r\n // player.triggerReady is always async, so don't need this to be async\r\n this.tech_.ready(Fn.bind(this, this.handleTechReady_), true);\r\n\r\n _tracksTextTrackListConverterJs2['default'].jsonToTextTracks(this.textTracksJson_ || [], this.tech_);\r\n\r\n // Listen to all HTML5-defined events and trigger them on the player\r\n this.on(this.tech_, 'loadstart', this.handleTechLoadStart_);\r\n this.on(this.tech_, 'waiting', this.handleTechWaiting_);\r\n this.on(this.tech_, 'canplay', this.handleTechCanPlay_);\r\n this.on(this.tech_, 'canplaythrough', this.handleTechCanPlayThrough_);\r\n this.on(this.tech_, 'playing', this.handleTechPlaying_);\r\n this.on(this.tech_, 'ended', this.handleTechEnded_);\r\n this.on(this.tech_, 'seeking', this.handleTechSeeking_);\r\n this.on(this.tech_, 'seeked', this.handleTechSeeked_);\r\n this.on(this.tech_, 'play', this.handleTechPlay_);\r\n this.on(this.tech_, 'firstplay', this.handleTechFirstPlay_);\r\n this.on(this.tech_, 'pause', this.handleTechPause_);\r\n this.on(this.tech_, 'progress', this.handleTechProgress_);\r\n this.on(this.tech_, 'durationchange', this.handleTechDurationChange_);\r\n this.on(this.tech_, 'fullscreenchange', this.handleTechFullscreenChange_);\r\n this.on(this.tech_, 'error', this.handleTechError_);\r\n this.on(this.tech_, 'suspend', this.handleTechSuspend_);\r\n this.on(this.tech_, 'abort', this.handleTechAbort_);\r\n this.on(this.tech_, 'emptied', this.handleTechEmptied_);\r\n this.on(this.tech_, 'stalled', this.handleTechStalled_);\r\n this.on(this.tech_, 'loadedmetadata', this.handleTechLoadedMetaData_);\r\n this.on(this.tech_, 'loadeddata', this.handleTechLoadedData_);\r\n this.on(this.tech_, 'timeupdate', this.handleTechTimeUpdate_);\r\n this.on(this.tech_, 'ratechange', this.handleTechRateChange_);\r\n this.on(this.tech_, 'volumechange', this.handleTechVolumeChange_);\r\n this.on(this.tech_, 'texttrackchange', this.handleTechTextTrackChange_);\r\n this.on(this.tech_, 'loadedmetadata', this.updateStyleEl_);\r\n this.on(this.tech_, 'posterchange', this.handleTechPosterChange_);\r\n\r\n this.usingNativeControls(this.techGet_('controls'));\r\n\r\n if (this.controls() && !this.usingNativeControls()) {\r\n this.addTechControlsListeners_();\r\n }\r\n\r\n // Add the tech element in the DOM if it was not already there\r\n // Make sure to not insert the original video element if using Html5\r\n if (this.tech_.el().parentNode !== this.el() && (techName !== 'Html5' || !this.tag)) {\r\n Dom.insertElFirst(this.tech_.el(), this.el());\r\n }\r\n\r\n // Get rid of the original video tag reference after the first tech is loaded\r\n if (this.tag) {\r\n this.tag.player = null;\r\n this.tag = null;\r\n }\r\n };\r\n\r\n /**\r\n * Unload playback technology\r\n *\r\n * @method unloadTech_\r\n * @private\r\n */\r\n\r\n Player.prototype.unloadTech_ = function unloadTech_() {\r\n // Save the current text tracks so that we can reuse the same text tracks with the next tech\r\n this.textTracks_ = this.textTracks();\r\n this.textTracksJson_ = _tracksTextTrackListConverterJs2['default'].textTracksToJson(this.tech_);\r\n\r\n this.isReady_ = false;\r\n\r\n this.tech_.dispose();\r\n\r\n this.tech_ = false;\r\n };\r\n\r\n /**\r\n * Return a reference to the current tech.\r\n * It will only return a reference to the tech if given an object with the\r\n * `IWillNotUseThisInPlugins` property on it. This is try and prevent misuse\r\n * of techs by plugins.\r\n *\r\n * @param {Object}\r\n * @return {Object} The Tech\r\n * @method tech\r\n */\r\n\r\n Player.prototype.tech = function tech(safety) {\r\n if (safety && safety.IWillNotUseThisInPlugins) {\r\n return this.tech_;\r\n }\r\n var errorText = '\\n Please make sure that you are not using this inside of a plugin.\\n To disable this alert and error, please pass in an object with\\n `IWillNotUseThisInPlugins` to the `tech` method. See\\n https://github.com/videojs/video.js/issues/2617 for more info.\\n ';\r\n _globalWindow2['default'].alert(errorText);\r\n throw new Error(errorText);\r\n };\r\n\r\n /**\r\n * Set up click and touch listeners for the playback element\r\n *\r\n * On desktops, a click on the video itself will toggle playback,\r\n * on a mobile device a click on the video toggles controls.\r\n * (toggling controls is done by toggling the user state between active and\r\n * inactive)\r\n * A tap can signal that a user has become active, or has become inactive\r\n * e.g. a quick tap on an iPhone movie should reveal the controls. Another\r\n * quick tap should hide them again (signaling the user is in an inactive\r\n * viewing state)\r\n * In addition to this, we still want the user to be considered inactive after\r\n * a few seconds of inactivity.\r\n * Note: the only part of iOS interaction we can't mimic with this setup\r\n * is a touch and hold on the video element counting as activity in order to\r\n * keep the controls showing, but that shouldn't be an issue. A touch and hold\r\n * on any controls will still keep the user active\r\n *\r\n * @private\r\n * @method addTechControlsListeners_\r\n */\r\n\r\n Player.prototype.addTechControlsListeners_ = function addTechControlsListeners_() {\r\n // Make sure to remove all the previous listeners in case we are called multiple times.\r\n this.removeTechControlsListeners_();\r\n\r\n // Some browsers (Chrome & IE) don't trigger a click on a flash swf, but do\r\n // trigger mousedown/up.\r\n // http://stackoverflow.com/questions/1444562/javascript-onclick-event-over-flash-object\r\n // Any touch events are set to block the mousedown event from happening\r\n this.on(this.tech_, 'mousedown', this.handleTechClick_);\r\n\r\n // If the controls were hidden we don't want that to change without a tap event\r\n // so we'll check if the controls were already showing before reporting user\r\n // activity\r\n this.on(this.tech_, 'touchstart', this.handleTechTouchStart_);\r\n this.on(this.tech_, 'touchmove', this.handleTechTouchMove_);\r\n this.on(this.tech_, 'touchend', this.handleTechTouchEnd_);\r\n\r\n // The tap listener needs to come after the touchend listener because the tap\r\n // listener cancels out any reportedUserActivity when setting userActive(false)\r\n this.on(this.tech_, 'tap', this.handleTechTap_);\r\n };\r\n\r\n /**\r\n * Remove the listeners used for click and tap controls. This is needed for\r\n * toggling to controls disabled, where a tap/touch should do nothing.\r\n *\r\n * @method removeTechControlsListeners_\r\n * @private\r\n */\r\n\r\n Player.prototype.removeTechControlsListeners_ = function removeTechControlsListeners_() {\r\n // We don't want to just use `this.off()` because there might be other needed\r\n // listeners added by techs that extend this.\r\n this.off(this.tech_, 'tap', this.handleTechTap_);\r\n this.off(this.tech_, 'touchstart', this.handleTechTouchStart_);\r\n this.off(this.tech_, 'touchmove', this.handleTechTouchMove_);\r\n this.off(this.tech_, 'touchend', this.handleTechTouchEnd_);\r\n this.off(this.tech_, 'mousedown', this.handleTechClick_);\r\n };\r\n\r\n /**\r\n * Player waits for the tech to be ready\r\n *\r\n * @method handleTechReady_\r\n * @private\r\n */\r\n\r\n Player.prototype.handleTechReady_ = function handleTechReady_() {\r\n this.triggerReady();\r\n\r\n // Keep the same volume as before\r\n if (this.cache_.volume) {\r\n this.techCall_('setVolume', this.cache_.volume);\r\n }\r\n\r\n // Look if the tech found a higher resolution poster while loading\r\n this.handleTechPosterChange_();\r\n\r\n // Update the duration if available\r\n this.handleTechDurationChange_();\r\n\r\n // Chrome and Safari both have issues with autoplay.\r\n // In Safari (5.1.1), when we move the video element into the container div, autoplay doesn't work.\r\n // In Chrome (15), if you have autoplay + a poster + no controls, the video gets hidden (but audio plays)\r\n // This fixes both issues. Need to wait for API, so it updates displays correctly\r\n if (this.src() && this.tag && this.options_.autoplay && this.paused()) {\r\n delete this.tag.poster; // Chrome Fix. Fixed in Chrome v16.\r\n this.play();\r\n }\r\n };\r\n\r\n /**\r\n * Fired when the user agent begins looking for media data\r\n *\r\n * @private\r\n * @method handleTechLoadStart_\r\n */\r\n\r\n Player.prototype.handleTechLoadStart_ = function handleTechLoadStart_() {\r\n // TODO: Update to use `emptied` event instead. See #1277.\r\n\r\n this.removeClass('vjs-ended');\r\n\r\n // reset the error state\r\n this.error(null);\r\n\r\n // If it's already playing we want to trigger a firstplay event now.\r\n // The firstplay event relies on both the play and loadstart events\r\n // which can happen in any order for a new source\r\n if (!this.paused()) {\r\n this.trigger('loadstart');\r\n this.trigger('firstplay');\r\n } else {\r\n // reset the hasStarted state\r\n this.hasStarted(false);\r\n this.trigger('loadstart');\r\n }\r\n };\r\n\r\n /**\r\n * Add/remove the vjs-has-started class\r\n *\r\n * @param {Boolean} hasStarted The value of true adds the class the value of false remove the class\r\n * @return {Boolean} Boolean value if has started\r\n * @private\r\n * @method hasStarted\r\n */\r\n\r\n Player.prototype.hasStarted = function hasStarted(_hasStarted) {\r\n if (_hasStarted !== undefined) {\r\n // only update if this is a new value\r\n if (this.hasStarted_ !== _hasStarted) {\r\n this.hasStarted_ = _hasStarted;\r\n if (_hasStarted) {\r\n this.addClass('vjs-has-started');\r\n // trigger the firstplay event if this newly has played\r\n this.trigger('firstplay');\r\n } else {\r\n this.removeClass('vjs-has-started');\r\n }\r\n }\r\n return this;\r\n }\r\n return !!this.hasStarted_;\r\n };\r\n\r\n /**\r\n * Fired whenever the media begins or resumes playback\r\n *\r\n * @private\r\n * @method handleTechPlay_\r\n */\r\n\r\n Player.prototype.handleTechPlay_ = function handleTechPlay_() {\r\n this.removeClass('vjs-ended');\r\n this.removeClass('vjs-paused');\r\n this.addClass('vjs-playing');\r\n\r\n // hide the poster when the user hits play\r\n // https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-play\r\n this.hasStarted(true);\r\n\r\n this.trigger('play');\r\n };\r\n\r\n /**\r\n * Fired whenever the media begins waiting\r\n *\r\n * @private\r\n * @method handleTechWaiting_\r\n */\r\n\r\n Player.prototype.handleTechWaiting_ = function handleTechWaiting_() {\r\n var _this2 = this;\r\n\r\n this.addClass('vjs-waiting');\r\n this.trigger('waiting');\r\n this.one('timeupdate', function () {\r\n return _this2.removeClass('vjs-waiting');\r\n });\r\n };\r\n\r\n /**\r\n * A handler for events that signal that waiting has ended\r\n * which is not consistent between browsers. See #1351\r\n *\r\n * @private\r\n * @method handleTechCanPlay_\r\n */\r\n\r\n Player.prototype.handleTechCanPlay_ = function handleTechCanPlay_() {\r\n this.removeClass('vjs-waiting');\r\n this.trigger('canplay');\r\n };\r\n\r\n /**\r\n * A handler for events that signal that waiting has ended\r\n * which is not consistent between browsers. See #1351\r\n *\r\n * @private\r\n * @method handleTechCanPlayThrough_\r\n */\r\n\r\n Player.prototype.handleTechCanPlayThrough_ = function handleTechCanPlayThrough_() {\r\n this.removeClass('vjs-waiting');\r\n this.trigger('canplaythrough');\r\n };\r\n\r\n /**\r\n * A handler for events that signal that waiting has ended\r\n * which is not consistent between browsers. See #1351\r\n *\r\n * @private\r\n * @method handleTechPlaying_\r\n */\r\n\r\n Player.prototype.handleTechPlaying_ = function handleTechPlaying_() {\r\n this.removeClass('vjs-waiting');\r\n this.trigger('playing');\r\n };\r\n\r\n /**\r\n * Fired whenever the player is jumping to a new time\r\n *\r\n * @private\r\n * @method handleTechSeeking_\r\n */\r\n\r\n Player.prototype.handleTechSeeking_ = function handleTechSeeking_() {\r\n this.addClass('vjs-seeking');\r\n this.trigger('seeking');\r\n };\r\n\r\n /**\r\n * Fired when the player has finished jumping to a new time\r\n *\r\n * @private\r\n * @method handleTechSeeked_\r\n */\r\n\r\n Player.prototype.handleTechSeeked_ = function handleTechSeeked_() {\r\n this.removeClass('vjs-seeking');\r\n this.trigger('seeked');\r\n };\r\n\r\n /**\r\n * Fired the first time a video is played\r\n * Not part of the HLS spec, and we're not sure if this is the best\r\n * implementation yet, so use sparingly. If you don't have a reason to\r\n * prevent playback, use `myPlayer.one('play');` instead.\r\n *\r\n * @private\r\n * @method handleTechFirstPlay_\r\n */\r\n\r\n Player.prototype.handleTechFirstPlay_ = function handleTechFirstPlay_() {\r\n //If the first starttime attribute is specified\r\n //then we will start at the given offset in seconds\r\n if (this.options_.starttime) {\r\n this.currentTime(this.options_.starttime);\r\n }\r\n\r\n this.addClass('vjs-has-started');\r\n this.trigger('firstplay');\r\n };\r\n\r\n /**\r\n * Fired whenever the media has been paused\r\n *\r\n * @private\r\n * @method handleTechPause_\r\n */\r\n\r\n Player.prototype.handleTechPause_ = function handleTechPause_() {\r\n this.removeClass('vjs-playing');\r\n this.addClass('vjs-paused');\r\n this.trigger('pause');\r\n };\r\n\r\n /**\r\n * Fired while the user agent is downloading media data\r\n *\r\n * @private\r\n * @method handleTechProgress_\r\n */\r\n\r\n Player.prototype.handleTechProgress_ = function handleTechProgress_() {\r\n this.trigger('progress');\r\n };\r\n\r\n /**\r\n * Fired when the end of the media resource is reached (currentTime == duration)\r\n *\r\n * @private\r\n * @method handleTechEnded_\r\n */\r\n\r\n Player.prototype.handleTechEnded_ = function handleTechEnded_() {\r\n this.addClass('vjs-ended');\r\n if (this.options_.loop) {\r\n this.currentTime(0);\r\n this.play();\r\n } else if (!this.paused()) {\r\n this.pause();\r\n }\r\n\r\n this.trigger('ended');\r\n };\r\n\r\n /**\r\n * Fired when the duration of the media resource is first known or changed\r\n *\r\n * @private\r\n * @method handleTechDurationChange_\r\n */\r\n\r\n Player.prototype.handleTechDurationChange_ = function handleTechDurationChange_() {\r\n this.duration(this.techGet_('duration'));\r\n };\r\n\r\n /**\r\n * Handle a click on the media element to play/pause\r\n *\r\n * @param {Object=} event Event object\r\n * @private\r\n * @method handleTechClick_\r\n */\r\n\r\n Player.prototype.handleTechClick_ = function handleTechClick_(event) {\r\n // We're using mousedown to detect clicks thanks to Flash, but mousedown\r\n // will also be triggered with right-clicks, so we need to prevent that\r\n if (event.button !== 0) return;\r\n\r\n // When controls are disabled a click should not toggle playback because\r\n // the click is considered a control\r\n if (this.controls()) {\r\n if (this.paused()) {\r\n this.play();\r\n } else {\r\n this.pause();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Handle a tap on the media element. It will toggle the user\r\n * activity state, which hides and shows the controls.\r\n *\r\n * @private\r\n * @method handleTechTap_\r\n */\r\n\r\n Player.prototype.handleTechTap_ = function handleTechTap_() {\r\n this.userActive(!this.userActive());\r\n };\r\n\r\n /**\r\n * Handle touch to start\r\n *\r\n * @private\r\n * @method handleTechTouchStart_\r\n */\r\n\r\n Player.prototype.handleTechTouchStart_ = function handleTechTouchStart_() {\r\n this.userWasActive = this.userActive();\r\n };\r\n\r\n /**\r\n * Handle touch to move\r\n *\r\n * @private\r\n * @method handleTechTouchMove_\r\n */\r\n\r\n Player.prototype.handleTechTouchMove_ = function handleTechTouchMove_() {\r\n if (this.userWasActive) {\r\n this.reportUserActivity();\r\n }\r\n };\r\n\r\n /**\r\n * Handle touch to end\r\n *\r\n * @private\r\n * @method handleTechTouchEnd_\r\n */\r\n\r\n Player.prototype.handleTechTouchEnd_ = function handleTechTouchEnd_(event) {\r\n // Stop the mouse events from also happening\r\n event.preventDefault();\r\n };\r\n\r\n /**\r\n * Fired when the player switches in or out of fullscreen mode\r\n *\r\n * @private\r\n * @method handleFullscreenChange_\r\n */\r\n\r\n Player.prototype.handleFullscreenChange_ = function handleFullscreenChange_() {\r\n if (this.isFullscreen()) {\r\n this.addClass('vjs-fullscreen');\r\n } else {\r\n this.removeClass('vjs-fullscreen');\r\n }\r\n };\r\n\r\n /**\r\n * native click events on the SWF aren't triggered on IE11, Win8.1RT\r\n * use stageclick events triggered from inside the SWF instead\r\n *\r\n * @private\r\n * @method handleStageClick_\r\n */\r\n\r\n Player.prototype.handleStageClick_ = function handleStageClick_() {\r\n this.reportUserActivity();\r\n };\r\n\r\n /**\r\n * Handle Tech Fullscreen Change\r\n *\r\n * @private\r\n * @method handleTechFullscreenChange_\r\n */\r\n\r\n Player.prototype.handleTechFullscreenChange_ = function handleTechFullscreenChange_(event, data) {\r\n if (data) {\r\n this.isFullscreen(data.isFullscreen);\r\n }\r\n this.trigger('fullscreenchange');\r\n };\r\n\r\n /**\r\n * Fires when an error occurred during the loading of an audio/video\r\n *\r\n * @private\r\n * @method handleTechError_\r\n */\r\n\r\n Player.prototype.handleTechError_ = function handleTechError_() {\r\n var error = this.tech_.error();\r\n this.error(error && error.code);\r\n };\r\n\r\n /**\r\n * Fires when the browser is intentionally not getting media data\r\n *\r\n * @private\r\n * @method handleTechSuspend_\r\n */\r\n\r\n Player.prototype.handleTechSuspend_ = function handleTechSuspend_() {\r\n this.trigger('suspend');\r\n };\r\n\r\n /**\r\n * Fires when the loading of an audio/video is aborted\r\n *\r\n * @private\r\n * @method handleTechAbort_\r\n */\r\n\r\n Player.prototype.handleTechAbort_ = function handleTechAbort_() {\r\n this.trigger('abort');\r\n };\r\n\r\n /**\r\n * Fires when the current playlist is empty\r\n *\r\n * @private\r\n * @method handleTechEmptied_\r\n */\r\n\r\n Player.prototype.handleTechEmptied_ = function handleTechEmptied_() {\r\n this.trigger('emptied');\r\n };\r\n\r\n /**\r\n * Fires when the browser is trying to get media data, but data is not available\r\n *\r\n * @private\r\n * @method handleTechStalled_\r\n */\r\n\r\n Player.prototype.handleTechStalled_ = function handleTechStalled_() {\r\n this.trigger('stalled');\r\n };\r\n\r\n /**\r\n * Fires when the browser has loaded meta data for the audio/video\r\n *\r\n * @private\r\n * @method handleTechLoadedMetaData_\r\n */\r\n\r\n Player.prototype.handleTechLoadedMetaData_ = function handleTechLoadedMetaData_() {\r\n this.trigger('loadedmetadata');\r\n };\r\n\r\n /**\r\n * Fires when the browser has loaded the current frame of the audio/video\r\n *\r\n * @private\r\n * @method handleTechLoadedData_\r\n */\r\n\r\n Player.prototype.handleTechLoadedData_ = function handleTechLoadedData_() {\r\n this.trigger('loadeddata');\r\n };\r\n\r\n /**\r\n * Fires when the current playback position has changed\r\n *\r\n * @private\r\n * @method handleTechTimeUpdate_\r\n */\r\n\r\n Player.prototype.handleTechTimeUpdate_ = function handleTechTimeUpdate_() {\r\n this.trigger('timeupdate');\r\n };\r\n\r\n /**\r\n * Fires when the playing speed of the audio/video is changed\r\n *\r\n * @private\r\n * @method handleTechRateChange_\r\n */\r\n\r\n Player.prototype.handleTechRateChange_ = function handleTechRateChange_() {\r\n this.trigger('ratechange');\r\n };\r\n\r\n /**\r\n * Fires when the volume has been changed\r\n *\r\n * @private\r\n * @method handleTechVolumeChange_\r\n */\r\n\r\n Player.prototype.handleTechVolumeChange_ = function handleTechVolumeChange_() {\r\n this.trigger('volumechange');\r\n };\r\n\r\n /**\r\n * Fires when the text track has been changed\r\n *\r\n * @private\r\n * @method handleTechTextTrackChange_\r\n */\r\n\r\n Player.prototype.handleTechTextTrackChange_ = function handleTechTextTrackChange_() {\r\n this.trigger('texttrackchange');\r\n };\r\n\r\n /**\r\n * Get object for cached values.\r\n *\r\n * @return {Object}\r\n * @method getCache\r\n */\r\n\r\n Player.prototype.getCache = function getCache() {\r\n return this.cache_;\r\n };\r\n\r\n /**\r\n * Pass values to the playback tech\r\n *\r\n * @param {String=} method Method\r\n * @param {Object=} arg Argument\r\n * @private\r\n * @method techCall_\r\n */\r\n\r\n Player.prototype.techCall_ = function techCall_(method, arg) {\r\n // If it's not ready yet, call method when it is\r\n if (this.tech_ && !this.tech_.isReady_) {\r\n this.tech_.ready(function () {\r\n this[method](arg);\r\n }, true);\r\n\r\n // Otherwise call method now\r\n } else {\r\n try {\r\n this.tech_[method](arg);\r\n } catch (e) {\r\n _utilsLogJs2['default'](e);\r\n throw e;\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Get calls can't wait for the tech, and sometimes don't need to.\r\n *\r\n * @param {String} method Tech method\r\n * @return {Method}\r\n * @private\r\n * @method techGet_\r\n */\r\n\r\n Player.prototype.techGet_ = function techGet_(method) {\r\n if (this.tech_ && this.tech_.isReady_) {\r\n\r\n // Flash likes to die and reload when you hide or reposition it.\r\n // In these cases the object methods go away and we get errors.\r\n // When that happens we'll catch the errors and inform tech that it's not ready any more.\r\n try {\r\n return this.tech_[method]();\r\n } catch (e) {\r\n // When building additional tech libs, an expected method may not be defined yet\r\n if (this.tech_[method] === undefined) {\r\n _utilsLogJs2['default']('Video.js: ' + method + ' method not defined for ' + this.techName_ + ' playback technology.', e);\r\n } else {\r\n // When a method isn't available on the object it throws a TypeError\r\n if (e.name === 'TypeError') {\r\n _utilsLogJs2['default']('Video.js: ' + method + ' unavailable on ' + this.techName_ + ' playback technology element.', e);\r\n this.tech_.isReady_ = false;\r\n } else {\r\n _utilsLogJs2['default'](e);\r\n }\r\n }\r\n throw e;\r\n }\r\n }\r\n\r\n return;\r\n };\r\n\r\n /**\r\n * start media playback\r\n * ```js\r\n * myPlayer.play();\r\n * ```\r\n *\r\n * @return {Player} self\r\n * @method play\r\n */\r\n\r\n Player.prototype.play = function play() {\r\n this.techCall_('play');\r\n return this;\r\n };\r\n\r\n /**\r\n * Pause the video playback\r\n * ```js\r\n * myPlayer.pause();\r\n * ```\r\n *\r\n * @return {Player} self\r\n * @method pause\r\n */\r\n\r\n Player.prototype.pause = function pause() {\r\n this.techCall_('pause');\r\n return this;\r\n };\r\n\r\n /**\r\n * Check if the player is paused\r\n * ```js\r\n * var isPaused = myPlayer.paused();\r\n * var isPlaying = !myPlayer.paused();\r\n * ```\r\n *\r\n * @return {Boolean} false if the media is currently playing, or true otherwise\r\n * @method paused\r\n */\r\n\r\n Player.prototype.paused = function paused() {\r\n // The initial state of paused should be true (in Safari it's actually false)\r\n return this.techGet_('paused') === false ? false : true;\r\n };\r\n\r\n /**\r\n * Returns whether or not the user is \"scrubbing\". Scrubbing is when the user\r\n * has clicked the progress bar handle and is dragging it along the progress bar.\r\n *\r\n * @param {Boolean} isScrubbing True/false the user is scrubbing\r\n * @return {Boolean} The scrubbing status when getting\r\n * @return {Object} The player when setting\r\n * @method scrubbing\r\n */\r\n\r\n Player.prototype.scrubbing = function scrubbing(isScrubbing) {\r\n if (isScrubbing !== undefined) {\r\n this.scrubbing_ = !!isScrubbing;\r\n\r\n if (isScrubbing) {\r\n this.addClass('vjs-scrubbing');\r\n } else {\r\n this.removeClass('vjs-scrubbing');\r\n }\r\n\r\n return this;\r\n }\r\n\r\n return this.scrubbing_;\r\n };\r\n\r\n /**\r\n * Get or set the current time (in seconds)\r\n * ```js\r\n * // get\r\n * var whereYouAt = myPlayer.currentTime();\r\n * // set\r\n * myPlayer.currentTime(120); // 2 minutes into the video\r\n * ```\r\n *\r\n * @param {Number|String=} seconds The time to seek to\r\n * @return {Number} The time in seconds, when not setting\r\n * @return {Player} self, when the current time is set\r\n * @method currentTime\r\n */\r\n\r\n Player.prototype.currentTime = function currentTime(seconds) {\r\n if (seconds !== undefined) {\r\n\r\n this.techCall_('setCurrentTime', seconds);\r\n\r\n return this;\r\n }\r\n\r\n // cache last currentTime and return. default to 0 seconds\r\n //\r\n // Caching the currentTime is meant to prevent a massive amount of reads on the tech's\r\n // currentTime when scrubbing, but may not provide much performance benefit afterall.\r\n // Should be tested. Also something has to read the actual current time or the cache will\r\n // never get updated.\r\n return this.cache_.currentTime = this.techGet_('currentTime') || 0;\r\n };\r\n\r\n /**\r\n * Get the length in time of the video in seconds\r\n * ```js\r\n * var lengthOfVideo = myPlayer.duration();\r\n * ```\r\n * **NOTE**: The video must have started loading before the duration can be\r\n * known, and in the case of Flash, may not be known until the video starts\r\n * playing.\r\n *\r\n * @param {Number} seconds Duration when setting\r\n * @return {Number} The duration of the video in seconds when getting\r\n * @method duration\r\n */\r\n\r\n Player.prototype.duration = function duration(seconds) {\r\n if (seconds === undefined) {\r\n return this.cache_.duration || 0;\r\n }\r\n\r\n seconds = parseFloat(seconds) || 0;\r\n\r\n // Standardize on Inifity for signaling video is live\r\n if (seconds < 0) {\r\n seconds = Infinity;\r\n }\r\n\r\n if (seconds !== this.cache_.duration) {\r\n // Cache the last set value for optimized scrubbing (esp. Flash)\r\n this.cache_.duration = seconds;\r\n\r\n if (seconds === Infinity) {\r\n this.addClass('vjs-live');\r\n } else {\r\n this.removeClass('vjs-live');\r\n }\r\n\r\n this.trigger('durationchange');\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Calculates how much time is left.\r\n * ```js\r\n * var timeLeft = myPlayer.remainingTime();\r\n * ```\r\n * Not a native video element function, but useful\r\n *\r\n * @return {Number} The time remaining in seconds\r\n * @method remainingTime\r\n */\r\n\r\n Player.prototype.remainingTime = function remainingTime() {\r\n return this.duration() - this.currentTime();\r\n };\r\n\r\n // http://dev.w3.org/html5/spec/video.html#dom-media-buffered\r\n // Buffered returns a timerange object.\r\n // Kind of like an array of portions of the video that have been downloaded.\r\n\r\n /**\r\n * Get a TimeRange object with the times of the video that have been downloaded\r\n * If you just want the percent of the video that's been downloaded,\r\n * use bufferedPercent.\r\n * ```js\r\n * // Number of different ranges of time have been buffered. Usually 1.\r\n * numberOfRanges = bufferedTimeRange.length,\r\n * // Time in seconds when the first range starts. Usually 0.\r\n * firstRangeStart = bufferedTimeRange.start(0),\r\n * // Time in seconds when the first range ends\r\n * firstRangeEnd = bufferedTimeRange.end(0),\r\n * // Length in seconds of the first time range\r\n * firstRangeLength = firstRangeEnd - firstRangeStart;\r\n * ```\r\n *\r\n * @return {Object} A mock TimeRange object (following HTML spec)\r\n * @method buffered\r\n */\r\n\r\n Player.prototype.buffered = function buffered() {\r\n var buffered = this.techGet_('buffered');\r\n\r\n if (!buffered || !buffered.length) {\r\n buffered = _utilsTimeRangesJs.createTimeRange(0, 0);\r\n }\r\n\r\n return buffered;\r\n };\r\n\r\n /**\r\n * Get the percent (as a decimal) of the video that's been downloaded\r\n * ```js\r\n * var howMuchIsDownloaded = myPlayer.bufferedPercent();\r\n * ```\r\n * 0 means none, 1 means all.\r\n * (This method isn't in the HTML5 spec, but it's very convenient)\r\n *\r\n * @return {Number} A decimal between 0 and 1 representing the percent\r\n * @method bufferedPercent\r\n */\r\n\r\n Player.prototype.bufferedPercent = function bufferedPercent() {\r\n return _utilsBufferJs.bufferedPercent(this.buffered(), this.duration());\r\n };\r\n\r\n /**\r\n * Get the ending time of the last buffered time range\r\n * This is used in the progress bar to encapsulate all time ranges.\r\n *\r\n * @return {Number} The end of the last buffered time range\r\n * @method bufferedEnd\r\n */\r\n\r\n Player.prototype.bufferedEnd = function bufferedEnd() {\r\n var buffered = this.buffered(),\r\n duration = this.duration(),\r\n end = buffered.end(buffered.length - 1);\r\n\r\n if (end > duration) {\r\n end = duration;\r\n }\r\n\r\n return end;\r\n };\r\n\r\n /**\r\n * Get or set the current volume of the media\r\n * ```js\r\n * // get\r\n * var howLoudIsIt = myPlayer.volume();\r\n * // set\r\n * myPlayer.volume(0.5); // Set volume to half\r\n * ```\r\n * 0 is off (muted), 1.0 is all the way up, 0.5 is half way.\r\n *\r\n * @param {Number} percentAsDecimal The new volume as a decimal percent\r\n * @return {Number} The current volume when getting\r\n * @return {Player} self when setting\r\n * @method volume\r\n */\r\n\r\n Player.prototype.volume = function volume(percentAsDecimal) {\r\n var vol = undefined;\r\n\r\n if (percentAsDecimal !== undefined) {\r\n vol = Math.max(0, Math.min(1, parseFloat(percentAsDecimal))); // Force value to between 0 and 1\r\n this.cache_.volume = vol;\r\n this.techCall_('setVolume', vol);\r\n\r\n return this;\r\n }\r\n\r\n // Default to 1 when returning current volume.\r\n vol = parseFloat(this.techGet_('volume'));\r\n return isNaN(vol) ? 1 : vol;\r\n };\r\n\r\n /**\r\n * Get the current muted state, or turn mute on or off\r\n * ```js\r\n * // get\r\n * var isVolumeMuted = myPlayer.muted();\r\n * // set\r\n * myPlayer.muted(true); // mute the volume\r\n * ```\r\n *\r\n * @param {Boolean=} muted True to mute, false to unmute\r\n * @return {Boolean} True if mute is on, false if not when getting\r\n * @return {Player} self when setting mute\r\n * @method muted\r\n */\r\n\r\n Player.prototype.muted = function muted(_muted) {\r\n if (_muted !== undefined) {\r\n this.techCall_('setMuted', _muted);\r\n return this;\r\n }\r\n return this.techGet_('muted') || false; // Default to false\r\n };\r\n\r\n // Check if current tech can support native fullscreen\r\n // (e.g. with built in controls like iOS, so not our flash swf)\r\n /**\r\n * Check to see if fullscreen is supported\r\n *\r\n * @return {Boolean}\r\n * @method supportsFullScreen\r\n */\r\n\r\n Player.prototype.supportsFullScreen = function supportsFullScreen() {\r\n return this.techGet_('supportsFullScreen') || false;\r\n };\r\n\r\n /**\r\n * Check if the player is in fullscreen mode\r\n * ```js\r\n * // get\r\n * var fullscreenOrNot = myPlayer.isFullscreen();\r\n * // set\r\n * myPlayer.isFullscreen(true); // tell the player it's in fullscreen\r\n * ```\r\n * NOTE: As of the latest HTML5 spec, isFullscreen is no longer an official\r\n * property and instead document.fullscreenElement is used. But isFullscreen is\r\n * still a valuable property for internal player workings.\r\n *\r\n * @param {Boolean=} isFS Update the player's fullscreen state\r\n * @return {Boolean} true if fullscreen false if not when getting\r\n * @return {Player} self when setting\r\n * @method isFullscreen\r\n */\r\n\r\n Player.prototype.isFullscreen = function isFullscreen(isFS) {\r\n if (isFS !== undefined) {\r\n this.isFullscreen_ = !!isFS;\r\n return this;\r\n }\r\n return !!this.isFullscreen_;\r\n };\r\n\r\n /**\r\n * Increase the size of the video to full screen\r\n * ```js\r\n * myPlayer.requestFullscreen();\r\n * ```\r\n * In some browsers, full screen is not supported natively, so it enters\r\n * \"full window mode\", where the video fills the browser window.\r\n * In browsers and devices that support native full screen, sometimes the\r\n * browser's default controls will be shown, and not the Video.js custom skin.\r\n * This includes most mobile devices (iOS, Android) and older versions of\r\n * Safari.\r\n *\r\n * @return {Player} self\r\n * @method requestFullscreen\r\n */\r\n\r\n Player.prototype.requestFullscreen = function requestFullscreen() {\r\n var fsApi = _fullscreenApiJs2['default'];\r\n\r\n this.isFullscreen(true);\r\n\r\n if (fsApi.requestFullscreen) {\r\n // the browser supports going fullscreen at the element level so we can\r\n // take the controls fullscreen as well as the video\r\n\r\n // Trigger fullscreenchange event after change\r\n // We have to specifically add this each time, and remove\r\n // when canceling fullscreen. Otherwise if there's multiple\r\n // players on a page, they would all be reacting to the same fullscreen\r\n // events\r\n Events.on(_globalDocument2['default'], fsApi.fullscreenchange, Fn.bind(this, function documentFullscreenChange(e) {\r\n this.isFullscreen(_globalDocument2['default'][fsApi.fullscreenElement]);\r\n\r\n // If cancelling fullscreen, remove event listener.\r\n if (this.isFullscreen() === false) {\r\n Events.off(_globalDocument2['default'], fsApi.fullscreenchange, documentFullscreenChange);\r\n }\r\n\r\n this.trigger('fullscreenchange');\r\n }));\r\n\r\n this.el_[fsApi.requestFullscreen]();\r\n } else if (this.tech_.supportsFullScreen()) {\r\n // we can't take the video.js controls fullscreen but we can go fullscreen\r\n // with native controls\r\n this.techCall_('enterFullScreen');\r\n } else {\r\n // fullscreen isn't supported so we'll just stretch the video element to\r\n // fill the viewport\r\n this.enterFullWindow();\r\n this.trigger('fullscreenchange');\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Return the video to its normal size after having been in full screen mode\r\n * ```js\r\n * myPlayer.exitFullscreen();\r\n * ```\r\n *\r\n * @return {Player} self\r\n * @method exitFullscreen\r\n */\r\n\r\n Player.prototype.exitFullscreen = function exitFullscreen() {\r\n var fsApi = _fullscreenApiJs2['default'];\r\n this.isFullscreen(false);\r\n\r\n // Check for browser element fullscreen support\r\n if (fsApi.requestFullscreen) {\r\n _globalDocument2['default'][fsApi.exitFullscreen]();\r\n } else if (this.tech_.supportsFullScreen()) {\r\n this.techCall_('exitFullScreen');\r\n } else {\r\n this.exitFullWindow();\r\n this.trigger('fullscreenchange');\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * When fullscreen isn't supported we can stretch the video container to as wide as the browser will let us.\r\n *\r\n * @method enterFullWindow\r\n */\r\n\r\n Player.prototype.enterFullWindow = function enterFullWindow() {\r\n this.isFullWindow = true;\r\n\r\n // Storing original doc overflow value to return to when fullscreen is off\r\n this.docOrigOverflow = _globalDocument2['default'].documentElement.style.overflow;\r\n\r\n // Add listener for esc key to exit fullscreen\r\n Events.on(_globalDocument2['default'], 'keydown', Fn.bind(this, this.fullWindowOnEscKey));\r\n\r\n // Hide any scroll bars\r\n _globalDocument2['default'].documentElement.style.overflow = 'hidden';\r\n\r\n // Apply fullscreen styles\r\n Dom.addElClass(_globalDocument2['default'].body, 'vjs-full-window');\r\n\r\n this.trigger('enterFullWindow');\r\n };\r\n\r\n /**\r\n * Check for call to either exit full window or full screen on ESC key\r\n *\r\n * @param {String} event Event to check for key press\r\n * @method fullWindowOnEscKey\r\n */\r\n\r\n Player.prototype.fullWindowOnEscKey = function fullWindowOnEscKey(event) {\r\n if (event.keyCode === 27) {\r\n if (this.isFullscreen() === true) {\r\n this.exitFullscreen();\r\n } else {\r\n this.exitFullWindow();\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Exit full window\r\n *\r\n * @method exitFullWindow\r\n */\r\n\r\n Player.prototype.exitFullWindow = function exitFullWindow() {\r\n this.isFullWindow = false;\r\n Events.off(_globalDocument2['default'], 'keydown', this.fullWindowOnEscKey);\r\n\r\n // Unhide scroll bars.\r\n _globalDocument2['default'].documentElement.style.overflow = this.docOrigOverflow;\r\n\r\n // Remove fullscreen styles\r\n Dom.removeElClass(_globalDocument2['default'].body, 'vjs-full-window');\r\n\r\n // Resize the box, controller, and poster to original sizes\r\n // this.positionAll();\r\n this.trigger('exitFullWindow');\r\n };\r\n\r\n /**\r\n * Check whether the player can play a given mimetype\r\n *\r\n * @param {String} type The mimetype to check\r\n * @return {String} 'probably', 'maybe', or '' (empty string)\r\n * @method canPlayType\r\n */\r\n\r\n Player.prototype.canPlayType = function canPlayType(type) {\r\n var can = undefined;\r\n\r\n // Loop through each playback technology in the options order\r\n for (var i = 0, j = this.options_.techOrder; i < j.length; i++) {\r\n var techName = _utilsToTitleCaseJs2['default'](j[i]);\r\n var tech = _techTechJs2['default'].getTech(techName);\r\n\r\n // Support old behavior of techs being registered as components.\r\n // Remove once that deprecated behavior is removed.\r\n if (!tech) {\r\n tech = _componentJs2['default'].getComponent(techName);\r\n }\r\n\r\n // Check if the current tech is defined before continuing\r\n if (!tech) {\r\n _utilsLogJs2['default'].error('The \"' + techName + '\" tech is undefined. Skipped browser support check for that tech.');\r\n continue;\r\n }\r\n\r\n // Check if the browser supports this technology\r\n if (tech.isSupported()) {\r\n can = tech.canPlayType(type);\r\n\r\n if (can) {\r\n return can;\r\n }\r\n }\r\n }\r\n\r\n return '';\r\n };\r\n\r\n /**\r\n * Select source based on tech-order or source-order\r\n * Uses source-order selection if `options.sourceOrder` is truthy. Otherwise,\r\n * defaults to tech-order selection\r\n *\r\n * @param {Array} sources The sources for a media asset\r\n * @return {Object|Boolean} Object of source and tech order, otherwise false\r\n * @method selectSource\r\n */\r\n\r\n Player.prototype.selectSource = function selectSource(sources) {\r\n // Get only the techs specified in `techOrder` that exist and are supported by the\r\n // current platform\r\n var techs = this.options_.techOrder.map(_utilsToTitleCaseJs2['default']).map(function (techName) {\r\n // `Component.getComponent(...)` is for support of old behavior of techs\r\n // being registered as components.\r\n // Remove once that deprecated behavior is removed.\r\n return [techName, _techTechJs2['default'].getTech(techName) || _componentJs2['default'].getComponent(techName)];\r\n }).filter(function (_ref) {\r\n var techName = _ref[0];\r\n var tech = _ref[1];\r\n\r\n // Check if the current tech is defined before continuing\r\n if (tech) {\r\n // Check if the browser supports this technology\r\n return tech.isSupported();\r\n }\r\n\r\n _utilsLogJs2['default'].error('The \"' + techName + '\" tech is undefined. Skipped browser support check for that tech.');\r\n return false;\r\n });\r\n\r\n // Iterate over each `innerArray` element once per `outerArray` element and execute\r\n // `tester` with both. If `tester` returns a non-falsy value, exit early and return\r\n // that value.\r\n var findFirstPassingTechSourcePair = function findFirstPassingTechSourcePair(outerArray, innerArray, tester) {\r\n var found = undefined;\r\n\r\n outerArray.some(function (outerChoice) {\r\n return innerArray.some(function (innerChoice) {\r\n found = tester(outerChoice, innerChoice);\r\n\r\n if (found) {\r\n return true;\r\n }\r\n });\r\n });\r\n\r\n return found;\r\n };\r\n\r\n var foundSourceAndTech = undefined;\r\n var flip = function flip(fn) {\r\n return function (a, b) {\r\n return fn(b, a);\r\n };\r\n };\r\n var finder = function finder(_ref2, source) {\r\n var techName = _ref2[0];\r\n var tech = _ref2[1];\r\n\r\n if (tech.canPlaySource(source)) {\r\n return { source: source, tech: techName };\r\n }\r\n };\r\n\r\n // Depending on the truthiness of `options.sourceOrder`, we swap the order of techs and sources\r\n // to select from them based on their priority.\r\n if (this.options_.sourceOrder) {\r\n // Source-first ordering\r\n foundSourceAndTech = findFirstPassingTechSourcePair(sources, techs, flip(finder));\r\n } else {\r\n // Tech-first ordering\r\n foundSourceAndTech = findFirstPassingTechSourcePair(techs, sources, finder);\r\n }\r\n\r\n return foundSourceAndTech || false;\r\n };\r\n\r\n /**\r\n * The source function updates the video source\r\n * There are three types of variables you can pass as the argument.\r\n * **URL String**: A URL to the the video file. Use this method if you are sure\r\n * the current playback technology (HTML5/Flash) can support the source you\r\n * provide. Currently only MP4 files can be used in both HTML5 and Flash.\r\n * ```js\r\n * myPlayer.src(\"http://www.example.com/path/to/video.mp4\");\r\n * ```\r\n * **Source Object (or element):* * A javascript object containing information\r\n * about the source file. Use this method if you want the player to determine if\r\n * it can support the file using the type information.\r\n * ```js\r\n * myPlayer.src({ type: \"video/mp4\", src: \"http://www.example.com/path/to/video.mp4\" });\r\n * ```\r\n * **Array of Source Objects:* * To provide multiple versions of the source so\r\n * that it can be played using HTML5 across browsers you can use an array of\r\n * source objects. Video.js will detect which version is supported and load that\r\n * file.\r\n * ```js\r\n * myPlayer.src([\r\n * { type: \"video/mp4\", src: \"http://www.example.com/path/to/video.mp4\" },\r\n * { type: \"video/webm\", src: \"http://www.example.com/path/to/video.webm\" },\r\n * { type: \"video/ogg\", src: \"http://www.example.com/path/to/video.ogv\" }\r\n * ]);\r\n * ```\r\n *\r\n * @param {String|Object|Array=} source The source URL, object, or array of sources\r\n * @return {String} The current video source when getting\r\n * @return {String} The player when setting\r\n * @method src\r\n */\r\n\r\n Player.prototype.src = function src(source) {\r\n if (source === undefined) {\r\n return this.techGet_('src');\r\n }\r\n\r\n var currentTech = _techTechJs2['default'].getTech(this.techName_);\r\n // Support old behavior of techs being registered as components.\r\n // Remove once that deprecated behavior is removed.\r\n if (!currentTech) {\r\n currentTech = _componentJs2['default'].getComponent(this.techName_);\r\n }\r\n\r\n // case: Array of source objects to choose from and pick the best to play\r\n if (Array.isArray(source)) {\r\n this.sourceList_(source);\r\n\r\n // case: URL String (http://myvideo...)\r\n } else if (typeof source === 'string') {\r\n // create a source object from the string\r\n this.src({ src: source });\r\n\r\n // case: Source object { src: '', type: '' ... }\r\n } else if (source instanceof Object) {\r\n // check if the source has a type and the loaded tech cannot play the source\r\n // if there's no type we'll just try the current tech\r\n if (source.type && !currentTech.canPlaySource(source)) {\r\n // create a source list with the current source and send through\r\n // the tech loop to check for a compatible technology\r\n this.sourceList_([source]);\r\n } else {\r\n this.cache_.src = source.src;\r\n this.currentType_ = source.type || '';\r\n\r\n // wait until the tech is ready to set the source\r\n this.ready(function () {\r\n\r\n // The setSource tech method was added with source handlers\r\n // so older techs won't support it\r\n // We need to check the direct prototype for the case where subclasses\r\n // of the tech do not support source handlers\r\n if (currentTech.prototype.hasOwnProperty('setSource')) {\r\n this.techCall_('setSource', source);\r\n } else {\r\n this.techCall_('src', source.src);\r\n }\r\n\r\n if (this.options_.preload === 'auto') {\r\n this.load();\r\n }\r\n\r\n if (this.options_.autoplay) {\r\n this.play();\r\n }\r\n\r\n // Set the source synchronously if possible (#2326)\r\n }, true);\r\n }\r\n }\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Handle an array of source objects\r\n *\r\n * @param {Array} sources Array of source objects\r\n * @private\r\n * @method sourceList_\r\n */\r\n\r\n Player.prototype.sourceList_ = function sourceList_(sources) {\r\n var sourceTech = this.selectSource(sources);\r\n\r\n if (sourceTech) {\r\n if (sourceTech.tech === this.techName_) {\r\n // if this technology is already loaded, set the source\r\n this.src(sourceTech.source);\r\n } else {\r\n // load this technology with the chosen source\r\n this.loadTech_(sourceTech.tech, sourceTech.source);\r\n }\r\n } else {\r\n // We need to wrap this in a timeout to give folks a chance to add error event handlers\r\n this.setTimeout(function () {\r\n this.error({ code: 4, message: this.localize(this.options_.notSupportedMessage) });\r\n }, 0);\r\n\r\n // we could not find an appropriate tech, but let's still notify the delegate that this is it\r\n // this needs a better comment about why this is needed\r\n this.triggerReady();\r\n }\r\n };\r\n\r\n /**\r\n * Begin loading the src data.\r\n *\r\n * @return {Player} Returns the player\r\n * @method load\r\n */\r\n\r\n Player.prototype.load = function load() {\r\n this.techCall_('load');\r\n return this;\r\n };\r\n\r\n /**\r\n * Reset the player. Loads the first tech in the techOrder,\r\n * and calls `reset` on the tech`.\r\n *\r\n * @return {Player} Returns the player\r\n * @method reset\r\n */\r\n\r\n Player.prototype.reset = function reset() {\r\n this.loadTech_(_utilsToTitleCaseJs2['default'](this.options_.techOrder[0]), null);\r\n this.techCall_('reset');\r\n return this;\r\n };\r\n\r\n /**\r\n * Returns the fully qualified URL of the current source value e.g. http://mysite.com/video.mp4\r\n * Can be used in conjuction with `currentType` to assist in rebuilding the current source object.\r\n *\r\n * @return {String} The current source\r\n * @method currentSrc\r\n */\r\n\r\n Player.prototype.currentSrc = function currentSrc() {\r\n return this.techGet_('currentSrc') || this.cache_.src || '';\r\n };\r\n\r\n /**\r\n * Get the current source type e.g. video/mp4\r\n * This can allow you rebuild the current source object so that you could load the same\r\n * source and tech later\r\n *\r\n * @return {String} The source MIME type\r\n * @method currentType\r\n */\r\n\r\n Player.prototype.currentType = function currentType() {\r\n return this.currentType_ || '';\r\n };\r\n\r\n /**\r\n * Get or set the preload attribute\r\n *\r\n * @param {Boolean} value Boolean to determine if preload should be used\r\n * @return {String} The preload attribute value when getting\r\n * @return {Player} Returns the player when setting\r\n * @method preload\r\n */\r\n\r\n Player.prototype.preload = function preload(value) {\r\n if (value !== undefined) {\r\n this.techCall_('setPreload', value);\r\n this.options_.preload = value;\r\n return this;\r\n }\r\n return this.techGet_('preload');\r\n };\r\n\r\n /**\r\n * Get or set the autoplay attribute.\r\n *\r\n * @param {Boolean} value Boolean to determine if video should autoplay\r\n * @return {String} The autoplay attribute value when getting\r\n * @return {Player} Returns the player when setting\r\n * @method autoplay\r\n */\r\n\r\n Player.prototype.autoplay = function autoplay(value) {\r\n if (value !== undefined) {\r\n this.techCall_('setAutoplay', value);\r\n this.options_.autoplay = value;\r\n return this;\r\n }\r\n return this.techGet_('autoplay', value);\r\n };\r\n\r\n /**\r\n * Get or set the loop attribute on the video element.\r\n *\r\n * @param {Boolean} value Boolean to determine if video should loop\r\n * @return {String} The loop attribute value when getting\r\n * @return {Player} Returns the player when setting\r\n * @method loop\r\n */\r\n\r\n Player.prototype.loop = function loop(value) {\r\n if (value !== undefined) {\r\n this.techCall_('setLoop', value);\r\n this.options_['loop'] = value;\r\n return this;\r\n }\r\n return this.techGet_('loop');\r\n };\r\n\r\n /**\r\n * Get or set the poster image source url\r\n *\r\n * ##### EXAMPLE:\r\n * ```js\r\n * // get\r\n * var currentPoster = myPlayer.poster();\r\n * // set\r\n * myPlayer.poster('http://example.com/myImage.jpg');\r\n * ```\r\n *\r\n * @param {String=} src Poster image source URL\r\n * @return {String} poster URL when getting\r\n * @return {Player} self when setting\r\n * @method poster\r\n */\r\n\r\n Player.prototype.poster = function poster(src) {\r\n if (src === undefined) {\r\n return this.poster_;\r\n }\r\n\r\n // The correct way to remove a poster is to set as an empty string\r\n // other falsey values will throw errors\r\n if (!src) {\r\n src = '';\r\n }\r\n\r\n // update the internal poster variable\r\n this.poster_ = src;\r\n\r\n // update the tech's poster\r\n this.techCall_('setPoster', src);\r\n\r\n // alert components that the poster has been set\r\n this.trigger('posterchange');\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Some techs (e.g. YouTube) can provide a poster source in an\r\n * asynchronous way. We want the poster component to use this\r\n * poster source so that it covers up the tech's controls.\r\n * (YouTube's play button). However we only want to use this\r\n * soruce if the player user hasn't set a poster through\r\n * the normal APIs.\r\n *\r\n * @private\r\n * @method handleTechPosterChange_\r\n */\r\n\r\n Player.prototype.handleTechPosterChange_ = function handleTechPosterChange_() {\r\n if (!this.poster_ && this.tech_ && this.tech_.poster) {\r\n this.poster_ = this.tech_.poster() || '';\r\n\r\n // Let components know the poster has changed\r\n this.trigger('posterchange');\r\n }\r\n };\r\n\r\n /**\r\n * Get or set whether or not the controls are showing.\r\n *\r\n * @param {Boolean} bool Set controls to showing or not\r\n * @return {Boolean} Controls are showing\r\n * @method controls\r\n */\r\n\r\n Player.prototype.controls = function controls(bool) {\r\n if (bool !== undefined) {\r\n bool = !!bool; // force boolean\r\n // Don't trigger a change event unless it actually changed\r\n if (this.controls_ !== bool) {\r\n this.controls_ = bool;\r\n\r\n if (this.usingNativeControls()) {\r\n this.techCall_('setControls', bool);\r\n }\r\n\r\n if (bool) {\r\n this.removeClass('vjs-controls-disabled');\r\n this.addClass('vjs-controls-enabled');\r\n this.trigger('controlsenabled');\r\n\r\n if (!this.usingNativeControls()) {\r\n this.addTechControlsListeners_();\r\n }\r\n } else {\r\n this.removeClass('vjs-controls-enabled');\r\n this.addClass('vjs-controls-disabled');\r\n this.trigger('controlsdisabled');\r\n\r\n if (!this.usingNativeControls()) {\r\n this.removeTechControlsListeners_();\r\n }\r\n }\r\n }\r\n return this;\r\n }\r\n return !!this.controls_;\r\n };\r\n\r\n /**\r\n * Toggle native controls on/off. Native controls are the controls built into\r\n * devices (e.g. default iPhone controls), Flash, or other techs\r\n * (e.g. Vimeo Controls)\r\n * **This should only be set by the current tech, because only the tech knows\r\n * if it can support native controls**\r\n *\r\n * @param {Boolean} bool True signals that native controls are on\r\n * @return {Player} Returns the player\r\n * @private\r\n * @method usingNativeControls\r\n */\r\n\r\n Player.prototype.usingNativeControls = function usingNativeControls(bool) {\r\n if (bool !== undefined) {\r\n bool = !!bool; // force boolean\r\n // Don't trigger a change event unless it actually changed\r\n if (this.usingNativeControls_ !== bool) {\r\n this.usingNativeControls_ = bool;\r\n if (bool) {\r\n this.addClass('vjs-using-native-controls');\r\n\r\n /**\r\n * player is using the native device controls\r\n *\r\n * @event usingnativecontrols\r\n * @memberof Player\r\n * @instance\r\n * @private\r\n */\r\n this.trigger('usingnativecontrols');\r\n } else {\r\n this.removeClass('vjs-using-native-controls');\r\n\r\n /**\r\n * player is using the custom HTML controls\r\n *\r\n * @event usingcustomcontrols\r\n * @memberof Player\r\n * @instance\r\n * @private\r\n */\r\n this.trigger('usingcustomcontrols');\r\n }\r\n }\r\n return this;\r\n }\r\n return !!this.usingNativeControls_;\r\n };\r\n\r\n /**\r\n * Set or get the current MediaError\r\n *\r\n * @param {*} err A MediaError or a String/Number to be turned into a MediaError\r\n * @return {MediaError|null} when getting\r\n * @return {Player} when setting\r\n * @method error\r\n */\r\n\r\n Player.prototype.error = function error(err) {\r\n if (err === undefined) {\r\n return this.error_ || null;\r\n }\r\n\r\n // restoring to default\r\n if (err === null) {\r\n this.error_ = err;\r\n this.removeClass('vjs-error');\r\n this.errorDisplay.close();\r\n return this;\r\n }\r\n\r\n // error instance\r\n if (err instanceof _mediaErrorJs2['default']) {\r\n this.error_ = err;\r\n } else {\r\n this.error_ = new _mediaErrorJs2['default'](err);\r\n }\r\n\r\n // add the vjs-error classname to the player\r\n this.addClass('vjs-error');\r\n\r\n // log the name of the error type and any message\r\n // ie8 just logs \"[object object]\" if you just log the error object\r\n _utilsLogJs2['default'].error('(CODE:' + this.error_.code + ' ' + _mediaErrorJs2['default'].errorTypes[this.error_.code] + ')', this.error_.message, this.error_);\r\n\r\n // fire an error event on the player\r\n this.trigger('error');\r\n\r\n return this;\r\n };\r\n\r\n /**\r\n * Returns whether or not the player is in the \"ended\" state.\r\n *\r\n * @return {Boolean} True if the player is in the ended state, false if not.\r\n * @method ended\r\n */\r\n\r\n Player.prototype.ended = function ended() {\r\n return this.techGet_('ended');\r\n };\r\n\r\n /**\r\n * Returns whether or not the player is in the \"seeking\" state.\r\n *\r\n * @return {Boolean} True if the player is in the seeking state, false if not.\r\n * @method seeking\r\n */\r\n\r\n Player.prototype.seeking = function seeking() {\r\n return this.techGet_('seeking');\r\n };\r\n\r\n /**\r\n * Returns the TimeRanges of the media that are currently available\r\n * for seeking to.\r\n *\r\n * @return {TimeRanges} the seekable intervals of the media timeline\r\n * @method seekable\r\n */\r\n\r\n Player.prototype.seekable = function seekable() {\r\n return this.techGet_('seekable');\r\n };\r\n\r\n /**\r\n * Report user activity\r\n *\r\n * @param {Object} event Event object\r\n * @method reportUserActivity\r\n */\r\n\r\n Player.prototype.reportUserActivity = function reportUserActivity(event) {\r\n this.userActivity_ = true;\r\n };\r\n\r\n /**\r\n * Get/set if user is active\r\n *\r\n * @param {Boolean} bool Value when setting\r\n * @return {Boolean} Value if user is active user when getting\r\n * @method userActive\r\n */\r\n\r\n Player.prototype.userActive = function userActive(bool) {\r\n if (bool !== undefined) {\r\n bool = !!bool;\r\n if (bool !== this.userActive_) {\r\n this.userActive_ = bool;\r\n if (bool) {\r\n // If the user was inactive and is now active we want to reset the\r\n // inactivity timer\r\n this.userActivity_ = true;\r\n this.removeClass('vjs-user-inactive');\r\n this.addClass('vjs-user-active');\r\n this.trigger('useractive');\r\n } else {\r\n // We're switching the state to inactive manually, so erase any other\r\n // activity\r\n this.userActivity_ = false;\r\n\r\n // Chrome/Safari/IE have bugs where when you change the cursor it can\r\n // trigger a mousemove event. This causes an issue when you're hiding\r\n // the cursor when the user is inactive, and a mousemove signals user\r\n // activity. Making it impossible to go into inactive mode. Specifically\r\n // this happens in fullscreen when we really need to hide the cursor.\r\n //\r\n // When this gets resolved in ALL browsers it can be removed\r\n // https://code.google.com/p/chromium/issues/detail?id=103041\r\n if (this.tech_) {\r\n this.tech_.one('mousemove', function (e) {\r\n e.stopPropagation();\r\n e.preventDefault();\r\n });\r\n }\r\n\r\n this.removeClass('vjs-user-active');\r\n this.addClass('vjs-user-inactive');\r\n this.trigger('userinactive');\r\n }\r\n }\r\n return this;\r\n }\r\n return this.userActive_;\r\n };\r\n\r\n /**\r\n * Listen for user activity based on timeout value\r\n *\r\n * @private\r\n * @method listenForUserActivity_\r\n */\r\n\r\n Player.prototype.listenForUserActivity_ = function listenForUserActivity_() {\r\n var mouseInProgress = undefined,\r\n lastMoveX = undefined,\r\n lastMoveY = undefined;\r\n\r\n var handleActivity = Fn.bind(this, this.reportUserActivity);\r\n\r\n var handleMouseMove = function handleMouseMove(e) {\r\n // #1068 - Prevent mousemove spamming\r\n // Chrome Bug: https://code.google.com/p/chromium/issues/detail?id=366970\r\n if (e.screenX !== lastMoveX || e.screenY !== lastMoveY) {\r\n lastMoveX = e.screenX;\r\n lastMoveY = e.screenY;\r\n handleActivity();\r\n }\r\n };\r\n\r\n var handleMouseDown = function handleMouseDown() {\r\n handleActivity();\r\n // For as long as the they are touching the device or have their mouse down,\r\n // we consider them active even if they're not moving their finger or mouse.\r\n // So we want to continue to update that they are active\r\n this.clearInterval(mouseInProgress);\r\n // Setting userActivity=true now and setting the interval to the same time\r\n // as the activityCheck interval (250) should ensure we never miss the\r\n // next activityCheck\r\n mouseInProgress = this.setInterval(handleActivity, 250);\r\n };\r\n\r\n var handleMouseUp = function handleMouseUp(event) {\r\n handleActivity();\r\n // Stop the interval that maintains activity if the mouse/touch is down\r\n this.clearInterval(mouseInProgress);\r\n };\r\n\r\n // Any mouse movement will be considered user activity\r\n this.on('mousedown', handleMouseDown);\r\n this.on('mousemove', handleMouseMove);\r\n this.on('mouseup', handleMouseUp);\r\n\r\n // Listen for keyboard navigation\r\n // Shouldn't need to use inProgress interval because of key repeat\r\n this.on('keydown', handleActivity);\r\n this.on('keyup', handleActivity);\r\n\r\n // Run an interval every 250 milliseconds instead of stuffing everything into\r\n // the mousemove/touchmove function itself, to prevent performance degradation.\r\n // `this.reportUserActivity` simply sets this.userActivity_ to true, which\r\n // then gets picked up by this loop\r\n // http://ejohn.org/blog/learning-from-twitter/\r\n var inactivityTimeout = undefined;\r\n var activityCheck = this.setInterval(function () {\r\n // Check to see if mouse/touch activity has happened\r\n if (this.userActivity_) {\r\n // Reset the activity tracker\r\n this.userActivity_ = false;\r\n\r\n // If the user state was inactive, set the state to active\r\n this.userActive(true);\r\n\r\n // Clear any existing inactivity timeout to start the timer over\r\n this.clearTimeout(inactivityTimeout);\r\n\r\n var timeout = this.options_['inactivityTimeout'];\r\n if (timeout > 0) {\r\n // In milliseconds, if no more activity has occurred the\r\n // user will be considered inactive\r\n inactivityTimeout = this.setTimeout(function () {\r\n // Protect against the case where the inactivityTimeout can trigger just\r\n // before the next user activity is picked up by the activityCheck loop\r\n // causing a flicker\r\n if (!this.userActivity_) {\r\n this.userActive(false);\r\n }\r\n }, timeout);\r\n }\r\n }\r\n }, 250);\r\n };\r\n\r\n /**\r\n * Gets or sets the current playback rate. A playback rate of\r\n * 1.0 represents normal speed and 0.5 would indicate half-speed\r\n * playback, for instance.\r\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-playbackrate\r\n *\r\n * @param {Number} rate New playback rate to set.\r\n * @return {Number} Returns the new playback rate when setting\r\n * @return {Number} Returns the current playback rate when getting\r\n * @method playbackRate\r\n */\r\n\r\n Player.prototype.playbackRate = function playbackRate(rate) {\r\n if (rate !== undefined) {\r\n this.techCall_('setPlaybackRate', rate);\r\n return this;\r\n }\r\n\r\n if (this.tech_ && this.tech_['featuresPlaybackRate']) {\r\n return this.techGet_('playbackRate');\r\n } else {\r\n return 1.0;\r\n }\r\n };\r\n\r\n /**\r\n * Gets or sets the audio flag\r\n *\r\n * @param {Boolean} bool True signals that this is an audio player.\r\n * @return {Boolean} Returns true if player is audio, false if not when getting\r\n * @return {Player} Returns the player if setting\r\n * @private\r\n * @method isAudio\r\n */\r\n\r\n Player.prototype.isAudio = function isAudio(bool) {\r\n if (bool !== undefined) {\r\n this.isAudio_ = !!bool;\r\n return this;\r\n }\r\n\r\n return !!this.isAudio_;\r\n };\r\n\r\n /**\r\n * Returns the current state of network activity for the element, from\r\n * the codes in the list below.\r\n * - NETWORK_EMPTY (numeric value 0)\r\n * The element has not yet been initialised. All attributes are in\r\n * their initial states.\r\n * - NETWORK_IDLE (numeric value 1)\r\n * The element's resource selection algorithm is active and has\r\n * selected a resource, but it is not actually using the network at\r\n * this time.\r\n * - NETWORK_LOADING (numeric value 2)\r\n * The user agent is actively trying to download data.\r\n * - NETWORK_NO_SOURCE (numeric value 3)\r\n * The element's resource selection algorithm is active, but it has\r\n * not yet found a resource to use.\r\n *\r\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#network-states\r\n * @return {Number} the current network activity state\r\n * @method networkState\r\n */\r\n\r\n Player.prototype.networkState = function networkState() {\r\n return this.techGet_('networkState');\r\n };\r\n\r\n /**\r\n * Returns a value that expresses the current state of the element\r\n * with respect to rendering the current playback position, from the\r\n * codes in the list below.\r\n * - HAVE_NOTHING (numeric value 0)\r\n * No information regarding the media resource is available.\r\n * - HAVE_METADATA (numeric value 1)\r\n * Enough of the resource has been obtained that the duration of the\r\n * resource is available.\r\n * - HAVE_CURRENT_DATA (numeric value 2)\r\n * Data for the immediate current playback position is available.\r\n * - HAVE_FUTURE_DATA (numeric value 3)\r\n * Data for the immediate current playback position is available, as\r\n * well as enough data for the user agent to advance the current\r\n * playback position in the direction of playback.\r\n * - HAVE_ENOUGH_DATA (numeric value 4)\r\n * The user agent estimates that enough data is available for\r\n * playback to proceed uninterrupted.\r\n *\r\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-readystate\r\n * @return {Number} the current playback rendering state\r\n * @method readyState\r\n */\r\n\r\n Player.prototype.readyState = function readyState() {\r\n return this.techGet_('readyState');\r\n };\r\n\r\n /**\r\n * Text tracks are tracks of timed text events.\r\n * Captions - text displayed over the video for the hearing impaired\r\n * Subtitles - text displayed over the video for those who don't understand language in the video\r\n * Chapters - text displayed in a menu allowing the user to jump to particular points (chapters) in the video\r\n * Descriptions - audio descriptions that are read back to the user by a screen reading device\r\n */\r\n\r\n /**\r\n * Get an array of associated text tracks. captions, subtitles, chapters, descriptions\r\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-texttracks\r\n *\r\n * @return {Array} Array of track objects\r\n * @method textTracks\r\n */\r\n\r\n Player.prototype.textTracks = function textTracks() {\r\n // cannot use techGet_ directly because it checks to see whether the tech is ready.\r\n // Flash is unlikely to be ready in time but textTracks should still work.\r\n return this.tech_ && this.tech_['textTracks']();\r\n };\r\n\r\n /**\r\n * Get an array of remote text tracks\r\n *\r\n * @return {Array}\r\n * @method remoteTextTracks\r\n */\r\n\r\n Player.prototype.remoteTextTracks = function remoteTextTracks() {\r\n return this.tech_ && this.tech_['remoteTextTracks']();\r\n };\r\n\r\n /**\r\n * Get an array of remote html track elements\r\n *\r\n * @return {HTMLTrackElement[]}\r\n * @method remoteTextTrackEls\r\n */\r\n\r\n Player.prototype.remoteTextTrackEls = function remoteTextTrackEls() {\r\n return this.tech_ && this.tech_['remoteTextTrackEls']();\r\n };\r\n\r\n /**\r\n * Add a text track\r\n * In addition to the W3C settings we allow adding additional info through options.\r\n * http://www.w3.org/html/wg/drafts/html/master/embedded-content-0.html#dom-media-addtexttrack\r\n *\r\n * @param {String} kind Captions, subtitles, chapters, descriptions, or metadata\r\n * @param {String=} label Optional label\r\n * @param {String=} language Optional language\r\n * @method addTextTrack\r\n */\r\n\r\n Player.prototype.addTextTrack = function addTextTrack(kind, label, language) {\r\n return this.tech_ && this.tech_['addTextTrack'](kind, label, language);\r\n };\r\n\r\n /**\r\n * Add a remote text track\r\n *\r\n * @param {Object} options Options for remote text track\r\n * @method addRemoteTextTrack\r\n */\r\n\r\n Player.prototype.addRemoteTextTrack = function addRemoteTextTrack(options) {\r\n return this.tech_ && this.tech_['addRemoteTextTrack'](options);\r\n };\r\n\r\n /**\r\n * Remove a remote text track\r\n *\r\n * @param {Object} track Remote text track to remove\r\n * @method removeRemoteTextTrack\r\n */\r\n\r\n Player.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {\r\n this.tech_ && this.tech_['removeRemoteTextTrack'](track);\r\n };\r\n\r\n /**\r\n * Get video width\r\n *\r\n * @return {Number} Video width\r\n * @method videoWidth\r\n */\r\n\r\n Player.prototype.videoWidth = function videoWidth() {\r\n return this.tech_ && this.tech_.videoWidth && this.tech_.videoWidth() || 0;\r\n };\r\n\r\n /**\r\n * Get video height\r\n *\r\n * @return {Number} Video height\r\n * @method videoHeight\r\n */\r\n\r\n Player.prototype.videoHeight = function videoHeight() {\r\n return this.tech_ && this.tech_.videoHeight && this.tech_.videoHeight() || 0;\r\n };\r\n\r\n // Methods to add support for\r\n // initialTime: function(){ return this.techCall_('initialTime'); },\r\n // startOffsetTime: function(){ return this.techCall_('startOffsetTime'); },\r\n // played: function(){ return this.techCall_('played'); },\r\n // videoTracks: function(){ return this.techCall_('videoTracks'); },\r\n // audioTracks: function(){ return this.techCall_('audioTracks'); },\r\n // defaultPlaybackRate: function(){ return this.techCall_('defaultPlaybackRate'); },\r\n // defaultMuted: function(){ return this.techCall_('defaultMuted'); }\r\n\r\n /**\r\n * The player's language code\r\n * NOTE: The language should be set in the player options if you want the\r\n * the controls to be built with a specific language. Changing the lanugage\r\n * later will not update controls text.\r\n *\r\n * @param {String} code The locale string\r\n * @return {String} The locale string when getting\r\n * @return {Player} self when setting\r\n * @method language\r\n */\r\n\r\n Player.prototype.language = function language(code) {\r\n if (code === undefined) {\r\n return this.language_;\r\n }\r\n\r\n this.language_ = ('' + code).toLowerCase();\r\n return this;\r\n };\r\n\r\n /**\r\n * Get the player's language dictionary\r\n * Merge every time, because a newly added plugin might call videojs.addLanguage() at any time\r\n * Languages specified directly in the player options have precedence\r\n *\r\n * @return {Array} Array of languages\r\n * @method languages\r\n */\r\n\r\n Player.prototype.languages = function languages() {\r\n return _utilsMergeOptionsJs2['default'](Player.prototype.options_.languages, this.languages_);\r\n };\r\n\r\n /**\r\n * Converts track info to JSON\r\n *\r\n * @return {Object} JSON object of options\r\n * @method toJSON\r\n */\r\n\r\n Player.prototype.toJSON = function toJSON() {\r\n var options = _utilsMergeOptionsJs2['default'](this.options_);\r\n var tracks = options.tracks;\r\n\r\n options.tracks = [];\r\n\r\n for (var i = 0; i < tracks.length; i++) {\r\n var track = tracks[i];\r\n\r\n // deep merge tracks and null out player so no circular references\r\n track = _utilsMergeOptionsJs2['default'](track);\r\n track.player = undefined;\r\n options.tracks[i] = track;\r\n }\r\n\r\n return options;\r\n };\r\n\r\n /**\r\n * Creates a simple modal dialog (an instance of the `ModalDialog`\r\n * component) that immediately overlays the player with arbitrary\r\n * content and removes itself when closed.\r\n *\r\n * @param {String|Function|Element|Array|Null} content\r\n * Same as `ModalDialog#content`'s param of the same name.\r\n *\r\n * The most straight-forward usage is to provide a string or DOM\r\n * element.\r\n *\r\n * @param {Object} [options]\r\n * Extra options which will be passed on to the `ModalDialog`.\r\n *\r\n * @return {ModalDialog}\r\n */\r\n\r\n Player.prototype.createModal = function createModal(content, options) {\r\n var player = this;\r\n\r\n options = options || {};\r\n options.content = content || '';\r\n\r\n var modal = new _modalDialog2['default'](player, options);\r\n\r\n player.addChild(modal);\r\n modal.on('dispose', function () {\r\n player.removeChild(modal);\r\n });\r\n\r\n return modal.open();\r\n };\r\n\r\n /**\r\n * Gets tag settings\r\n *\r\n * @param {Element} tag The player tag\r\n * @return {Array} An array of sources and track objects\r\n * @static\r\n * @method getTagSettings\r\n */\r\n\r\n Player.getTagSettings = function getTagSettings(tag) {\r\n var baseOptions = {\r\n 'sources': [],\r\n 'tracks': []\r\n };\r\n\r\n var tagOptions = Dom.getElAttributes(tag);\r\n var dataSetup = tagOptions['data-setup'];\r\n\r\n // Check if data-setup attr exists.\r\n if (dataSetup !== null) {\r\n // Parse options JSON\r\n\r\n var _safeParseTuple = _safeJsonParseTuple2['default'](dataSetup || '{}');\r\n\r\n var err = _safeParseTuple[0];\r\n var data = _safeParseTuple[1];\r\n\r\n if (err) {\r\n _utilsLogJs2['default'].error(err);\r\n }\r\n _objectAssign2['default'](tagOptions, data);\r\n }\r\n\r\n _objectAssign2['default'](baseOptions, tagOptions);\r\n\r\n // Get tag children settings\r\n if (tag.hasChildNodes()) {\r\n var children = tag.childNodes;\r\n\r\n for (var i = 0, j = children.length; i < j; i++) {\r\n var child = children[i];\r\n // Change case needed: http://ejohn.org/blog/nodename-case-sensitivity/\r\n var childName = child.nodeName.toLowerCase();\r\n if (childName === 'source') {\r\n baseOptions.sources.push(Dom.getElAttributes(child));\r\n } else if (childName === 'track') {\r\n baseOptions.tracks.push(Dom.getElAttributes(child));\r\n }\r\n }\r\n }\r\n\r\n return baseOptions;\r\n };\r\n\r\n return Player;\r\n})(_componentJs2['default']);\r\n\r\nPlayer.players = {};\r\n\r\nvar navigator = _globalWindow2['default'].navigator;\r\n/*\r\n * Player instance options, surfaced using options\r\n * options = Player.prototype.options_\r\n * Make changes in options, not here.\r\n *\r\n * @type {Object}\r\n * @private\r\n */\r\nPlayer.prototype.options_ = {\r\n // Default order of fallback technology\r\n techOrder: ['html5', 'flash'],\r\n // techOrder: ['flash','html5'],\r\n\r\n html5: {},\r\n flash: {},\r\n\r\n // defaultVolume: 0.85,\r\n defaultVolume: 0.00, // The freakin seaguls are driving me crazy!\r\n\r\n // default inactivity timeout\r\n inactivityTimeout: 2000,\r\n\r\n // default playback rates\r\n playbackRates: [],\r\n // Add playback rate selection by adding rates\r\n // 'playbackRates': [0.5, 1, 1.5, 2],\r\n\r\n // Included control sets\r\n children: ['mediaLoader', 'posterImage', 'textTrackDisplay', 'loadingSpinner', 'bigPlayButton', 'controlBar', 'errorDisplay', 'textTrackSettings'],\r\n\r\n language: _globalDocument2['default'].getElementsByTagName('html')[0].getAttribute('lang') || navigator.languages && navigator.languages[0] || navigator.userLanguage || navigator.language || 'en',\r\n\r\n // locales and their language translations\r\n languages: {},\r\n\r\n // Default message to show when a video cannot be played.\r\n notSupportedMessage: 'No compatible source was found for this media.'\r\n};\r\n\r\n/**\r\n * Fired when the player has initial duration and dimension information\r\n *\r\n * @event loadedmetadata\r\n */\r\nPlayer.prototype.handleLoadedMetaData_;\r\n\r\n/**\r\n * Fired when the player has downloaded data at the current playback position\r\n *\r\n * @event loadeddata\r\n */\r\nPlayer.prototype.handleLoadedData_;\r\n\r\n/**\r\n * Fired when the user is active, e.g. moves the mouse over the player\r\n *\r\n * @event useractive\r\n */\r\nPlayer.prototype.handleUserActive_;\r\n\r\n/**\r\n * Fired when the user is inactive, e.g. a short delay after the last mouse move or control interaction\r\n *\r\n * @event userinactive\r\n */\r\nPlayer.prototype.handleUserInactive_;\r\n\r\n/**\r\n * Fired when the current playback position has changed *\r\n * During playback this is fired every 15-250 milliseconds, depending on the\r\n * playback technology in use.\r\n *\r\n * @event timeupdate\r\n */\r\nPlayer.prototype.handleTimeUpdate_;\r\n\r\n/**\r\n * Fired when video playback ends\r\n *\r\n * @event ended\r\n */\r\nPlayer.prototype.handleTechEnded_;\r\n\r\n/**\r\n * Fired when the volume changes\r\n *\r\n * @event volumechange\r\n */\r\nPlayer.prototype.handleVolumeChange_;\r\n\r\n/**\r\n * Fired when an error occurs\r\n *\r\n * @event error\r\n */\r\nPlayer.prototype.handleError_;\r\n\r\nPlayer.prototype.flexNotSupported_ = function () {\r\n var elem = _globalDocument2['default'].createElement('i');\r\n\r\n // Note: We don't actually use flexBasis (or flexOrder), but it's one of the more\r\n // common flex features that we can rely on when checking for flex support.\r\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) */;\r\n};\r\n\r\n_componentJs2['default'].registerComponent('Player', Player);\r\nexports['default'] = Player;\r\nmodule.exports = exports['default'];\r\n// If empty string, make it a parsable json object.\r\n\r\n},{\"./big-play-button.js\":63,\"./component.js\":67,\"./control-bar/control-bar.js\":68,\"./error-display.js\":100,\"./fullscreen-api.js\":103,\"./loading-spinner.js\":104,\"./media-error.js\":105,\"./modal-dialog\":109,\"./poster-image.js\":114,\"./tech/html5.js\":119,\"./tech/loader.js\":120,\"./tech/tech.js\":121,\"./tracks/text-track-display.js\":125,\"./tracks/text-track-list-converter.js\":127,\"./tracks/text-track-settings.js\":129,\"./utils/browser.js\":131,\"./utils/buffer.js\":132,\"./utils/dom.js\":134,\"./utils/events.js\":135,\"./utils/fn.js\":136,\"./utils/guid.js\":138,\"./utils/log.js\":139,\"./utils/merge-options.js\":140,\"./utils/stylesheet.js\":141,\"./utils/time-ranges.js\":142,\"./utils/to-title-case.js\":143,\"global/document\":1,\"global/window\":2,\"object.assign\":45,\"safe-json-parse/tuple\":54}],111:[function(_dereq_,module,exports){\r\n/**\r\n * @file plugins.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _playerJs = _dereq_('./player.js');\r\n\r\nvar _playerJs2 = _interopRequireDefault(_playerJs);\r\n\r\n/**\r\n * The method for registering a video.js plugin\r\n *\r\n * @param {String} name The name of the plugin\r\n * @param {Function} init The function that is run when the player inits\r\n * @method plugin\r\n */\r\nvar plugin = function plugin(name, init) {\r\n _playerJs2['default'].prototype[name] = init;\r\n};\r\n\r\nexports['default'] = plugin;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./player.js\":110}],112:[function(_dereq_,module,exports){\r\n/**\r\n * @file popup-button.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _clickableComponentJs = _dereq_('../clickable-component.js');\r\n\r\nvar _clickableComponentJs2 = _interopRequireDefault(_clickableComponentJs);\r\n\r\nvar _componentJs = _dereq_('../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _popupJs = _dereq_('./popup.js');\r\n\r\nvar _popupJs2 = _interopRequireDefault(_popupJs);\r\n\r\nvar _utilsDomJs = _dereq_('../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFnJs = _dereq_('../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsToTitleCaseJs = _dereq_('../utils/to-title-case.js');\r\n\r\nvar _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);\r\n\r\n/**\r\n * A button class with a popup control\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends ClickableComponent\r\n * @class PopupButton\r\n */\r\n\r\nvar PopupButton = (function (_ClickableComponent) {\r\n _inherits(PopupButton, _ClickableComponent);\r\n\r\n function PopupButton(player) {\r\n var options = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n\r\n _classCallCheck(this, PopupButton);\r\n\r\n _ClickableComponent.call(this, player, options);\r\n\r\n this.update();\r\n }\r\n\r\n /**\r\n * Update popup\r\n *\r\n * @method update\r\n */\r\n\r\n PopupButton.prototype.update = function update() {\r\n var popup = this.createPopup();\r\n\r\n if (this.popup) {\r\n this.removeChild(this.popup);\r\n }\r\n\r\n this.popup = popup;\r\n this.addChild(popup);\r\n\r\n if (this.items && this.items.length === 0) {\r\n this.hide();\r\n } else if (this.items && this.items.length > 1) {\r\n this.show();\r\n }\r\n };\r\n\r\n /**\r\n * Create popup - Override with specific functionality for component\r\n *\r\n * @return {Popup} The constructed popup\r\n * @method createPopup\r\n */\r\n\r\n PopupButton.prototype.createPopup = function createPopup() {};\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n PopupButton.prototype.createEl = function createEl() {\r\n return _ClickableComponent.prototype.createEl.call(this, 'div', {\r\n className: this.buildCSSClass()\r\n });\r\n };\r\n\r\n /**\r\n * Allow sub components to stack CSS class names\r\n *\r\n * @return {String} The constructed class name\r\n * @method buildCSSClass\r\n */\r\n\r\n PopupButton.prototype.buildCSSClass = function buildCSSClass() {\r\n var menuButtonClass = 'vjs-menu-button';\r\n\r\n // If the inline option is passed, we want to use different styles altogether.\r\n if (this.options_.inline === true) {\r\n menuButtonClass += '-inline';\r\n } else {\r\n menuButtonClass += '-popup';\r\n }\r\n\r\n return 'vjs-menu-button ' + menuButtonClass + ' ' + _ClickableComponent.prototype.buildCSSClass.call(this);\r\n };\r\n\r\n return PopupButton;\r\n})(_clickableComponentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('PopupButton', PopupButton);\r\nexports['default'] = PopupButton;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../clickable-component.js\":65,\"../component.js\":67,\"../utils/dom.js\":134,\"../utils/fn.js\":136,\"../utils/to-title-case.js\":143,\"./popup.js\":113}],113:[function(_dereq_,module,exports){\r\n/**\r\n * @file popup.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsDomJs = _dereq_('../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsFnJs = _dereq_('../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsEventsJs = _dereq_('../utils/events.js');\r\n\r\nvar Events = _interopRequireWildcard(_utilsEventsJs);\r\n\r\n/**\r\n * The Popup component is used to build pop up controls.\r\n *\r\n * @extends Component\r\n * @class Popup\r\n */\r\n\r\nvar Popup = (function (_Component) {\r\n _inherits(Popup, _Component);\r\n\r\n function Popup() {\r\n _classCallCheck(this, Popup);\r\n\r\n _Component.apply(this, arguments);\r\n }\r\n\r\n /**\r\n * Add a popup item to the popup\r\n *\r\n * @param {Object|String} component Component or component type to add\r\n * @method addItem\r\n */\r\n\r\n Popup.prototype.addItem = function addItem(component) {\r\n this.addChild(component);\r\n component.on('click', Fn.bind(this, function () {\r\n this.unlockShowing();\r\n }));\r\n };\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n Popup.prototype.createEl = function createEl() {\r\n var contentElType = this.options_.contentElType || 'ul';\r\n this.contentEl_ = Dom.createEl(contentElType, {\r\n className: 'vjs-menu-content'\r\n });\r\n var el = _Component.prototype.createEl.call(this, 'div', {\r\n append: this.contentEl_,\r\n className: 'vjs-menu'\r\n });\r\n el.appendChild(this.contentEl_);\r\n\r\n // Prevent clicks from bubbling up. Needed for Popup Buttons,\r\n // where a click on the parent is significant\r\n Events.on(el, 'click', function (event) {\r\n event.preventDefault();\r\n event.stopImmediatePropagation();\r\n });\r\n\r\n return el;\r\n };\r\n\r\n return Popup;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('Popup', Popup);\r\nexports['default'] = Popup;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component.js\":67,\"../utils/dom.js\":134,\"../utils/events.js\":135,\"../utils/fn.js\":136}],114:[function(_dereq_,module,exports){\r\n/**\r\n * @file poster-image.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _clickableComponentJs = _dereq_('./clickable-component.js');\r\n\r\nvar _clickableComponentJs2 = _interopRequireDefault(_clickableComponentJs);\r\n\r\nvar _componentJs = _dereq_('./component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsFnJs = _dereq_('./utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsDomJs = _dereq_('./utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsBrowserJs = _dereq_('./utils/browser.js');\r\n\r\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\r\n\r\n/**\r\n * The component that handles showing the poster image.\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Button\r\n * @class PosterImage\r\n */\r\n\r\nvar PosterImage = (function (_ClickableComponent) {\r\n _inherits(PosterImage, _ClickableComponent);\r\n\r\n function PosterImage(player, options) {\r\n _classCallCheck(this, PosterImage);\r\n\r\n _ClickableComponent.call(this, player, options);\r\n\r\n this.update();\r\n player.on('posterchange', Fn.bind(this, this.update));\r\n }\r\n\r\n /**\r\n * Clean up the poster image\r\n *\r\n * @method dispose\r\n */\r\n\r\n PosterImage.prototype.dispose = function dispose() {\r\n this.player().off('posterchange', this.update);\r\n _ClickableComponent.prototype.dispose.call(this);\r\n };\r\n\r\n /**\r\n * Create the poster's image element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n PosterImage.prototype.createEl = function createEl() {\r\n var el = Dom.createEl('div', {\r\n className: 'vjs-poster',\r\n\r\n // Don't want poster to be tabbable.\r\n tabIndex: -1\r\n });\r\n\r\n // To ensure the poster image resizes while maintaining its original aspect\r\n // ratio, use a div with `background-size` when available. For browsers that\r\n // do not support `background-size` (e.g. IE8), fall back on using a regular\r\n // img element.\r\n if (!browser.BACKGROUND_SIZE_SUPPORTED) {\r\n this.fallbackImg_ = Dom.createEl('img');\r\n el.appendChild(this.fallbackImg_);\r\n }\r\n\r\n return el;\r\n };\r\n\r\n /**\r\n * Event handler for updates to the player's poster source\r\n *\r\n * @method update\r\n */\r\n\r\n PosterImage.prototype.update = function update() {\r\n var url = this.player().poster();\r\n\r\n this.setSrc(url);\r\n\r\n // If there's no poster source we should display:none on this component\r\n // so it's not still clickable or right-clickable\r\n if (url) {\r\n this.show();\r\n } else {\r\n this.hide();\r\n }\r\n };\r\n\r\n /**\r\n * Set the poster source depending on the display method\r\n *\r\n * @param {String} url The URL to the poster source\r\n * @method setSrc\r\n */\r\n\r\n PosterImage.prototype.setSrc = function setSrc(url) {\r\n if (this.fallbackImg_) {\r\n this.fallbackImg_.src = url;\r\n } else {\r\n var backgroundImage = '';\r\n // Any falsey values should stay as an empty string, otherwise\r\n // this will throw an extra error\r\n if (url) {\r\n backgroundImage = 'url(\"' + url + '\")';\r\n }\r\n\r\n this.el_.style.backgroundImage = backgroundImage;\r\n }\r\n };\r\n\r\n /**\r\n * Event handler for clicks on the poster image\r\n *\r\n * @method handleClick\r\n */\r\n\r\n PosterImage.prototype.handleClick = function handleClick() {\r\n // We don't want a click to trigger playback when controls are disabled\r\n // but CSS should be hiding the poster to prevent that from happening\r\n if (this.player_.paused()) {\r\n this.player_.play();\r\n } else {\r\n this.player_.pause();\r\n }\r\n };\r\n\r\n return PosterImage;\r\n})(_clickableComponentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('PosterImage', PosterImage);\r\nexports['default'] = PosterImage;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./clickable-component.js\":65,\"./component.js\":67,\"./utils/browser.js\":131,\"./utils/dom.js\":134,\"./utils/fn.js\":136}],115:[function(_dereq_,module,exports){\r\n/**\r\n * @file setup.js\r\n *\r\n * Functions for automatically setting up a player\r\n * based on the data-setup attribute of the video tag\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\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; } }\r\n\r\nvar _utilsEventsJs = _dereq_('./utils/events.js');\r\n\r\nvar Events = _interopRequireWildcard(_utilsEventsJs);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _windowLoaded = false;\r\nvar videojs = undefined;\r\n\r\n// Automatically set up any tags that have a data-setup attribute\r\nvar autoSetup = function autoSetup() {\r\n // One day, when we stop supporting IE8, go back to this, but in the meantime...*hack hack hack*\r\n // var vids = Array.prototype.slice.call(document.getElementsByTagName('video'));\r\n // var audios = Array.prototype.slice.call(document.getElementsByTagName('audio'));\r\n // var mediaEls = vids.concat(audios);\r\n\r\n // Because IE8 doesn't support calling slice on a node list, we need to loop through each list of elements\r\n // to build up a new, combined list of elements.\r\n var vids = _globalDocument2['default'].getElementsByTagName('video');\r\n var audios = _globalDocument2['default'].getElementsByTagName('audio');\r\n var mediaEls = [];\r\n if (vids && vids.length > 0) {\r\n for (var i = 0, e = vids.length; i < e; i++) {\r\n mediaEls.push(vids[i]);\r\n }\r\n }\r\n if (audios && audios.length > 0) {\r\n for (var i = 0, e = audios.length; i < e; i++) {\r\n mediaEls.push(audios[i]);\r\n }\r\n }\r\n\r\n // Check if any media elements exist\r\n if (mediaEls && mediaEls.length > 0) {\r\n\r\n for (var i = 0, e = mediaEls.length; i < e; i++) {\r\n var mediaEl = mediaEls[i];\r\n\r\n // Check if element exists, has getAttribute func.\r\n // IE seems to consider typeof el.getAttribute == 'object' instead of 'function' like expected, at least when loading the player immediately.\r\n if (mediaEl && mediaEl.getAttribute) {\r\n\r\n // Make sure this player hasn't already been set up.\r\n if (mediaEl['player'] === undefined) {\r\n var options = mediaEl.getAttribute('data-setup');\r\n\r\n // Check if data-setup attr exists.\r\n // We only auto-setup if they've added the data-setup attr.\r\n if (options !== null) {\r\n // Create new video.js instance.\r\n var player = videojs(mediaEl);\r\n }\r\n }\r\n\r\n // If getAttribute isn't defined, we need to wait for the DOM.\r\n } else {\r\n autoSetupTimeout(1);\r\n break;\r\n }\r\n }\r\n\r\n // No videos were found, so keep looping unless page is finished loading.\r\n } else if (!_windowLoaded) {\r\n autoSetupTimeout(1);\r\n }\r\n};\r\n\r\n// Pause to let the DOM keep processing\r\nvar autoSetupTimeout = function autoSetupTimeout(wait, vjs) {\r\n if (vjs) {\r\n videojs = vjs;\r\n }\r\n\r\n setTimeout(autoSetup, wait);\r\n};\r\n\r\nif (_globalDocument2['default'].readyState === 'complete') {\r\n _windowLoaded = true;\r\n} else {\r\n Events.one(_globalWindow2['default'], 'load', function () {\r\n _windowLoaded = true;\r\n });\r\n}\r\n\r\nvar hasLoaded = function hasLoaded() {\r\n return _windowLoaded;\r\n};\r\n\r\nexports.autoSetup = autoSetup;\r\nexports.autoSetupTimeout = autoSetupTimeout;\r\nexports.hasLoaded = hasLoaded;\r\n\r\n},{\"./utils/events.js\":135,\"global/document\":1,\"global/window\":2}],116:[function(_dereq_,module,exports){\r\n/**\r\n * @file slider.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _utilsDomJs = _dereq_('../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _objectAssign = _dereq_('object.assign');\r\n\r\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\r\n\r\n/**\r\n * The base functionality for sliders like the volume bar and seek bar\r\n *\r\n * @param {Player|Object} player\r\n * @param {Object=} options\r\n * @extends Component\r\n * @class Slider\r\n */\r\n\r\nvar Slider = (function (_Component) {\r\n _inherits(Slider, _Component);\r\n\r\n function Slider(player, options) {\r\n _classCallCheck(this, Slider);\r\n\r\n _Component.call(this, player, options);\r\n\r\n // Set property names to bar to match with the child Slider class is looking for\r\n this.bar = this.getChild(this.options_.barName);\r\n\r\n // Set a horizontal or vertical class on the slider depending on the slider type\r\n this.vertical(!!this.options_.vertical);\r\n\r\n this.on('mousedown', this.handleMouseDown);\r\n this.on('touchstart', this.handleMouseDown);\r\n this.on('focus', this.handleFocus);\r\n this.on('blur', this.handleBlur);\r\n this.on('click', this.handleClick);\r\n\r\n this.on(player, 'controlsvisible', this.update);\r\n this.on(player, this.playerEvent, this.update);\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @param {String} type Type of element to create\r\n * @param {Object=} props List of properties in Object form\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n Slider.prototype.createEl = function createEl(type) {\r\n var props = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n var attributes = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\r\n\r\n // Add the slider element class to all sub classes\r\n props.className = props.className + ' vjs-slider';\r\n props = _objectAssign2['default']({\r\n tabIndex: 0\r\n }, props);\r\n\r\n attributes = _objectAssign2['default']({\r\n 'role': 'slider',\r\n 'aria-valuenow': 0,\r\n 'aria-valuemin': 0,\r\n 'aria-valuemax': 100,\r\n tabIndex: 0\r\n }, attributes);\r\n\r\n return _Component.prototype.createEl.call(this, type, props, attributes);\r\n };\r\n\r\n /**\r\n * Handle mouse down on slider\r\n *\r\n * @param {Object} event Mouse down event object\r\n * @method handleMouseDown\r\n */\r\n\r\n Slider.prototype.handleMouseDown = function handleMouseDown(event) {\r\n var doc = this.bar.el_.ownerDocument;\r\n\r\n event.preventDefault();\r\n Dom.blockTextSelection();\r\n\r\n this.addClass('vjs-sliding');\r\n this.trigger('slideractive');\r\n\r\n this.on(doc, 'mousemove', this.handleMouseMove);\r\n this.on(doc, 'mouseup', this.handleMouseUp);\r\n this.on(doc, 'touchmove', this.handleMouseMove);\r\n this.on(doc, 'touchend', this.handleMouseUp);\r\n\r\n this.handleMouseMove(event);\r\n };\r\n\r\n /**\r\n * To be overridden by a subclass\r\n *\r\n * @method handleMouseMove\r\n */\r\n\r\n Slider.prototype.handleMouseMove = function handleMouseMove() {};\r\n\r\n /**\r\n * Handle mouse up on Slider\r\n *\r\n * @method handleMouseUp\r\n */\r\n\r\n Slider.prototype.handleMouseUp = function handleMouseUp() {\r\n var doc = this.bar.el_.ownerDocument;\r\n\r\n Dom.unblockTextSelection();\r\n\r\n this.removeClass('vjs-sliding');\r\n this.trigger('sliderinactive');\r\n\r\n this.off(doc, 'mousemove', this.handleMouseMove);\r\n this.off(doc, 'mouseup', this.handleMouseUp);\r\n this.off(doc, 'touchmove', this.handleMouseMove);\r\n this.off(doc, 'touchend', this.handleMouseUp);\r\n\r\n this.update();\r\n };\r\n\r\n /**\r\n * Update slider\r\n *\r\n * @method update\r\n */\r\n\r\n Slider.prototype.update = function update() {\r\n // In VolumeBar init we have a setTimeout for update that pops and update to the end of the\r\n // execution stack. The player is destroyed before then update will cause an error\r\n if (!this.el_) return;\r\n\r\n // If scrubbing, we could use a cached value to make the handle keep up with the user's mouse.\r\n // On HTML5 browsers scrubbing is really smooth, but some flash players are slow, so we might want to utilize this later.\r\n // var progress = (this.player_.scrubbing()) ? this.player_.getCache().currentTime / this.player_.duration() : this.player_.currentTime() / this.player_.duration();\r\n var progress = this.getPercent();\r\n var bar = this.bar;\r\n\r\n // If there's no bar...\r\n if (!bar) return;\r\n\r\n // Protect against no duration and other division issues\r\n if (typeof progress !== 'number' || progress !== progress || progress < 0 || progress === Infinity) {\r\n progress = 0;\r\n }\r\n\r\n // Convert to a percentage for setting\r\n var percentage = (progress * 100).toFixed(2) + '%';\r\n\r\n // Set the new bar width or height\r\n if (this.vertical()) {\r\n bar.el().style.height = percentage;\r\n } else {\r\n bar.el().style.width = percentage;\r\n }\r\n };\r\n\r\n /**\r\n * Calculate distance for slider\r\n *\r\n * @param {Object} event Event object\r\n * @method calculateDistance\r\n */\r\n\r\n Slider.prototype.calculateDistance = function calculateDistance(event) {\r\n var position = Dom.getPointerPosition(this.el_, event);\r\n if (this.vertical()) {\r\n return position.y;\r\n }\r\n return position.x;\r\n };\r\n\r\n /**\r\n * Handle on focus for slider\r\n *\r\n * @method handleFocus\r\n */\r\n\r\n Slider.prototype.handleFocus = function handleFocus() {\r\n this.on(this.bar.el_.ownerDocument, 'keydown', this.handleKeyPress);\r\n };\r\n\r\n /**\r\n * Handle key press for slider\r\n *\r\n * @param {Object} event Event object\r\n * @method handleKeyPress\r\n */\r\n\r\n Slider.prototype.handleKeyPress = function handleKeyPress(event) {\r\n if (event.which === 37 || event.which === 40) {\r\n // Left and Down Arrows\r\n event.preventDefault();\r\n this.stepBack();\r\n } else if (event.which === 38 || event.which === 39) {\r\n // Up and Right Arrows\r\n event.preventDefault();\r\n this.stepForward();\r\n }\r\n };\r\n\r\n /**\r\n * Handle on blur for slider\r\n *\r\n * @method handleBlur\r\n */\r\n\r\n Slider.prototype.handleBlur = function handleBlur() {\r\n this.off(this.bar.el_.ownerDocument, 'keydown', this.handleKeyPress);\r\n };\r\n\r\n /**\r\n * Listener for click events on slider, used to prevent clicks\r\n * from bubbling up to parent elements like button menus.\r\n *\r\n * @param {Object} event Event object\r\n * @method handleClick\r\n */\r\n\r\n Slider.prototype.handleClick = function handleClick(event) {\r\n event.stopImmediatePropagation();\r\n event.preventDefault();\r\n };\r\n\r\n /**\r\n * Get/set if slider is horizontal for vertical\r\n *\r\n * @param {Boolean} bool True if slider is vertical, false is horizontal\r\n * @return {Boolean} True if slider is vertical, false is horizontal\r\n * @method vertical\r\n */\r\n\r\n Slider.prototype.vertical = function vertical(bool) {\r\n if (bool === undefined) {\r\n return this.vertical_ || false;\r\n }\r\n\r\n this.vertical_ = !!bool;\r\n\r\n if (this.vertical_) {\r\n this.addClass('vjs-slider-vertical');\r\n } else {\r\n this.addClass('vjs-slider-horizontal');\r\n }\r\n\r\n return this;\r\n };\r\n\r\n return Slider;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('Slider', Slider);\r\nexports['default'] = Slider;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component.js\":67,\"../utils/dom.js\":134,\"object.assign\":45}],117:[function(_dereq_,module,exports){\r\n/**\r\n * @file flash-rtmp.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\nfunction FlashRtmpDecorator(Flash) {\r\n Flash.streamingFormats = {\r\n 'rtmp/mp4': 'MP4',\r\n 'rtmp/flv': 'FLV'\r\n };\r\n\r\n Flash.streamFromParts = function (connection, stream) {\r\n return connection + '&' + stream;\r\n };\r\n\r\n Flash.streamToParts = function (src) {\r\n var parts = {\r\n connection: '',\r\n stream: ''\r\n };\r\n\r\n if (!src) return parts;\r\n\r\n // Look for the normal URL separator we expect, '&'.\r\n // If found, we split the URL into two pieces around the\r\n // first '&'.\r\n var connEnd = src.search(/&(?!\\w+=)/);\r\n var streamBegin = undefined;\r\n if (connEnd !== -1) {\r\n streamBegin = connEnd + 1;\r\n } else {\r\n // If there's not a '&', we use the last '/' as the delimiter.\r\n connEnd = streamBegin = src.lastIndexOf('/') + 1;\r\n if (connEnd === 0) {\r\n // really, there's not a '/'?\r\n connEnd = streamBegin = src.length;\r\n }\r\n }\r\n parts.connection = src.substring(0, connEnd);\r\n parts.stream = src.substring(streamBegin, src.length);\r\n\r\n return parts;\r\n };\r\n\r\n Flash.isStreamingType = function (srcType) {\r\n return srcType in Flash.streamingFormats;\r\n };\r\n\r\n // RTMP has four variations, any string starting\r\n // with one of these protocols should be valid\r\n Flash.RTMP_RE = /^rtmp[set]?:\\/\\//i;\r\n\r\n Flash.isStreamingSrc = function (src) {\r\n return Flash.RTMP_RE.test(src);\r\n };\r\n\r\n /**\r\n * A source handler for RTMP urls\r\n * @type {Object}\r\n */\r\n Flash.rtmpSourceHandler = {};\r\n\r\n /**\r\n * Check if Flash can play the given videotype\r\n * @param {String} type The mimetype to check\r\n * @return {String} 'probably', 'maybe', or '' (empty string)\r\n */\r\n Flash.rtmpSourceHandler.canPlayType = function (type) {\r\n if (Flash.isStreamingType(type)) {\r\n return 'maybe';\r\n }\r\n\r\n return '';\r\n };\r\n\r\n /**\r\n * Check if Flash can handle the source natively\r\n * @param {Object} source The source object\r\n * @return {String} 'probably', 'maybe', or '' (empty string)\r\n */\r\n Flash.rtmpSourceHandler.canHandleSource = function (source) {\r\n var can = Flash.rtmpSourceHandler.canPlayType(source.type);\r\n\r\n if (can) {\r\n return can;\r\n }\r\n\r\n if (Flash.isStreamingSrc(source.src)) {\r\n return 'maybe';\r\n }\r\n\r\n return '';\r\n };\r\n\r\n /**\r\n * Pass the source to the flash object\r\n * Adaptive source handlers will have more complicated workflows before passing\r\n * video data to the video element\r\n * @param {Object} source The source object\r\n * @param {Flash} tech The instance of the Flash tech\r\n */\r\n Flash.rtmpSourceHandler.handleSource = function (source, tech) {\r\n var srcParts = Flash.streamToParts(source.src);\r\n\r\n tech['setRtmpConnection'](srcParts.connection);\r\n tech['setRtmpStream'](srcParts.stream);\r\n };\r\n\r\n // Register the native source handler\r\n Flash.registerSourceHandler(Flash.rtmpSourceHandler);\r\n\r\n return Flash;\r\n}\r\n\r\nexports['default'] = FlashRtmpDecorator;\r\nmodule.exports = exports['default'];\r\n\r\n},{}],118:[function(_dereq_,module,exports){\r\n/**\r\n * @file flash.js\r\n * VideoJS-SWF - Custom Flash Player with HTML5-ish API\r\n * https://github.com/zencoder/video-js-swf\r\n * Not using setupTriggers. Using global onEvent func to distribute events\r\n */\r\n\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _tech = _dereq_('./tech');\r\n\r\nvar _tech2 = _interopRequireDefault(_tech);\r\n\r\nvar _utilsDomJs = _dereq_('../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsUrlJs = _dereq_('../utils/url.js');\r\n\r\nvar Url = _interopRequireWildcard(_utilsUrlJs);\r\n\r\nvar _utilsTimeRangesJs = _dereq_('../utils/time-ranges.js');\r\n\r\nvar _flashRtmp = _dereq_('./flash-rtmp');\r\n\r\nvar _flashRtmp2 = _interopRequireDefault(_flashRtmp);\r\n\r\nvar _component = _dereq_('../component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _objectAssign = _dereq_('object.assign');\r\n\r\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\r\n\r\nvar navigator = _globalWindow2['default'].navigator;\r\n/**\r\n * Flash Media Controller - Wrapper for fallback SWF API\r\n *\r\n * @param {Object=} options Object of option names and values\r\n * @param {Function=} ready Ready callback function\r\n * @extends Tech\r\n * @class Flash\r\n */\r\n\r\nvar Flash = (function (_Tech) {\r\n _inherits(Flash, _Tech);\r\n\r\n function Flash(options, ready) {\r\n _classCallCheck(this, Flash);\r\n\r\n _Tech.call(this, options, ready);\r\n\r\n // Set the source when ready\r\n if (options.source) {\r\n this.ready(function () {\r\n this.setSource(options.source);\r\n }, true);\r\n }\r\n\r\n // Having issues with Flash reloading on certain page actions (hide/resize/fullscreen) in certain browsers\r\n // This allows resetting the playhead when we catch the reload\r\n if (options.startTime) {\r\n this.ready(function () {\r\n this.load();\r\n this.play();\r\n this.currentTime(options.startTime);\r\n }, true);\r\n }\r\n\r\n // Add global window functions that the swf expects\r\n // A 4.x workflow we weren't able to solve for in 5.0\r\n // because of the need to hard code these functions\r\n // into the swf for security reasons\r\n _globalWindow2['default'].videojs = _globalWindow2['default'].videojs || {};\r\n _globalWindow2['default'].videojs.Flash = _globalWindow2['default'].videojs.Flash || {};\r\n _globalWindow2['default'].videojs.Flash.onReady = Flash.onReady;\r\n _globalWindow2['default'].videojs.Flash.onEvent = Flash.onEvent;\r\n _globalWindow2['default'].videojs.Flash.onError = Flash.onError;\r\n\r\n this.on('seeked', function () {\r\n this.lastSeekTarget_ = undefined;\r\n });\r\n }\r\n\r\n // Create setters and getters for attributes\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n Flash.prototype.createEl = function createEl() {\r\n var options = this.options_;\r\n\r\n // If video.js is hosted locally you should also set the location\r\n // for the hosted swf, which should be relative to the page (not video.js)\r\n // Otherwise this adds a CDN url.\r\n // The CDN also auto-adds a swf URL for that specific version.\r\n if (!options.swf) {\r\n options.swf = '//vjs.zencdn.net/swf/5.0.1/video-js.swf';\r\n }\r\n\r\n // Generate ID for swf object\r\n var objId = options.techId;\r\n\r\n // Merge default flashvars with ones passed in to init\r\n var flashVars = _objectAssign2['default']({\r\n\r\n // SWF Callback Functions\r\n 'readyFunction': 'videojs.Flash.onReady',\r\n 'eventProxyFunction': 'videojs.Flash.onEvent',\r\n 'errorEventProxyFunction': 'videojs.Flash.onError',\r\n\r\n // Player Settings\r\n 'autoplay': options.autoplay,\r\n 'preload': options.preload,\r\n 'loop': options.loop,\r\n 'muted': options.muted\r\n\r\n }, options.flashVars);\r\n\r\n // Merge default parames with ones passed in\r\n var params = _objectAssign2['default']({\r\n 'wmode': 'opaque', // Opaque is needed to overlay controls, but can affect playback performance\r\n 'bgcolor': '#000000' // Using bgcolor prevents a white flash when the object is loading\r\n }, options.params);\r\n\r\n // Merge default attributes with ones passed in\r\n var attributes = _objectAssign2['default']({\r\n 'id': objId,\r\n 'name': objId, // Both ID and Name needed or swf to identify itself\r\n 'class': 'vjs-tech'\r\n }, options.attributes);\r\n\r\n this.el_ = Flash.embed(options.swf, flashVars, params, attributes);\r\n this.el_.tech = this;\r\n\r\n return this.el_;\r\n };\r\n\r\n /**\r\n * Play for flash tech\r\n *\r\n * @method play\r\n */\r\n\r\n Flash.prototype.play = function play() {\r\n if (this.ended()) {\r\n this.setCurrentTime(0);\r\n }\r\n this.el_.vjs_play();\r\n };\r\n\r\n /**\r\n * Pause for flash tech\r\n *\r\n * @method pause\r\n */\r\n\r\n Flash.prototype.pause = function pause() {\r\n this.el_.vjs_pause();\r\n };\r\n\r\n /**\r\n * Get/set video\r\n *\r\n * @param {Object=} src Source object\r\n * @return {Object}\r\n * @method src\r\n */\r\n\r\n Flash.prototype.src = function src(_src) {\r\n if (_src === undefined) {\r\n return this.currentSrc();\r\n }\r\n\r\n // Setting src through `src` not `setSrc` will be deprecated\r\n return this.setSrc(_src);\r\n };\r\n\r\n /**\r\n * Set video\r\n *\r\n * @param {Object=} src Source object\r\n * @deprecated\r\n * @method setSrc\r\n */\r\n\r\n Flash.prototype.setSrc = function setSrc(src) {\r\n // Make sure source URL is absolute.\r\n src = Url.getAbsoluteURL(src);\r\n this.el_.vjs_src(src);\r\n\r\n // Currently the SWF doesn't autoplay if you load a source later.\r\n // e.g. Load player w/ no source, wait 2s, set src.\r\n if (this.autoplay()) {\r\n var tech = this;\r\n this.setTimeout(function () {\r\n tech.play();\r\n }, 0);\r\n }\r\n };\r\n\r\n /**\r\n * Returns true if the tech is currently seeking.\r\n * @return {boolean} true if seeking\r\n */\r\n\r\n Flash.prototype.seeking = function seeking() {\r\n return this.lastSeekTarget_ !== undefined;\r\n };\r\n\r\n /**\r\n * Set current time\r\n *\r\n * @param {Number} time Current time of video\r\n * @method setCurrentTime\r\n */\r\n\r\n Flash.prototype.setCurrentTime = function setCurrentTime(time) {\r\n var seekable = this.seekable();\r\n if (seekable.length) {\r\n // clamp to the current seekable range\r\n time = time > seekable.start(0) ? time : seekable.start(0);\r\n time = time < seekable.end(seekable.length - 1) ? time : seekable.end(seekable.length - 1);\r\n\r\n this.lastSeekTarget_ = time;\r\n this.trigger('seeking');\r\n this.el_.vjs_setProperty('currentTime', time);\r\n _Tech.prototype.setCurrentTime.call(this);\r\n }\r\n };\r\n\r\n /**\r\n * Get current time\r\n *\r\n * @param {Number=} time Current time of video\r\n * @return {Number} Current time\r\n * @method currentTime\r\n */\r\n\r\n Flash.prototype.currentTime = function currentTime(time) {\r\n // when seeking make the reported time keep up with the requested time\r\n // by reading the time we're seeking to\r\n if (this.seeking()) {\r\n return this.lastSeekTarget_ || 0;\r\n }\r\n return this.el_.vjs_getProperty('currentTime');\r\n };\r\n\r\n /**\r\n * Get current source\r\n *\r\n * @method currentSrc\r\n */\r\n\r\n Flash.prototype.currentSrc = function currentSrc() {\r\n if (this.currentSource_) {\r\n return this.currentSource_.src;\r\n } else {\r\n return this.el_.vjs_getProperty('currentSrc');\r\n }\r\n };\r\n\r\n /**\r\n * Load media into player\r\n *\r\n * @method load\r\n */\r\n\r\n Flash.prototype.load = function load() {\r\n this.el_.vjs_load();\r\n };\r\n\r\n /**\r\n * Get poster\r\n *\r\n * @method poster\r\n */\r\n\r\n Flash.prototype.poster = function poster() {\r\n this.el_.vjs_getProperty('poster');\r\n };\r\n\r\n /**\r\n * Poster images are not handled by the Flash tech so make this a no-op\r\n *\r\n * @method setPoster\r\n */\r\n\r\n Flash.prototype.setPoster = function setPoster() {};\r\n\r\n /**\r\n * Determine if can seek in media\r\n *\r\n * @return {TimeRangeObject}\r\n * @method seekable\r\n */\r\n\r\n Flash.prototype.seekable = function seekable() {\r\n var duration = this.duration();\r\n if (duration === 0) {\r\n return _utilsTimeRangesJs.createTimeRange();\r\n }\r\n return _utilsTimeRangesJs.createTimeRange(0, duration);\r\n };\r\n\r\n /**\r\n * Get buffered time range\r\n *\r\n * @return {TimeRangeObject}\r\n * @method buffered\r\n */\r\n\r\n Flash.prototype.buffered = function buffered() {\r\n var ranges = this.el_.vjs_getProperty('buffered');\r\n if (ranges.length === 0) {\r\n return _utilsTimeRangesJs.createTimeRange();\r\n }\r\n return _utilsTimeRangesJs.createTimeRange(ranges[0][0], ranges[0][1]);\r\n };\r\n\r\n /**\r\n * Get fullscreen support -\r\n * Flash does not allow fullscreen through javascript\r\n * so always returns false\r\n *\r\n * @return {Boolean} false\r\n * @method supportsFullScreen\r\n */\r\n\r\n Flash.prototype.supportsFullScreen = function supportsFullScreen() {\r\n return false; // Flash does not allow fullscreen through javascript\r\n };\r\n\r\n /**\r\n * Request to enter fullscreen\r\n * Flash does not allow fullscreen through javascript\r\n * so always returns false\r\n *\r\n * @return {Boolean} false\r\n * @method enterFullScreen\r\n */\r\n\r\n Flash.prototype.enterFullScreen = function enterFullScreen() {\r\n return false;\r\n };\r\n\r\n return Flash;\r\n})(_tech2['default']);\r\n\r\nvar _api = Flash.prototype;\r\nvar _readWrite = 'rtmpConnection,rtmpStream,preload,defaultPlaybackRate,playbackRate,autoplay,loop,mediaGroup,controller,controls,volume,muted,defaultMuted'.split(',');\r\nvar _readOnly = 'networkState,readyState,initialTime,duration,startOffsetTime,paused,ended,videoTracks,audioTracks,videoWidth,videoHeight'.split(',');\r\n\r\nfunction _createSetter(attr) {\r\n var attrUpper = attr.charAt(0).toUpperCase() + attr.slice(1);\r\n _api['set' + attrUpper] = function (val) {\r\n return this.el_.vjs_setProperty(attr, val);\r\n };\r\n}\r\nfunction _createGetter(attr) {\r\n _api[attr] = function () {\r\n return this.el_.vjs_getProperty(attr);\r\n };\r\n}\r\n\r\n// Create getter and setters for all read/write attributes\r\nfor (var i = 0; i < _readWrite.length; i++) {\r\n _createGetter(_readWrite[i]);\r\n _createSetter(_readWrite[i]);\r\n}\r\n\r\n// Create getters for read-only attributes\r\nfor (var i = 0; i < _readOnly.length; i++) {\r\n _createGetter(_readOnly[i]);\r\n}\r\n\r\n/* Flash Support Testing -------------------------------------------------------- */\r\n\r\nFlash.isSupported = function () {\r\n return Flash.version()[0] >= 10;\r\n // return swfobject.hasFlashPlayerVersion('10');\r\n};\r\n\r\n// Add Source Handler pattern functions to this tech\r\n_tech2['default'].withSourceHandlers(Flash);\r\n\r\n/*\r\n * The default native source handler.\r\n * This simply passes the source to the video element. Nothing fancy.\r\n *\r\n * @param {Object} source The source object\r\n * @param {Flash} tech The instance of the Flash tech\r\n */\r\nFlash.nativeSourceHandler = {};\r\n\r\n/**\r\n * Check if Flash can play the given videotype\r\n * @param {String} type The mimetype to check\r\n * @return {String} 'probably', 'maybe', or '' (empty string)\r\n */\r\nFlash.nativeSourceHandler.canPlayType = function (type) {\r\n if (type in Flash.formats) {\r\n return 'maybe';\r\n }\r\n\r\n return '';\r\n};\r\n\r\n/*\r\n * Check Flash can handle the source natively\r\n *\r\n * @param {Object} source The source object\r\n * @return {String} 'probably', 'maybe', or '' (empty string)\r\n */\r\nFlash.nativeSourceHandler.canHandleSource = function (source) {\r\n var type;\r\n\r\n function guessMimeType(src) {\r\n var ext = Url.getFileExtension(src);\r\n if (ext) {\r\n return 'video/' + ext;\r\n }\r\n return '';\r\n }\r\n\r\n if (!source.type) {\r\n type = guessMimeType(source.src);\r\n } else {\r\n // Strip code information from the type because we don't get that specific\r\n type = source.type.replace(/;.*/, '').toLowerCase();\r\n }\r\n\r\n return Flash.nativeSourceHandler.canPlayType(type);\r\n};\r\n\r\n/*\r\n * Pass the source to the flash object\r\n * Adaptive source handlers will have more complicated workflows before passing\r\n * video data to the video element\r\n *\r\n * @param {Object} source The source object\r\n * @param {Flash} tech The instance of the Flash tech\r\n */\r\nFlash.nativeSourceHandler.handleSource = function (source, tech) {\r\n tech.setSrc(source.src);\r\n};\r\n\r\n/*\r\n * Clean up the source handler when disposing the player or switching sources..\r\n * (no cleanup is needed when supporting the format natively)\r\n */\r\nFlash.nativeSourceHandler.dispose = function () {};\r\n\r\n// Register the native source handler\r\nFlash.registerSourceHandler(Flash.nativeSourceHandler);\r\n\r\nFlash.formats = {\r\n 'video/flv': 'FLV',\r\n 'video/x-flv': 'FLV',\r\n 'video/mp4': 'MP4',\r\n 'video/m4v': 'MP4'\r\n};\r\n\r\nFlash.onReady = function (currSwf) {\r\n var el = Dom.getEl(currSwf);\r\n var tech = el && el.tech;\r\n\r\n // if there is no el then the tech has been disposed\r\n // and the tech element was removed from the player div\r\n if (tech && tech.el()) {\r\n // check that the flash object is really ready\r\n Flash.checkReady(tech);\r\n }\r\n};\r\n\r\n// The SWF isn't always ready when it says it is. Sometimes the API functions still need to be added to the object.\r\n// If it's not ready, we set a timeout to check again shortly.\r\nFlash.checkReady = function (tech) {\r\n // stop worrying if the tech has been disposed\r\n if (!tech.el()) {\r\n return;\r\n }\r\n\r\n // check if API property exists\r\n if (tech.el().vjs_getProperty) {\r\n // tell tech it's ready\r\n tech.triggerReady();\r\n } else {\r\n // wait longer\r\n this.setTimeout(function () {\r\n Flash['checkReady'](tech);\r\n }, 50);\r\n }\r\n};\r\n\r\n// Trigger events from the swf on the player\r\nFlash.onEvent = function (swfID, eventName) {\r\n var tech = Dom.getEl(swfID).tech;\r\n tech.trigger(eventName);\r\n};\r\n\r\n// Log errors from the swf\r\nFlash.onError = function (swfID, err) {\r\n var tech = Dom.getEl(swfID).tech;\r\n\r\n // trigger MEDIA_ERR_SRC_NOT_SUPPORTED\r\n if (err === 'srcnotfound') {\r\n return tech.error(4);\r\n }\r\n\r\n // trigger a custom error\r\n tech.error('FLASH: ' + err);\r\n};\r\n\r\n// Flash Version Check\r\nFlash.version = function () {\r\n var version = '0,0,0';\r\n\r\n // IE\r\n try {\r\n version = new _globalWindow2['default'].ActiveXObject('ShockwaveFlash.ShockwaveFlash').GetVariable('$version').replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\r\n\r\n // other browsers\r\n } catch (e) {\r\n try {\r\n if (navigator.mimeTypes['application/x-shockwave-flash'].enabledPlugin) {\r\n version = (navigator.plugins['Shockwave Flash 2.0'] || navigator.plugins['Shockwave Flash']).description.replace(/\\D+/g, ',').match(/^,?(.+),?$/)[1];\r\n }\r\n } catch (err) {}\r\n }\r\n return version.split(',');\r\n};\r\n\r\n// Flash embedding method. Only used in non-iframe mode\r\nFlash.embed = function (swf, flashVars, params, attributes) {\r\n var code = Flash.getEmbedCode(swf, flashVars, params, attributes);\r\n\r\n // Get element by embedding code and retrieving created element\r\n var obj = Dom.createEl('div', { innerHTML: code }).childNodes[0];\r\n\r\n return obj;\r\n};\r\n\r\nFlash.getEmbedCode = function (swf, flashVars, params, attributes) {\r\n var objTag = '';\r\n });\r\n\r\n attributes = _objectAssign2['default']({\r\n // Add swf to attributes (need both for IE and Others to work)\r\n 'data': swf,\r\n\r\n // Default to 100% width/height\r\n 'width': '100%',\r\n 'height': '100%'\r\n\r\n }, attributes);\r\n\r\n // Create Attributes string\r\n Object.getOwnPropertyNames(attributes).forEach(function (key) {\r\n attrsString += key + '=\"' + attributes[key] + '\" ';\r\n });\r\n\r\n return '' + objTag + attrsString + '>' + paramsString + '';\r\n};\r\n\r\n// Run Flash through the RTMP decorator\r\n_flashRtmp2['default'](Flash);\r\n\r\n_component2['default'].registerComponent('Flash', Flash);\r\n_tech2['default'].registerTech('Flash', Flash);\r\nexports['default'] = Flash;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component\":67,\"../utils/dom.js\":134,\"../utils/time-ranges.js\":142,\"../utils/url.js\":144,\"./flash-rtmp\":117,\"./tech\":121,\"global/window\":2,\"object.assign\":45}],119:[function(_dereq_,module,exports){\r\n/**\r\n * @file html5.js\r\n * HTML5 Media Controller - Wrapper for HTML5 Media API\r\n */\r\n\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _techJs = _dereq_('./tech.js');\r\n\r\nvar _techJs2 = _interopRequireDefault(_techJs);\r\n\r\nvar _component = _dereq_('../component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _utilsDomJs = _dereq_('../utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsUrlJs = _dereq_('../utils/url.js');\r\n\r\nvar Url = _interopRequireWildcard(_utilsUrlJs);\r\n\r\nvar _utilsFnJs = _dereq_('../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsLogJs = _dereq_('../utils/log.js');\r\n\r\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\r\n\r\nvar _utilsBrowserJs = _dereq_('../utils/browser.js');\r\n\r\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _objectAssign = _dereq_('object.assign');\r\n\r\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\r\n\r\nvar _utilsMergeOptionsJs = _dereq_('../utils/merge-options.js');\r\n\r\nvar _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);\r\n\r\n/**\r\n * HTML5 Media Controller - Wrapper for HTML5 Media API\r\n *\r\n * @param {Object=} options Object of option names and values\r\n * @param {Function=} ready Ready callback function\r\n * @extends Tech\r\n * @class Html5\r\n */\r\n\r\nvar Html5 = (function (_Tech) {\r\n _inherits(Html5, _Tech);\r\n\r\n function Html5(options, ready) {\r\n _classCallCheck(this, Html5);\r\n\r\n _Tech.call(this, options, ready);\r\n\r\n var source = options.source;\r\n\r\n // Set the source if one is provided\r\n // 1) Check if the source is new (if not, we want to keep the original so playback isn't interrupted)\r\n // 2) Check to see if the network state of the tag was failed at init, and if so, reset the source\r\n // anyway so the error gets fired.\r\n if (source && (this.el_.currentSrc !== source.src || options.tag && options.tag.initNetworkState_ === 3)) {\r\n this.setSource(source);\r\n } else {\r\n this.handleLateInit_(this.el_);\r\n }\r\n\r\n if (this.el_.hasChildNodes()) {\r\n\r\n var nodes = this.el_.childNodes;\r\n var nodesLength = nodes.length;\r\n var removeNodes = [];\r\n\r\n while (nodesLength--) {\r\n var node = nodes[nodesLength];\r\n var nodeName = node.nodeName.toLowerCase();\r\n\r\n if (nodeName === 'track') {\r\n if (!this.featuresNativeTextTracks) {\r\n // Empty video tag tracks so the built-in player doesn't use them also.\r\n // This may not be fast enough to stop HTML5 browsers from reading the tags\r\n // so we'll need to turn off any default tracks if we're manually doing\r\n // captions and subtitles. videoElement.textTracks\r\n removeNodes.push(node);\r\n } else {\r\n // store HTMLTrackElement and TextTrack to remote list\r\n this.remoteTextTrackEls().addTrackElement_(node);\r\n this.remoteTextTracks().addTrack_(node.track);\r\n }\r\n }\r\n }\r\n\r\n for (var i = 0; i < removeNodes.length; i++) {\r\n this.el_.removeChild(removeNodes[i]);\r\n }\r\n }\r\n\r\n if (this.featuresNativeTextTracks) {\r\n this.handleTextTrackChange_ = Fn.bind(this, this.handleTextTrackChange);\r\n this.handleTextTrackAdd_ = Fn.bind(this, this.handleTextTrackAdd);\r\n this.handleTextTrackRemove_ = Fn.bind(this, this.handleTextTrackRemove);\r\n this.proxyNativeTextTracks_();\r\n }\r\n\r\n // Determine if native controls should be used\r\n // Our goal should be to get the custom controls on mobile solid everywhere\r\n // so we can remove this all together. Right now this will block custom\r\n // controls on touch enabled laptops like the Chrome Pixel\r\n if (browser.TOUCH_ENABLED && options.nativeControlsForTouch === true || browser.IS_IPHONE || browser.IS_NATIVE_ANDROID) {\r\n this.setControls(true);\r\n }\r\n\r\n this.triggerReady();\r\n }\r\n\r\n /* HTML5 Support Testing ---------------------------------------------------- */\r\n\r\n /*\r\n * Element for testing browser HTML5 video capabilities\r\n *\r\n * @type {Element}\r\n * @constant\r\n * @private\r\n */\r\n\r\n /**\r\n * Dispose of html5 media element\r\n *\r\n * @method dispose\r\n */\r\n\r\n Html5.prototype.dispose = function dispose() {\r\n var tt = this.el().textTracks;\r\n var emulatedTt = this.textTracks();\r\n\r\n // remove native event listeners\r\n if (tt && tt.removeEventListener) {\r\n tt.removeEventListener('change', this.handleTextTrackChange_);\r\n tt.removeEventListener('addtrack', this.handleTextTrackAdd_);\r\n tt.removeEventListener('removetrack', this.handleTextTrackRemove_);\r\n }\r\n\r\n // clearout the emulated text track list.\r\n var i = emulatedTt.length;\r\n\r\n while (i--) {\r\n emulatedTt.removeTrack_(emulatedTt[i]);\r\n }\r\n\r\n Html5.disposeMediaElement(this.el_);\r\n _Tech.prototype.dispose.call(this);\r\n };\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n Html5.prototype.createEl = function createEl() {\r\n var el = this.options_.tag;\r\n\r\n // Check if this browser supports moving the element into the box.\r\n // On the iPhone video will break if you move the element,\r\n // So we have to create a brand new element.\r\n if (!el || this['movingMediaElementInDOM'] === false) {\r\n\r\n // If the original tag is still there, clone and remove it.\r\n if (el) {\r\n var clone = el.cloneNode(true);\r\n el.parentNode.insertBefore(clone, el);\r\n Html5.disposeMediaElement(el);\r\n el = clone;\r\n } else {\r\n el = _globalDocument2['default'].createElement('video');\r\n\r\n // determine if native controls should be used\r\n var tagAttributes = this.options_.tag && Dom.getElAttributes(this.options_.tag);\r\n var attributes = _utilsMergeOptionsJs2['default']({}, tagAttributes);\r\n if (!browser.TOUCH_ENABLED || this.options_.nativeControlsForTouch !== true) {\r\n delete attributes.controls;\r\n }\r\n\r\n Dom.setElAttributes(el, _objectAssign2['default'](attributes, {\r\n id: this.options_.techId,\r\n 'class': 'vjs-tech'\r\n }));\r\n }\r\n }\r\n\r\n // Update specific tag settings, in case they were overridden\r\n var settingsAttrs = ['autoplay', 'preload', 'loop', 'muted'];\r\n for (var i = settingsAttrs.length - 1; i >= 0; i--) {\r\n var attr = settingsAttrs[i];\r\n var overwriteAttrs = {};\r\n if (typeof this.options_[attr] !== 'undefined') {\r\n overwriteAttrs[attr] = this.options_[attr];\r\n }\r\n Dom.setElAttributes(el, overwriteAttrs);\r\n }\r\n\r\n return el;\r\n // jenniisawesome = true;\r\n };\r\n\r\n // If we're loading the playback object after it has started loading\r\n // or playing the video (often with autoplay on) then the loadstart event\r\n // has already fired and we need to fire it manually because many things\r\n // rely on it.\r\n\r\n Html5.prototype.handleLateInit_ = function handleLateInit_(el) {\r\n var _this = this;\r\n\r\n if (el.networkState === 0 || el.networkState === 3) {\r\n // The video element hasn't started loading the source yet\r\n // or didn't find a source\r\n return;\r\n }\r\n\r\n if (el.readyState === 0) {\r\n var _ret = (function () {\r\n // NetworkState is set synchronously BUT loadstart is fired at the\r\n // end of the current stack, usually before setInterval(fn, 0).\r\n // So at this point we know loadstart may have already fired or is\r\n // about to fire, and either way the player hasn't seen it yet.\r\n // We don't want to fire loadstart prematurely here and cause a\r\n // double loadstart so we'll wait and see if it happens between now\r\n // and the next loop, and fire it if not.\r\n // HOWEVER, we also want to make sure it fires before loadedmetadata\r\n // which could also happen between now and the next loop, so we'll\r\n // watch for that also.\r\n var loadstartFired = false;\r\n var setLoadstartFired = function setLoadstartFired() {\r\n loadstartFired = true;\r\n };\r\n _this.on('loadstart', setLoadstartFired);\r\n\r\n var triggerLoadstart = function triggerLoadstart() {\r\n // We did miss the original loadstart. Make sure the player\r\n // sees loadstart before loadedmetadata\r\n if (!loadstartFired) {\r\n this.trigger('loadstart');\r\n }\r\n };\r\n _this.on('loadedmetadata', triggerLoadstart);\r\n\r\n _this.ready(function () {\r\n this.off('loadstart', setLoadstartFired);\r\n this.off('loadedmetadata', triggerLoadstart);\r\n\r\n if (!loadstartFired) {\r\n // We did miss the original native loadstart. Fire it now.\r\n this.trigger('loadstart');\r\n }\r\n });\r\n\r\n return {\r\n v: undefined\r\n };\r\n })();\r\n\r\n if (typeof _ret === 'object') return _ret.v;\r\n }\r\n\r\n // From here on we know that loadstart already fired and we missed it.\r\n // The other readyState events aren't as much of a problem if we double\r\n // them, so not going to go to as much trouble as loadstart to prevent\r\n // that unless we find reason to.\r\n var eventsToTrigger = ['loadstart'];\r\n\r\n // loadedmetadata: newly equal to HAVE_METADATA (1) or greater\r\n eventsToTrigger.push('loadedmetadata');\r\n\r\n // loadeddata: newly increased to HAVE_CURRENT_DATA (2) or greater\r\n if (el.readyState >= 2) {\r\n eventsToTrigger.push('loadeddata');\r\n }\r\n\r\n // canplay: newly increased to HAVE_FUTURE_DATA (3) or greater\r\n if (el.readyState >= 3) {\r\n eventsToTrigger.push('canplay');\r\n }\r\n\r\n // canplaythrough: newly equal to HAVE_ENOUGH_DATA (4)\r\n if (el.readyState >= 4) {\r\n eventsToTrigger.push('canplaythrough');\r\n }\r\n\r\n // We still need to give the player time to add event listeners\r\n this.ready(function () {\r\n eventsToTrigger.forEach(function (type) {\r\n this.trigger(type);\r\n }, this);\r\n });\r\n };\r\n\r\n Html5.prototype.proxyNativeTextTracks_ = function proxyNativeTextTracks_() {\r\n var tt = this.el().textTracks;\r\n\r\n if (tt) {\r\n // Add tracks - if player is initialised after DOM loaded, textTracks\r\n // will not trigger addtrack\r\n for (var i = 0; i < tt.length; i++) {\r\n this.textTracks().addTrack_(tt[i]);\r\n }\r\n\r\n if (tt.addEventListener) {\r\n tt.addEventListener('change', this.handleTextTrackChange_);\r\n tt.addEventListener('addtrack', this.handleTextTrackAdd_);\r\n tt.addEventListener('removetrack', this.handleTextTrackRemove_);\r\n }\r\n }\r\n };\r\n\r\n Html5.prototype.handleTextTrackChange = function handleTextTrackChange(e) {\r\n var tt = this.textTracks();\r\n this.textTracks().trigger({\r\n type: 'change',\r\n target: tt,\r\n currentTarget: tt,\r\n srcElement: tt\r\n });\r\n };\r\n\r\n Html5.prototype.handleTextTrackAdd = function handleTextTrackAdd(e) {\r\n this.textTracks().addTrack_(e.track);\r\n };\r\n\r\n Html5.prototype.handleTextTrackRemove = function handleTextTrackRemove(e) {\r\n this.textTracks().removeTrack_(e.track);\r\n };\r\n\r\n /**\r\n * Play for html5 tech\r\n *\r\n * @method play\r\n */\r\n\r\n Html5.prototype.play = function play() {\r\n this.el_.play();\r\n };\r\n\r\n /**\r\n * Pause for html5 tech\r\n *\r\n * @method pause\r\n */\r\n\r\n Html5.prototype.pause = function pause() {\r\n this.el_.pause();\r\n };\r\n\r\n /**\r\n * Paused for html5 tech\r\n *\r\n * @return {Boolean}\r\n * @method paused\r\n */\r\n\r\n Html5.prototype.paused = function paused() {\r\n return this.el_.paused;\r\n };\r\n\r\n /**\r\n * Get current time\r\n *\r\n * @return {Number}\r\n * @method currentTime\r\n */\r\n\r\n Html5.prototype.currentTime = function currentTime() {\r\n return this.el_.currentTime;\r\n };\r\n\r\n /**\r\n * Set current time\r\n *\r\n * @param {Number} seconds Current time of video\r\n * @method setCurrentTime\r\n */\r\n\r\n Html5.prototype.setCurrentTime = function setCurrentTime(seconds) {\r\n try {\r\n this.el_.currentTime = seconds;\r\n } catch (e) {\r\n _utilsLogJs2['default'](e, 'Video is not ready. (Video.js)');\r\n // this.warning(VideoJS.warnings.videoNotReady);\r\n }\r\n };\r\n\r\n /**\r\n * Get duration\r\n *\r\n * @return {Number}\r\n * @method duration\r\n */\r\n\r\n Html5.prototype.duration = function duration() {\r\n return this.el_.duration || 0;\r\n };\r\n\r\n /**\r\n * Get a TimeRange object that represents the intersection\r\n * of the time ranges for which the user agent has all\r\n * relevant media\r\n *\r\n * @return {TimeRangeObject}\r\n * @method buffered\r\n */\r\n\r\n Html5.prototype.buffered = function buffered() {\r\n return this.el_.buffered;\r\n };\r\n\r\n /**\r\n * Get volume level\r\n *\r\n * @return {Number}\r\n * @method volume\r\n */\r\n\r\n Html5.prototype.volume = function volume() {\r\n return this.el_.volume;\r\n };\r\n\r\n /**\r\n * Set volume level\r\n *\r\n * @param {Number} percentAsDecimal Volume percent as a decimal\r\n * @method setVolume\r\n */\r\n\r\n Html5.prototype.setVolume = function setVolume(percentAsDecimal) {\r\n this.el_.volume = percentAsDecimal;\r\n };\r\n\r\n /**\r\n * Get if muted\r\n *\r\n * @return {Boolean}\r\n * @method muted\r\n */\r\n\r\n Html5.prototype.muted = function muted() {\r\n return this.el_.muted;\r\n };\r\n\r\n /**\r\n * Set muted\r\n *\r\n * @param {Boolean} If player is to be muted or note\r\n * @method setMuted\r\n */\r\n\r\n Html5.prototype.setMuted = function setMuted(muted) {\r\n this.el_.muted = muted;\r\n };\r\n\r\n /**\r\n * Get player width\r\n *\r\n * @return {Number}\r\n * @method width\r\n */\r\n\r\n Html5.prototype.width = function width() {\r\n return this.el_.offsetWidth;\r\n };\r\n\r\n /**\r\n * Get player height\r\n *\r\n * @return {Number}\r\n * @method height\r\n */\r\n\r\n Html5.prototype.height = function height() {\r\n return this.el_.offsetHeight;\r\n };\r\n\r\n /**\r\n * Get if there is fullscreen support\r\n *\r\n * @return {Boolean}\r\n * @method supportsFullScreen\r\n */\r\n\r\n Html5.prototype.supportsFullScreen = function supportsFullScreen() {\r\n if (typeof this.el_.webkitEnterFullScreen === 'function') {\r\n var userAgent = _globalWindow2['default'].navigator.userAgent;\r\n // Seems to be broken in Chromium/Chrome && Safari in Leopard\r\n if (/Android/.test(userAgent) || !/Chrome|Mac OS X 10.5/.test(userAgent)) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n /**\r\n * Request to enter fullscreen\r\n *\r\n * @method enterFullScreen\r\n */\r\n\r\n Html5.prototype.enterFullScreen = function enterFullScreen() {\r\n var video = this.el_;\r\n\r\n if ('webkitDisplayingFullscreen' in video) {\r\n this.one('webkitbeginfullscreen', function () {\r\n this.one('webkitendfullscreen', function () {\r\n this.trigger('fullscreenchange', { isFullscreen: false });\r\n });\r\n\r\n this.trigger('fullscreenchange', { isFullscreen: true });\r\n });\r\n }\r\n\r\n if (video.paused && video.networkState <= video.HAVE_METADATA) {\r\n // attempt to prime the video element for programmatic access\r\n // this isn't necessary on the desktop but shouldn't hurt\r\n this.el_.play();\r\n\r\n // playing and pausing synchronously during the transition to fullscreen\r\n // can get iOS ~6.1 devices into a play/pause loop\r\n this.setTimeout(function () {\r\n video.pause();\r\n video.webkitEnterFullScreen();\r\n }, 0);\r\n } else {\r\n video.webkitEnterFullScreen();\r\n }\r\n };\r\n\r\n /**\r\n * Request to exit fullscreen\r\n *\r\n * @method exitFullScreen\r\n */\r\n\r\n Html5.prototype.exitFullScreen = function exitFullScreen() {\r\n this.el_.webkitExitFullScreen();\r\n };\r\n\r\n /**\r\n * Get/set video\r\n *\r\n * @param {Object=} src Source object\r\n * @return {Object}\r\n * @method src\r\n */\r\n\r\n Html5.prototype.src = function src(_src) {\r\n if (_src === undefined) {\r\n return this.el_.src;\r\n } else {\r\n // Setting src through `src` instead of `setSrc` will be deprecated\r\n this.setSrc(_src);\r\n }\r\n };\r\n\r\n /**\r\n * Set video\r\n *\r\n * @param {Object} src Source object\r\n * @deprecated\r\n * @method setSrc\r\n */\r\n\r\n Html5.prototype.setSrc = function setSrc(src) {\r\n this.el_.src = src;\r\n };\r\n\r\n /**\r\n * Load media into player\r\n *\r\n * @method load\r\n */\r\n\r\n Html5.prototype.load = function load() {\r\n this.el_.load();\r\n };\r\n\r\n /**\r\n * Reset the tech. Removes all sources and calls `load`.\r\n *\r\n * @method reset\r\n */\r\n\r\n Html5.prototype.reset = function reset() {\r\n Html5.resetMediaElement(this.el_);\r\n };\r\n\r\n /**\r\n * Get current source\r\n *\r\n * @return {Object}\r\n * @method currentSrc\r\n */\r\n\r\n Html5.prototype.currentSrc = function currentSrc() {\r\n if (this.currentSource_) {\r\n return this.currentSource_.src;\r\n } else {\r\n return this.el_.currentSrc;\r\n }\r\n };\r\n\r\n /**\r\n * Get poster\r\n *\r\n * @return {String}\r\n * @method poster\r\n */\r\n\r\n Html5.prototype.poster = function poster() {\r\n return this.el_.poster;\r\n };\r\n\r\n /**\r\n * Set poster\r\n *\r\n * @param {String} val URL to poster image\r\n * @method\r\n */\r\n\r\n Html5.prototype.setPoster = function setPoster(val) {\r\n this.el_.poster = val;\r\n };\r\n\r\n /**\r\n * Get preload attribute\r\n *\r\n * @return {String}\r\n * @method preload\r\n */\r\n\r\n Html5.prototype.preload = function preload() {\r\n return this.el_.preload;\r\n };\r\n\r\n /**\r\n * Set preload attribute\r\n *\r\n * @param {String} val Value for preload attribute\r\n * @method setPreload\r\n */\r\n\r\n Html5.prototype.setPreload = function setPreload(val) {\r\n this.el_.preload = val;\r\n };\r\n\r\n /**\r\n * Get autoplay attribute\r\n *\r\n * @return {String}\r\n * @method autoplay\r\n */\r\n\r\n Html5.prototype.autoplay = function autoplay() {\r\n return this.el_.autoplay;\r\n };\r\n\r\n /**\r\n * Set autoplay attribute\r\n *\r\n * @param {String} val Value for preload attribute\r\n * @method setAutoplay\r\n */\r\n\r\n Html5.prototype.setAutoplay = function setAutoplay(val) {\r\n this.el_.autoplay = val;\r\n };\r\n\r\n /**\r\n * Get controls attribute\r\n *\r\n * @return {String}\r\n * @method controls\r\n */\r\n\r\n Html5.prototype.controls = function controls() {\r\n return this.el_.controls;\r\n };\r\n\r\n /**\r\n * Set controls attribute\r\n *\r\n * @param {String} val Value for controls attribute\r\n * @method setControls\r\n */\r\n\r\n Html5.prototype.setControls = function setControls(val) {\r\n this.el_.controls = !!val;\r\n };\r\n\r\n /**\r\n * Get loop attribute\r\n *\r\n * @return {String}\r\n * @method loop\r\n */\r\n\r\n Html5.prototype.loop = function loop() {\r\n return this.el_.loop;\r\n };\r\n\r\n /**\r\n * Set loop attribute\r\n *\r\n * @param {String} val Value for loop attribute\r\n * @method setLoop\r\n */\r\n\r\n Html5.prototype.setLoop = function setLoop(val) {\r\n this.el_.loop = val;\r\n };\r\n\r\n /**\r\n * Get error value\r\n *\r\n * @return {String}\r\n * @method error\r\n */\r\n\r\n Html5.prototype.error = function error() {\r\n return this.el_.error;\r\n };\r\n\r\n /**\r\n * Get whether or not the player is in the \"seeking\" state\r\n *\r\n * @return {Boolean}\r\n * @method seeking\r\n */\r\n\r\n Html5.prototype.seeking = function seeking() {\r\n return this.el_.seeking;\r\n };\r\n\r\n /**\r\n * Get a TimeRanges object that represents the\r\n * ranges of the media resource to which it is possible\r\n * for the user agent to seek.\r\n *\r\n * @return {TimeRangeObject}\r\n * @method seekable\r\n */\r\n\r\n Html5.prototype.seekable = function seekable() {\r\n return this.el_.seekable;\r\n };\r\n\r\n /**\r\n * Get if video ended\r\n *\r\n * @return {Boolean}\r\n * @method ended\r\n */\r\n\r\n Html5.prototype.ended = function ended() {\r\n return this.el_.ended;\r\n };\r\n\r\n /**\r\n * Get the value of the muted content attribute\r\n * This attribute has no dynamic effect, it only\r\n * controls the default state of the element\r\n *\r\n * @return {Boolean}\r\n * @method defaultMuted\r\n */\r\n\r\n Html5.prototype.defaultMuted = function defaultMuted() {\r\n return this.el_.defaultMuted;\r\n };\r\n\r\n /**\r\n * Get desired speed at which the media resource is to play\r\n *\r\n * @return {Number}\r\n * @method playbackRate\r\n */\r\n\r\n Html5.prototype.playbackRate = function playbackRate() {\r\n return this.el_.playbackRate;\r\n };\r\n\r\n /**\r\n * Returns a TimeRanges object that represents the ranges of the\r\n * media resource that the user agent has played.\r\n * @return {TimeRangeObject} the range of points on the media\r\n * timeline that has been reached through normal playback\r\n * @see https://html.spec.whatwg.org/multipage/embedded-content.html#dom-media-played\r\n */\r\n\r\n Html5.prototype.played = function played() {\r\n return this.el_.played;\r\n };\r\n\r\n /**\r\n * Set desired speed at which the media resource is to play\r\n *\r\n * @param {Number} val Speed at which the media resource is to play\r\n * @method setPlaybackRate\r\n */\r\n\r\n Html5.prototype.setPlaybackRate = function setPlaybackRate(val) {\r\n this.el_.playbackRate = val;\r\n };\r\n\r\n /**\r\n * Get the current state of network activity for the element, from\r\n * the list below\r\n * NETWORK_EMPTY (numeric value 0)\r\n * NETWORK_IDLE (numeric value 1)\r\n * NETWORK_LOADING (numeric value 2)\r\n * NETWORK_NO_SOURCE (numeric value 3)\r\n *\r\n * @return {Number}\r\n * @method networkState\r\n */\r\n\r\n Html5.prototype.networkState = function networkState() {\r\n return this.el_.networkState;\r\n };\r\n\r\n /**\r\n * Get a value that expresses the current state of the element\r\n * with respect to rendering the current playback position, from\r\n * the codes in the list below\r\n * HAVE_NOTHING (numeric value 0)\r\n * HAVE_METADATA (numeric value 1)\r\n * HAVE_CURRENT_DATA (numeric value 2)\r\n * HAVE_FUTURE_DATA (numeric value 3)\r\n * HAVE_ENOUGH_DATA (numeric value 4)\r\n *\r\n * @return {Number}\r\n * @method readyState\r\n */\r\n\r\n Html5.prototype.readyState = function readyState() {\r\n return this.el_.readyState;\r\n };\r\n\r\n /**\r\n * Get width of video\r\n *\r\n * @return {Number}\r\n * @method videoWidth\r\n */\r\n\r\n Html5.prototype.videoWidth = function videoWidth() {\r\n return this.el_.videoWidth;\r\n };\r\n\r\n /**\r\n * Get height of video\r\n *\r\n * @return {Number}\r\n * @method videoHeight\r\n */\r\n\r\n Html5.prototype.videoHeight = function videoHeight() {\r\n return this.el_.videoHeight;\r\n };\r\n\r\n /**\r\n * Get text tracks\r\n *\r\n * @return {TextTrackList}\r\n * @method textTracks\r\n */\r\n\r\n Html5.prototype.textTracks = function textTracks() {\r\n return _Tech.prototype.textTracks.call(this);\r\n };\r\n\r\n /**\r\n * Creates and returns a text track object\r\n *\r\n * @param {String} kind Text track kind (subtitles, captions, descriptions\r\n * chapters and metadata)\r\n * @param {String=} label Label to identify the text track\r\n * @param {String=} language Two letter language abbreviation\r\n * @return {TextTrackObject}\r\n * @method addTextTrack\r\n */\r\n\r\n Html5.prototype.addTextTrack = function addTextTrack(kind, label, language) {\r\n if (!this['featuresNativeTextTracks']) {\r\n return _Tech.prototype.addTextTrack.call(this, kind, label, language);\r\n }\r\n\r\n return this.el_.addTextTrack(kind, label, language);\r\n };\r\n\r\n /**\r\n * Creates a remote text track object and returns a html track element\r\n *\r\n * @param {Object} options The object should contain values for\r\n * kind, language, label and src (location of the WebVTT file)\r\n * @return {HTMLTrackElement}\r\n * @method addRemoteTextTrack\r\n */\r\n\r\n Html5.prototype.addRemoteTextTrack = function addRemoteTextTrack() {\r\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\r\n\r\n if (!this['featuresNativeTextTracks']) {\r\n return _Tech.prototype.addRemoteTextTrack.call(this, options);\r\n }\r\n\r\n var htmlTrackElement = _globalDocument2['default'].createElement('track');\r\n\r\n if (options.kind) {\r\n htmlTrackElement.kind = options.kind;\r\n }\r\n if (options.label) {\r\n htmlTrackElement.label = options.label;\r\n }\r\n if (options.language || options.srclang) {\r\n htmlTrackElement.srclang = options.language || options.srclang;\r\n }\r\n if (options['default']) {\r\n htmlTrackElement['default'] = options['default'];\r\n }\r\n if (options.id) {\r\n htmlTrackElement.id = options.id;\r\n }\r\n if (options.src) {\r\n htmlTrackElement.src = options.src;\r\n }\r\n\r\n this.el().appendChild(htmlTrackElement);\r\n\r\n // store HTMLTrackElement and TextTrack to remote list\r\n this.remoteTextTrackEls().addTrackElement_(htmlTrackElement);\r\n this.remoteTextTracks().addTrack_(htmlTrackElement.track);\r\n\r\n return htmlTrackElement;\r\n };\r\n\r\n /**\r\n * Remove remote text track from TextTrackList object\r\n *\r\n * @param {TextTrackObject} track Texttrack object to remove\r\n * @method removeRemoteTextTrack\r\n */\r\n\r\n Html5.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {\r\n if (!this['featuresNativeTextTracks']) {\r\n return _Tech.prototype.removeRemoteTextTrack.call(this, track);\r\n }\r\n\r\n var tracks = undefined,\r\n i = undefined;\r\n\r\n var trackElement = this.remoteTextTrackEls().getTrackElementByTrack_(track);\r\n\r\n // remove HTMLTrackElement and TextTrack from remote list\r\n this.remoteTextTrackEls().removeTrackElement_(trackElement);\r\n this.remoteTextTracks().removeTrack_(track);\r\n\r\n tracks = this.$$('track');\r\n\r\n i = tracks.length;\r\n while (i--) {\r\n if (track === tracks[i] || track === tracks[i].track) {\r\n this.el().removeChild(tracks[i]);\r\n }\r\n }\r\n };\r\n\r\n return Html5;\r\n})(_techJs2['default']);\r\n\r\nHtml5.TEST_VID = _globalDocument2['default'].createElement('video');\r\nvar track = _globalDocument2['default'].createElement('track');\r\ntrack.kind = 'captions';\r\ntrack.srclang = 'en';\r\ntrack.label = 'English';\r\nHtml5.TEST_VID.appendChild(track);\r\n\r\n/*\r\n * Check if HTML5 video is supported by this browser/device\r\n *\r\n * @return {Boolean}\r\n */\r\nHtml5.isSupported = function () {\r\n // IE9 with no Media Player is a LIAR! (#984)\r\n try {\r\n Html5.TEST_VID['volume'] = 0.5;\r\n } catch (e) {\r\n return false;\r\n }\r\n\r\n return !!Html5.TEST_VID.canPlayType;\r\n};\r\n\r\n// Add Source Handler pattern functions to this tech\r\n_techJs2['default'].withSourceHandlers(Html5);\r\n\r\n/*\r\n * The default native source handler.\r\n * This simply passes the source to the video element. Nothing fancy.\r\n *\r\n * @param {Object} source The source object\r\n * @param {Html5} tech The instance of the HTML5 tech\r\n */\r\nHtml5.nativeSourceHandler = {};\r\n\r\n/*\r\n * Check if the video element can play the given videotype\r\n *\r\n * @param {String} type The mimetype to check\r\n * @return {String} 'probably', 'maybe', or '' (empty string)\r\n */\r\nHtml5.nativeSourceHandler.canPlayType = function (type) {\r\n // IE9 on Windows 7 without MediaPlayer throws an error here\r\n // https://github.com/videojs/video.js/issues/519\r\n try {\r\n return Html5.TEST_VID.canPlayType(type);\r\n } catch (e) {\r\n return '';\r\n }\r\n};\r\n\r\n/*\r\n * Check if the video element can handle the source natively\r\n *\r\n * @param {Object} source The source object\r\n * @return {String} 'probably', 'maybe', or '' (empty string)\r\n */\r\nHtml5.nativeSourceHandler.canHandleSource = function (source) {\r\n var match, ext;\r\n\r\n // If a type was provided we should rely on that\r\n if (source.type) {\r\n return Html5.nativeSourceHandler.canPlayType(source.type);\r\n } else if (source.src) {\r\n // If no type, fall back to checking 'video/[EXTENSION]'\r\n ext = Url.getFileExtension(source.src);\r\n\r\n return Html5.nativeSourceHandler.canPlayType('video/' + ext);\r\n }\r\n\r\n return '';\r\n};\r\n\r\n/*\r\n * Pass the source to the video element\r\n * Adaptive source handlers will have more complicated workflows before passing\r\n * video data to the video element\r\n *\r\n * @param {Object} source The source object\r\n * @param {Html5} tech The instance of the Html5 tech\r\n */\r\nHtml5.nativeSourceHandler.handleSource = function (source, tech) {\r\n tech.setSrc(source.src);\r\n};\r\n\r\n/*\r\n* Clean up the source handler when disposing the player or switching sources..\r\n* (no cleanup is needed when supporting the format natively)\r\n*/\r\nHtml5.nativeSourceHandler.dispose = function () {};\r\n\r\n// Register the native source handler\r\nHtml5.registerSourceHandler(Html5.nativeSourceHandler);\r\n\r\n/*\r\n * Check if the volume can be changed in this browser/device.\r\n * Volume cannot be changed in a lot of mobile devices.\r\n * Specifically, it can't be changed from 1 on iOS.\r\n *\r\n * @return {Boolean}\r\n */\r\nHtml5.canControlVolume = function () {\r\n var volume = Html5.TEST_VID.volume;\r\n Html5.TEST_VID.volume = volume / 2 + 0.1;\r\n return volume !== Html5.TEST_VID.volume;\r\n};\r\n\r\n/*\r\n * Check if playbackRate is supported in this browser/device.\r\n *\r\n * @return {Number} [description]\r\n */\r\nHtml5.canControlPlaybackRate = function () {\r\n var playbackRate = Html5.TEST_VID.playbackRate;\r\n Html5.TEST_VID.playbackRate = playbackRate / 2 + 0.1;\r\n return playbackRate !== Html5.TEST_VID.playbackRate;\r\n};\r\n\r\n/*\r\n * Check to see if native text tracks are supported by this browser/device\r\n *\r\n * @return {Boolean}\r\n */\r\nHtml5.supportsNativeTextTracks = function () {\r\n var supportsTextTracks;\r\n\r\n // Figure out native text track support\r\n // If mode is a number, we cannot change it because it'll disappear from view.\r\n // Browsers with numeric modes include IE10 and older (<=2013) samsung android models.\r\n // Firefox isn't playing nice either with modifying the mode\r\n // TODO: Investigate firefox: https://github.com/videojs/video.js/issues/1862\r\n supportsTextTracks = !!Html5.TEST_VID.textTracks;\r\n if (supportsTextTracks && Html5.TEST_VID.textTracks.length > 0) {\r\n supportsTextTracks = typeof Html5.TEST_VID.textTracks[0]['mode'] !== 'number';\r\n }\r\n if (supportsTextTracks && browser.IS_FIREFOX) {\r\n supportsTextTracks = false;\r\n }\r\n if (supportsTextTracks && !('onremovetrack' in Html5.TEST_VID.textTracks)) {\r\n supportsTextTracks = false;\r\n }\r\n\r\n return supportsTextTracks;\r\n};\r\n\r\n/**\r\n * An array of events available on the Html5 tech.\r\n *\r\n * @private\r\n * @type {Array}\r\n */\r\nHtml5.Events = ['loadstart', 'suspend', 'abort', 'error', 'emptied', 'stalled', 'loadedmetadata', 'loadeddata', 'canplay', 'canplaythrough', 'playing', 'waiting', 'seeking', 'seeked', 'ended', 'durationchange', 'timeupdate', 'progress', 'play', 'pause', 'ratechange', 'volumechange'];\r\n\r\n/*\r\n * Set the tech's volume control support status\r\n *\r\n * @type {Boolean}\r\n */\r\nHtml5.prototype['featuresVolumeControl'] = Html5.canControlVolume();\r\n\r\n/*\r\n * Set the tech's playbackRate support status\r\n *\r\n * @type {Boolean}\r\n */\r\nHtml5.prototype['featuresPlaybackRate'] = Html5.canControlPlaybackRate();\r\n\r\n/*\r\n * Set the tech's status on moving the video element.\r\n * In iOS, if you move a video element in the DOM, it breaks video playback.\r\n *\r\n * @type {Boolean}\r\n */\r\nHtml5.prototype['movingMediaElementInDOM'] = !browser.IS_IOS;\r\n\r\n/*\r\n * Set the the tech's fullscreen resize support status.\r\n * HTML video is able to automatically resize when going to fullscreen.\r\n * (No longer appears to be used. Can probably be removed.)\r\n */\r\nHtml5.prototype['featuresFullscreenResize'] = true;\r\n\r\n/*\r\n * Set the tech's progress event support status\r\n * (this disables the manual progress events of the Tech)\r\n */\r\nHtml5.prototype['featuresProgressEvents'] = true;\r\n\r\n/*\r\n * Sets the tech's status on native text track support\r\n *\r\n * @type {Boolean}\r\n */\r\nHtml5.prototype['featuresNativeTextTracks'] = Html5.supportsNativeTextTracks();\r\n\r\n// HTML5 Feature detection and Device Fixes --------------------------------- //\r\nvar canPlayType = undefined;\r\nvar mpegurlRE = /^application\\/(?:x-|vnd\\.apple\\.)mpegurl/i;\r\nvar mp4RE = /^video\\/mp4/i;\r\n\r\nHtml5.patchCanPlayType = function () {\r\n // Android 4.0 and above can play HLS to some extent but it reports being unable to do so\r\n if (browser.ANDROID_VERSION >= 4.0) {\r\n if (!canPlayType) {\r\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\r\n }\r\n\r\n Html5.TEST_VID.constructor.prototype.canPlayType = function (type) {\r\n if (type && mpegurlRE.test(type)) {\r\n return 'maybe';\r\n }\r\n return canPlayType.call(this, type);\r\n };\r\n }\r\n\r\n // Override Android 2.2 and less canPlayType method which is broken\r\n if (browser.IS_OLD_ANDROID) {\r\n if (!canPlayType) {\r\n canPlayType = Html5.TEST_VID.constructor.prototype.canPlayType;\r\n }\r\n\r\n Html5.TEST_VID.constructor.prototype.canPlayType = function (type) {\r\n if (type && mp4RE.test(type)) {\r\n return 'maybe';\r\n }\r\n return canPlayType.call(this, type);\r\n };\r\n }\r\n};\r\n\r\nHtml5.unpatchCanPlayType = function () {\r\n var r = Html5.TEST_VID.constructor.prototype.canPlayType;\r\n Html5.TEST_VID.constructor.prototype.canPlayType = canPlayType;\r\n canPlayType = null;\r\n return r;\r\n};\r\n\r\n// by default, patch the video element\r\nHtml5.patchCanPlayType();\r\n\r\nHtml5.disposeMediaElement = function (el) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n if (el.parentNode) {\r\n el.parentNode.removeChild(el);\r\n }\r\n\r\n // remove any child track or source nodes to prevent their loading\r\n while (el.hasChildNodes()) {\r\n el.removeChild(el.firstChild);\r\n }\r\n\r\n // remove any src reference. not setting `src=''` because that causes a warning\r\n // in firefox\r\n el.removeAttribute('src');\r\n\r\n // force the media element to update its loading state by calling load()\r\n // however IE on Windows 7N has a bug that throws an error so need a try/catch (#793)\r\n if (typeof el.load === 'function') {\r\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\r\n (function () {\r\n try {\r\n el.load();\r\n } catch (e) {\r\n // not supported\r\n }\r\n })();\r\n }\r\n};\r\n\r\nHtml5.resetMediaElement = function (el) {\r\n if (!el) {\r\n return;\r\n }\r\n\r\n var sources = el.querySelectorAll('source');\r\n var i = sources.length;\r\n while (i--) {\r\n el.removeChild(sources[i]);\r\n }\r\n\r\n // remove any src reference.\r\n // not setting `src=''` because that throws an error\r\n el.removeAttribute('src');\r\n\r\n if (typeof el.load === 'function') {\r\n // wrapping in an iife so it's not deoptimized (#1060#discussion_r10324473)\r\n (function () {\r\n try {\r\n el.load();\r\n } catch (e) {}\r\n })();\r\n }\r\n};\r\n\r\n_component2['default'].registerComponent('Html5', Html5);\r\n_techJs2['default'].registerTech('Html5', Html5);\r\nexports['default'] = Html5;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component\":67,\"../utils/browser.js\":131,\"../utils/dom.js\":134,\"../utils/fn.js\":136,\"../utils/log.js\":139,\"../utils/merge-options.js\":140,\"../utils/url.js\":144,\"./tech.js\":121,\"global/document\":1,\"global/window\":2,\"object.assign\":45}],120:[function(_dereq_,module,exports){\r\n/**\r\n * @file loader.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _componentJs = _dereq_('../component.js');\r\n\r\nvar _componentJs2 = _interopRequireDefault(_componentJs);\r\n\r\nvar _techJs = _dereq_('./tech.js');\r\n\r\nvar _techJs2 = _interopRequireDefault(_techJs);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _utilsToTitleCaseJs = _dereq_('../utils/to-title-case.js');\r\n\r\nvar _utilsToTitleCaseJs2 = _interopRequireDefault(_utilsToTitleCaseJs);\r\n\r\n/**\r\n * The Media Loader is the component that decides which playback technology to load\r\n * when the player is initialized.\r\n *\r\n * @param {Object} player Main Player\r\n * @param {Object=} options Object of option names and values\r\n * @param {Function=} ready Ready callback function\r\n * @extends Component\r\n * @class MediaLoader\r\n */\r\n\r\nvar MediaLoader = (function (_Component) {\r\n _inherits(MediaLoader, _Component);\r\n\r\n function MediaLoader(player, options, ready) {\r\n _classCallCheck(this, MediaLoader);\r\n\r\n _Component.call(this, player, options, ready);\r\n\r\n // If there are no sources when the player is initialized,\r\n // load the first supported playback technology.\r\n\r\n if (!options.playerOptions['sources'] || options.playerOptions['sources'].length === 0) {\r\n for (var i = 0, j = options.playerOptions['techOrder']; i < j.length; i++) {\r\n var techName = _utilsToTitleCaseJs2['default'](j[i]);\r\n var tech = _techJs2['default'].getTech(techName);\r\n // Support old behavior of techs being registered as components.\r\n // Remove once that deprecated behavior is removed.\r\n if (!techName) {\r\n tech = _componentJs2['default'].getComponent(techName);\r\n }\r\n\r\n // Check if the browser supports this technology\r\n if (tech && tech.isSupported()) {\r\n player.loadTech_(techName);\r\n break;\r\n }\r\n }\r\n } else {\r\n // // Loop through playback technologies (HTML5, Flash) and check for support.\r\n // // Then load the best source.\r\n // // A few assumptions here:\r\n // // All playback technologies respect preload false.\r\n player.src(options.playerOptions['sources']);\r\n }\r\n }\r\n\r\n return MediaLoader;\r\n})(_componentJs2['default']);\r\n\r\n_componentJs2['default'].registerComponent('MediaLoader', MediaLoader);\r\nexports['default'] = MediaLoader;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component.js\":67,\"../utils/to-title-case.js\":143,\"./tech.js\":121,\"global/window\":2}],121:[function(_dereq_,module,exports){\r\n/**\r\n * @file tech.js\r\n * Media Technology Controller - Base class for media playback\r\n * technology controllers like Flash and HTML5\r\n */\r\n\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _component = _dereq_('../component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _tracksHtmlTrackElement = _dereq_('../tracks/html-track-element');\r\n\r\nvar _tracksHtmlTrackElement2 = _interopRequireDefault(_tracksHtmlTrackElement);\r\n\r\nvar _tracksHtmlTrackElementList = _dereq_('../tracks/html-track-element-list');\r\n\r\nvar _tracksHtmlTrackElementList2 = _interopRequireDefault(_tracksHtmlTrackElementList);\r\n\r\nvar _utilsMergeOptionsJs = _dereq_('../utils/merge-options.js');\r\n\r\nvar _utilsMergeOptionsJs2 = _interopRequireDefault(_utilsMergeOptionsJs);\r\n\r\nvar _tracksTextTrack = _dereq_('../tracks/text-track');\r\n\r\nvar _tracksTextTrack2 = _interopRequireDefault(_tracksTextTrack);\r\n\r\nvar _tracksTextTrackList = _dereq_('../tracks/text-track-list');\r\n\r\nvar _tracksTextTrackList2 = _interopRequireDefault(_tracksTextTrackList);\r\n\r\nvar _utilsFnJs = _dereq_('../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsLogJs = _dereq_('../utils/log.js');\r\n\r\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\r\n\r\nvar _utilsTimeRangesJs = _dereq_('../utils/time-ranges.js');\r\n\r\nvar _utilsBufferJs = _dereq_('../utils/buffer.js');\r\n\r\nvar _mediaErrorJs = _dereq_('../media-error.js');\r\n\r\nvar _mediaErrorJs2 = _interopRequireDefault(_mediaErrorJs);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\n/**\r\n * Base class for media (HTML5 Video, Flash) controllers\r\n *\r\n * @param {Object=} options Options object\r\n * @param {Function=} ready Ready callback function\r\n * @extends Component\r\n * @class Tech\r\n */\r\n\r\nvar Tech = (function (_Component) {\r\n _inherits(Tech, _Component);\r\n\r\n function Tech() {\r\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\r\n var ready = arguments.length <= 1 || arguments[1] === undefined ? function () {} : arguments[1];\r\n\r\n _classCallCheck(this, Tech);\r\n\r\n // we don't want the tech to report user activity automatically.\r\n // This is done manually in addControlsListeners\r\n options.reportTouchActivity = false;\r\n _Component.call(this, null, options, ready);\r\n\r\n // keep track of whether the current source has played at all to\r\n // implement a very limited played()\r\n this.hasStarted_ = false;\r\n this.on('playing', function () {\r\n this.hasStarted_ = true;\r\n });\r\n this.on('loadstart', function () {\r\n this.hasStarted_ = false;\r\n });\r\n\r\n this.textTracks_ = options.textTracks;\r\n\r\n // Manually track progress in cases where the browser/flash player doesn't report it.\r\n if (!this.featuresProgressEvents) {\r\n this.manualProgressOn();\r\n }\r\n\r\n // Manually track timeupdates in cases where the browser/flash player doesn't report it.\r\n if (!this.featuresTimeupdateEvents) {\r\n this.manualTimeUpdatesOn();\r\n }\r\n\r\n if (options.nativeCaptions === false || options.nativeTextTracks === false) {\r\n this.featuresNativeTextTracks = false;\r\n }\r\n\r\n if (!this.featuresNativeTextTracks) {\r\n this.on('ready', this.emulateTextTracks);\r\n }\r\n\r\n this.initTextTrackListeners();\r\n\r\n // Turn on component tap events\r\n this.emitTapEvents();\r\n }\r\n\r\n /*\r\n * List of associated text tracks\r\n *\r\n * @type {Array}\r\n * @private\r\n */\r\n\r\n /* Fallbacks for unsupported event types\r\n ================================================================================ */\r\n // Manually trigger progress events based on changes to the buffered amount\r\n // Many flash players and older HTML5 browsers don't send progress or progress-like events\r\n /**\r\n * Turn on progress events\r\n *\r\n * @method manualProgressOn\r\n */\r\n\r\n Tech.prototype.manualProgressOn = function manualProgressOn() {\r\n this.on('durationchange', this.onDurationChange);\r\n\r\n this.manualProgress = true;\r\n\r\n // Trigger progress watching when a source begins loading\r\n this.one('ready', this.trackProgress);\r\n };\r\n\r\n /**\r\n * Turn off progress events\r\n *\r\n * @method manualProgressOff\r\n */\r\n\r\n Tech.prototype.manualProgressOff = function manualProgressOff() {\r\n this.manualProgress = false;\r\n this.stopTrackingProgress();\r\n\r\n this.off('durationchange', this.onDurationChange);\r\n };\r\n\r\n /**\r\n * Track progress\r\n *\r\n * @method trackProgress\r\n */\r\n\r\n Tech.prototype.trackProgress = function trackProgress() {\r\n this.stopTrackingProgress();\r\n this.progressInterval = this.setInterval(Fn.bind(this, function () {\r\n // Don't trigger unless buffered amount is greater than last time\r\n\r\n var numBufferedPercent = this.bufferedPercent();\r\n\r\n if (this.bufferedPercent_ !== numBufferedPercent) {\r\n this.trigger('progress');\r\n }\r\n\r\n this.bufferedPercent_ = numBufferedPercent;\r\n\r\n if (numBufferedPercent === 1) {\r\n this.stopTrackingProgress();\r\n }\r\n }), 500);\r\n };\r\n\r\n /**\r\n * Update duration\r\n *\r\n * @method onDurationChange\r\n */\r\n\r\n Tech.prototype.onDurationChange = function onDurationChange() {\r\n this.duration_ = this.duration();\r\n };\r\n\r\n /**\r\n * Create and get TimeRange object for buffering\r\n *\r\n * @return {TimeRangeObject}\r\n * @method buffered\r\n */\r\n\r\n Tech.prototype.buffered = function buffered() {\r\n return _utilsTimeRangesJs.createTimeRange(0, 0);\r\n };\r\n\r\n /**\r\n * Get buffered percent\r\n *\r\n * @return {Number}\r\n * @method bufferedPercent\r\n */\r\n\r\n Tech.prototype.bufferedPercent = function bufferedPercent() {\r\n return _utilsBufferJs.bufferedPercent(this.buffered(), this.duration_);\r\n };\r\n\r\n /**\r\n * Stops tracking progress by clearing progress interval\r\n *\r\n * @method stopTrackingProgress\r\n */\r\n\r\n Tech.prototype.stopTrackingProgress = function stopTrackingProgress() {\r\n this.clearInterval(this.progressInterval);\r\n };\r\n\r\n /*! Time Tracking -------------------------------------------------------------- */\r\n /**\r\n * Set event listeners for on play and pause and tracking current time\r\n *\r\n * @method manualTimeUpdatesOn\r\n */\r\n\r\n Tech.prototype.manualTimeUpdatesOn = function manualTimeUpdatesOn() {\r\n this.manualTimeUpdates = true;\r\n\r\n this.on('play', this.trackCurrentTime);\r\n this.on('pause', this.stopTrackingCurrentTime);\r\n };\r\n\r\n /**\r\n * Remove event listeners for on play and pause and tracking current time\r\n *\r\n * @method manualTimeUpdatesOff\r\n */\r\n\r\n Tech.prototype.manualTimeUpdatesOff = function manualTimeUpdatesOff() {\r\n this.manualTimeUpdates = false;\r\n this.stopTrackingCurrentTime();\r\n this.off('play', this.trackCurrentTime);\r\n this.off('pause', this.stopTrackingCurrentTime);\r\n };\r\n\r\n /**\r\n * Tracks current time\r\n *\r\n * @method trackCurrentTime\r\n */\r\n\r\n Tech.prototype.trackCurrentTime = function trackCurrentTime() {\r\n if (this.currentTimeInterval) {\r\n this.stopTrackingCurrentTime();\r\n }\r\n this.currentTimeInterval = this.setInterval(function () {\r\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\r\n }, 250); // 42 = 24 fps // 250 is what Webkit uses // FF uses 15\r\n };\r\n\r\n /**\r\n * Turn off play progress tracking (when paused or dragging)\r\n *\r\n * @method stopTrackingCurrentTime\r\n */\r\n\r\n Tech.prototype.stopTrackingCurrentTime = function stopTrackingCurrentTime() {\r\n this.clearInterval(this.currentTimeInterval);\r\n\r\n // #1002 - if the video ends right before the next timeupdate would happen,\r\n // the progress bar won't make it all the way to the end\r\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\r\n };\r\n\r\n /**\r\n * Turn off any manual progress or timeupdate tracking\r\n *\r\n * @method dispose\r\n */\r\n\r\n Tech.prototype.dispose = function dispose() {\r\n // clear out text tracks because we can't reuse them between techs\r\n var textTracks = this.textTracks();\r\n\r\n if (textTracks) {\r\n var i = textTracks.length;\r\n while (i--) {\r\n this.removeRemoteTextTrack(textTracks[i]);\r\n }\r\n }\r\n\r\n // Turn off any manual progress or timeupdate tracking\r\n if (this.manualProgress) {\r\n this.manualProgressOff();\r\n }\r\n\r\n if (this.manualTimeUpdates) {\r\n this.manualTimeUpdatesOff();\r\n }\r\n\r\n _Component.prototype.dispose.call(this);\r\n };\r\n\r\n /**\r\n * Reset the tech. Removes all sources and resets readyState.\r\n *\r\n * @method reset\r\n */\r\n\r\n Tech.prototype.reset = function reset() {};\r\n\r\n /**\r\n * When invoked without an argument, returns a MediaError object\r\n * representing the current error state of the player or null if\r\n * there is no error. When invoked with an argument, set the current\r\n * error state of the player.\r\n * @param {MediaError=} err Optional an error object\r\n * @return {MediaError} the current error object or null\r\n * @method error\r\n */\r\n\r\n Tech.prototype.error = function error(err) {\r\n if (err !== undefined) {\r\n if (err instanceof _mediaErrorJs2['default']) {\r\n this.error_ = err;\r\n } else {\r\n this.error_ = new _mediaErrorJs2['default'](err);\r\n }\r\n this.trigger('error');\r\n }\r\n return this.error_;\r\n };\r\n\r\n /**\r\n * Return the time ranges that have been played through for the\r\n * current source. This implementation is incomplete. It does not\r\n * track the played time ranges, only whether the source has played\r\n * at all or not.\r\n * @return {TimeRangeObject} a single time range if this video has\r\n * played or an empty set of ranges if not.\r\n * @method played\r\n */\r\n\r\n Tech.prototype.played = function played() {\r\n if (this.hasStarted_) {\r\n return _utilsTimeRangesJs.createTimeRange(0, 0);\r\n }\r\n return _utilsTimeRangesJs.createTimeRange();\r\n };\r\n\r\n /**\r\n * Set current time\r\n *\r\n * @method setCurrentTime\r\n */\r\n\r\n Tech.prototype.setCurrentTime = function setCurrentTime() {\r\n // improve the accuracy of manual timeupdates\r\n if (this.manualTimeUpdates) {\r\n this.trigger({ type: 'timeupdate', target: this, manuallyTriggered: true });\r\n }\r\n };\r\n\r\n /**\r\n * Initialize texttrack listeners\r\n *\r\n * @method initTextTrackListeners\r\n */\r\n\r\n Tech.prototype.initTextTrackListeners = function initTextTrackListeners() {\r\n var textTrackListChanges = Fn.bind(this, function () {\r\n this.trigger('texttrackchange');\r\n });\r\n\r\n var tracks = this.textTracks();\r\n\r\n if (!tracks) return;\r\n\r\n tracks.addEventListener('removetrack', textTrackListChanges);\r\n tracks.addEventListener('addtrack', textTrackListChanges);\r\n\r\n this.on('dispose', Fn.bind(this, function () {\r\n tracks.removeEventListener('removetrack', textTrackListChanges);\r\n tracks.removeEventListener('addtrack', textTrackListChanges);\r\n }));\r\n };\r\n\r\n /**\r\n * Emulate texttracks\r\n *\r\n * @method emulateTextTracks\r\n */\r\n\r\n Tech.prototype.emulateTextTracks = function emulateTextTracks() {\r\n var _this = this;\r\n\r\n var tracks = this.textTracks();\r\n if (!tracks) {\r\n return;\r\n }\r\n\r\n if (!_globalWindow2['default']['WebVTT'] && this.el().parentNode != null) {\r\n (function () {\r\n var script = _globalDocument2['default'].createElement('script');\r\n script.src = _this.options_['vtt.js'] || 'https://cdn.rawgit.com/gkatsev/vtt.js/vjs-v0.12.1/dist/vtt.min.js';\r\n script.onload = function () {\r\n _this.trigger('vttjsloaded');\r\n };\r\n script.onerror = function () {\r\n _this.trigger('vttjserror');\r\n };\r\n _this.on('dispose', function () {\r\n script.onload = null;\r\n script.onerror = null;\r\n });\r\n _this.el().parentNode.appendChild(script);\r\n _globalWindow2['default']['WebVTT'] = true;\r\n })();\r\n }\r\n\r\n var updateDisplay = function updateDisplay() {\r\n return _this.trigger('texttrackchange');\r\n };\r\n var textTracksChanges = function textTracksChanges() {\r\n updateDisplay();\r\n\r\n for (var i = 0; i < tracks.length; i++) {\r\n var track = tracks[i];\r\n track.removeEventListener('cuechange', updateDisplay);\r\n if (track.mode === 'showing') {\r\n track.addEventListener('cuechange', updateDisplay);\r\n }\r\n }\r\n };\r\n\r\n textTracksChanges();\r\n tracks.addEventListener('change', textTracksChanges);\r\n\r\n this.on('dispose', function () {\r\n tracks.removeEventListener('change', textTracksChanges);\r\n });\r\n };\r\n\r\n /*\r\n * Provide default methods for text tracks.\r\n *\r\n * Html5 tech overrides these.\r\n */\r\n\r\n /**\r\n * Get texttracks\r\n *\r\n * @returns {TextTrackList}\r\n * @method textTracks\r\n */\r\n\r\n Tech.prototype.textTracks = function textTracks() {\r\n this.textTracks_ = this.textTracks_ || new _tracksTextTrackList2['default']();\r\n return this.textTracks_;\r\n };\r\n\r\n /**\r\n * Get remote texttracks\r\n *\r\n * @returns {TextTrackList}\r\n * @method remoteTextTracks\r\n */\r\n\r\n Tech.prototype.remoteTextTracks = function remoteTextTracks() {\r\n this.remoteTextTracks_ = this.remoteTextTracks_ || new _tracksTextTrackList2['default']();\r\n return this.remoteTextTracks_;\r\n };\r\n\r\n /**\r\n * Get remote htmltrackelements\r\n *\r\n * @returns {HTMLTrackElementList}\r\n * @method remoteTextTrackEls\r\n */\r\n\r\n Tech.prototype.remoteTextTrackEls = function remoteTextTrackEls() {\r\n this.remoteTextTrackEls_ = this.remoteTextTrackEls_ || new _tracksHtmlTrackElementList2['default']();\r\n return this.remoteTextTrackEls_;\r\n };\r\n\r\n /**\r\n * Creates and returns a remote text track object\r\n *\r\n * @param {String} kind Text track kind (subtitles, captions, descriptions\r\n * chapters and metadata)\r\n * @param {String=} label Label to identify the text track\r\n * @param {String=} language Two letter language abbreviation\r\n * @return {TextTrackObject}\r\n * @method addTextTrack\r\n */\r\n\r\n Tech.prototype.addTextTrack = function addTextTrack(kind, label, language) {\r\n if (!kind) {\r\n throw new Error('TextTrack kind is required but was not provided');\r\n }\r\n\r\n return createTrackHelper(this, kind, label, language);\r\n };\r\n\r\n /**\r\n * Creates a remote text track object and returns a emulated html track element\r\n *\r\n * @param {Object} options The object should contain values for\r\n * kind, language, label and src (location of the WebVTT file)\r\n * @return {HTMLTrackElement}\r\n * @method addRemoteTextTrack\r\n */\r\n\r\n Tech.prototype.addRemoteTextTrack = function addRemoteTextTrack(options) {\r\n var track = _utilsMergeOptionsJs2['default'](options, {\r\n tech: this\r\n });\r\n\r\n var htmlTrackElement = new _tracksHtmlTrackElement2['default'](track);\r\n\r\n // store HTMLTrackElement and TextTrack to remote list\r\n this.remoteTextTrackEls().addTrackElement_(htmlTrackElement);\r\n this.remoteTextTracks().addTrack_(htmlTrackElement.track);\r\n\r\n // must come after remoteTextTracks()\r\n this.textTracks().addTrack_(htmlTrackElement.track);\r\n\r\n return htmlTrackElement;\r\n };\r\n\r\n /**\r\n * Remove remote texttrack\r\n *\r\n * @param {TextTrackObject} track Texttrack to remove\r\n * @method removeRemoteTextTrack\r\n */\r\n\r\n Tech.prototype.removeRemoteTextTrack = function removeRemoteTextTrack(track) {\r\n this.textTracks().removeTrack_(track);\r\n\r\n var trackElement = this.remoteTextTrackEls().getTrackElementByTrack_(track);\r\n\r\n // remove HTMLTrackElement and TextTrack from remote list\r\n this.remoteTextTrackEls().removeTrackElement_(trackElement);\r\n this.remoteTextTracks().removeTrack_(track);\r\n };\r\n\r\n /**\r\n * Provide a default setPoster method for techs\r\n * Poster support for techs should be optional, so we don't want techs to\r\n * break if they don't have a way to set a poster.\r\n *\r\n * @method setPoster\r\n */\r\n\r\n Tech.prototype.setPoster = function setPoster() {};\r\n\r\n /*\r\n * Check if the tech can support the given type\r\n *\r\n * The base tech does not support any type, but source handlers might\r\n * overwrite this.\r\n *\r\n * @param {String} type The mimetype to check\r\n * @return {String} 'probably', 'maybe', or '' (empty string)\r\n */\r\n\r\n Tech.prototype.canPlayType = function canPlayType() {\r\n return '';\r\n };\r\n\r\n /*\r\n * Return whether the argument is a Tech or not.\r\n * Can be passed either a Class like `Html5` or a instance like `player.tech_`\r\n *\r\n * @param {Object} component An item to check\r\n * @return {Boolean} Whether it is a tech or not\r\n */\r\n\r\n Tech.isTech = function isTech(component) {\r\n return component.prototype instanceof Tech || component instanceof Tech || component === Tech;\r\n };\r\n\r\n /**\r\n * Registers a Tech\r\n *\r\n * @param {String} name Name of the Tech to register\r\n * @param {Object} tech The tech to register\r\n * @static\r\n * @method registerComponent\r\n */\r\n\r\n Tech.registerTech = function registerTech(name, tech) {\r\n if (!Tech.techs_) {\r\n Tech.techs_ = {};\r\n }\r\n\r\n if (!Tech.isTech(tech)) {\r\n throw new Error('Tech ' + name + ' must be a Tech');\r\n }\r\n\r\n Tech.techs_[name] = tech;\r\n return tech;\r\n };\r\n\r\n /**\r\n * Gets a component by name\r\n *\r\n * @param {String} name Name of the component to get\r\n * @return {Component}\r\n * @static\r\n * @method getComponent\r\n */\r\n\r\n Tech.getTech = function getTech(name) {\r\n if (Tech.techs_ && Tech.techs_[name]) {\r\n return Tech.techs_[name];\r\n }\r\n\r\n if (_globalWindow2['default'] && _globalWindow2['default'].videojs && _globalWindow2['default'].videojs[name]) {\r\n _utilsLogJs2['default'].warn('The ' + name + ' tech was added to the videojs object when it should be registered using videojs.registerTech(name, tech)');\r\n return _globalWindow2['default'].videojs[name];\r\n }\r\n };\r\n\r\n return Tech;\r\n})(_component2['default']);\r\n\r\nTech.prototype.textTracks_;\r\n\r\nvar createTrackHelper = function createTrackHelper(self, kind, label, language) {\r\n var options = arguments.length <= 4 || arguments[4] === undefined ? {} : arguments[4];\r\n\r\n var tracks = self.textTracks();\r\n\r\n options.kind = kind;\r\n\r\n if (label) {\r\n options.label = label;\r\n }\r\n if (language) {\r\n options.language = language;\r\n }\r\n options.tech = self;\r\n\r\n var track = new _tracksTextTrack2['default'](options);\r\n tracks.addTrack_(track);\r\n\r\n return track;\r\n};\r\n\r\nTech.prototype.featuresVolumeControl = true;\r\n\r\n// Resizing plugins using request fullscreen reloads the plugin\r\nTech.prototype.featuresFullscreenResize = false;\r\nTech.prototype.featuresPlaybackRate = false;\r\n\r\n// Optional events that we can manually mimic with timers\r\n// currently not triggered by video-js-swf\r\nTech.prototype.featuresProgressEvents = false;\r\nTech.prototype.featuresTimeupdateEvents = false;\r\n\r\nTech.prototype.featuresNativeTextTracks = false;\r\n\r\n/*\r\n * A functional mixin for techs that want to use the Source Handler pattern.\r\n *\r\n * ##### EXAMPLE:\r\n *\r\n * Tech.withSourceHandlers.call(MyTech);\r\n *\r\n */\r\nTech.withSourceHandlers = function (_Tech) {\r\n /*\r\n * Register a source handler\r\n * Source handlers are scripts for handling specific formats.\r\n * The source handler pattern is used for adaptive formats (HLS, DASH) that\r\n * manually load video data and feed it into a Source Buffer (Media Source Extensions)\r\n * @param {Function} handler The source handler\r\n * @param {Boolean} first Register it before any existing handlers\r\n */\r\n _Tech.registerSourceHandler = function (handler, index) {\r\n var handlers = _Tech.sourceHandlers;\r\n\r\n if (!handlers) {\r\n handlers = _Tech.sourceHandlers = [];\r\n }\r\n\r\n if (index === undefined) {\r\n // add to the end of the list\r\n index = handlers.length;\r\n }\r\n\r\n handlers.splice(index, 0, handler);\r\n };\r\n\r\n /*\r\n * Check if the tech can support the given type\r\n * @param {String} type The mimetype to check\r\n * @return {String} 'probably', 'maybe', or '' (empty string)\r\n */\r\n _Tech.canPlayType = function (type) {\r\n var handlers = _Tech.sourceHandlers || [];\r\n var can = undefined;\r\n\r\n for (var i = 0; i < handlers.length; i++) {\r\n can = handlers[i].canPlayType(type);\r\n\r\n if (can) {\r\n return can;\r\n }\r\n }\r\n\r\n return '';\r\n };\r\n\r\n /*\r\n * Return the first source handler that supports the source\r\n * TODO: Answer question: should 'probably' be prioritized over 'maybe'\r\n * @param {Object} source The source object\r\n * @returns {Object} The first source handler that supports the source\r\n * @returns {null} Null if no source handler is found\r\n */\r\n _Tech.selectSourceHandler = function (source) {\r\n var handlers = _Tech.sourceHandlers || [];\r\n var can = undefined;\r\n\r\n for (var i = 0; i < handlers.length; i++) {\r\n can = handlers[i].canHandleSource(source);\r\n\r\n if (can) {\r\n return handlers[i];\r\n }\r\n }\r\n\r\n return null;\r\n };\r\n\r\n /*\r\n * Check if the tech can support the given source\r\n * @param {Object} srcObj The source object\r\n * @return {String} 'probably', 'maybe', or '' (empty string)\r\n */\r\n _Tech.canPlaySource = function (srcObj) {\r\n var sh = _Tech.selectSourceHandler(srcObj);\r\n\r\n if (sh) {\r\n return sh.canHandleSource(srcObj);\r\n }\r\n\r\n return '';\r\n };\r\n\r\n /*\r\n * When using a source handler, prefer its implementation of\r\n * any function normally provided by the tech.\r\n */\r\n var deferrable = ['seekable', 'duration'];\r\n\r\n deferrable.forEach(function (fnName) {\r\n var originalFn = this[fnName];\r\n\r\n if (typeof originalFn !== 'function') {\r\n return;\r\n }\r\n\r\n this[fnName] = function () {\r\n if (this.sourceHandler_ && this.sourceHandler_[fnName]) {\r\n return this.sourceHandler_[fnName].apply(this.sourceHandler_, arguments);\r\n }\r\n return originalFn.apply(this, arguments);\r\n };\r\n }, _Tech.prototype);\r\n\r\n /*\r\n * Create a function for setting the source using a source object\r\n * and source handlers.\r\n * Should never be called unless a source handler was found.\r\n * @param {Object} source A source object with src and type keys\r\n * @return {Tech} self\r\n */\r\n _Tech.prototype.setSource = function (source) {\r\n var sh = _Tech.selectSourceHandler(source);\r\n\r\n if (!sh) {\r\n // Fall back to a native source hander when unsupported sources are\r\n // deliberately set\r\n if (_Tech.nativeSourceHandler) {\r\n sh = _Tech.nativeSourceHandler;\r\n } else {\r\n _utilsLogJs2['default'].error('No source hander found for the current source.');\r\n }\r\n }\r\n\r\n // Dispose any existing source handler\r\n this.disposeSourceHandler();\r\n this.off('dispose', this.disposeSourceHandler);\r\n\r\n this.currentSource_ = source;\r\n this.sourceHandler_ = sh.handleSource(source, this);\r\n this.on('dispose', this.disposeSourceHandler);\r\n\r\n return this;\r\n };\r\n\r\n /*\r\n * Clean up any existing source handler\r\n */\r\n _Tech.prototype.disposeSourceHandler = function () {\r\n if (this.sourceHandler_ && this.sourceHandler_.dispose) {\r\n this.sourceHandler_.dispose();\r\n }\r\n };\r\n};\r\n\r\n_component2['default'].registerComponent('Tech', Tech);\r\n// Old name for Tech\r\n_component2['default'].registerComponent('MediaTechController', Tech);\r\nTech.registerTech('Tech', Tech);\r\nexports['default'] = Tech;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component\":67,\"../media-error.js\":105,\"../tracks/html-track-element\":123,\"../tracks/html-track-element-list\":122,\"../tracks/text-track\":130,\"../tracks/text-track-list\":128,\"../utils/buffer.js\":132,\"../utils/fn.js\":136,\"../utils/log.js\":139,\"../utils/merge-options.js\":140,\"../utils/time-ranges.js\":142,\"global/document\":1,\"global/window\":2}],122:[function(_dereq_,module,exports){\r\n/**\r\n * @file html-track-element-list.js\r\n */\r\n\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\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; } }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\nvar _utilsBrowserJs = _dereq_('../utils/browser.js');\r\n\r\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar HtmlTrackElementList = (function () {\r\n function HtmlTrackElementList() {\r\n var trackElements = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];\r\n\r\n _classCallCheck(this, HtmlTrackElementList);\r\n\r\n var list = this;\r\n\r\n if (browser.IS_IE8) {\r\n list = _globalDocument2['default'].createElement('custom');\r\n\r\n for (var prop in HtmlTrackElementList.prototype) {\r\n if (prop !== 'constructor') {\r\n list[prop] = HtmlTrackElementList.prototype[prop];\r\n }\r\n }\r\n }\r\n\r\n list.trackElements_ = [];\r\n\r\n Object.defineProperty(list, 'length', {\r\n get: function get() {\r\n return this.trackElements_.length;\r\n }\r\n });\r\n\r\n for (var i = 0, _length = trackElements.length; i < _length; i++) {\r\n list.addTrackElement_(trackElements[i]);\r\n }\r\n\r\n if (browser.IS_IE8) {\r\n return list;\r\n }\r\n }\r\n\r\n HtmlTrackElementList.prototype.addTrackElement_ = function addTrackElement_(trackElement) {\r\n this.trackElements_.push(trackElement);\r\n };\r\n\r\n HtmlTrackElementList.prototype.getTrackElementByTrack_ = function getTrackElementByTrack_(track) {\r\n var trackElement_ = undefined;\r\n\r\n for (var i = 0, _length2 = this.trackElements_.length; i < _length2; i++) {\r\n if (track === this.trackElements_[i].track) {\r\n trackElement_ = this.trackElements_[i];\r\n\r\n break;\r\n }\r\n }\r\n\r\n return trackElement_;\r\n };\r\n\r\n HtmlTrackElementList.prototype.removeTrackElement_ = function removeTrackElement_(trackElement) {\r\n for (var i = 0, _length3 = this.trackElements_.length; i < _length3; i++) {\r\n if (trackElement === this.trackElements_[i]) {\r\n this.trackElements_.splice(i, 1);\r\n\r\n break;\r\n }\r\n }\r\n };\r\n\r\n return HtmlTrackElementList;\r\n})();\r\n\r\nexports['default'] = HtmlTrackElementList;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../utils/browser.js\":131,\"global/document\":1}],123:[function(_dereq_,module,exports){\r\n/**\r\n * @file html-track-element.js\r\n */\r\n\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\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; } }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _utilsBrowserJs = _dereq_('../utils/browser.js');\r\n\r\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _eventTarget = _dereq_('../event-target');\r\n\r\nvar _eventTarget2 = _interopRequireDefault(_eventTarget);\r\n\r\nvar _tracksTextTrack = _dereq_('../tracks/text-track');\r\n\r\nvar _tracksTextTrack2 = _interopRequireDefault(_tracksTextTrack);\r\n\r\nvar NONE = 0;\r\nvar LOADING = 1;\r\nvar LOADED = 2;\r\nvar ERROR = 3;\r\n\r\n/**\r\n * https://html.spec.whatwg.org/multipage/embedded-content.html#htmltrackelement\r\n *\r\n * interface HTMLTrackElement : HTMLElement {\r\n * attribute DOMString kind;\r\n * attribute DOMString src;\r\n * attribute DOMString srclang;\r\n * attribute DOMString label;\r\n * attribute boolean default;\r\n *\r\n * const unsigned short NONE = 0;\r\n * const unsigned short LOADING = 1;\r\n * const unsigned short LOADED = 2;\r\n * const unsigned short ERROR = 3;\r\n * readonly attribute unsigned short readyState;\r\n *\r\n * readonly attribute TextTrack track;\r\n * };\r\n *\r\n * @param {Object} options TextTrack configuration\r\n * @class HTMLTrackElement\r\n */\r\n\r\nvar HTMLTrackElement = (function (_EventTarget) {\r\n _inherits(HTMLTrackElement, _EventTarget);\r\n\r\n function HTMLTrackElement() {\r\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\r\n\r\n _classCallCheck(this, HTMLTrackElement);\r\n\r\n _EventTarget.call(this);\r\n\r\n var readyState = undefined,\r\n trackElement = this;\r\n\r\n if (browser.IS_IE8) {\r\n trackElement = _globalDocument2['default'].createElement('custom');\r\n\r\n for (var prop in HTMLTrackElement.prototype) {\r\n if (prop !== 'constructor') {\r\n trackElement[prop] = HTMLTrackElement.prototype[prop];\r\n }\r\n }\r\n }\r\n\r\n var track = new _tracksTextTrack2['default'](options);\r\n\r\n trackElement.kind = track.kind;\r\n trackElement.src = track.src;\r\n trackElement.srclang = track.language;\r\n trackElement.label = track.label;\r\n trackElement['default'] = track['default'];\r\n\r\n Object.defineProperty(trackElement, 'readyState', {\r\n get: function get() {\r\n return readyState;\r\n }\r\n });\r\n\r\n Object.defineProperty(trackElement, 'track', {\r\n get: function get() {\r\n return track;\r\n }\r\n });\r\n\r\n readyState = NONE;\r\n\r\n track.addEventListener('loadeddata', function () {\r\n readyState = LOADED;\r\n\r\n trackElement.trigger({\r\n type: 'load',\r\n target: trackElement\r\n });\r\n });\r\n\r\n if (browser.IS_IE8) {\r\n return trackElement;\r\n }\r\n }\r\n\r\n return HTMLTrackElement;\r\n})(_eventTarget2['default']);\r\n\r\nHTMLTrackElement.prototype.allowedEvents_ = {\r\n load: 'load'\r\n};\r\n\r\nHTMLTrackElement.NONE = NONE;\r\nHTMLTrackElement.LOADING = LOADING;\r\nHTMLTrackElement.LOADED = LOADED;\r\nHTMLTrackElement.ERROR = ERROR;\r\n\r\nexports['default'] = HTMLTrackElement;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../event-target\":101,\"../tracks/text-track\":130,\"../utils/browser.js\":131,\"global/document\":1}],124:[function(_dereq_,module,exports){\r\n/**\r\n * @file text-track-cue-list.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\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; } }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\nvar _utilsBrowserJs = _dereq_('../utils/browser.js');\r\n\r\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\n/**\r\n * A List of text track cues as defined in:\r\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackcuelist\r\n *\r\n * interface TextTrackCueList {\r\n * readonly attribute unsigned long length;\r\n * getter TextTrackCue (unsigned long index);\r\n * TextTrackCue? getCueById(DOMString id);\r\n * };\r\n *\r\n * @param {Array} cues A list of cues to be initialized with\r\n * @class TextTrackCueList\r\n */\r\n\r\nvar TextTrackCueList = (function () {\r\n function TextTrackCueList(cues) {\r\n _classCallCheck(this, TextTrackCueList);\r\n\r\n var list = this;\r\n\r\n if (browser.IS_IE8) {\r\n list = _globalDocument2['default'].createElement('custom');\r\n\r\n for (var prop in TextTrackCueList.prototype) {\r\n if (prop !== 'constructor') {\r\n list[prop] = TextTrackCueList.prototype[prop];\r\n }\r\n }\r\n }\r\n\r\n TextTrackCueList.prototype.setCues_.call(list, cues);\r\n\r\n Object.defineProperty(list, 'length', {\r\n get: function get() {\r\n return this.length_;\r\n }\r\n });\r\n\r\n if (browser.IS_IE8) {\r\n return list;\r\n }\r\n }\r\n\r\n /**\r\n * A setter for cues in this list\r\n *\r\n * @param {Array} cues an array of cues\r\n * @method setCues_\r\n * @private\r\n */\r\n\r\n TextTrackCueList.prototype.setCues_ = function setCues_(cues) {\r\n var oldLength = this.length || 0;\r\n var i = 0;\r\n var l = cues.length;\r\n\r\n this.cues_ = cues;\r\n this.length_ = cues.length;\r\n\r\n var defineProp = function defineProp(index) {\r\n if (!('' + index in this)) {\r\n Object.defineProperty(this, '' + index, {\r\n get: function get() {\r\n return this.cues_[index];\r\n }\r\n });\r\n }\r\n };\r\n\r\n if (oldLength < l) {\r\n i = oldLength;\r\n\r\n for (; i < l; i++) {\r\n defineProp.call(this, i);\r\n }\r\n }\r\n };\r\n\r\n /**\r\n * Get a cue that is currently in the Cue list by id\r\n *\r\n * @param {String} id\r\n * @method getCueById\r\n * @return {Object} a single cue\r\n */\r\n\r\n TextTrackCueList.prototype.getCueById = function getCueById(id) {\r\n var result = null;\r\n\r\n for (var i = 0, l = this.length; i < l; i++) {\r\n var cue = this[i];\r\n\r\n if (cue.id === id) {\r\n result = cue;\r\n break;\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n return TextTrackCueList;\r\n})();\r\n\r\nexports['default'] = TextTrackCueList;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../utils/browser.js\":131,\"global/document\":1}],125:[function(_dereq_,module,exports){\r\n/**\r\n * @file text-track-display.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _component = _dereq_('../component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _menuMenuJs = _dereq_('../menu/menu.js');\r\n\r\nvar _menuMenuJs2 = _interopRequireDefault(_menuMenuJs);\r\n\r\nvar _menuMenuItemJs = _dereq_('../menu/menu-item.js');\r\n\r\nvar _menuMenuItemJs2 = _interopRequireDefault(_menuMenuItemJs);\r\n\r\nvar _menuMenuButtonJs = _dereq_('../menu/menu-button.js');\r\n\r\nvar _menuMenuButtonJs2 = _interopRequireDefault(_menuMenuButtonJs);\r\n\r\nvar _utilsFnJs = _dereq_('../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar darkGray = '#222';\r\nvar lightGray = '#ccc';\r\nvar fontMap = {\r\n monospace: 'monospace',\r\n sansSerif: 'sans-serif',\r\n serif: 'serif',\r\n monospaceSansSerif: '\"Andale Mono\", \"Lucida Console\", monospace',\r\n monospaceSerif: '\"Courier New\", monospace',\r\n proportionalSansSerif: 'sans-serif',\r\n proportionalSerif: 'serif',\r\n casual: '\"Comic Sans MS\", Impact, fantasy',\r\n script: '\"Monotype Corsiva\", cursive',\r\n smallcaps: '\"Andale Mono\", \"Lucida Console\", monospace, sans-serif'\r\n};\r\n\r\n/**\r\n * The component for displaying text track cues\r\n *\r\n * @param {Object} player Main Player\r\n * @param {Object=} options Object of option names and values\r\n * @param {Function=} ready Ready callback function\r\n * @extends Component\r\n * @class TextTrackDisplay\r\n */\r\n\r\nvar TextTrackDisplay = (function (_Component) {\r\n _inherits(TextTrackDisplay, _Component);\r\n\r\n function TextTrackDisplay(player, options, ready) {\r\n _classCallCheck(this, TextTrackDisplay);\r\n\r\n _Component.call(this, player, options, ready);\r\n\r\n player.on('loadstart', Fn.bind(this, this.toggleDisplay));\r\n player.on('texttrackchange', Fn.bind(this, this.updateDisplay));\r\n\r\n // This used to be called during player init, but was causing an error\r\n // if a track should show by default and the display hadn't loaded yet.\r\n // Should probably be moved to an external track loader when we support\r\n // tracks that don't need a display.\r\n player.ready(Fn.bind(this, function () {\r\n if (player.tech_ && player.tech_['featuresNativeTextTracks']) {\r\n this.hide();\r\n return;\r\n }\r\n\r\n player.on('fullscreenchange', Fn.bind(this, this.updateDisplay));\r\n\r\n var tracks = this.options_.playerOptions['tracks'] || [];\r\n for (var i = 0; i < tracks.length; i++) {\r\n var track = tracks[i];\r\n this.player_.addRemoteTextTrack(track);\r\n }\r\n }));\r\n }\r\n\r\n /**\r\n * Add cue HTML to display\r\n *\r\n * @param {Number} color Hex number for color, like #f0e\r\n * @param {Number} opacity Value for opacity,0.0 - 1.0\r\n * @return {RGBAColor} In the form 'rgba(255, 0, 0, 0.3)'\r\n * @method constructColor\r\n */\r\n\r\n /**\r\n * Toggle display texttracks\r\n *\r\n * @method toggleDisplay\r\n */\r\n\r\n TextTrackDisplay.prototype.toggleDisplay = function toggleDisplay() {\r\n if (this.player_.tech_ && this.player_.tech_['featuresNativeTextTracks']) {\r\n this.hide();\r\n } else {\r\n this.show();\r\n }\r\n };\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n TextTrackDisplay.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-text-track-display'\r\n }, {\r\n 'aria-live': 'assertive',\r\n 'aria-atomic': 'true'\r\n });\r\n };\r\n\r\n /**\r\n * Clear display texttracks\r\n *\r\n * @method clearDisplay\r\n */\r\n\r\n TextTrackDisplay.prototype.clearDisplay = function clearDisplay() {\r\n if (typeof _globalWindow2['default']['WebVTT'] === 'function') {\r\n _globalWindow2['default']['WebVTT']['processCues'](_globalWindow2['default'], [], this.el_);\r\n }\r\n };\r\n\r\n /**\r\n * Update display texttracks\r\n *\r\n * @method updateDisplay\r\n */\r\n\r\n TextTrackDisplay.prototype.updateDisplay = function updateDisplay() {\r\n var tracks = this.player_.textTracks();\r\n\r\n this.clearDisplay();\r\n\r\n if (!tracks) {\r\n return;\r\n }\r\n\r\n // Track display prioritization model: if multiple tracks are 'showing',\r\n // display the first 'subtitles' or 'captions' track which is 'showing',\r\n // otherwise display the first 'descriptions' track which is 'showing'\r\n\r\n var descriptionsTrack = null;\r\n var captionsSubtitlesTrack = null;\r\n\r\n var i = tracks.length;\r\n while (i--) {\r\n var track = tracks[i];\r\n if (track['mode'] === 'showing') {\r\n if (track['kind'] === 'descriptions') {\r\n descriptionsTrack = track;\r\n } else {\r\n captionsSubtitlesTrack = track;\r\n }\r\n }\r\n }\r\n\r\n if (captionsSubtitlesTrack) {\r\n this.updateForTrack(captionsSubtitlesTrack);\r\n } else if (descriptionsTrack) {\r\n this.updateForTrack(descriptionsTrack);\r\n }\r\n };\r\n\r\n /**\r\n * Add texttrack to texttrack list\r\n *\r\n * @param {TextTrackObject} track Texttrack object to be added to list\r\n * @method updateForTrack\r\n */\r\n\r\n TextTrackDisplay.prototype.updateForTrack = function updateForTrack(track) {\r\n if (typeof _globalWindow2['default']['WebVTT'] !== 'function' || !track['activeCues']) {\r\n return;\r\n }\r\n\r\n var overrides = this.player_['textTrackSettings'].getValues();\r\n\r\n var cues = [];\r\n for (var _i = 0; _i < track['activeCues'].length; _i++) {\r\n cues.push(track['activeCues'][_i]);\r\n }\r\n\r\n _globalWindow2['default']['WebVTT']['processCues'](_globalWindow2['default'], cues, this.el_);\r\n\r\n var i = cues.length;\r\n while (i--) {\r\n var cue = cues[i];\r\n if (!cue) {\r\n continue;\r\n }\r\n\r\n var cueDiv = cue.displayState;\r\n if (overrides.color) {\r\n cueDiv.firstChild.style.color = overrides.color;\r\n }\r\n if (overrides.textOpacity) {\r\n tryUpdateStyle(cueDiv.firstChild, 'color', constructColor(overrides.color || '#fff', overrides.textOpacity));\r\n }\r\n if (overrides.backgroundColor) {\r\n cueDiv.firstChild.style.backgroundColor = overrides.backgroundColor;\r\n }\r\n if (overrides.backgroundOpacity) {\r\n tryUpdateStyle(cueDiv.firstChild, 'backgroundColor', constructColor(overrides.backgroundColor || '#000', overrides.backgroundOpacity));\r\n }\r\n if (overrides.windowColor) {\r\n if (overrides.windowOpacity) {\r\n tryUpdateStyle(cueDiv, 'backgroundColor', constructColor(overrides.windowColor, overrides.windowOpacity));\r\n } else {\r\n cueDiv.style.backgroundColor = overrides.windowColor;\r\n }\r\n }\r\n if (overrides.edgeStyle) {\r\n if (overrides.edgeStyle === 'dropshadow') {\r\n cueDiv.firstChild.style.textShadow = '2px 2px 3px ' + darkGray + ', 2px 2px 4px ' + darkGray + ', 2px 2px 5px ' + darkGray;\r\n } else if (overrides.edgeStyle === 'raised') {\r\n cueDiv.firstChild.style.textShadow = '1px 1px ' + darkGray + ', 2px 2px ' + darkGray + ', 3px 3px ' + darkGray;\r\n } else if (overrides.edgeStyle === 'depressed') {\r\n cueDiv.firstChild.style.textShadow = '1px 1px ' + lightGray + ', 0 1px ' + lightGray + ', -1px -1px ' + darkGray + ', 0 -1px ' + darkGray;\r\n } else if (overrides.edgeStyle === 'uniform') {\r\n cueDiv.firstChild.style.textShadow = '0 0 4px ' + darkGray + ', 0 0 4px ' + darkGray + ', 0 0 4px ' + darkGray + ', 0 0 4px ' + darkGray;\r\n }\r\n }\r\n if (overrides.fontPercent && overrides.fontPercent !== 1) {\r\n var fontSize = _globalWindow2['default'].parseFloat(cueDiv.style.fontSize);\r\n cueDiv.style.fontSize = fontSize * overrides.fontPercent + 'px';\r\n cueDiv.style.height = 'auto';\r\n cueDiv.style.top = 'auto';\r\n cueDiv.style.bottom = '2px';\r\n }\r\n if (overrides.fontFamily && overrides.fontFamily !== 'default') {\r\n if (overrides.fontFamily === 'small-caps') {\r\n cueDiv.firstChild.style.fontVariant = 'small-caps';\r\n } else {\r\n cueDiv.firstChild.style.fontFamily = fontMap[overrides.fontFamily];\r\n }\r\n }\r\n }\r\n };\r\n\r\n return TextTrackDisplay;\r\n})(_component2['default']);\r\n\r\nfunction constructColor(color, opacity) {\r\n return 'rgba(' +\r\n // color looks like \"#f0e\"\r\n parseInt(color[1] + color[1], 16) + ',' + parseInt(color[2] + color[2], 16) + ',' + parseInt(color[3] + color[3], 16) + ',' + opacity + ')';\r\n}\r\n\r\n/**\r\n * Try to update style\r\n * Some style changes will throw an error, particularly in IE8. Those should be noops.\r\n *\r\n * @param {Element} el The element to be styles\r\n * @param {CSSProperty} style The CSS property to be styled\r\n * @param {CSSStyle} rule The actual style to be applied to the property\r\n * @method tryUpdateStyle\r\n */\r\nfunction tryUpdateStyle(el, style, rule) {\r\n //\r\n try {\r\n el.style[style] = rule;\r\n } catch (e) {}\r\n}\r\n\r\n_component2['default'].registerComponent('TextTrackDisplay', TextTrackDisplay);\r\nexports['default'] = TextTrackDisplay;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component\":67,\"../menu/menu-button.js\":106,\"../menu/menu-item.js\":107,\"../menu/menu.js\":108,\"../utils/fn.js\":136,\"global/document\":1,\"global/window\":2}],126:[function(_dereq_,module,exports){\r\n/**\r\n * @file text-track-enums.js\r\n */\r\n\r\n/**\r\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackmode\r\n *\r\n * enum TextTrackMode { \"disabled\", \"hidden\", \"showing\" };\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\nvar TextTrackMode = {\r\n disabled: 'disabled',\r\n hidden: 'hidden',\r\n showing: 'showing'\r\n};\r\n\r\n/**\r\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrackkind\r\n *\r\n * enum TextTrackKind {\r\n * \"subtitles\",\r\n * \"captions\",\r\n * \"descriptions\",\r\n * \"chapters\",\r\n * \"metadata\"\r\n * };\r\n */\r\nvar TextTrackKind = {\r\n subtitles: 'subtitles',\r\n captions: 'captions',\r\n descriptions: 'descriptions',\r\n chapters: 'chapters',\r\n metadata: 'metadata'\r\n};\r\n\r\n/* jshint ignore:start */\r\n// we ignore jshint here because it does not see\r\n// TextTrackMode or TextTrackKind as defined here somehow...\r\nexports.TextTrackMode = TextTrackMode;\r\nexports.TextTrackKind = TextTrackKind;\r\n\r\n/* jshint ignore:end */\r\n\r\n},{}],127:[function(_dereq_,module,exports){\r\n/**\r\n * Utilities for capturing text track state and re-creating tracks\r\n * based on a capture.\r\n *\r\n * @file text-track-list-converter.js\r\n */\r\n\r\n/**\r\n * Examine a single text track and return a JSON-compatible javascript\r\n * object that represents the text track's state.\r\n * @param track {TextTrackObject} the text track to query\r\n * @return {Object} a serializable javascript representation of the\r\n * @private\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\nvar trackToJson_ = function trackToJson_(track) {\r\n var ret = ['kind', 'label', 'language', 'id', 'inBandMetadataTrackDispatchType', 'mode', 'src'].reduce(function (acc, prop, i) {\r\n if (track[prop]) {\r\n acc[prop] = track[prop];\r\n }\r\n\r\n return acc;\r\n }, {\r\n cues: track.cues && Array.prototype.map.call(track.cues, function (cue) {\r\n return {\r\n startTime: cue.startTime,\r\n endTime: cue.endTime,\r\n text: cue.text,\r\n id: cue.id\r\n };\r\n })\r\n });\r\n\r\n return ret;\r\n};\r\n\r\n/**\r\n * Examine a tech and return a JSON-compatible javascript array that\r\n * represents the state of all text tracks currently configured. The\r\n * return array is compatible with `jsonToTextTracks`.\r\n * @param tech {tech} the tech object to query\r\n * @return {Array} a serializable javascript representation of the\r\n * @function textTracksToJson\r\n */\r\nvar textTracksToJson = function textTracksToJson(tech) {\r\n\r\n var trackEls = tech.$$('track');\r\n\r\n var trackObjs = Array.prototype.map.call(trackEls, function (t) {\r\n return t.track;\r\n });\r\n var tracks = Array.prototype.map.call(trackEls, function (trackEl) {\r\n var json = trackToJson_(trackEl.track);\r\n if (trackEl.src) {\r\n json.src = trackEl.src;\r\n }\r\n return json;\r\n });\r\n\r\n return tracks.concat(Array.prototype.filter.call(tech.textTracks(), function (track) {\r\n return trackObjs.indexOf(track) === -1;\r\n }).map(trackToJson_));\r\n};\r\n\r\n/**\r\n * Creates a set of remote text tracks on a tech based on an array of\r\n * javascript text track representations.\r\n * @param json {Array} an array of text track representation objects,\r\n * like those that would be produced by `textTracksToJson`\r\n * @param tech {tech} the tech to create text tracks on\r\n * @function jsonToTextTracks\r\n */\r\nvar jsonToTextTracks = function jsonToTextTracks(json, tech) {\r\n json.forEach(function (track) {\r\n var addedTrack = tech.addRemoteTextTrack(track).track;\r\n if (!track.src && track.cues) {\r\n track.cues.forEach(function (cue) {\r\n return addedTrack.addCue(cue);\r\n });\r\n }\r\n });\r\n\r\n return tech.textTracks();\r\n};\r\n\r\nexports['default'] = { textTracksToJson: textTracksToJson, jsonToTextTracks: jsonToTextTracks, trackToJson_: trackToJson_ };\r\nmodule.exports = exports['default'];\r\n\r\n},{}],128:[function(_dereq_,module,exports){\r\n/**\r\n * @file text-track-list.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _eventTarget = _dereq_('../event-target');\r\n\r\nvar _eventTarget2 = _interopRequireDefault(_eventTarget);\r\n\r\nvar _utilsFnJs = _dereq_('../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsBrowserJs = _dereq_('../utils/browser.js');\r\n\r\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\n/**\r\n * A text track list as defined in:\r\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttracklist\r\n *\r\n * interface TextTrackList : EventTarget {\r\n * readonly attribute unsigned long length;\r\n * getter TextTrack (unsigned long index);\r\n * TextTrack? getTrackById(DOMString id);\r\n *\r\n * attribute EventHandler onchange;\r\n * attribute EventHandler onaddtrack;\r\n * attribute EventHandler onremovetrack;\r\n * };\r\n *\r\n * @param {Track[]} tracks A list of tracks to initialize the list with\r\n * @extends EventTarget\r\n * @class TextTrackList\r\n */\r\n\r\nvar TextTrackList = (function (_EventTarget) {\r\n _inherits(TextTrackList, _EventTarget);\r\n\r\n function TextTrackList() {\r\n var tracks = arguments.length <= 0 || arguments[0] === undefined ? [] : arguments[0];\r\n\r\n _classCallCheck(this, TextTrackList);\r\n\r\n _EventTarget.call(this);\r\n var list = this;\r\n\r\n if (browser.IS_IE8) {\r\n list = _globalDocument2['default'].createElement('custom');\r\n\r\n for (var prop in TextTrackList.prototype) {\r\n if (prop !== 'constructor') {\r\n list[prop] = TextTrackList.prototype[prop];\r\n }\r\n }\r\n }\r\n\r\n list.tracks_ = [];\r\n\r\n Object.defineProperty(list, 'length', {\r\n get: function get() {\r\n return this.tracks_.length;\r\n }\r\n });\r\n\r\n for (var i = 0; i < tracks.length; i++) {\r\n list.addTrack_(tracks[i]);\r\n }\r\n\r\n if (browser.IS_IE8) {\r\n return list;\r\n }\r\n }\r\n\r\n /**\r\n * change - One or more tracks in the track list have been enabled or disabled.\r\n * addtrack - A track has been added to the track list.\r\n * removetrack - A track has been removed from the track list.\r\n */\r\n\r\n /**\r\n * Add TextTrack from TextTrackList\r\n *\r\n * @param {TextTrack} track\r\n * @method addTrack_\r\n * @private\r\n */\r\n\r\n TextTrackList.prototype.addTrack_ = function addTrack_(track) {\r\n var index = this.tracks_.length;\r\n\r\n if (!('' + index in this)) {\r\n Object.defineProperty(this, index, {\r\n get: function get() {\r\n return this.tracks_[index];\r\n }\r\n });\r\n }\r\n\r\n track.addEventListener('modechange', Fn.bind(this, function () {\r\n this.trigger('change');\r\n }));\r\n\r\n // Do not add duplicate tracks\r\n if (this.tracks_.indexOf(track) === -1) {\r\n this.tracks_.push(track);\r\n this.trigger({\r\n track: track,\r\n type: 'addtrack'\r\n });\r\n }\r\n };\r\n\r\n /**\r\n * Remove TextTrack from TextTrackList\r\n * NOTE: Be mindful of what is passed in as it may be a HTMLTrackElement\r\n *\r\n * @param {TextTrack} rtrack\r\n * @method removeTrack_\r\n * @private\r\n */\r\n\r\n TextTrackList.prototype.removeTrack_ = function removeTrack_(rtrack) {\r\n var track = undefined;\r\n\r\n for (var i = 0, l = this.length; i < l; i++) {\r\n if (this[i] === rtrack) {\r\n track = this[i];\r\n if (track.off) {\r\n track.off();\r\n }\r\n\r\n this.tracks_.splice(i, 1);\r\n\r\n break;\r\n }\r\n }\r\n\r\n if (!track) {\r\n return;\r\n }\r\n\r\n this.trigger({\r\n track: track,\r\n type: 'removetrack'\r\n });\r\n };\r\n\r\n /**\r\n * Get a TextTrack from TextTrackList by a tracks id\r\n *\r\n * @param {String} id - the id of the track to get\r\n * @method getTrackById\r\n * @return {TextTrack}\r\n * @private\r\n */\r\n\r\n TextTrackList.prototype.getTrackById = function getTrackById(id) {\r\n var result = null;\r\n\r\n for (var i = 0, l = this.length; i < l; i++) {\r\n var track = this[i];\r\n\r\n if (track.id === id) {\r\n result = track;\r\n break;\r\n }\r\n }\r\n\r\n return result;\r\n };\r\n\r\n return TextTrackList;\r\n})(_eventTarget2['default']);\r\n\r\nTextTrackList.prototype.allowedEvents_ = {\r\n change: 'change',\r\n addtrack: 'addtrack',\r\n removetrack: 'removetrack'\r\n};\r\n\r\n// emulate attribute EventHandler support to allow for feature detection\r\nfor (var _event in TextTrackList.prototype.allowedEvents_) {\r\n TextTrackList.prototype['on' + _event] = null;\r\n}\r\n\r\nexports['default'] = TextTrackList;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../event-target\":101,\"../utils/browser.js\":131,\"../utils/fn.js\":136,\"global/document\":1}],129:[function(_dereq_,module,exports){\r\n/**\r\n * @file text-track-settings.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _component = _dereq_('../component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _utilsEventsJs = _dereq_('../utils/events.js');\r\n\r\nvar Events = _interopRequireWildcard(_utilsEventsJs);\r\n\r\nvar _utilsFnJs = _dereq_('../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsLogJs = _dereq_('../utils/log.js');\r\n\r\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\r\n\r\nvar _safeJsonParseTuple = _dereq_('safe-json-parse/tuple');\r\n\r\nvar _safeJsonParseTuple2 = _interopRequireDefault(_safeJsonParseTuple);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\n/**\r\n * Manipulate settings of texttracks\r\n *\r\n * @param {Object} player Main Player\r\n * @param {Object=} options Object of option names and values\r\n * @extends Component\r\n * @class TextTrackSettings\r\n */\r\n\r\nvar TextTrackSettings = (function (_Component) {\r\n _inherits(TextTrackSettings, _Component);\r\n\r\n function TextTrackSettings(player, options) {\r\n _classCallCheck(this, TextTrackSettings);\r\n\r\n _Component.call(this, player, options);\r\n this.hide();\r\n\r\n // Grab `persistTextTrackSettings` from the player options if not passed in child options\r\n if (options.persistTextTrackSettings === undefined) {\r\n this.options_.persistTextTrackSettings = this.options_.playerOptions.persistTextTrackSettings;\r\n }\r\n\r\n Events.on(this.$('.vjs-done-button'), 'click', Fn.bind(this, function () {\r\n this.saveSettings();\r\n this.hide();\r\n }));\r\n\r\n Events.on(this.$('.vjs-default-button'), 'click', Fn.bind(this, function () {\r\n this.$('.vjs-fg-color > select').selectedIndex = 0;\r\n this.$('.vjs-bg-color > select').selectedIndex = 0;\r\n this.$('.window-color > select').selectedIndex = 0;\r\n this.$('.vjs-text-opacity > select').selectedIndex = 0;\r\n this.$('.vjs-bg-opacity > select').selectedIndex = 0;\r\n this.$('.vjs-window-opacity > select').selectedIndex = 0;\r\n this.$('.vjs-edge-style select').selectedIndex = 0;\r\n this.$('.vjs-font-family select').selectedIndex = 0;\r\n this.$('.vjs-font-percent select').selectedIndex = 2;\r\n this.updateDisplay();\r\n }));\r\n\r\n Events.on(this.$('.vjs-fg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\r\n Events.on(this.$('.vjs-bg-color > select'), 'change', Fn.bind(this, this.updateDisplay));\r\n Events.on(this.$('.window-color > select'), 'change', Fn.bind(this, this.updateDisplay));\r\n Events.on(this.$('.vjs-text-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\r\n Events.on(this.$('.vjs-bg-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\r\n Events.on(this.$('.vjs-window-opacity > select'), 'change', Fn.bind(this, this.updateDisplay));\r\n Events.on(this.$('.vjs-font-percent select'), 'change', Fn.bind(this, this.updateDisplay));\r\n Events.on(this.$('.vjs-edge-style select'), 'change', Fn.bind(this, this.updateDisplay));\r\n Events.on(this.$('.vjs-font-family select'), 'change', Fn.bind(this, this.updateDisplay));\r\n\r\n if (this.options_.persistTextTrackSettings) {\r\n this.restoreSettings();\r\n }\r\n }\r\n\r\n /**\r\n * Create the component's DOM element\r\n *\r\n * @return {Element}\r\n * @method createEl\r\n */\r\n\r\n TextTrackSettings.prototype.createEl = function createEl() {\r\n return _Component.prototype.createEl.call(this, 'div', {\r\n className: 'vjs-caption-settings vjs-modal-overlay',\r\n innerHTML: captionOptionsMenuTemplate()\r\n });\r\n };\r\n\r\n /**\r\n * Get texttrack settings\r\n * Settings are\r\n * .vjs-edge-style\r\n * .vjs-font-family\r\n * .vjs-fg-color\r\n * .vjs-text-opacity\r\n * .vjs-bg-color\r\n * .vjs-bg-opacity\r\n * .window-color\r\n * .vjs-window-opacity\r\n *\r\n * @return {Object}\r\n * @method getValues\r\n */\r\n\r\n TextTrackSettings.prototype.getValues = function getValues() {\r\n var textEdge = getSelectedOptionValue(this.$('.vjs-edge-style select'));\r\n var fontFamily = getSelectedOptionValue(this.$('.vjs-font-family select'));\r\n var fgColor = getSelectedOptionValue(this.$('.vjs-fg-color > select'));\r\n var textOpacity = getSelectedOptionValue(this.$('.vjs-text-opacity > select'));\r\n var bgColor = getSelectedOptionValue(this.$('.vjs-bg-color > select'));\r\n var bgOpacity = getSelectedOptionValue(this.$('.vjs-bg-opacity > select'));\r\n var windowColor = getSelectedOptionValue(this.$('.window-color > select'));\r\n var windowOpacity = getSelectedOptionValue(this.$('.vjs-window-opacity > select'));\r\n var fontPercent = _globalWindow2['default']['parseFloat'](getSelectedOptionValue(this.$('.vjs-font-percent > select')));\r\n\r\n var result = {\r\n 'backgroundOpacity': bgOpacity,\r\n 'textOpacity': textOpacity,\r\n 'windowOpacity': windowOpacity,\r\n 'edgeStyle': textEdge,\r\n 'fontFamily': fontFamily,\r\n 'color': fgColor,\r\n 'backgroundColor': bgColor,\r\n 'windowColor': windowColor,\r\n 'fontPercent': fontPercent\r\n };\r\n for (var _name in result) {\r\n if (result[_name] === '' || result[_name] === 'none' || _name === 'fontPercent' && result[_name] === 1.00) {\r\n delete result[_name];\r\n }\r\n }\r\n return result;\r\n };\r\n\r\n /**\r\n * Set texttrack settings\r\n * Settings are\r\n * .vjs-edge-style\r\n * .vjs-font-family\r\n * .vjs-fg-color\r\n * .vjs-text-opacity\r\n * .vjs-bg-color\r\n * .vjs-bg-opacity\r\n * .window-color\r\n * .vjs-window-opacity\r\n *\r\n * @param {Object} values Object with texttrack setting values\r\n * @method setValues\r\n */\r\n\r\n TextTrackSettings.prototype.setValues = function setValues(values) {\r\n setSelectedOption(this.$('.vjs-edge-style select'), values.edgeStyle);\r\n setSelectedOption(this.$('.vjs-font-family select'), values.fontFamily);\r\n setSelectedOption(this.$('.vjs-fg-color > select'), values.color);\r\n setSelectedOption(this.$('.vjs-text-opacity > select'), values.textOpacity);\r\n setSelectedOption(this.$('.vjs-bg-color > select'), values.backgroundColor);\r\n setSelectedOption(this.$('.vjs-bg-opacity > select'), values.backgroundOpacity);\r\n setSelectedOption(this.$('.window-color > select'), values.windowColor);\r\n setSelectedOption(this.$('.vjs-window-opacity > select'), values.windowOpacity);\r\n\r\n var fontPercent = values.fontPercent;\r\n\r\n if (fontPercent) {\r\n fontPercent = fontPercent.toFixed(2);\r\n }\r\n\r\n setSelectedOption(this.$('.vjs-font-percent > select'), fontPercent);\r\n };\r\n\r\n /**\r\n * Restore texttrack settings\r\n *\r\n * @method restoreSettings\r\n */\r\n\r\n TextTrackSettings.prototype.restoreSettings = function restoreSettings() {\r\n var err = undefined,\r\n values = undefined;\r\n\r\n try {\r\n var _safeParseTuple = _safeJsonParseTuple2['default'](_globalWindow2['default'].localStorage.getItem('vjs-text-track-settings'));\r\n\r\n err = _safeParseTuple[0];\r\n values = _safeParseTuple[1];\r\n\r\n if (err) {\r\n _utilsLogJs2['default'].error(err);\r\n }\r\n } catch (e) {\r\n _utilsLogJs2['default'].warn(e);\r\n }\r\n\r\n if (values) {\r\n this.setValues(values);\r\n }\r\n };\r\n\r\n /**\r\n * Save texttrack settings to local storage\r\n *\r\n * @method saveSettings\r\n */\r\n\r\n TextTrackSettings.prototype.saveSettings = function saveSettings() {\r\n if (!this.options_.persistTextTrackSettings) {\r\n return;\r\n }\r\n\r\n var values = this.getValues();\r\n try {\r\n if (Object.getOwnPropertyNames(values).length > 0) {\r\n _globalWindow2['default'].localStorage.setItem('vjs-text-track-settings', JSON.stringify(values));\r\n } else {\r\n _globalWindow2['default'].localStorage.removeItem('vjs-text-track-settings');\r\n }\r\n } catch (e) {\r\n _utilsLogJs2['default'].warn(e);\r\n }\r\n };\r\n\r\n /**\r\n * Update display of texttrack settings\r\n *\r\n * @method updateDisplay\r\n */\r\n\r\n TextTrackSettings.prototype.updateDisplay = function updateDisplay() {\r\n var ttDisplay = this.player_.getChild('textTrackDisplay');\r\n if (ttDisplay) {\r\n ttDisplay.updateDisplay();\r\n }\r\n };\r\n\r\n return TextTrackSettings;\r\n})(_component2['default']);\r\n\r\n_component2['default'].registerComponent('TextTrackSettings', TextTrackSettings);\r\n\r\nfunction getSelectedOptionValue(target) {\r\n var selectedOption = undefined;\r\n // not all browsers support selectedOptions, so, fallback to options\r\n if (target.selectedOptions) {\r\n selectedOption = target.selectedOptions[0];\r\n } else if (target.options) {\r\n selectedOption = target.options[target.options.selectedIndex];\r\n }\r\n\r\n return selectedOption.value;\r\n}\r\n\r\nfunction setSelectedOption(target, value) {\r\n if (!value) {\r\n return;\r\n }\r\n\r\n var i = undefined;\r\n for (i = 0; i < target.options.length; i++) {\r\n var option = target.options[i];\r\n if (option.value === value) {\r\n break;\r\n }\r\n }\r\n\r\n target.selectedIndex = i;\r\n}\r\n\r\nfunction captionOptionsMenuTemplate() {\r\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
    ';\r\n\r\n return template;\r\n}\r\n\r\nexports['default'] = TextTrackSettings;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../component\":67,\"../utils/events.js\":135,\"../utils/fn.js\":136,\"../utils/log.js\":139,\"global/window\":2,\"safe-json-parse/tuple\":54}],130:[function(_dereq_,module,exports){\r\n/**\r\n * @file text-track.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError('Cannot call a class as a function'); } }\r\n\r\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; }\r\n\r\nvar _textTrackCueList = _dereq_('./text-track-cue-list');\r\n\r\nvar _textTrackCueList2 = _interopRequireDefault(_textTrackCueList);\r\n\r\nvar _utilsFnJs = _dereq_('../utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _utilsGuidJs = _dereq_('../utils/guid.js');\r\n\r\nvar Guid = _interopRequireWildcard(_utilsGuidJs);\r\n\r\nvar _utilsBrowserJs = _dereq_('../utils/browser.js');\r\n\r\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\r\n\r\nvar _textTrackEnums = _dereq_('./text-track-enums');\r\n\r\nvar TextTrackEnum = _interopRequireWildcard(_textTrackEnums);\r\n\r\nvar _utilsLogJs = _dereq_('../utils/log.js');\r\n\r\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\r\n\r\nvar _eventTarget = _dereq_('../event-target');\r\n\r\nvar _eventTarget2 = _interopRequireDefault(_eventTarget);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _utilsUrlJs = _dereq_('../utils/url.js');\r\n\r\nvar _xhr = _dereq_('xhr');\r\n\r\nvar _xhr2 = _interopRequireDefault(_xhr);\r\n\r\n/**\r\n * takes a webvtt file contents and parses it into cues\r\n *\r\n * @param {String} srcContent webVTT file contents\r\n * @param {Track} track track to addcues to\r\n */\r\nvar parseCues = function parseCues(srcContent, track) {\r\n var parser = new _globalWindow2['default'].WebVTT.Parser(_globalWindow2['default'], _globalWindow2['default'].vttjs, _globalWindow2['default'].WebVTT.StringDecoder());\r\n\r\n parser.oncue = function (cue) {\r\n track.addCue(cue);\r\n };\r\n\r\n parser.onparsingerror = function (error) {\r\n _utilsLogJs2['default'].error(error);\r\n };\r\n\r\n parser.onflush = function () {\r\n track.trigger({\r\n type: 'loadeddata',\r\n target: track\r\n });\r\n };\r\n\r\n parser.parse(srcContent);\r\n parser.flush();\r\n};\r\n\r\n/**\r\n * load a track from a specifed url\r\n *\r\n * @param {String} src url to load track from\r\n * @param {Track} track track to addcues to\r\n */\r\nvar loadTrack = function loadTrack(src, track) {\r\n var opts = {\r\n uri: src\r\n };\r\n var crossOrigin = _utilsUrlJs.isCrossOrigin(src);\r\n\r\n if (crossOrigin) {\r\n opts.cors = crossOrigin;\r\n }\r\n\r\n _xhr2['default'](opts, Fn.bind(this, function (err, response, responseBody) {\r\n if (err) {\r\n return _utilsLogJs2['default'].error(err, response);\r\n }\r\n\r\n track.loaded_ = true;\r\n\r\n // Make sure that vttjs has loaded, otherwise, wait till it finished loading\r\n // NOTE: this is only used for the alt/video.novtt.js build\r\n if (typeof _globalWindow2['default'].WebVTT !== 'function') {\r\n if (track.tech_) {\r\n (function () {\r\n var loadHandler = function loadHandler() {\r\n return parseCues(responseBody, track);\r\n };\r\n track.tech_.on('vttjsloaded', loadHandler);\r\n track.tech_.on('vttjserror', function () {\r\n _utilsLogJs2['default'].error('vttjs failed to load, stopping trying to process ' + track.src);\r\n track.tech_.off('vttjsloaded', loadHandler);\r\n });\r\n })();\r\n }\r\n } else {\r\n parseCues(responseBody, track);\r\n }\r\n }));\r\n};\r\n\r\n/**\r\n * A single text track as defined in:\r\n * https://html.spec.whatwg.org/multipage/embedded-content.html#texttrack\r\n *\r\n * interface TextTrack : EventTarget {\r\n * readonly attribute TextTrackKind kind;\r\n * readonly attribute DOMString label;\r\n * readonly attribute DOMString language;\r\n *\r\n * readonly attribute DOMString id;\r\n * readonly attribute DOMString inBandMetadataTrackDispatchType;\r\n *\r\n * attribute TextTrackMode mode;\r\n *\r\n * readonly attribute TextTrackCueList? cues;\r\n * readonly attribute TextTrackCueList? activeCues;\r\n *\r\n * void addCue(TextTrackCue cue);\r\n * void removeCue(TextTrackCue cue);\r\n *\r\n * attribute EventHandler oncuechange;\r\n * };\r\n *\r\n * @param {Object=} options Object of option names and values\r\n * @extends EventTarget\r\n * @class TextTrack\r\n */\r\n\r\nvar TextTrack = (function (_EventTarget) {\r\n _inherits(TextTrack, _EventTarget);\r\n\r\n function TextTrack() {\r\n var options = arguments.length <= 0 || arguments[0] === undefined ? {} : arguments[0];\r\n\r\n _classCallCheck(this, TextTrack);\r\n\r\n _EventTarget.call(this);\r\n if (!options.tech) {\r\n throw new Error('A tech was not provided.');\r\n }\r\n\r\n var tt = this;\r\n\r\n if (browser.IS_IE8) {\r\n tt = _globalDocument2['default'].createElement('custom');\r\n\r\n for (var prop in TextTrack.prototype) {\r\n if (prop !== 'constructor') {\r\n tt[prop] = TextTrack.prototype[prop];\r\n }\r\n }\r\n }\r\n\r\n tt.tech_ = options.tech;\r\n\r\n var mode = TextTrackEnum.TextTrackMode[options.mode] || 'disabled';\r\n var kind = TextTrackEnum.TextTrackKind[options.kind] || 'subtitles';\r\n var label = options.label || '';\r\n var language = options.language || options.srclang || '';\r\n var id = options.id || 'vjs_text_track_' + Guid.newGUID();\r\n\r\n if (kind === 'metadata' || kind === 'chapters') {\r\n mode = 'hidden';\r\n }\r\n\r\n tt.cues_ = [];\r\n tt.activeCues_ = [];\r\n\r\n var cues = new _textTrackCueList2['default'](tt.cues_);\r\n var activeCues = new _textTrackCueList2['default'](tt.activeCues_);\r\n var changed = false;\r\n var timeupdateHandler = Fn.bind(tt, function () {\r\n this.activeCues;\r\n if (changed) {\r\n this.trigger('cuechange');\r\n changed = false;\r\n }\r\n });\r\n\r\n if (mode !== 'disabled') {\r\n tt.tech_.on('timeupdate', timeupdateHandler);\r\n }\r\n\r\n Object.defineProperty(tt, 'kind', {\r\n get: function get() {\r\n return kind;\r\n },\r\n set: function set() {}\r\n });\r\n\r\n Object.defineProperty(tt, 'label', {\r\n get: function get() {\r\n return label;\r\n },\r\n set: function set() {}\r\n });\r\n\r\n Object.defineProperty(tt, 'language', {\r\n get: function get() {\r\n return language;\r\n },\r\n set: function set() {}\r\n });\r\n\r\n Object.defineProperty(tt, 'id', {\r\n get: function get() {\r\n return id;\r\n },\r\n set: function set() {}\r\n });\r\n\r\n Object.defineProperty(tt, 'mode', {\r\n get: function get() {\r\n return mode;\r\n },\r\n set: function set(newMode) {\r\n if (!TextTrackEnum.TextTrackMode[newMode]) {\r\n return;\r\n }\r\n mode = newMode;\r\n if (mode === 'showing') {\r\n this.tech_.on('timeupdate', timeupdateHandler);\r\n }\r\n this.trigger('modechange');\r\n }\r\n });\r\n\r\n Object.defineProperty(tt, 'cues', {\r\n get: function get() {\r\n if (!this.loaded_) {\r\n return null;\r\n }\r\n\r\n return cues;\r\n },\r\n set: function set() {}\r\n });\r\n\r\n Object.defineProperty(tt, 'activeCues', {\r\n get: function get() {\r\n if (!this.loaded_) {\r\n return null;\r\n }\r\n\r\n // nothing to do\r\n if (this.cues.length === 0) {\r\n return activeCues;\r\n }\r\n\r\n var ct = this.tech_.currentTime();\r\n var active = [];\r\n\r\n for (var i = 0, l = this.cues.length; i < l; i++) {\r\n var cue = this.cues[i];\r\n\r\n if (cue.startTime <= ct && cue.endTime >= ct) {\r\n active.push(cue);\r\n } else if (cue.startTime === cue.endTime && cue.startTime <= ct && cue.startTime + 0.5 >= ct) {\r\n active.push(cue);\r\n }\r\n }\r\n\r\n changed = false;\r\n\r\n if (active.length !== this.activeCues_.length) {\r\n changed = true;\r\n } else {\r\n for (var i = 0; i < active.length; i++) {\r\n if (this.activeCues_.indexOf(active[i]) === -1) {\r\n changed = true;\r\n }\r\n }\r\n }\r\n\r\n this.activeCues_ = active;\r\n activeCues.setCues_(this.activeCues_);\r\n\r\n return activeCues;\r\n },\r\n set: function set() {}\r\n });\r\n\r\n if (options.src) {\r\n tt.src = options.src;\r\n loadTrack(options.src, tt);\r\n } else {\r\n tt.loaded_ = true;\r\n }\r\n\r\n if (browser.IS_IE8) {\r\n return tt;\r\n }\r\n }\r\n\r\n /**\r\n * cuechange - One or more cues in the track have become active or stopped being active.\r\n */\r\n\r\n /**\r\n * add a cue to the internal list of cues\r\n *\r\n * @param {Object} cue the cue to add to our internal list\r\n * @method addCue\r\n */\r\n\r\n TextTrack.prototype.addCue = function addCue(cue) {\r\n var tracks = this.tech_.textTracks();\r\n\r\n if (tracks) {\r\n for (var i = 0; i < tracks.length; i++) {\r\n if (tracks[i] !== this) {\r\n tracks[i].removeCue(cue);\r\n }\r\n }\r\n }\r\n\r\n this.cues_.push(cue);\r\n this.cues.setCues_(this.cues_);\r\n };\r\n\r\n /**\r\n * remvoe a cue from our internal list\r\n *\r\n * @param {Object} removeCue the cue to remove from our internal list\r\n * @method removeCue\r\n */\r\n\r\n TextTrack.prototype.removeCue = function removeCue(_removeCue) {\r\n var removed = false;\r\n\r\n for (var i = 0, l = this.cues_.length; i < l; i++) {\r\n var cue = this.cues_[i];\r\n\r\n if (cue === _removeCue) {\r\n this.cues_.splice(i, 1);\r\n removed = true;\r\n }\r\n }\r\n\r\n if (removed) {\r\n this.cues.setCues_(this.cues_);\r\n }\r\n };\r\n\r\n return TextTrack;\r\n})(_eventTarget2['default']);\r\n\r\nTextTrack.prototype.allowedEvents_ = {\r\n cuechange: 'cuechange'\r\n};\r\n\r\nexports['default'] = TextTrack;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../event-target\":101,\"../utils/browser.js\":131,\"../utils/fn.js\":136,\"../utils/guid.js\":138,\"../utils/log.js\":139,\"../utils/url.js\":144,\"./text-track-cue-list\":124,\"./text-track-enums\":126,\"global/document\":1,\"global/window\":2,\"xhr\":56}],131:[function(_dereq_,module,exports){\r\n/**\r\n * @file browser.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar USER_AGENT = _globalWindow2['default'].navigator.userAgent;\r\nvar webkitVersionMap = /AppleWebKit\\/([\\d.]+)/i.exec(USER_AGENT);\r\nvar appleWebkitVersion = webkitVersionMap ? parseFloat(webkitVersionMap.pop()) : null;\r\n\r\n/*\r\n * Device is an iPhone\r\n *\r\n * @type {Boolean}\r\n * @constant\r\n * @private\r\n */\r\nvar IS_IPAD = /iPad/i.test(USER_AGENT);\r\n\r\nexports.IS_IPAD = IS_IPAD;\r\n// The Facebook app's UIWebView identifies as both an iPhone and iPad, so\r\n// to identify iPhones, we need to exclude iPads.\r\n// http://artsy.github.io/blog/2012/10/18/the-perils-of-ios-user-agent-sniffing/\r\nvar IS_IPHONE = /iPhone/i.test(USER_AGENT) && !IS_IPAD;\r\nexports.IS_IPHONE = IS_IPHONE;\r\nvar IS_IPOD = /iPod/i.test(USER_AGENT);\r\nexports.IS_IPOD = IS_IPOD;\r\nvar IS_IOS = IS_IPHONE || IS_IPAD || IS_IPOD;\r\n\r\nexports.IS_IOS = IS_IOS;\r\nvar IOS_VERSION = (function () {\r\n var match = USER_AGENT.match(/OS (\\d+)_/i);\r\n if (match && match[1]) {\r\n return match[1];\r\n }\r\n})();\r\n\r\nexports.IOS_VERSION = IOS_VERSION;\r\nvar IS_ANDROID = /Android/i.test(USER_AGENT);\r\nexports.IS_ANDROID = IS_ANDROID;\r\nvar ANDROID_VERSION = (function () {\r\n // This matches Android Major.Minor.Patch versions\r\n // ANDROID_VERSION is Major.Minor as a Number, if Minor isn't available, then only Major is returned\r\n var match = USER_AGENT.match(/Android (\\d+)(?:\\.(\\d+))?(?:\\.(\\d+))*/i),\r\n major,\r\n minor;\r\n\r\n if (!match) {\r\n return null;\r\n }\r\n\r\n major = match[1] && parseFloat(match[1]);\r\n minor = match[2] && parseFloat(match[2]);\r\n\r\n if (major && minor) {\r\n return parseFloat(match[1] + '.' + match[2]);\r\n } else if (major) {\r\n return major;\r\n } else {\r\n return null;\r\n }\r\n})();\r\nexports.ANDROID_VERSION = ANDROID_VERSION;\r\n// Old Android is defined as Version older than 2.3, and requiring a webkit version of the android browser\r\nvar IS_OLD_ANDROID = IS_ANDROID && /webkit/i.test(USER_AGENT) && ANDROID_VERSION < 2.3;\r\nexports.IS_OLD_ANDROID = IS_OLD_ANDROID;\r\nvar IS_NATIVE_ANDROID = IS_ANDROID && ANDROID_VERSION < 5 && appleWebkitVersion < 537;\r\n\r\nexports.IS_NATIVE_ANDROID = IS_NATIVE_ANDROID;\r\nvar IS_FIREFOX = /Firefox/i.test(USER_AGENT);\r\nexports.IS_FIREFOX = IS_FIREFOX;\r\nvar IS_CHROME = /Chrome/i.test(USER_AGENT);\r\nexports.IS_CHROME = IS_CHROME;\r\nvar IS_IE8 = /MSIE\\s8\\.0/.test(USER_AGENT);\r\n\r\nexports.IS_IE8 = IS_IE8;\r\nvar TOUCH_ENABLED = !!('ontouchstart' in _globalWindow2['default'] || _globalWindow2['default'].DocumentTouch && _globalDocument2['default'] instanceof _globalWindow2['default'].DocumentTouch);\r\nexports.TOUCH_ENABLED = TOUCH_ENABLED;\r\nvar BACKGROUND_SIZE_SUPPORTED = ('backgroundSize' in _globalDocument2['default'].createElement('video').style);\r\nexports.BACKGROUND_SIZE_SUPPORTED = BACKGROUND_SIZE_SUPPORTED;\r\n\r\n},{\"global/document\":1,\"global/window\":2}],132:[function(_dereq_,module,exports){\r\n/**\r\n * @file buffer.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\nexports.bufferedPercent = bufferedPercent;\r\n\r\nvar _timeRangesJs = _dereq_('./time-ranges.js');\r\n\r\n/**\r\n * Compute how much your video has been buffered\r\n *\r\n * @param {Object} Buffered object\r\n * @param {Number} Total duration\r\n * @return {Number} Percent buffered of the total duration\r\n * @private\r\n * @function bufferedPercent\r\n */\r\n\r\nfunction bufferedPercent(buffered, duration) {\r\n var bufferedDuration = 0,\r\n start,\r\n end;\r\n\r\n if (!duration) {\r\n return 0;\r\n }\r\n\r\n if (!buffered || !buffered.length) {\r\n buffered = _timeRangesJs.createTimeRange(0, 0);\r\n }\r\n\r\n for (var i = 0; i < buffered.length; i++) {\r\n start = buffered.start(i);\r\n end = buffered.end(i);\r\n\r\n // buffered end can be bigger than duration by a very small fraction\r\n if (end > duration) {\r\n end = duration;\r\n }\r\n\r\n bufferedDuration += end - start;\r\n }\r\n\r\n return bufferedDuration / duration;\r\n}\r\n\r\n},{\"./time-ranges.js\":142}],133:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _logJs = _dereq_('./log.js');\r\n\r\nvar _logJs2 = _interopRequireDefault(_logJs);\r\n\r\n/**\r\n * Object containing the default behaviors for available handler methods.\r\n *\r\n * @private\r\n * @type {Object}\r\n */\r\nvar defaultBehaviors = {\r\n get: function get(obj, key) {\r\n return obj[key];\r\n },\r\n set: function set(obj, key, value) {\r\n obj[key] = value;\r\n return true;\r\n }\r\n};\r\n\r\n/**\r\n * Expose private objects publicly using a Proxy to log deprecation warnings.\r\n *\r\n * Browsers that do not support Proxy objects will simply return the `target`\r\n * object, so it can be directly exposed.\r\n *\r\n * @param {Object} target The target object.\r\n * @param {Object} messages Messages to display from a Proxy. Only operations\r\n * with an associated message will be proxied.\r\n * @param {String} [messages.get]\r\n * @param {String} [messages.set]\r\n * @return {Object} A Proxy if supported or the `target` argument.\r\n */\r\n\r\nexports['default'] = function (target) {\r\n var messages = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n\r\n if (typeof Proxy === 'function') {\r\n var _ret = (function () {\r\n var handler = {};\r\n\r\n // Build a handler object based on those keys that have both messages\r\n // and default behaviors.\r\n Object.keys(messages).forEach(function (key) {\r\n if (defaultBehaviors.hasOwnProperty(key)) {\r\n handler[key] = function () {\r\n _logJs2['default'].warn(messages[key]);\r\n return defaultBehaviors[key].apply(this, arguments);\r\n };\r\n }\r\n });\r\n\r\n return {\r\n v: new Proxy(target, handler)\r\n };\r\n })();\r\n\r\n if (typeof _ret === 'object') return _ret.v;\r\n }\r\n return target;\r\n};\r\n\r\nmodule.exports = exports['default'];\r\n\r\n},{\"./log.js\":139}],134:[function(_dereq_,module,exports){\r\n/**\r\n * @file dom.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\nexports.getEl = getEl;\r\nexports.createEl = createEl;\r\nexports.textContent = textContent;\r\nexports.insertElFirst = insertElFirst;\r\nexports.getElData = getElData;\r\nexports.hasElData = hasElData;\r\nexports.removeElData = removeElData;\r\nexports.hasElClass = hasElClass;\r\nexports.addElClass = addElClass;\r\nexports.removeElClass = removeElClass;\r\nexports.toggleElClass = toggleElClass;\r\nexports.setElAttributes = setElAttributes;\r\nexports.getElAttributes = getElAttributes;\r\nexports.blockTextSelection = blockTextSelection;\r\nexports.unblockTextSelection = unblockTextSelection;\r\nexports.findElPosition = findElPosition;\r\nexports.getPointerPosition = getPointerPosition;\r\nexports.isEl = isEl;\r\nexports.isTextNode = isTextNode;\r\nexports.emptyEl = emptyEl;\r\nexports.normalizeContent = normalizeContent;\r\nexports.appendContent = appendContent;\r\nexports.insertContent = insertContent;\r\n\r\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 ', '.']);\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nfunction _taggedTemplateLiteralLoose(strings, raw) { strings.raw = raw; return strings; }\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _guidJs = _dereq_('./guid.js');\r\n\r\nvar Guid = _interopRequireWildcard(_guidJs);\r\n\r\nvar _logJs = _dereq_('./log.js');\r\n\r\nvar _logJs2 = _interopRequireDefault(_logJs);\r\n\r\nvar _tsml = _dereq_('tsml');\r\n\r\nvar _tsml2 = _interopRequireDefault(_tsml);\r\n\r\n/**\r\n * Detect if a value is a string with any non-whitespace characters.\r\n *\r\n * @param {String} str\r\n * @return {Boolean}\r\n */\r\nfunction isNonBlankString(str) {\r\n return typeof str === 'string' && /\\S/.test(str);\r\n}\r\n\r\n/**\r\n * Throws an error if the passed string has whitespace. This is used by\r\n * class methods to be relatively consistent with the classList API.\r\n *\r\n * @param {String} str\r\n * @return {Boolean}\r\n */\r\nfunction throwIfWhitespace(str) {\r\n if (/\\s/.test(str)) {\r\n throw new Error('class has illegal whitespace characters');\r\n }\r\n}\r\n\r\n/**\r\n * Produce a regular expression for matching a class name.\r\n *\r\n * @param {String} className\r\n * @return {RegExp}\r\n */\r\nfunction classRegExp(className) {\r\n return new RegExp('(^|\\\\s)' + className + '($|\\\\s)');\r\n}\r\n\r\n/**\r\n * Creates functions to query the DOM using a given method.\r\n *\r\n * @function createQuerier\r\n * @private\r\n * @param {String} method\r\n * @return {Function}\r\n */\r\nfunction createQuerier(method) {\r\n return function (selector, context) {\r\n if (!isNonBlankString(selector)) {\r\n return _globalDocument2['default'][method](null);\r\n }\r\n if (isNonBlankString(context)) {\r\n context = _globalDocument2['default'].querySelector(context);\r\n }\r\n return (isEl(context) ? context : _globalDocument2['default'])[method](selector);\r\n };\r\n}\r\n\r\n/**\r\n * Shorthand for document.getElementById()\r\n * Also allows for CSS (jQuery) ID syntax. But nothing other than IDs.\r\n *\r\n * @param {String} id Element ID\r\n * @return {Element} Element with supplied ID\r\n * @function getEl\r\n */\r\n\r\nfunction getEl(id) {\r\n if (id.indexOf('#') === 0) {\r\n id = id.slice(1);\r\n }\r\n\r\n return _globalDocument2['default'].getElementById(id);\r\n}\r\n\r\n/**\r\n * Creates an element and applies properties.\r\n *\r\n * @param {String} [tagName='div'] Name of tag to be created.\r\n * @param {Object} [properties={}] Element properties to be applied.\r\n * @param {Object} [attributes={}] Element attributes to be applied.\r\n * @return {Element}\r\n * @function createEl\r\n */\r\n\r\nfunction createEl() {\r\n var tagName = arguments.length <= 0 || arguments[0] === undefined ? 'div' : arguments[0];\r\n var properties = arguments.length <= 1 || arguments[1] === undefined ? {} : arguments[1];\r\n var attributes = arguments.length <= 2 || arguments[2] === undefined ? {} : arguments[2];\r\n\r\n var el = _globalDocument2['default'].createElement(tagName);\r\n\r\n Object.getOwnPropertyNames(properties).forEach(function (propName) {\r\n var val = properties[propName];\r\n\r\n // See #2176\r\n // We originally were accepting both properties and attributes in the\r\n // same object, but that doesn't work so well.\r\n if (propName.indexOf('aria-') !== -1 || propName === 'role' || propName === 'type') {\r\n _logJs2['default'].warn(_tsml2['default'](_templateObject, propName, val));\r\n el.setAttribute(propName, val);\r\n } else {\r\n el[propName] = val;\r\n }\r\n });\r\n\r\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\r\n var val = attributes[attrName];\r\n el.setAttribute(attrName, attributes[attrName]);\r\n });\r\n\r\n return el;\r\n}\r\n\r\n/**\r\n * Injects text into an element, replacing any existing contents entirely.\r\n *\r\n * @param {Element} el\r\n * @param {String} text\r\n * @return {Element}\r\n * @function textContent\r\n */\r\n\r\nfunction textContent(el, text) {\r\n if (typeof el.textContent === 'undefined') {\r\n el.innerText = text;\r\n } else {\r\n el.textContent = text;\r\n }\r\n}\r\n\r\n/**\r\n * Insert an element as the first child node of another\r\n *\r\n * @param {Element} child Element to insert\r\n * @param {Element} parent Element to insert child into\r\n * @private\r\n * @function insertElFirst\r\n */\r\n\r\nfunction insertElFirst(child, parent) {\r\n if (parent.firstChild) {\r\n parent.insertBefore(child, parent.firstChild);\r\n } else {\r\n parent.appendChild(child);\r\n }\r\n}\r\n\r\n/**\r\n * Element Data Store. Allows for binding data to an element without putting it directly on the element.\r\n * Ex. Event listeners are stored here.\r\n * (also from jsninja.com, slightly modified and updated for closure compiler)\r\n *\r\n * @type {Object}\r\n * @private\r\n */\r\nvar elData = {};\r\n\r\n/*\r\n * Unique attribute name to store an element's guid in\r\n *\r\n * @type {String}\r\n * @constant\r\n * @private\r\n */\r\nvar elIdAttr = 'vdata' + new Date().getTime();\r\n\r\n/**\r\n * Returns the cache object where data for an element is stored\r\n *\r\n * @param {Element} el Element to store data for.\r\n * @return {Object}\r\n * @function getElData\r\n */\r\n\r\nfunction getElData(el) {\r\n var id = el[elIdAttr];\r\n\r\n if (!id) {\r\n id = el[elIdAttr] = Guid.newGUID();\r\n }\r\n\r\n if (!elData[id]) {\r\n elData[id] = {};\r\n }\r\n\r\n return elData[id];\r\n}\r\n\r\n/**\r\n * Returns whether or not an element has cached data\r\n *\r\n * @param {Element} el A dom element\r\n * @return {Boolean}\r\n * @private\r\n * @function hasElData\r\n */\r\n\r\nfunction hasElData(el) {\r\n var id = el[elIdAttr];\r\n\r\n if (!id) {\r\n return false;\r\n }\r\n\r\n return !!Object.getOwnPropertyNames(elData[id]).length;\r\n}\r\n\r\n/**\r\n * Delete data for the element from the cache and the guid attr from getElementById\r\n *\r\n * @param {Element} el Remove data for an element\r\n * @private\r\n * @function removeElData\r\n */\r\n\r\nfunction removeElData(el) {\r\n var id = el[elIdAttr];\r\n\r\n if (!id) {\r\n return;\r\n }\r\n\r\n // Remove all stored data\r\n delete elData[id];\r\n\r\n // Remove the elIdAttr property from the DOM node\r\n try {\r\n delete el[elIdAttr];\r\n } catch (e) {\r\n if (el.removeAttribute) {\r\n el.removeAttribute(elIdAttr);\r\n } else {\r\n // IE doesn't appear to support removeAttribute on the document element\r\n el[elIdAttr] = null;\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Check if an element has a CSS class\r\n *\r\n * @function hasElClass\r\n * @param {Element} element Element to check\r\n * @param {String} classToCheck Classname to check\r\n */\r\n\r\nfunction hasElClass(element, classToCheck) {\r\n if (element.classList) {\r\n return element.classList.contains(classToCheck);\r\n } else {\r\n throwIfWhitespace(classToCheck);\r\n return classRegExp(classToCheck).test(element.className);\r\n }\r\n}\r\n\r\n/**\r\n * Add a CSS class name to an element\r\n *\r\n * @function addElClass\r\n * @param {Element} element Element to add class name to\r\n * @param {String} classToAdd Classname to add\r\n */\r\n\r\nfunction addElClass(element, classToAdd) {\r\n if (element.classList) {\r\n element.classList.add(classToAdd);\r\n\r\n // Don't need to `throwIfWhitespace` here because `hasElClass` will do it\r\n // in the case of classList not being supported.\r\n } else if (!hasElClass(element, classToAdd)) {\r\n element.className = (element.className + ' ' + classToAdd).trim();\r\n }\r\n\r\n return element;\r\n}\r\n\r\n/**\r\n * Remove a CSS class name from an element\r\n *\r\n * @function removeElClass\r\n * @param {Element} element Element to remove from class name\r\n * @param {String} classToRemove Classname to remove\r\n */\r\n\r\nfunction removeElClass(element, classToRemove) {\r\n if (element.classList) {\r\n element.classList.remove(classToRemove);\r\n } else {\r\n throwIfWhitespace(classToRemove);\r\n element.className = element.className.split(/\\s+/).filter(function (c) {\r\n return c !== classToRemove;\r\n }).join(' ');\r\n }\r\n\r\n return element;\r\n}\r\n\r\n/**\r\n * Adds or removes a CSS class name on an element depending on an optional\r\n * condition or the presence/absence of the class name.\r\n *\r\n * @function toggleElClass\r\n * @param {Element} element\r\n * @param {String} classToToggle\r\n * @param {Boolean|Function} [predicate]\r\n * Can be a function that returns a Boolean. If `true`, the class\r\n * will be added; if `false`, the class will be removed. If not\r\n * given, the class will be added if not present and vice versa.\r\n */\r\n\r\nfunction toggleElClass(element, classToToggle, predicate) {\r\n\r\n // This CANNOT use `classList` internally because IE does not support the\r\n // second parameter to the `classList.toggle()` method! Which is fine because\r\n // `classList` will be used by the add/remove functions.\r\n var has = hasElClass(element, classToToggle);\r\n\r\n if (typeof predicate === 'function') {\r\n predicate = predicate(element, classToToggle);\r\n }\r\n\r\n if (typeof predicate !== 'boolean') {\r\n predicate = !has;\r\n }\r\n\r\n // If the necessary class operation matches the current state of the\r\n // element, no action is required.\r\n if (predicate === has) {\r\n return;\r\n }\r\n\r\n if (predicate) {\r\n addElClass(element, classToToggle);\r\n } else {\r\n removeElClass(element, classToToggle);\r\n }\r\n\r\n return element;\r\n}\r\n\r\n/**\r\n * Apply attributes to an HTML element.\r\n *\r\n * @param {Element} el Target element.\r\n * @param {Object=} attributes Element attributes to be applied.\r\n * @private\r\n * @function setElAttributes\r\n */\r\n\r\nfunction setElAttributes(el, attributes) {\r\n Object.getOwnPropertyNames(attributes).forEach(function (attrName) {\r\n var attrValue = attributes[attrName];\r\n\r\n if (attrValue === null || typeof attrValue === 'undefined' || attrValue === false) {\r\n el.removeAttribute(attrName);\r\n } else {\r\n el.setAttribute(attrName, attrValue === true ? '' : attrValue);\r\n }\r\n });\r\n}\r\n\r\n/**\r\n * Get an element's attribute values, as defined on the HTML tag\r\n * Attributes are not the same as properties. They're defined on the tag\r\n * or with setAttribute (which shouldn't be used with HTML)\r\n * This will return true or false for boolean attributes.\r\n *\r\n * @param {Element} tag Element from which to get tag attributes\r\n * @return {Object}\r\n * @private\r\n * @function getElAttributes\r\n */\r\n\r\nfunction getElAttributes(tag) {\r\n var obj, knownBooleans, attrs, attrName, attrVal;\r\n\r\n obj = {};\r\n\r\n // known boolean attributes\r\n // we can check for matching boolean properties, but older browsers\r\n // won't know about HTML5 boolean attributes that we still read from\r\n knownBooleans = ',' + 'autoplay,controls,loop,muted,default' + ',';\r\n\r\n if (tag && tag.attributes && tag.attributes.length > 0) {\r\n attrs = tag.attributes;\r\n\r\n for (var i = attrs.length - 1; i >= 0; i--) {\r\n attrName = attrs[i].name;\r\n attrVal = attrs[i].value;\r\n\r\n // check for known booleans\r\n // the matching element property will return a value for typeof\r\n if (typeof tag[attrName] === 'boolean' || knownBooleans.indexOf(',' + attrName + ',') !== -1) {\r\n // the value of an included boolean attribute is typically an empty\r\n // string ('') which would equal false if we just check for a false value.\r\n // we also don't want support bad code like autoplay='false'\r\n attrVal = attrVal !== null ? true : false;\r\n }\r\n\r\n obj[attrName] = attrVal;\r\n }\r\n }\r\n\r\n return obj;\r\n}\r\n\r\n/**\r\n * Attempt to block the ability to select text while dragging controls\r\n *\r\n * @return {Boolean}\r\n * @function blockTextSelection\r\n */\r\n\r\nfunction blockTextSelection() {\r\n _globalDocument2['default'].body.focus();\r\n _globalDocument2['default'].onselectstart = function () {\r\n return false;\r\n };\r\n}\r\n\r\n/**\r\n * Turn off text selection blocking\r\n *\r\n * @return {Boolean}\r\n * @function unblockTextSelection\r\n */\r\n\r\nfunction unblockTextSelection() {\r\n _globalDocument2['default'].onselectstart = function () {\r\n return true;\r\n };\r\n}\r\n\r\n/**\r\n * Offset Left\r\n * getBoundingClientRect technique from\r\n * John Resig http://ejohn.org/blog/getboundingclientrect-is-awesome/\r\n *\r\n * @function findElPosition\r\n * @param {Element} el Element from which to get offset\r\n * @return {Object}\r\n */\r\n\r\nfunction findElPosition(el) {\r\n var box = undefined;\r\n\r\n if (el.getBoundingClientRect && el.parentNode) {\r\n box = el.getBoundingClientRect();\r\n }\r\n\r\n if (!box) {\r\n return {\r\n left: 0,\r\n top: 0\r\n };\r\n }\r\n\r\n var docEl = _globalDocument2['default'].documentElement;\r\n var body = _globalDocument2['default'].body;\r\n\r\n var clientLeft = docEl.clientLeft || body.clientLeft || 0;\r\n var scrollLeft = _globalWindow2['default'].pageXOffset || body.scrollLeft;\r\n var left = box.left + scrollLeft - clientLeft;\r\n\r\n var clientTop = docEl.clientTop || body.clientTop || 0;\r\n var scrollTop = _globalWindow2['default'].pageYOffset || body.scrollTop;\r\n var top = box.top + scrollTop - clientTop;\r\n\r\n // Android sometimes returns slightly off decimal values, so need to round\r\n return {\r\n left: Math.round(left),\r\n top: Math.round(top)\r\n };\r\n}\r\n\r\n/**\r\n * Get pointer position in element\r\n * Returns an object with x and y coordinates.\r\n * The base on the coordinates are the bottom left of the element.\r\n *\r\n * @function getPointerPosition\r\n * @param {Element} el Element on which to get the pointer position on\r\n * @param {Event} event Event object\r\n * @return {Object} This object will have x and y coordinates corresponding to the mouse position\r\n */\r\n\r\nfunction getPointerPosition(el, event) {\r\n var position = {};\r\n var box = findElPosition(el);\r\n var boxW = el.offsetWidth;\r\n var boxH = el.offsetHeight;\r\n\r\n var boxY = box.top;\r\n var boxX = box.left;\r\n var pageY = event.pageY;\r\n var pageX = event.pageX;\r\n\r\n if (event.changedTouches) {\r\n pageX = event.changedTouches[0].pageX;\r\n pageY = event.changedTouches[0].pageY;\r\n }\r\n\r\n position.y = Math.max(0, Math.min(1, (boxY - pageY + boxH) / boxH));\r\n position.x = Math.max(0, Math.min(1, (pageX - boxX) / boxW));\r\n\r\n return position;\r\n}\r\n\r\n/**\r\n * Determines, via duck typing, whether or not a value is a DOM element.\r\n *\r\n * @function isEl\r\n * @param {Mixed} value\r\n * @return {Boolean}\r\n */\r\n\r\nfunction isEl(value) {\r\n return !!value && typeof value === 'object' && value.nodeType === 1;\r\n}\r\n\r\n/**\r\n * Determines, via duck typing, whether or not a value is a text node.\r\n *\r\n * @param {Mixed} value\r\n * @return {Boolean}\r\n */\r\n\r\nfunction isTextNode(value) {\r\n return !!value && typeof value === 'object' && value.nodeType === 3;\r\n}\r\n\r\n/**\r\n * Empties the contents of an element.\r\n *\r\n * @function emptyEl\r\n * @param {Element} el\r\n * @return {Element}\r\n */\r\n\r\nfunction emptyEl(el) {\r\n while (el.firstChild) {\r\n el.removeChild(el.firstChild);\r\n }\r\n return el;\r\n}\r\n\r\n/**\r\n * Normalizes content for eventual insertion into the DOM.\r\n *\r\n * This allows a wide range of content definition methods, but protects\r\n * from falling into the trap of simply writing to `innerHTML`, which is\r\n * an XSS concern.\r\n *\r\n * The content for an element can be passed in multiple types and\r\n * combinations, whose behavior is as follows:\r\n *\r\n * - String\r\n * Normalized into a text node.\r\n *\r\n * - Element, TextNode\r\n * Passed through.\r\n *\r\n * - Array\r\n * A one-dimensional array of strings, elements, nodes, or functions (which\r\n * return single strings, elements, or nodes).\r\n *\r\n * - Function\r\n * If the sole argument, is expected to produce a string, element,\r\n * node, or array.\r\n *\r\n * @function normalizeContent\r\n * @param {String|Element|TextNode|Array|Function} content\r\n * @return {Array}\r\n */\r\n\r\nfunction normalizeContent(content) {\r\n\r\n // First, invoke content if it is a function. If it produces an array,\r\n // that needs to happen before normalization.\r\n if (typeof content === 'function') {\r\n content = content();\r\n }\r\n\r\n // Next up, normalize to an array, so one or many items can be normalized,\r\n // filtered, and returned.\r\n return (Array.isArray(content) ? content : [content]).map(function (value) {\r\n\r\n // First, invoke value if it is a function to produce a new value,\r\n // which will be subsequently normalized to a Node of some kind.\r\n if (typeof value === 'function') {\r\n value = value();\r\n }\r\n\r\n if (isEl(value) || isTextNode(value)) {\r\n return value;\r\n }\r\n\r\n if (typeof value === 'string' && /\\S/.test(value)) {\r\n return _globalDocument2['default'].createTextNode(value);\r\n }\r\n }).filter(function (value) {\r\n return value;\r\n });\r\n}\r\n\r\n/**\r\n * Normalizes and appends content to an element.\r\n *\r\n * @function appendContent\r\n * @param {Element} el\r\n * @param {String|Element|TextNode|Array|Function} content\r\n * See: `normalizeContent`\r\n * @return {Element}\r\n */\r\n\r\nfunction appendContent(el, content) {\r\n normalizeContent(content).forEach(function (node) {\r\n return el.appendChild(node);\r\n });\r\n return el;\r\n}\r\n\r\n/**\r\n * Normalizes and inserts content into an element; this is identical to\r\n * `appendContent()`, except it empties the element first.\r\n *\r\n * @function insertContent\r\n * @param {Element} el\r\n * @param {String|Element|TextNode|Array|Function} content\r\n * See: `normalizeContent`\r\n * @return {Element}\r\n */\r\n\r\nfunction insertContent(el, content) {\r\n return appendContent(emptyEl(el), content);\r\n}\r\n\r\n/**\r\n * Finds a single DOM element matching `selector` within the optional\r\n * `context` of another DOM element (defaulting to `document`).\r\n *\r\n * @function $\r\n * @param {String} selector\r\n * A valid CSS selector, which will be passed to `querySelector`.\r\n *\r\n * @param {Element|String} [context=document]\r\n * A DOM element within which to query. Can also be a selector\r\n * string in which case the first matching element will be used\r\n * as context. If missing (or no element matches selector), falls\r\n * back to `document`.\r\n *\r\n * @return {Element|null}\r\n */\r\nvar $ = createQuerier('querySelector');\r\n\r\nexports.$ = $;\r\n/**\r\n * Finds a all DOM elements matching `selector` within the optional\r\n * `context` of another DOM element (defaulting to `document`).\r\n *\r\n * @function $$\r\n * @param {String} selector\r\n * A valid CSS selector, which will be passed to `querySelectorAll`.\r\n *\r\n * @param {Element|String} [context=document]\r\n * A DOM element within which to query. Can also be a selector\r\n * string in which case the first matching element will be used\r\n * as context. If missing (or no element matches selector), falls\r\n * back to `document`.\r\n *\r\n * @return {NodeList}\r\n */\r\nvar $$ = createQuerier('querySelectorAll');\r\nexports.$$ = $$;\r\n\r\n},{\"./guid.js\":138,\"./log.js\":139,\"global/document\":1,\"global/window\":2,\"tsml\":55}],135:[function(_dereq_,module,exports){\r\n/**\r\n * @file events.js\r\n *\r\n * Event System (John Resig - Secrets of a JS Ninja http://jsninja.com/)\r\n * (Original book version wasn't completely usable, so fixed some things and made Closure Compiler compatible)\r\n * This should work very similarly to jQuery's events, however it's based off the book version which isn't as\r\n * robust as jquery's, so there's probably some differences.\r\n */\r\n\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\nexports.on = on;\r\nexports.off = off;\r\nexports.trigger = trigger;\r\nexports.one = one;\r\nexports.fixEvent = fixEvent;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\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; } }\r\n\r\nvar _domJs = _dereq_('./dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_domJs);\r\n\r\nvar _guidJs = _dereq_('./guid.js');\r\n\r\nvar Guid = _interopRequireWildcard(_guidJs);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\n/**\r\n * Add an event listener to element\r\n * It stores the handler function in a separate cache object\r\n * and adds a generic handler to the element's event,\r\n * along with a unique id (guid) to the element.\r\n *\r\n * @param {Element|Object} elem Element or object to bind listeners to\r\n * @param {String|Array} type Type of event to bind to.\r\n * @param {Function} fn Event listener.\r\n * @method on\r\n */\r\n\r\nfunction on(elem, type, fn) {\r\n if (Array.isArray(type)) {\r\n return _handleMultipleEvents(on, elem, type, fn);\r\n }\r\n\r\n var data = Dom.getElData(elem);\r\n\r\n // We need a place to store all our handler data\r\n if (!data.handlers) data.handlers = {};\r\n\r\n if (!data.handlers[type]) data.handlers[type] = [];\r\n\r\n if (!fn.guid) fn.guid = Guid.newGUID();\r\n\r\n data.handlers[type].push(fn);\r\n\r\n if (!data.dispatcher) {\r\n data.disabled = false;\r\n\r\n data.dispatcher = function (event, hash) {\r\n\r\n if (data.disabled) return;\r\n event = fixEvent(event);\r\n\r\n var handlers = data.handlers[event.type];\r\n\r\n if (handlers) {\r\n // Copy handlers so if handlers are added/removed during the process it doesn't throw everything off.\r\n var handlersCopy = handlers.slice(0);\r\n\r\n for (var m = 0, n = handlersCopy.length; m < n; m++) {\r\n if (event.isImmediatePropagationStopped()) {\r\n break;\r\n } else {\r\n handlersCopy[m].call(elem, event, hash);\r\n }\r\n }\r\n }\r\n };\r\n }\r\n\r\n if (data.handlers[type].length === 1) {\r\n if (elem.addEventListener) {\r\n elem.addEventListener(type, data.dispatcher, false);\r\n } else if (elem.attachEvent) {\r\n elem.attachEvent('on' + type, data.dispatcher);\r\n }\r\n }\r\n}\r\n\r\n/**\r\n * Removes event listeners from an element\r\n *\r\n * @param {Element|Object} elem Object to remove listeners from\r\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\r\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\r\n * @method off\r\n */\r\n\r\nfunction off(elem, type, fn) {\r\n // Don't want to add a cache object through getElData if not needed\r\n if (!Dom.hasElData(elem)) return;\r\n\r\n var data = Dom.getElData(elem);\r\n\r\n // If no events exist, nothing to unbind\r\n if (!data.handlers) {\r\n return;\r\n }\r\n\r\n if (Array.isArray(type)) {\r\n return _handleMultipleEvents(off, elem, type, fn);\r\n }\r\n\r\n // Utility function\r\n var removeType = function removeType(t) {\r\n data.handlers[t] = [];\r\n _cleanUpEvents(elem, t);\r\n };\r\n\r\n // Are we removing all bound events?\r\n if (!type) {\r\n for (var t in data.handlers) {\r\n removeType(t);\r\n }return;\r\n }\r\n\r\n var handlers = data.handlers[type];\r\n\r\n // If no handlers exist, nothing to unbind\r\n if (!handlers) return;\r\n\r\n // If no listener was provided, remove all listeners for type\r\n if (!fn) {\r\n removeType(type);\r\n return;\r\n }\r\n\r\n // We're only removing a single handler\r\n if (fn.guid) {\r\n for (var n = 0; n < handlers.length; n++) {\r\n if (handlers[n].guid === fn.guid) {\r\n handlers.splice(n--, 1);\r\n }\r\n }\r\n }\r\n\r\n _cleanUpEvents(elem, type);\r\n}\r\n\r\n/**\r\n * Trigger an event for an element\r\n *\r\n * @param {Element|Object} elem Element to trigger an event on\r\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\r\n * @param {Object} [hash] data hash to pass along with the event\r\n * @return {Boolean=} Returned only if default was prevented\r\n * @method trigger\r\n */\r\n\r\nfunction trigger(elem, event, hash) {\r\n // Fetches element data and a reference to the parent (for bubbling).\r\n // Don't want to add a data object to cache for every parent,\r\n // so checking hasElData first.\r\n var elemData = Dom.hasElData(elem) ? Dom.getElData(elem) : {};\r\n var parent = elem.parentNode || elem.ownerDocument;\r\n // type = event.type || event,\r\n // handler;\r\n\r\n // If an event name was passed as a string, creates an event out of it\r\n if (typeof event === 'string') {\r\n event = { type: event, target: elem };\r\n }\r\n // Normalizes the event properties.\r\n event = fixEvent(event);\r\n\r\n // If the passed element has a dispatcher, executes the established handlers.\r\n if (elemData.dispatcher) {\r\n elemData.dispatcher.call(elem, event, hash);\r\n }\r\n\r\n // Unless explicitly stopped or the event does not bubble (e.g. media events)\r\n // recursively calls this function to bubble the event up the DOM.\r\n if (parent && !event.isPropagationStopped() && event.bubbles === true) {\r\n trigger.call(null, parent, event, hash);\r\n\r\n // If at the top of the DOM, triggers the default action unless disabled.\r\n } else if (!parent && !event.defaultPrevented) {\r\n var targetData = Dom.getElData(event.target);\r\n\r\n // Checks if the target has a default action for this event.\r\n if (event.target[event.type]) {\r\n // Temporarily disables event dispatching on the target as we have already executed the handler.\r\n targetData.disabled = true;\r\n // Executes the default action.\r\n if (typeof event.target[event.type] === 'function') {\r\n event.target[event.type]();\r\n }\r\n // Re-enables event dispatching.\r\n targetData.disabled = false;\r\n }\r\n }\r\n\r\n // Inform the triggerer if the default was prevented by returning false\r\n return !event.defaultPrevented;\r\n}\r\n\r\n/**\r\n * Trigger a listener only once for an event\r\n *\r\n * @param {Element|Object} elem Element or object to\r\n * @param {String|Array} type Name/type of event\r\n * @param {Function} fn Event handler function\r\n * @method one\r\n */\r\n\r\nfunction one(elem, type, fn) {\r\n if (Array.isArray(type)) {\r\n return _handleMultipleEvents(one, elem, type, fn);\r\n }\r\n var func = function func() {\r\n off(elem, type, func);\r\n fn.apply(this, arguments);\r\n };\r\n // copy the guid to the new function so it can removed using the original function's ID\r\n func.guid = fn.guid = fn.guid || Guid.newGUID();\r\n on(elem, type, func);\r\n}\r\n\r\n/**\r\n * Fix a native event to have standard property values\r\n *\r\n * @param {Object} event Event object to fix\r\n * @return {Object}\r\n * @private\r\n * @method fixEvent\r\n */\r\n\r\nfunction fixEvent(event) {\r\n\r\n function returnTrue() {\r\n return true;\r\n }\r\n function returnFalse() {\r\n return false;\r\n }\r\n\r\n // Test if fixing up is needed\r\n // Used to check if !event.stopPropagation instead of isPropagationStopped\r\n // But native events return true for stopPropagation, but don't have\r\n // other expected methods like isPropagationStopped. Seems to be a problem\r\n // with the Javascript Ninja code. So we're just overriding all events now.\r\n if (!event || !event.isPropagationStopped) {\r\n var old = event || _globalWindow2['default'].event;\r\n\r\n event = {};\r\n // Clone the old object so that we can modify the values event = {};\r\n // IE8 Doesn't like when you mess with native event properties\r\n // Firefox returns false for event.hasOwnProperty('type') and other props\r\n // which makes copying more difficult.\r\n // TODO: Probably best to create a whitelist of event props\r\n for (var key in old) {\r\n // Safari 6.0.3 warns you if you try to copy deprecated layerX/Y\r\n // Chrome warns you if you try to copy deprecated keyboardEvent.keyLocation\r\n // and webkitMovementX/Y\r\n if (key !== 'layerX' && key !== 'layerY' && key !== 'keyLocation' && key !== 'webkitMovementX' && key !== 'webkitMovementY') {\r\n // Chrome 32+ warns if you try to copy deprecated returnValue, but\r\n // we still want to if preventDefault isn't supported (IE8).\r\n if (!(key === 'returnValue' && old.preventDefault)) {\r\n event[key] = old[key];\r\n }\r\n }\r\n }\r\n\r\n // The event occurred on this element\r\n if (!event.target) {\r\n event.target = event.srcElement || _globalDocument2['default'];\r\n }\r\n\r\n // Handle which other element the event is related to\r\n if (!event.relatedTarget) {\r\n event.relatedTarget = event.fromElement === event.target ? event.toElement : event.fromElement;\r\n }\r\n\r\n // Stop the default browser action\r\n event.preventDefault = function () {\r\n if (old.preventDefault) {\r\n old.preventDefault();\r\n }\r\n event.returnValue = false;\r\n old.returnValue = false;\r\n event.defaultPrevented = true;\r\n };\r\n\r\n event.defaultPrevented = false;\r\n\r\n // Stop the event from bubbling\r\n event.stopPropagation = function () {\r\n if (old.stopPropagation) {\r\n old.stopPropagation();\r\n }\r\n event.cancelBubble = true;\r\n old.cancelBubble = true;\r\n event.isPropagationStopped = returnTrue;\r\n };\r\n\r\n event.isPropagationStopped = returnFalse;\r\n\r\n // Stop the event from bubbling and executing other handlers\r\n event.stopImmediatePropagation = function () {\r\n if (old.stopImmediatePropagation) {\r\n old.stopImmediatePropagation();\r\n }\r\n event.isImmediatePropagationStopped = returnTrue;\r\n event.stopPropagation();\r\n };\r\n\r\n event.isImmediatePropagationStopped = returnFalse;\r\n\r\n // Handle mouse position\r\n if (event.clientX != null) {\r\n var doc = _globalDocument2['default'].documentElement,\r\n body = _globalDocument2['default'].body;\r\n\r\n event.pageX = event.clientX + (doc && doc.scrollLeft || body && body.scrollLeft || 0) - (doc && doc.clientLeft || body && body.clientLeft || 0);\r\n event.pageY = event.clientY + (doc && doc.scrollTop || body && body.scrollTop || 0) - (doc && doc.clientTop || body && body.clientTop || 0);\r\n }\r\n\r\n // Handle key presses\r\n event.which = event.charCode || event.keyCode;\r\n\r\n // Fix button for mouse clicks:\r\n // 0 == left; 1 == middle; 2 == right\r\n if (event.button != null) {\r\n event.button = event.button & 1 ? 0 : event.button & 4 ? 1 : event.button & 2 ? 2 : 0;\r\n }\r\n }\r\n\r\n // Returns fixed-up instance\r\n return event;\r\n}\r\n\r\n/**\r\n * Clean up the listener cache and dispatchers\r\n*\r\n * @param {Element|Object} elem Element to clean up\r\n * @param {String} type Type of event to clean up\r\n * @private\r\n * @method _cleanUpEvents\r\n */\r\nfunction _cleanUpEvents(elem, type) {\r\n var data = Dom.getElData(elem);\r\n\r\n // Remove the events of a particular type if there are none left\r\n if (data.handlers[type].length === 0) {\r\n delete data.handlers[type];\r\n // data.handlers[type] = null;\r\n // Setting to null was causing an error with data.handlers\r\n\r\n // Remove the meta-handler from the element\r\n if (elem.removeEventListener) {\r\n elem.removeEventListener(type, data.dispatcher, false);\r\n } else if (elem.detachEvent) {\r\n elem.detachEvent('on' + type, data.dispatcher);\r\n }\r\n }\r\n\r\n // Remove the events object if there are no types left\r\n if (Object.getOwnPropertyNames(data.handlers).length <= 0) {\r\n delete data.handlers;\r\n delete data.dispatcher;\r\n delete data.disabled;\r\n }\r\n\r\n // Finally remove the element data if there is no data left\r\n if (Object.getOwnPropertyNames(data).length === 0) {\r\n Dom.removeElData(elem);\r\n }\r\n}\r\n\r\n/**\r\n * Loops through an array of event types and calls the requested method for each type.\r\n *\r\n * @param {Function} fn The event method we want to use.\r\n * @param {Element|Object} elem Element or object to bind listeners to\r\n * @param {String} type Type of event to bind to.\r\n * @param {Function} callback Event listener.\r\n * @private\r\n * @function _handleMultipleEvents\r\n */\r\nfunction _handleMultipleEvents(fn, elem, types, callback) {\r\n types.forEach(function (type) {\r\n //Call the event method for each one of the types\r\n fn(elem, type, callback);\r\n });\r\n}\r\n\r\n},{\"./dom.js\":134,\"./guid.js\":138,\"global/document\":1,\"global/window\":2}],136:[function(_dereq_,module,exports){\r\n/**\r\n * @file fn.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nvar _guidJs = _dereq_('./guid.js');\r\n\r\n/**\r\n * Bind (a.k.a proxy or Context). A simple method for changing the context of a function\r\n * It also stores a unique id on the function so it can be easily removed from events\r\n *\r\n * @param {*} context The object to bind as scope\r\n * @param {Function} fn The function to be bound to a scope\r\n * @param {Number=} uid An optional unique ID for the function to be set\r\n * @return {Function}\r\n * @private\r\n * @method bind\r\n */\r\nvar bind = function bind(context, fn, uid) {\r\n // Make sure the function has a unique ID\r\n if (!fn.guid) {\r\n fn.guid = _guidJs.newGUID();\r\n }\r\n\r\n // Create the new function that changes the context\r\n var ret = function ret() {\r\n return fn.apply(context, arguments);\r\n };\r\n\r\n // Allow for the ability to individualize this function\r\n // Needed in the case where multiple objects might share the same prototype\r\n // IF both items add an event listener with the same function, then you try to remove just one\r\n // it will remove both because they both have the same guid.\r\n // when using this, you need to use the bind method when you remove the listener as well.\r\n // currently used in text tracks\r\n ret.guid = uid ? uid + '_' + fn.guid : fn.guid;\r\n\r\n return ret;\r\n};\r\nexports.bind = bind;\r\n\r\n},{\"./guid.js\":138}],137:[function(_dereq_,module,exports){\r\n/**\r\n * @file format-time.js\r\n *\r\n * Format seconds as a time string, H:MM:SS or M:SS\r\n * Supplying a guide (in seconds) will force a number of leading zeros\r\n * to cover the length of the guide\r\n *\r\n * @param {Number} seconds Number of seconds to be turned into a string\r\n * @param {Number} guide Number (in seconds) to model the string after\r\n * @return {String} Time formatted as H:MM:SS or M:SS\r\n * @private\r\n * @function formatTime\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\nfunction formatTime(seconds) {\r\n var guide = arguments.length <= 1 || arguments[1] === undefined ? seconds : arguments[1];\r\n return (function () {\r\n seconds = seconds < 0 ? 0 : seconds;\r\n var s = Math.floor(seconds % 60);\r\n var m = Math.floor(seconds / 60 % 60);\r\n var h = Math.floor(seconds / 3600);\r\n var gm = Math.floor(guide / 60 % 60);\r\n var gh = Math.floor(guide / 3600);\r\n\r\n // handle invalid times\r\n if (isNaN(seconds) || seconds === Infinity) {\r\n // '-' is false for all relational operators (e.g. <, >=) so this setting\r\n // will add the minimum number of fields specified by the guide\r\n h = m = s = '-';\r\n }\r\n\r\n // Check if we need to show hours\r\n h = h > 0 || gh > 0 ? h + ':' : '';\r\n\r\n // If hours are showing, we may need to add a leading zero.\r\n // Always show at least one digit of minutes.\r\n m = ((h || gm >= 10) && m < 10 ? '0' + m : m) + ':';\r\n\r\n // Check if leading zero is need for seconds\r\n s = s < 10 ? '0' + s : s;\r\n\r\n return h + m + s;\r\n })();\r\n}\r\n\r\nexports['default'] = formatTime;\r\nmodule.exports = exports['default'];\r\n\r\n},{}],138:[function(_dereq_,module,exports){\r\n/**\r\n * @file guid.js\r\n *\r\n * Unique ID for an element or function\r\n * @type {Number}\r\n * @private\r\n */\r\n\"use strict\";\r\n\r\nexports.__esModule = true;\r\nexports.newGUID = newGUID;\r\nvar _guid = 1;\r\n\r\n/**\r\n * Get the next unique ID\r\n *\r\n * @return {String} \r\n * @function newGUID\r\n */\r\n\r\nfunction newGUID() {\r\n return _guid++;\r\n}\r\n\r\n},{}],139:[function(_dereq_,module,exports){\r\n/**\r\n * @file log.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\n/**\r\n * Log plain debug messages\r\n */\r\nvar log = function log() {\r\n _logType(null, arguments);\r\n};\r\n\r\n/**\r\n * Keep a history of log messages\r\n * @type {Array}\r\n */\r\nlog.history = [];\r\n\r\n/**\r\n * Log error messages\r\n */\r\nlog.error = function () {\r\n _logType('error', arguments);\r\n};\r\n\r\n/**\r\n * Log warning messages\r\n */\r\nlog.warn = function () {\r\n _logType('warn', arguments);\r\n};\r\n\r\n/**\r\n * Log messages to the console and history based on the type of message\r\n *\r\n * @param {String} type The type of message, or `null` for `log`\r\n * @param {Object} args The args to be passed to the log\r\n * @private\r\n * @method _logType\r\n */\r\nfunction _logType(type, args) {\r\n // convert args to an array to get array functions\r\n var argsArray = Array.prototype.slice.call(args);\r\n // if there's no console then don't try to output messages\r\n // they will still be stored in log.history\r\n // Was setting these once outside of this function, but containing them\r\n // in the function makes it easier to test cases where console doesn't exist\r\n var noop = function noop() {};\r\n\r\n var console = _globalWindow2['default']['console'] || {\r\n 'log': noop,\r\n 'warn': noop,\r\n 'error': noop\r\n };\r\n\r\n if (type) {\r\n // add the type to the front of the message\r\n argsArray.unshift(type.toUpperCase() + ':');\r\n } else {\r\n // default to log with no prefix\r\n type = 'log';\r\n }\r\n\r\n // add to history\r\n log.history.push(argsArray);\r\n\r\n // add console prefix after adding to history\r\n argsArray.unshift('VIDEOJS:');\r\n\r\n // call appropriate log function\r\n if (console[type].apply) {\r\n console[type].apply(console, argsArray);\r\n } else {\r\n // ie8 doesn't allow error.apply, but it will just join() the array anyway\r\n console[type](argsArray.join(' '));\r\n }\r\n}\r\n\r\nexports['default'] = log;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"global/window\":2}],140:[function(_dereq_,module,exports){\r\n/**\r\n * @file merge-options.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\nexports['default'] = mergeOptions;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');\r\n\r\nvar _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);\r\n\r\nfunction isPlain(obj) {\r\n return !!obj && typeof obj === 'object' && obj.toString() === '[object Object]' && obj.constructor === Object;\r\n}\r\n\r\n/**\r\n * Merge customizer. video.js simply overwrites non-simple objects\r\n * (like arrays) instead of attempting to overlay them.\r\n * @see https://lodash.com/docs#merge\r\n */\r\nvar customizer = function customizer(destination, source) {\r\n // If we're not working with a plain object, copy the value as is\r\n // If source is an array, for instance, it will replace destination\r\n if (!isPlain(source)) {\r\n return source;\r\n }\r\n\r\n // If the new value is a plain object but the first object value is not\r\n // we need to create a new object for the first object to merge with.\r\n // This makes it consistent with how merge() works by default\r\n // and also protects from later changes the to first object affecting\r\n // the second object's values.\r\n if (!isPlain(destination)) {\r\n return mergeOptions(source);\r\n }\r\n};\r\n\r\n/**\r\n * Merge one or more options objects, recursively merging **only**\r\n * plain object properties. Previously `deepMerge`.\r\n *\r\n * @param {...Object} source One or more objects to merge\r\n * @returns {Object} a new object that is the union of all\r\n * provided objects\r\n * @function mergeOptions\r\n */\r\n\r\nfunction mergeOptions() {\r\n // contruct the call dynamically to handle the variable number of\r\n // objects to merge\r\n var args = Array.prototype.slice.call(arguments);\r\n\r\n // unshift an empty object into the front of the call as the target\r\n // of the merge\r\n args.unshift({});\r\n\r\n // customize conflict resolution to match our historical merge behavior\r\n args.push(customizer);\r\n\r\n _lodashCompatObjectMerge2['default'].apply(null, args);\r\n\r\n // return the mutated result object\r\n return args[0];\r\n}\r\n\r\nmodule.exports = exports['default'];\r\n\r\n},{\"lodash-compat/object/merge\":40}],141:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar createStyleElement = function createStyleElement(className) {\r\n var style = _globalDocument2['default'].createElement('style');\r\n style.className = className;\r\n\r\n return style;\r\n};\r\n\r\nexports.createStyleElement = createStyleElement;\r\nvar setTextContent = function setTextContent(el, content) {\r\n if (el.styleSheet) {\r\n el.styleSheet.cssText = content;\r\n } else {\r\n el.textContent = content;\r\n }\r\n};\r\nexports.setTextContent = setTextContent;\r\n\r\n},{\"global/document\":1}],142:[function(_dereq_,module,exports){\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\nexports.createTimeRanges = createTimeRanges;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _logJs = _dereq_('./log.js');\r\n\r\nvar _logJs2 = _interopRequireDefault(_logJs);\r\n\r\n/**\r\n * @file time-ranges.js\r\n *\r\n * Should create a fake TimeRange object\r\n * Mimics an HTML5 time range instance, which has functions that\r\n * return the start and end times for a range\r\n * TimeRanges are returned by the buffered() method\r\n *\r\n * @param {(Number|Array)} Start of a single range or an array of ranges\r\n * @param {Number} End of a single range\r\n * @private\r\n * @method createTimeRanges\r\n */\r\n\r\nfunction createTimeRanges(start, end) {\r\n if (Array.isArray(start)) {\r\n return createTimeRangesObj(start);\r\n } else if (start === undefined || end === undefined) {\r\n return createTimeRangesObj();\r\n }\r\n return createTimeRangesObj([[start, end]]);\r\n}\r\n\r\nexports.createTimeRange = createTimeRanges;\r\n\r\nfunction createTimeRangesObj(ranges) {\r\n if (ranges === undefined || ranges.length === 0) {\r\n return {\r\n length: 0,\r\n start: function start() {\r\n throw new Error('This TimeRanges object is empty');\r\n },\r\n end: function end() {\r\n throw new Error('This TimeRanges object is empty');\r\n }\r\n };\r\n }\r\n return {\r\n length: ranges.length,\r\n start: getRange.bind(null, 'start', 0, ranges),\r\n end: getRange.bind(null, 'end', 1, ranges)\r\n };\r\n}\r\n\r\nfunction getRange(fnName, valueIndex, ranges, rangeIndex) {\r\n if (rangeIndex === undefined) {\r\n _logJs2['default'].warn('DEPRECATED: Function \\'' + fnName + '\\' on \\'TimeRanges\\' called without an index argument.');\r\n rangeIndex = 0;\r\n }\r\n rangeCheck(fnName, rangeIndex, ranges.length - 1);\r\n return ranges[rangeIndex][valueIndex];\r\n}\r\n\r\nfunction rangeCheck(fnName, index, maxIndex) {\r\n if (index < 0 || index > maxIndex) {\r\n throw new Error('Failed to execute \\'' + fnName + '\\' on \\'TimeRanges\\': The index provided (' + index + ') is greater than or equal to the maximum bound (' + maxIndex + ').');\r\n }\r\n}\r\n\r\n},{\"./log.js\":139}],143:[function(_dereq_,module,exports){\r\n/**\r\n * @file to-title-case.js\r\n *\r\n * Uppercase the first letter of a string\r\n *\r\n * @param {String} string String to be uppercased\r\n * @return {String}\r\n * @private\r\n * @method toTitleCase\r\n */\r\n\"use strict\";\r\n\r\nexports.__esModule = true;\r\nfunction toTitleCase(string) {\r\n return string.charAt(0).toUpperCase() + string.slice(1);\r\n}\r\n\r\nexports[\"default\"] = toTitleCase;\r\nmodule.exports = exports[\"default\"];\r\n\r\n},{}],144:[function(_dereq_,module,exports){\r\n/**\r\n * @file url.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\n/**\r\n * Resolve and parse the elements of a URL\r\n *\r\n * @param {String} url The url to parse\r\n * @return {Object} An object of url details\r\n * @method parseUrl\r\n */\r\nvar parseUrl = function parseUrl(url) {\r\n var props = ['protocol', 'hostname', 'port', 'pathname', 'search', 'hash', 'host'];\r\n\r\n // add the url to an anchor and let the browser parse the URL\r\n var a = _globalDocument2['default'].createElement('a');\r\n a.href = url;\r\n\r\n // IE8 (and 9?) Fix\r\n // ie8 doesn't parse the URL correctly until the anchor is actually\r\n // added to the body, and an innerHTML is needed to trigger the parsing\r\n var addToBody = a.host === '' && a.protocol !== 'file:';\r\n var div = undefined;\r\n if (addToBody) {\r\n div = _globalDocument2['default'].createElement('div');\r\n div.innerHTML = '';\r\n a = div.firstChild;\r\n // prevent the div from affecting layout\r\n div.setAttribute('style', 'display:none; position:absolute;');\r\n _globalDocument2['default'].body.appendChild(div);\r\n }\r\n\r\n // Copy the specific URL properties to a new object\r\n // This is also needed for IE8 because the anchor loses its\r\n // properties when it's removed from the dom\r\n var details = {};\r\n for (var i = 0; i < props.length; i++) {\r\n details[props[i]] = a[props[i]];\r\n }\r\n\r\n // IE9 adds the port to the host property unlike everyone else. If\r\n // a port identifier is added for standard ports, strip it.\r\n if (details.protocol === 'http:') {\r\n details.host = details.host.replace(/:80$/, '');\r\n }\r\n if (details.protocol === 'https:') {\r\n details.host = details.host.replace(/:443$/, '');\r\n }\r\n\r\n if (addToBody) {\r\n _globalDocument2['default'].body.removeChild(div);\r\n }\r\n\r\n return details;\r\n};\r\n\r\nexports.parseUrl = parseUrl;\r\n/**\r\n * Get absolute version of relative URL. Used to tell flash correct URL.\r\n * http://stackoverflow.com/questions/470832/getting-an-absolute-url-from-a-relative-one-ie6-issue\r\n *\r\n * @param {String} url URL to make absolute\r\n * @return {String} Absolute URL\r\n * @private\r\n * @method getAbsoluteURL\r\n */\r\nvar getAbsoluteURL = function getAbsoluteURL(url) {\r\n // Check if absolute URL\r\n if (!url.match(/^https?:\\/\\//)) {\r\n // Convert to absolute URL. Flash hosted off-site needs an absolute URL.\r\n var div = _globalDocument2['default'].createElement('div');\r\n div.innerHTML = 'x';\r\n url = div.firstChild.href;\r\n }\r\n\r\n return url;\r\n};\r\n\r\nexports.getAbsoluteURL = getAbsoluteURL;\r\n/**\r\n * Returns the extension of the passed file name. It will return an empty string if you pass an invalid path\r\n *\r\n * @param {String} path The fileName path like '/path/to/file.mp4'\r\n * @returns {String} The extension in lower case or an empty string if no extension could be found.\r\n * @method getFileExtension\r\n */\r\nvar getFileExtension = function getFileExtension(path) {\r\n if (typeof path === 'string') {\r\n var splitPathRe = /^(\\/?)([\\s\\S]*?)((?:\\.{1,2}|[^\\/]+?)(\\.([^\\.\\/\\?]+)))(?:[\\/]*|[\\?].*)$/i;\r\n var pathParts = splitPathRe.exec(path);\r\n\r\n if (pathParts) {\r\n return pathParts.pop().toLowerCase();\r\n }\r\n }\r\n\r\n return '';\r\n};\r\n\r\nexports.getFileExtension = getFileExtension;\r\n/**\r\n * Returns whether the url passed is a cross domain request or not.\r\n *\r\n * @param {String} url The url to check\r\n * @return {Boolean} Whether it is a cross domain request or not\r\n * @method isCrossOrigin\r\n */\r\nvar isCrossOrigin = function isCrossOrigin(url) {\r\n var winLoc = _globalWindow2['default'].location;\r\n var urlInfo = parseUrl(url);\r\n\r\n // IE8 protocol relative urls will return ':' for protocol\r\n var srcProtocol = urlInfo.protocol === ':' ? winLoc.protocol : urlInfo.protocol;\r\n\r\n // Check if url is for another domain/origin\r\n // IE8 doesn't know location.origin, so we won't rely on it here\r\n var crossOrigin = srcProtocol + urlInfo.host !== winLoc.protocol + winLoc.host;\r\n\r\n return crossOrigin;\r\n};\r\nexports.isCrossOrigin = isCrossOrigin;\r\n\r\n},{\"global/document\":1,\"global/window\":2}],145:[function(_dereq_,module,exports){\r\n/**\r\n * @file video.js\r\n */\r\n'use strict';\r\n\r\nexports.__esModule = true;\r\n\r\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; } }\r\n\r\nfunction _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { 'default': obj }; }\r\n\r\nvar _globalWindow = _dereq_('global/window');\r\n\r\nvar _globalWindow2 = _interopRequireDefault(_globalWindow);\r\n\r\nvar _globalDocument = _dereq_('global/document');\r\n\r\nvar _globalDocument2 = _interopRequireDefault(_globalDocument);\r\n\r\nvar _setup = _dereq_('./setup');\r\n\r\nvar setup = _interopRequireWildcard(_setup);\r\n\r\nvar _utilsStylesheetJs = _dereq_('./utils/stylesheet.js');\r\n\r\nvar stylesheet = _interopRequireWildcard(_utilsStylesheetJs);\r\n\r\nvar _component = _dereq_('./component');\r\n\r\nvar _component2 = _interopRequireDefault(_component);\r\n\r\nvar _eventTarget = _dereq_('./event-target');\r\n\r\nvar _eventTarget2 = _interopRequireDefault(_eventTarget);\r\n\r\nvar _utilsEventsJs = _dereq_('./utils/events.js');\r\n\r\nvar Events = _interopRequireWildcard(_utilsEventsJs);\r\n\r\nvar _player = _dereq_('./player');\r\n\r\nvar _player2 = _interopRequireDefault(_player);\r\n\r\nvar _pluginsJs = _dereq_('./plugins.js');\r\n\r\nvar _pluginsJs2 = _interopRequireDefault(_pluginsJs);\r\n\r\nvar _srcJsUtilsMergeOptionsJs = _dereq_('../../src/js/utils/merge-options.js');\r\n\r\nvar _srcJsUtilsMergeOptionsJs2 = _interopRequireDefault(_srcJsUtilsMergeOptionsJs);\r\n\r\nvar _utilsFnJs = _dereq_('./utils/fn.js');\r\n\r\nvar Fn = _interopRequireWildcard(_utilsFnJs);\r\n\r\nvar _tracksTextTrackJs = _dereq_('./tracks/text-track.js');\r\n\r\nvar _tracksTextTrackJs2 = _interopRequireDefault(_tracksTextTrackJs);\r\n\r\nvar _objectAssign = _dereq_('object.assign');\r\n\r\nvar _objectAssign2 = _interopRequireDefault(_objectAssign);\r\n\r\nvar _utilsTimeRangesJs = _dereq_('./utils/time-ranges.js');\r\n\r\nvar _utilsFormatTimeJs = _dereq_('./utils/format-time.js');\r\n\r\nvar _utilsFormatTimeJs2 = _interopRequireDefault(_utilsFormatTimeJs);\r\n\r\nvar _utilsLogJs = _dereq_('./utils/log.js');\r\n\r\nvar _utilsLogJs2 = _interopRequireDefault(_utilsLogJs);\r\n\r\nvar _utilsDomJs = _dereq_('./utils/dom.js');\r\n\r\nvar Dom = _interopRequireWildcard(_utilsDomJs);\r\n\r\nvar _utilsBrowserJs = _dereq_('./utils/browser.js');\r\n\r\nvar browser = _interopRequireWildcard(_utilsBrowserJs);\r\n\r\nvar _utilsUrlJs = _dereq_('./utils/url.js');\r\n\r\nvar Url = _interopRequireWildcard(_utilsUrlJs);\r\n\r\nvar _extendJs = _dereq_('./extend.js');\r\n\r\nvar _extendJs2 = _interopRequireDefault(_extendJs);\r\n\r\nvar _lodashCompatObjectMerge = _dereq_('lodash-compat/object/merge');\r\n\r\nvar _lodashCompatObjectMerge2 = _interopRequireDefault(_lodashCompatObjectMerge);\r\n\r\nvar _utilsCreateDeprecationProxyJs = _dereq_('./utils/create-deprecation-proxy.js');\r\n\r\nvar _utilsCreateDeprecationProxyJs2 = _interopRequireDefault(_utilsCreateDeprecationProxyJs);\r\n\r\nvar _xhr = _dereq_('xhr');\r\n\r\nvar _xhr2 = _interopRequireDefault(_xhr);\r\n\r\n// Include the built-in techs\r\n\r\nvar _techTechJs = _dereq_('./tech/tech.js');\r\n\r\nvar _techTechJs2 = _interopRequireDefault(_techTechJs);\r\n\r\nvar _techHtml5Js = _dereq_('./tech/html5.js');\r\n\r\nvar _techHtml5Js2 = _interopRequireDefault(_techHtml5Js);\r\n\r\nvar _techFlashJs = _dereq_('./tech/flash.js');\r\n\r\nvar _techFlashJs2 = _interopRequireDefault(_techFlashJs);\r\n\r\n// HTML5 Element Shim for IE8\r\nif (typeof HTMLVideoElement === 'undefined') {\r\n _globalDocument2['default'].createElement('video');\r\n _globalDocument2['default'].createElement('audio');\r\n _globalDocument2['default'].createElement('track');\r\n}\r\n\r\n/**\r\n * Doubles as the main function for users to create a player instance and also\r\n * the main library object.\r\n * The `videojs` function can be used to initialize or retrieve a player.\r\n * ```js\r\n * var myPlayer = videojs('my_video_id');\r\n * ```\r\n *\r\n * @param {String|Element} id Video element or video element ID\r\n * @param {Object=} options Optional options object for config/settings\r\n * @param {Function=} ready Optional ready callback\r\n * @return {Player} A player instance\r\n * @mixes videojs\r\n * @method videojs\r\n */\r\nvar videojs = function videojs(id, options, ready) {\r\n var tag = undefined; // Element of ID\r\n\r\n // Allow for element or ID to be passed in\r\n // String ID\r\n if (typeof id === 'string') {\r\n\r\n // Adjust for jQuery ID syntax\r\n if (id.indexOf('#') === 0) {\r\n id = id.slice(1);\r\n }\r\n\r\n // If a player instance has already been created for this ID return it.\r\n if (videojs.getPlayers()[id]) {\r\n\r\n // If options or ready funtion are passed, warn\r\n if (options) {\r\n _utilsLogJs2['default'].warn('Player \"' + id + '\" is already initialised. Options will not be applied.');\r\n }\r\n\r\n if (ready) {\r\n videojs.getPlayers()[id].ready(ready);\r\n }\r\n\r\n return videojs.getPlayers()[id];\r\n\r\n // Otherwise get element for ID\r\n } else {\r\n tag = Dom.getEl(id);\r\n }\r\n\r\n // ID is a media element\r\n } else {\r\n tag = id;\r\n }\r\n\r\n // Check for a useable element\r\n if (!tag || !tag.nodeName) {\r\n // re: nodeName, could be a box div also\r\n throw new TypeError('The element or ID supplied is not valid. (videojs)'); // Returns\r\n }\r\n\r\n // Element may have a player attr referring to an already created player instance.\r\n // If not, set up a new player and return the instance.\r\n return tag['player'] || _player2['default'].players[tag.playerId] || new _player2['default'](tag, options, ready);\r\n};\r\n\r\n// Add default styles\r\nif (_globalWindow2['default'].VIDEOJS_NO_DYNAMIC_STYLE !== true) {\r\n var style = Dom.$('.vjs-styles-defaults');\r\n\r\n if (!style) {\r\n style = stylesheet.createStyleElement('vjs-styles-defaults');\r\n var head = Dom.$('head');\r\n head.insertBefore(style, head.firstChild);\r\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 ');\r\n }\r\n}\r\n\r\n// Run Auto-load players\r\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)\r\nsetup.autoSetupTimeout(1, videojs);\r\n\r\n/*\r\n * Current software version (semver)\r\n *\r\n * @type {String}\r\n */\r\nvideojs.VERSION = '5.9.0';\r\n\r\n/**\r\n * The global options object. These are the settings that take effect\r\n * if no overrides are specified when the player is created.\r\n *\r\n * ```js\r\n * videojs.options.autoplay = true\r\n * // -> all players will autoplay by default\r\n * ```\r\n *\r\n * @type {Object}\r\n */\r\nvideojs.options = _player2['default'].prototype.options_;\r\n\r\n/**\r\n * Get an object with the currently created players, keyed by player ID\r\n *\r\n * @return {Object} The created players\r\n * @mixes videojs\r\n * @method getPlayers\r\n */\r\nvideojs.getPlayers = function () {\r\n return _player2['default'].players;\r\n};\r\n\r\n/**\r\n * For backward compatibility, expose players object.\r\n *\r\n * @deprecated\r\n * @memberOf videojs\r\n * @property {Object|Proxy} players\r\n */\r\nvideojs.players = _utilsCreateDeprecationProxyJs2['default'](_player2['default'].players, {\r\n get: 'Access to videojs.players is deprecated; use videojs.getPlayers instead',\r\n set: 'Modification of videojs.players is deprecated'\r\n});\r\n\r\n/**\r\n * Get a component class object by name\r\n * ```js\r\n * var VjsButton = videojs.getComponent('Button');\r\n * // Create a new instance of the component\r\n * var myButton = new VjsButton(myPlayer);\r\n * ```\r\n *\r\n * @return {Component} Component identified by name\r\n * @mixes videojs\r\n * @method getComponent\r\n */\r\nvideojs.getComponent = _component2['default'].getComponent;\r\n\r\n/**\r\n * Register a component so it can referred to by name\r\n * Used when adding to other\r\n * components, either through addChild\r\n * `component.addChild('myComponent')`\r\n * or through default children options\r\n * `{ children: ['myComponent'] }`.\r\n * ```js\r\n * // Get a component to subclass\r\n * var VjsButton = videojs.getComponent('Button');\r\n * // Subclass the component (see 'extend' doc for more info)\r\n * var MySpecialButton = videojs.extend(VjsButton, {});\r\n * // Register the new component\r\n * VjsButton.registerComponent('MySepcialButton', MySepcialButton);\r\n * // (optionally) add the new component as a default player child\r\n * myPlayer.addChild('MySepcialButton');\r\n * ```\r\n * NOTE: You could also just initialize the component before adding.\r\n * `component.addChild(new MyComponent());`\r\n *\r\n * @param {String} The class name of the component\r\n * @param {Component} The component class\r\n * @return {Component} The newly registered component\r\n * @mixes videojs\r\n * @method registerComponent\r\n */\r\nvideojs.registerComponent = function (name, comp) {\r\n if (_techTechJs2['default'].isTech(comp)) {\r\n _utilsLogJs2['default'].warn('The ' + name + ' tech was registered as a component. It should instead be registered using videojs.registerTech(name, tech)');\r\n }\r\n\r\n _component2['default'].registerComponent.call(_component2['default'], name, comp);\r\n};\r\n\r\n/**\r\n * Get a Tech class object by name\r\n * ```js\r\n * var Html5 = videojs.getTech('Html5');\r\n * // Create a new instance of the component\r\n * var html5 = new Html5(options);\r\n * ```\r\n *\r\n * @return {Tech} Tech identified by name\r\n * @mixes videojs\r\n * @method getComponent\r\n */\r\nvideojs.getTech = _techTechJs2['default'].getTech;\r\n\r\n/**\r\n * Register a Tech so it can referred to by name.\r\n * This is used in the tech order for the player.\r\n *\r\n * ```js\r\n * // get the Html5 Tech\r\n * var Html5 = videojs.getTech('Html5');\r\n * var MyTech = videojs.extend(Html5, {});\r\n * // Register the new Tech\r\n * VjsButton.registerTech('Tech', MyTech);\r\n * var player = videojs('myplayer', {\r\n * techOrder: ['myTech', 'html5']\r\n * });\r\n * ```\r\n *\r\n * @param {String} The class name of the tech\r\n * @param {Tech} The tech class\r\n * @return {Tech} The newly registered Tech\r\n * @mixes videojs\r\n * @method registerTech\r\n */\r\nvideojs.registerTech = _techTechJs2['default'].registerTech;\r\n\r\n/**\r\n * A suite of browser and device tests\r\n *\r\n * @type {Object}\r\n * @private\r\n */\r\nvideojs.browser = browser;\r\n\r\n/**\r\n * Whether or not the browser supports touch events. Included for backward\r\n * compatibility with 4.x, but deprecated. Use `videojs.browser.TOUCH_ENABLED`\r\n * instead going forward.\r\n *\r\n * @deprecated\r\n * @type {Boolean}\r\n */\r\nvideojs.TOUCH_ENABLED = browser.TOUCH_ENABLED;\r\n\r\n/**\r\n * Subclass an existing class\r\n * Mimics ES6 subclassing with the `extend` keyword\r\n * ```js\r\n * // Create a basic javascript 'class'\r\n * function MyClass(name){\r\n * // Set a property at initialization\r\n * this.myName = name;\r\n * }\r\n * // Create an instance method\r\n * MyClass.prototype.sayMyName = function(){\r\n * alert(this.myName);\r\n * };\r\n * // Subclass the exisitng class and change the name\r\n * // when initializing\r\n * var MySubClass = videojs.extend(MyClass, {\r\n * constructor: function(name) {\r\n * // Call the super class constructor for the subclass\r\n * MyClass.call(this, name)\r\n * }\r\n * });\r\n * // Create an instance of the new sub class\r\n * var myInstance = new MySubClass('John');\r\n * myInstance.sayMyName(); // -> should alert \"John\"\r\n * ```\r\n *\r\n * @param {Function} The Class to subclass\r\n * @param {Object} An object including instace methods for the new class\r\n * Optionally including a `constructor` function\r\n * @return {Function} The newly created subclass\r\n * @mixes videojs\r\n * @method extend\r\n */\r\nvideojs.extend = _extendJs2['default'];\r\n\r\n/**\r\n * Merge two options objects recursively\r\n * Performs a deep merge like lodash.merge but **only merges plain objects**\r\n * (not arrays, elements, anything else)\r\n * Other values will be copied directly from the second object.\r\n * ```js\r\n * var defaultOptions = {\r\n * foo: true,\r\n * bar: {\r\n * a: true,\r\n * b: [1,2,3]\r\n * }\r\n * };\r\n * var newOptions = {\r\n * foo: false,\r\n * bar: {\r\n * b: [4,5,6]\r\n * }\r\n * };\r\n * var result = videojs.mergeOptions(defaultOptions, newOptions);\r\n * // result.foo = false;\r\n * // result.bar.a = true;\r\n * // result.bar.b = [4,5,6];\r\n * ```\r\n *\r\n * @param {Object} defaults The options object whose values will be overriden\r\n * @param {Object} overrides The options object with values to override the first\r\n * @param {Object} etc Any number of additional options objects\r\n *\r\n * @return {Object} a new object with the merged values\r\n * @mixes videojs\r\n * @method mergeOptions\r\n */\r\nvideojs.mergeOptions = _srcJsUtilsMergeOptionsJs2['default'];\r\n\r\n/**\r\n * Change the context (this) of a function\r\n *\r\n * videojs.bind(newContext, function(){\r\n * this === newContext\r\n * });\r\n *\r\n * NOTE: as of v5.0 we require an ES5 shim, so you should use the native\r\n * `function(){}.bind(newContext);` instead of this.\r\n *\r\n * @param {*} context The object to bind as scope\r\n * @param {Function} fn The function to be bound to a scope\r\n * @param {Number=} uid An optional unique ID for the function to be set\r\n * @return {Function}\r\n */\r\nvideojs.bind = Fn.bind;\r\n\r\n/**\r\n * Create a Video.js player plugin\r\n * Plugins are only initialized when options for the plugin are included\r\n * in the player options, or the plugin function on the player instance is\r\n * called.\r\n * **See the plugin guide in the docs for a more detailed example**\r\n * ```js\r\n * // Make a plugin that alerts when the player plays\r\n * videojs.plugin('myPlugin', function(myPluginOptions) {\r\n * myPluginOptions = myPluginOptions || {};\r\n *\r\n * var player = this;\r\n * var alertText = myPluginOptions.text || 'Player is playing!'\r\n *\r\n * player.on('play', function(){\r\n * alert(alertText);\r\n * });\r\n * });\r\n * // USAGE EXAMPLES\r\n * // EXAMPLE 1: New player with plugin options, call plugin immediately\r\n * var player1 = videojs('idOne', {\r\n * myPlugin: {\r\n * text: 'Custom text!'\r\n * }\r\n * });\r\n * // Click play\r\n * // --> Should alert 'Custom text!'\r\n * // EXAMPLE 3: New player, initialize plugin later\r\n * var player3 = videojs('idThree');\r\n * // Click play\r\n * // --> NO ALERT\r\n * // Click pause\r\n * // Initialize plugin using the plugin function on the player instance\r\n * player3.myPlugin({\r\n * text: 'Plugin added later!'\r\n * });\r\n * // Click play\r\n * // --> Should alert 'Plugin added later!'\r\n * ```\r\n *\r\n * @param {String} name The plugin name\r\n * @param {Function} fn The plugin function that will be called with options\r\n * @mixes videojs\r\n * @method plugin\r\n */\r\nvideojs.plugin = _pluginsJs2['default'];\r\n\r\n/**\r\n * Adding languages so that they're available to all players.\r\n * ```js\r\n * videojs.addLanguage('es', { 'Hello': 'Hola' });\r\n * ```\r\n *\r\n * @param {String} code The language code or dictionary property\r\n * @param {Object} data The data values to be translated\r\n * @return {Object} The resulting language dictionary object\r\n * @mixes videojs\r\n * @method addLanguage\r\n */\r\nvideojs.addLanguage = function (code, data) {\r\n var _merge;\r\n\r\n code = ('' + code).toLowerCase();\r\n return _lodashCompatObjectMerge2['default'](videojs.options.languages, (_merge = {}, _merge[code] = data, _merge))[code];\r\n};\r\n\r\n/**\r\n * Log debug messages.\r\n *\r\n * @param {...Object} messages One or more messages to log\r\n */\r\nvideojs.log = _utilsLogJs2['default'];\r\n\r\n/**\r\n * Creates an emulated TimeRange object.\r\n *\r\n * @param {Number|Array} start Start time in seconds or an array of ranges\r\n * @param {Number} end End time in seconds\r\n * @return {Object} Fake TimeRange object\r\n * @method createTimeRange\r\n */\r\nvideojs.createTimeRange = videojs.createTimeRanges = _utilsTimeRangesJs.createTimeRanges;\r\n\r\n/**\r\n * Format seconds as a time string, H:MM:SS or M:SS\r\n * Supplying a guide (in seconds) will force a number of leading zeros\r\n * to cover the length of the guide\r\n *\r\n * @param {Number} seconds Number of seconds to be turned into a string\r\n * @param {Number} guide Number (in seconds) to model the string after\r\n * @return {String} Time formatted as H:MM:SS or M:SS\r\n * @method formatTime\r\n */\r\nvideojs.formatTime = _utilsFormatTimeJs2['default'];\r\n\r\n/**\r\n * Resolve and parse the elements of a URL\r\n *\r\n * @param {String} url The url to parse\r\n * @return {Object} An object of url details\r\n * @method parseUrl\r\n */\r\nvideojs.parseUrl = Url.parseUrl;\r\n\r\n/**\r\n * Returns whether the url passed is a cross domain request or not.\r\n *\r\n * @param {String} url The url to check\r\n * @return {Boolean} Whether it is a cross domain request or not\r\n * @method isCrossOrigin\r\n */\r\nvideojs.isCrossOrigin = Url.isCrossOrigin;\r\n\r\n/**\r\n * Event target class.\r\n *\r\n * @type {Function}\r\n */\r\nvideojs.EventTarget = _eventTarget2['default'];\r\n\r\n/**\r\n * Add an event listener to element\r\n * It stores the handler function in a separate cache object\r\n * and adds a generic handler to the element's event,\r\n * along with a unique id (guid) to the element.\r\n *\r\n * @param {Element|Object} elem Element or object to bind listeners to\r\n * @param {String|Array} type Type of event to bind to.\r\n * @param {Function} fn Event listener.\r\n * @method on\r\n */\r\nvideojs.on = Events.on;\r\n\r\n/**\r\n * Trigger a listener only once for an event\r\n *\r\n * @param {Element|Object} elem Element or object to\r\n * @param {String|Array} type Name/type of event\r\n * @param {Function} fn Event handler function\r\n * @method one\r\n */\r\nvideojs.one = Events.one;\r\n\r\n/**\r\n * Removes event listeners from an element\r\n *\r\n * @param {Element|Object} elem Object to remove listeners from\r\n * @param {String|Array=} type Type of listener to remove. Don't include to remove all events from element.\r\n * @param {Function} fn Specific listener to remove. Don't include to remove listeners for an event type.\r\n * @method off\r\n */\r\nvideojs.off = Events.off;\r\n\r\n/**\r\n * Trigger an event for an element\r\n *\r\n * @param {Element|Object} elem Element to trigger an event on\r\n * @param {Event|Object|String} event A string (the type) or an event object with a type attribute\r\n * @param {Object} [hash] data hash to pass along with the event\r\n * @return {Boolean=} Returned only if default was prevented\r\n * @method trigger\r\n */\r\nvideojs.trigger = Events.trigger;\r\n\r\n/**\r\n * A cross-browser XMLHttpRequest wrapper. Here's a simple example:\r\n *\r\n * videojs.xhr({\r\n * body: someJSONString,\r\n * uri: \"/foo\",\r\n * headers: {\r\n * \"Content-Type\": \"application/json\"\r\n * }\r\n * }, function (err, resp, body) {\r\n * // check resp.statusCode\r\n * });\r\n *\r\n * Check out the [full\r\n * documentation](https://github.com/Raynos/xhr/blob/v2.1.0/README.md)\r\n * for more options.\r\n *\r\n * @param {Object} options settings for the request.\r\n * @return {XMLHttpRequest|XDomainRequest} the request object.\r\n * @see https://github.com/Raynos/xhr\r\n */\r\nvideojs.xhr = _xhr2['default'];\r\n\r\n/**\r\n * TextTrack class\r\n *\r\n * @type {Function}\r\n */\r\nvideojs.TextTrack = _tracksTextTrackJs2['default'];\r\n\r\n/**\r\n * Determines, via duck typing, whether or not a value is a DOM element.\r\n *\r\n * @method isEl\r\n * @param {Mixed} value\r\n * @return {Boolean}\r\n */\r\nvideojs.isEl = Dom.isEl;\r\n\r\n/**\r\n * Determines, via duck typing, whether or not a value is a text node.\r\n *\r\n * @method isTextNode\r\n * @param {Mixed} value\r\n * @return {Boolean}\r\n */\r\nvideojs.isTextNode = Dom.isTextNode;\r\n\r\n/**\r\n * Creates an element and applies properties.\r\n *\r\n * @method createEl\r\n * @param {String} [tagName='div'] Name of tag to be created.\r\n * @param {Object} [properties={}] Element properties to be applied.\r\n * @param {Object} [attributes={}] Element attributes to be applied.\r\n * @return {Element}\r\n */\r\nvideojs.createEl = Dom.createEl;\r\n\r\n/**\r\n * Check if an element has a CSS class\r\n *\r\n * @method hasClass\r\n * @param {Element} element Element to check\r\n * @param {String} classToCheck Classname to check\r\n */\r\nvideojs.hasClass = Dom.hasElClass;\r\n\r\n/**\r\n * Add a CSS class name to an element\r\n *\r\n * @method addClass\r\n * @param {Element} element Element to add class name to\r\n * @param {String} classToAdd Classname to add\r\n */\r\nvideojs.addClass = Dom.addElClass;\r\n\r\n/**\r\n * Remove a CSS class name from an element\r\n *\r\n * @method removeClass\r\n * @param {Element} element Element to remove from class name\r\n * @param {String} classToRemove Classname to remove\r\n */\r\nvideojs.removeClass = Dom.removeElClass;\r\n\r\n/**\r\n * Adds or removes a CSS class name on an element depending on an optional\r\n * condition or the presence/absence of the class name.\r\n *\r\n * @method toggleElClass\r\n * @param {Element} element\r\n * @param {String} classToToggle\r\n * @param {Boolean|Function} [predicate]\r\n * Can be a function that returns a Boolean. If `true`, the class\r\n * will be added; if `false`, the class will be removed. If not\r\n * given, the class will be added if not present and vice versa.\r\n */\r\nvideojs.toggleClass = Dom.toggleElClass;\r\n\r\n/**\r\n * Apply attributes to an HTML element.\r\n *\r\n * @method setAttributes\r\n * @param {Element} el Target element.\r\n * @param {Object=} attributes Element attributes to be applied.\r\n */\r\nvideojs.setAttributes = Dom.setElAttributes;\r\n\r\n/**\r\n * Get an element's attribute values, as defined on the HTML tag\r\n * Attributes are not the same as properties. They're defined on the tag\r\n * or with setAttribute (which shouldn't be used with HTML)\r\n * This will return true or false for boolean attributes.\r\n *\r\n * @method getAttributes\r\n * @param {Element} tag Element from which to get tag attributes\r\n * @return {Object}\r\n */\r\nvideojs.getAttributes = Dom.getElAttributes;\r\n\r\n/**\r\n * Empties the contents of an element.\r\n *\r\n * @method emptyEl\r\n * @param {Element} el\r\n * @return {Element}\r\n */\r\nvideojs.emptyEl = Dom.emptyEl;\r\n\r\n/**\r\n * Normalizes and appends content to an element.\r\n *\r\n * The content for an element can be passed in multiple types and\r\n * combinations, whose behavior is as follows:\r\n *\r\n * - String\r\n * Normalized into a text node.\r\n *\r\n * - Element, TextNode\r\n * Passed through.\r\n *\r\n * - Array\r\n * A one-dimensional array of strings, elements, nodes, or functions (which\r\n * return single strings, elements, or nodes).\r\n *\r\n * - Function\r\n * If the sole argument, is expected to produce a string, element,\r\n * node, or array.\r\n *\r\n * @method appendContent\r\n * @param {Element} el\r\n * @param {String|Element|TextNode|Array|Function} content\r\n * @return {Element}\r\n */\r\nvideojs.appendContent = Dom.appendContent;\r\n\r\n/**\r\n * Normalizes and inserts content into an element; this is identical to\r\n * `appendContent()`, except it empties the element first.\r\n *\r\n * The content for an element can be passed in multiple types and\r\n * combinations, whose behavior is as follows:\r\n *\r\n * - String\r\n * Normalized into a text node.\r\n *\r\n * - Element, TextNode\r\n * Passed through.\r\n *\r\n * - Array\r\n * A one-dimensional array of strings, elements, nodes, or functions (which\r\n * return single strings, elements, or nodes).\r\n *\r\n * - Function\r\n * If the sole argument, is expected to produce a string, element,\r\n * node, or array.\r\n *\r\n * @method insertContent\r\n * @param {Element} el\r\n * @param {String|Element|TextNode|Array|Function} content\r\n * @return {Element}\r\n */\r\nvideojs.insertContent = Dom.insertContent;\r\n\r\n/*\r\n * Custom Universal Module Definition (UMD)\r\n *\r\n * Video.js will never be a non-browser lib so we can simplify UMD a bunch and\r\n * still support requirejs and browserify. This also needs to be closure\r\n * compiler compatible, so string keys are used.\r\n */\r\nif (typeof define === 'function' && define['amd']) {\r\n define('videojs', [], function () {\r\n return videojs;\r\n });\r\n\r\n // checking that module is an object too because of umdjs/umd#35\r\n} else if (typeof exports === 'object' && typeof module === 'object') {\r\n module['exports'] = videojs;\r\n }\r\n\r\nexports['default'] = videojs;\r\nmodule.exports = exports['default'];\r\n\r\n},{\"../../src/js/utils/merge-options.js\":140,\"./component\":67,\"./event-target\":101,\"./extend.js\":102,\"./player\":110,\"./plugins.js\":111,\"./setup\":115,\"./tech/flash.js\":118,\"./tech/html5.js\":119,\"./tech/tech.js\":121,\"./tracks/text-track.js\":130,\"./utils/browser.js\":131,\"./utils/create-deprecation-proxy.js\":133,\"./utils/dom.js\":134,\"./utils/events.js\":135,\"./utils/fn.js\":136,\"./utils/format-time.js\":137,\"./utils/log.js\":139,\"./utils/stylesheet.js\":141,\"./utils/time-ranges.js\":142,\"./utils/url.js\":144,\"global/document\":1,\"global/window\":2,\"lodash-compat/object/merge\":40,\"object.assign\":45,\"xhr\":56}]},{},[145])(145)\r\n});\r\n\r\n\r\n//# sourceMappingURL=video.js.map\r\n/* vtt.js - v0.12.1 (https://github.com/mozilla/vtt.js) built on 08-07-2015 */\r\n\r\n(function(root) {\r\n var vttjs = root.vttjs = {};\r\n var cueShim = vttjs.VTTCue;\r\n var regionShim = vttjs.VTTRegion;\r\n var oldVTTCue = root.VTTCue;\r\n var oldVTTRegion = root.VTTRegion;\r\n\r\n vttjs.shim = function() {\r\n vttjs.VTTCue = cueShim;\r\n vttjs.VTTRegion = regionShim;\r\n };\r\n\r\n vttjs.restore = function() {\r\n vttjs.VTTCue = oldVTTCue;\r\n vttjs.VTTRegion = oldVTTRegion;\r\n };\r\n}(this));\r\n\r\n/**\r\n * Copyright 2013 vtt.js Contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n(function(root, vttjs) {\r\n\r\n var autoKeyword = \"auto\";\r\n var directionSetting = {\r\n \"\": true,\r\n \"lr\": true,\r\n \"rl\": true\r\n };\r\n var alignSetting = {\r\n \"start\": true,\r\n \"middle\": true,\r\n \"end\": true,\r\n \"left\": true,\r\n \"right\": true\r\n };\r\n\r\n function findDirectionSetting(value) {\r\n if (typeof value !== \"string\") {\r\n return false;\r\n }\r\n var dir = directionSetting[value.toLowerCase()];\r\n return dir ? value.toLowerCase() : false;\r\n }\r\n\r\n function findAlignSetting(value) {\r\n if (typeof value !== \"string\") {\r\n return false;\r\n }\r\n var align = alignSetting[value.toLowerCase()];\r\n return align ? value.toLowerCase() : false;\r\n }\r\n\r\n function extend(obj) {\r\n var i = 1;\r\n for (; i < arguments.length; i++) {\r\n var cobj = arguments[i];\r\n for (var p in cobj) {\r\n obj[p] = cobj[p];\r\n }\r\n }\r\n\r\n return obj;\r\n }\r\n\r\n function VTTCue(startTime, endTime, text) {\r\n var cue = this;\r\n var isIE8 = (/MSIE\\s8\\.0/).test(navigator.userAgent);\r\n var baseObj = {};\r\n\r\n if (isIE8) {\r\n cue = document.createElement('custom');\r\n } else {\r\n baseObj.enumerable = true;\r\n }\r\n\r\n /**\r\n * Shim implementation specific properties. These properties are not in\r\n * the spec.\r\n */\r\n\r\n // Lets us know when the VTTCue's data has changed in such a way that we need\r\n // to recompute its display state. This lets us compute its display state\r\n // lazily.\r\n cue.hasBeenReset = false;\r\n\r\n /**\r\n * VTTCue and TextTrackCue properties\r\n * http://dev.w3.org/html5/webvtt/#vttcue-interface\r\n */\r\n\r\n var _id = \"\";\r\n var _pauseOnExit = false;\r\n var _startTime = startTime;\r\n var _endTime = endTime;\r\n var _text = text;\r\n var _region = null;\r\n var _vertical = \"\";\r\n var _snapToLines = true;\r\n var _line = \"auto\";\r\n var _lineAlign = \"start\";\r\n var _position = 50;\r\n var _positionAlign = \"middle\";\r\n var _size = 50;\r\n var _align = \"middle\";\r\n\r\n Object.defineProperty(cue,\r\n \"id\", extend({}, baseObj, {\r\n get: function() {\r\n return _id;\r\n },\r\n set: function(value) {\r\n _id = \"\" + value;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"pauseOnExit\", extend({}, baseObj, {\r\n get: function() {\r\n return _pauseOnExit;\r\n },\r\n set: function(value) {\r\n _pauseOnExit = !!value;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"startTime\", extend({}, baseObj, {\r\n get: function() {\r\n return _startTime;\r\n },\r\n set: function(value) {\r\n if (typeof value !== \"number\") {\r\n throw new TypeError(\"Start time must be set to a number.\");\r\n }\r\n _startTime = value;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"endTime\", extend({}, baseObj, {\r\n get: function() {\r\n return _endTime;\r\n },\r\n set: function(value) {\r\n if (typeof value !== \"number\") {\r\n throw new TypeError(\"End time must be set to a number.\");\r\n }\r\n _endTime = value;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"text\", extend({}, baseObj, {\r\n get: function() {\r\n return _text;\r\n },\r\n set: function(value) {\r\n _text = \"\" + value;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"region\", extend({}, baseObj, {\r\n get: function() {\r\n return _region;\r\n },\r\n set: function(value) {\r\n _region = value;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"vertical\", extend({}, baseObj, {\r\n get: function() {\r\n return _vertical;\r\n },\r\n set: function(value) {\r\n var setting = findDirectionSetting(value);\r\n // Have to check for false because the setting an be an empty string.\r\n if (setting === false) {\r\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n }\r\n _vertical = setting;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"snapToLines\", extend({}, baseObj, {\r\n get: function() {\r\n return _snapToLines;\r\n },\r\n set: function(value) {\r\n _snapToLines = !!value;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"line\", extend({}, baseObj, {\r\n get: function() {\r\n return _line;\r\n },\r\n set: function(value) {\r\n if (typeof value !== \"number\" && value !== autoKeyword) {\r\n throw new SyntaxError(\"An invalid number or illegal string was specified.\");\r\n }\r\n _line = value;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"lineAlign\", extend({}, baseObj, {\r\n get: function() {\r\n return _lineAlign;\r\n },\r\n set: function(value) {\r\n var setting = findAlignSetting(value);\r\n if (!setting) {\r\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n }\r\n _lineAlign = setting;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"position\", extend({}, baseObj, {\r\n get: function() {\r\n return _position;\r\n },\r\n set: function(value) {\r\n if (value < 0 || value > 100) {\r\n throw new Error(\"Position must be between 0 and 100.\");\r\n }\r\n _position = value;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"positionAlign\", extend({}, baseObj, {\r\n get: function() {\r\n return _positionAlign;\r\n },\r\n set: function(value) {\r\n var setting = findAlignSetting(value);\r\n if (!setting) {\r\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n }\r\n _positionAlign = setting;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"size\", extend({}, baseObj, {\r\n get: function() {\r\n return _size;\r\n },\r\n set: function(value) {\r\n if (value < 0 || value > 100) {\r\n throw new Error(\"Size must be between 0 and 100.\");\r\n }\r\n _size = value;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n Object.defineProperty(cue,\r\n \"align\", extend({}, baseObj, {\r\n get: function() {\r\n return _align;\r\n },\r\n set: function(value) {\r\n var setting = findAlignSetting(value);\r\n if (!setting) {\r\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n }\r\n _align = setting;\r\n this.hasBeenReset = true;\r\n }\r\n }));\r\n\r\n /**\r\n * Other spec defined properties\r\n */\r\n\r\n // http://www.whatwg.org/specs/web-apps/current-work/multipage/the-video-element.html#text-track-cue-display-state\r\n cue.displayState = undefined;\r\n\r\n if (isIE8) {\r\n return cue;\r\n }\r\n }\r\n\r\n /**\r\n * VTTCue methods\r\n */\r\n\r\n VTTCue.prototype.getCueAsHTML = function() {\r\n // Assume WebVTT.convertCueToDOMTree is on the global.\r\n return WebVTT.convertCueToDOMTree(window, this.text);\r\n };\r\n\r\n root.VTTCue = root.VTTCue || VTTCue;\r\n vttjs.VTTCue = VTTCue;\r\n}(this, (this.vttjs || {})));\r\n\r\n/**\r\n * Copyright 2013 vtt.js Contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n(function(root, vttjs) {\r\n\r\n var scrollSetting = {\r\n \"\": true,\r\n \"up\": true\r\n };\r\n\r\n function findScrollSetting(value) {\r\n if (typeof value !== \"string\") {\r\n return false;\r\n }\r\n var scroll = scrollSetting[value.toLowerCase()];\r\n return scroll ? value.toLowerCase() : false;\r\n }\r\n\r\n function isValidPercentValue(value) {\r\n return typeof value === \"number\" && (value >= 0 && value <= 100);\r\n }\r\n\r\n // VTTRegion shim http://dev.w3.org/html5/webvtt/#vttregion-interface\r\n function VTTRegion() {\r\n var _width = 100;\r\n var _lines = 3;\r\n var _regionAnchorX = 0;\r\n var _regionAnchorY = 100;\r\n var _viewportAnchorX = 0;\r\n var _viewportAnchorY = 100;\r\n var _scroll = \"\";\r\n\r\n Object.defineProperties(this, {\r\n \"width\": {\r\n enumerable: true,\r\n get: function() {\r\n return _width;\r\n },\r\n set: function(value) {\r\n if (!isValidPercentValue(value)) {\r\n throw new Error(\"Width must be between 0 and 100.\");\r\n }\r\n _width = value;\r\n }\r\n },\r\n \"lines\": {\r\n enumerable: true,\r\n get: function() {\r\n return _lines;\r\n },\r\n set: function(value) {\r\n if (typeof value !== \"number\") {\r\n throw new TypeError(\"Lines must be set to a number.\");\r\n }\r\n _lines = value;\r\n }\r\n },\r\n \"regionAnchorY\": {\r\n enumerable: true,\r\n get: function() {\r\n return _regionAnchorY;\r\n },\r\n set: function(value) {\r\n if (!isValidPercentValue(value)) {\r\n throw new Error(\"RegionAnchorX must be between 0 and 100.\");\r\n }\r\n _regionAnchorY = value;\r\n }\r\n },\r\n \"regionAnchorX\": {\r\n enumerable: true,\r\n get: function() {\r\n return _regionAnchorX;\r\n },\r\n set: function(value) {\r\n if(!isValidPercentValue(value)) {\r\n throw new Error(\"RegionAnchorY must be between 0 and 100.\");\r\n }\r\n _regionAnchorX = value;\r\n }\r\n },\r\n \"viewportAnchorY\": {\r\n enumerable: true,\r\n get: function() {\r\n return _viewportAnchorY;\r\n },\r\n set: function(value) {\r\n if (!isValidPercentValue(value)) {\r\n throw new Error(\"ViewportAnchorY must be between 0 and 100.\");\r\n }\r\n _viewportAnchorY = value;\r\n }\r\n },\r\n \"viewportAnchorX\": {\r\n enumerable: true,\r\n get: function() {\r\n return _viewportAnchorX;\r\n },\r\n set: function(value) {\r\n if (!isValidPercentValue(value)) {\r\n throw new Error(\"ViewportAnchorX must be between 0 and 100.\");\r\n }\r\n _viewportAnchorX = value;\r\n }\r\n },\r\n \"scroll\": {\r\n enumerable: true,\r\n get: function() {\r\n return _scroll;\r\n },\r\n set: function(value) {\r\n var setting = findScrollSetting(value);\r\n // Have to check for false as an empty string is a legal value.\r\n if (setting === false) {\r\n throw new SyntaxError(\"An invalid or illegal string was specified.\");\r\n }\r\n _scroll = setting;\r\n }\r\n }\r\n });\r\n }\r\n\r\n root.VTTRegion = root.VTTRegion || VTTRegion;\r\n vttjs.VTTRegion = VTTRegion;\r\n}(this, (this.vttjs || {})));\r\n\r\n/**\r\n * Copyright 2013 vtt.js Contributors\r\n *\r\n * Licensed under the Apache License, Version 2.0 (the \"License\");\r\n * you may not use this file except in compliance with the License.\r\n * You may obtain a copy of the License at\r\n *\r\n * http://www.apache.org/licenses/LICENSE-2.0\r\n *\r\n * Unless required by applicable law or agreed to in writing, software\r\n * distributed under the License is distributed on an \"AS IS\" BASIS,\r\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r\n * See the License for the specific language governing permissions and\r\n * limitations under the License.\r\n */\r\n\r\n/* -*- Mode: Java; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */\r\n/* vim: set shiftwidth=2 tabstop=2 autoindent cindent expandtab: */\r\n\r\n(function(global) {\r\n\r\n var _objCreate = Object.create || (function() {\r\n function F() {}\r\n return function(o) {\r\n if (arguments.length !== 1) {\r\n throw new Error('Object.create shim only accepts one parameter.');\r\n }\r\n F.prototype = o;\r\n return new F();\r\n };\r\n })();\r\n\r\n // Creates a new ParserError object from an errorData object. The errorData\r\n // object should have default code and message properties. The default message\r\n // property can be overriden by passing in a message parameter.\r\n // See ParsingError.Errors below for acceptable errors.\r\n function ParsingError(errorData, message) {\r\n this.name = \"ParsingError\";\r\n this.code = errorData.code;\r\n this.message = message || errorData.message;\r\n }\r\n ParsingError.prototype = _objCreate(Error.prototype);\r\n ParsingError.prototype.constructor = ParsingError;\r\n\r\n // ParsingError metadata for acceptable ParsingErrors.\r\n ParsingError.Errors = {\r\n BadSignature: {\r\n code: 0,\r\n message: \"Malformed WebVTT signature.\"\r\n },\r\n BadTimeStamp: {\r\n code: 1,\r\n message: \"Malformed time stamp.\"\r\n }\r\n };\r\n\r\n // Try to parse input as a time stamp.\r\n function parseTimeStamp(input) {\r\n\r\n function computeSeconds(h, m, s, f) {\r\n return (h | 0) * 3600 + (m | 0) * 60 + (s | 0) + (f | 0) / 1000;\r\n }\r\n\r\n var m = input.match(/^(\\d+):(\\d{2})(:\\d{2})?\\.(\\d{3})/);\r\n if (!m) {\r\n return null;\r\n }\r\n\r\n if (m[3]) {\r\n // Timestamp takes the form of [hours]:[minutes]:[seconds].[milliseconds]\r\n return computeSeconds(m[1], m[2], m[3].replace(\":\", \"\"), m[4]);\r\n } else if (m[1] > 59) {\r\n // Timestamp takes the form of [hours]:[minutes].[milliseconds]\r\n // First position is hours as it's over 59.\r\n return computeSeconds(m[1], m[2], 0, m[4]);\r\n } else {\r\n // Timestamp takes the form of [minutes]:[seconds].[milliseconds]\r\n return computeSeconds(0, m[1], m[2], m[4]);\r\n }\r\n }\r\n\r\n // A settings object holds key/value pairs and will ignore anything but the first\r\n // assignment to a specific key.\r\n function Settings() {\r\n this.values = _objCreate(null);\r\n }\r\n\r\n Settings.prototype = {\r\n // Only accept the first assignment to any key.\r\n set: function(k, v) {\r\n if (!this.get(k) && v !== \"\") {\r\n this.values[k] = v;\r\n }\r\n },\r\n // Return the value for a key, or a default value.\r\n // If 'defaultKey' is passed then 'dflt' is assumed to be an object with\r\n // a number of possible default values as properties where 'defaultKey' is\r\n // the key of the property that will be chosen; otherwise it's assumed to be\r\n // a single value.\r\n get: function(k, dflt, defaultKey) {\r\n if (defaultKey) {\r\n return this.has(k) ? this.values[k] : dflt[defaultKey];\r\n }\r\n return this.has(k) ? this.values[k] : dflt;\r\n },\r\n // Check whether we have a value for a key.\r\n has: function(k) {\r\n return k in this.values;\r\n },\r\n // Accept a setting if its one of the given alternatives.\r\n alt: function(k, v, a) {\r\n for (var n = 0; n < a.length; ++n) {\r\n if (v === a[n]) {\r\n this.set(k, v);\r\n break;\r\n }\r\n }\r\n },\r\n // Accept a setting if its a valid (signed) integer.\r\n integer: function(k, v) {\r\n if (/^-?\\d+$/.test(v)) { // integer\r\n this.set(k, parseInt(v, 10));\r\n }\r\n },\r\n // Accept a setting if its a valid percentage.\r\n percent: function(k, v) {\r\n var m;\r\n if ((m = v.match(/^([\\d]{1,3})(\\.[\\d]*)?%$/))) {\r\n v = parseFloat(v);\r\n if (v >= 0 && v <= 100) {\r\n this.set(k, v);\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n };\r\n\r\n // Helper function to parse input into groups separated by 'groupDelim', and\r\n // interprete each group as a key/value pair separated by 'keyValueDelim'.\r\n function parseOptions(input, callback, keyValueDelim, groupDelim) {\r\n var groups = groupDelim ? input.split(groupDelim) : [input];\r\n for (var i in groups) {\r\n if (typeof groups[i] !== \"string\") {\r\n continue;\r\n }\r\n var kv = groups[i].split(keyValueDelim);\r\n if (kv.length !== 2) {\r\n continue;\r\n }\r\n var k = kv[0];\r\n var v = kv[1];\r\n callback(k, v);\r\n }\r\n }\r\n\r\n function parseCue(input, cue, regionList) {\r\n // Remember the original input if we need to throw an error.\r\n var oInput = input;\r\n // 4.1 WebVTT timestamp\r\n function consumeTimeStamp() {\r\n var ts = parseTimeStamp(input);\r\n if (ts === null) {\r\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\r\n \"Malformed timestamp: \" + oInput);\r\n }\r\n // Remove time stamp from input.\r\n input = input.replace(/^[^\\sa-zA-Z-]+/, \"\");\r\n return ts;\r\n }\r\n\r\n // 4.4.2 WebVTT cue settings\r\n function consumeCueSettings(input, cue) {\r\n var settings = new Settings();\r\n\r\n parseOptions(input, function (k, v) {\r\n switch (k) {\r\n case \"region\":\r\n // Find the last region we parsed with the same region id.\r\n for (var i = regionList.length - 1; i >= 0; i--) {\r\n if (regionList[i].id === v) {\r\n settings.set(k, regionList[i].region);\r\n break;\r\n }\r\n }\r\n break;\r\n case \"vertical\":\r\n settings.alt(k, v, [\"rl\", \"lr\"]);\r\n break;\r\n case \"line\":\r\n var vals = v.split(\",\"),\r\n vals0 = vals[0];\r\n settings.integer(k, vals0);\r\n settings.percent(k, vals0) ? settings.set(\"snapToLines\", false) : null;\r\n settings.alt(k, vals0, [\"auto\"]);\r\n if (vals.length === 2) {\r\n settings.alt(\"lineAlign\", vals[1], [\"start\", \"middle\", \"end\"]);\r\n }\r\n break;\r\n case \"position\":\r\n vals = v.split(\",\");\r\n settings.percent(k, vals[0]);\r\n if (vals.length === 2) {\r\n settings.alt(\"positionAlign\", vals[1], [\"start\", \"middle\", \"end\"]);\r\n }\r\n break;\r\n case \"size\":\r\n settings.percent(k, v);\r\n break;\r\n case \"align\":\r\n settings.alt(k, v, [\"start\", \"middle\", \"end\", \"left\", \"right\"]);\r\n break;\r\n }\r\n }, /:/, /\\s/);\r\n\r\n // Apply default values for any missing fields.\r\n cue.region = settings.get(\"region\", null);\r\n cue.vertical = settings.get(\"vertical\", \"\");\r\n cue.line = settings.get(\"line\", \"auto\");\r\n cue.lineAlign = settings.get(\"lineAlign\", \"start\");\r\n cue.snapToLines = settings.get(\"snapToLines\", true);\r\n cue.size = settings.get(\"size\", 100);\r\n cue.align = settings.get(\"align\", \"middle\");\r\n cue.position = settings.get(\"position\", {\r\n start: 0,\r\n left: 0,\r\n middle: 50,\r\n end: 100,\r\n right: 100\r\n }, cue.align);\r\n cue.positionAlign = settings.get(\"positionAlign\", {\r\n start: \"start\",\r\n left: \"start\",\r\n middle: \"middle\",\r\n end: \"end\",\r\n right: \"end\"\r\n }, cue.align);\r\n }\r\n\r\n function skipWhitespace() {\r\n input = input.replace(/^\\s+/, \"\");\r\n }\r\n\r\n // 4.1 WebVTT cue timings.\r\n skipWhitespace();\r\n cue.startTime = consumeTimeStamp(); // (1) collect cue start time\r\n skipWhitespace();\r\n if (input.substr(0, 3) !== \"-->\") { // (3) next characters must match \"-->\"\r\n throw new ParsingError(ParsingError.Errors.BadTimeStamp,\r\n \"Malformed time stamp (time stamps must be separated by '-->'): \" +\r\n oInput);\r\n }\r\n input = input.substr(3);\r\n skipWhitespace();\r\n cue.endTime = consumeTimeStamp(); // (5) collect cue end time\r\n\r\n // 4.1 WebVTT cue settings list.\r\n skipWhitespace();\r\n consumeCueSettings(input, cue);\r\n }\r\n\r\n var ESCAPE = {\r\n \"&\": \"&\",\r\n \"<\": \"<\",\r\n \">\": \">\",\r\n \"‎\": \"\\u200e\",\r\n \"‏\": \"\\u200f\",\r\n \" \": \"\\u00a0\"\r\n };\r\n\r\n var TAG_NAME = {\r\n c: \"span\",\r\n i: \"i\",\r\n b: \"b\",\r\n u: \"u\",\r\n ruby: \"ruby\",\r\n rt: \"rt\",\r\n v: \"span\",\r\n lang: \"span\"\r\n };\r\n\r\n var TAG_ANNOTATION = {\r\n v: \"title\",\r\n lang: \"lang\"\r\n };\r\n\r\n var NEEDS_PARENT = {\r\n rt: \"ruby\"\r\n };\r\n\r\n // Parse content into a document fragment.\r\n function parseContent(window, input) {\r\n function nextToken() {\r\n // Check for end-of-string.\r\n if (!input) {\r\n return null;\r\n }\r\n\r\n // Consume 'n' characters from the input.\r\n function consume(result) {\r\n input = input.substr(result.length);\r\n return result;\r\n }\r\n\r\n var m = input.match(/^([^<]*)(<[^>]+>?)?/);\r\n // If there is some text before the next tag, return it, otherwise return\r\n // the tag.\r\n return consume(m[1] ? m[1] : m[2]);\r\n }\r\n\r\n // Unescape a string 's'.\r\n function unescape1(e) {\r\n return ESCAPE[e];\r\n }\r\n function unescape(s) {\r\n while ((m = s.match(/&(amp|lt|gt|lrm|rlm|nbsp);/))) {\r\n s = s.replace(m[0], unescape1);\r\n }\r\n return s;\r\n }\r\n\r\n function shouldAdd(current, element) {\r\n return !NEEDS_PARENT[element.localName] ||\r\n NEEDS_PARENT[element.localName] === current.localName;\r\n }\r\n\r\n // Create an element for this tag.\r\n function createElement(type, annotation) {\r\n var tagName = TAG_NAME[type];\r\n if (!tagName) {\r\n return null;\r\n }\r\n var element = window.document.createElement(tagName);\r\n element.localName = tagName;\r\n var name = TAG_ANNOTATION[type];\r\n if (name && annotation) {\r\n element[name] = annotation.trim();\r\n }\r\n return element;\r\n }\r\n\r\n var rootDiv = window.document.createElement(\"div\"),\r\n current = rootDiv,\r\n t,\r\n tagStack = [];\r\n\r\n while ((t = nextToken()) !== null) {\r\n if (t[0] === '<') {\r\n if (t[1] === \"/\") {\r\n // If the closing tag matches, move back up to the parent node.\r\n if (tagStack.length &&\r\n tagStack[tagStack.length - 1] === t.substr(2).replace(\">\", \"\")) {\r\n tagStack.pop();\r\n current = current.parentNode;\r\n }\r\n // Otherwise just ignore the end tag.\r\n continue;\r\n }\r\n var ts = parseTimeStamp(t.substr(1, t.length - 2));\r\n var node;\r\n if (ts) {\r\n // Timestamps are lead nodes as well.\r\n node = window.document.createProcessingInstruction(\"timestamp\", ts);\r\n current.appendChild(node);\r\n continue;\r\n }\r\n var m = t.match(/^<([^.\\s/0-9>]+)(\\.[^\\s\\\\>]+)?([^>\\\\]+)?(\\\\?)>?$/);\r\n // If we can't parse the tag, skip to the next tag.\r\n if (!m) {\r\n continue;\r\n }\r\n // Try to construct an element, and ignore the tag if we couldn't.\r\n node = createElement(m[1], m[3]);\r\n if (!node) {\r\n continue;\r\n }\r\n // Determine if the tag should be added based on the context of where it\r\n // is placed in the cuetext.\r\n if (!shouldAdd(current, node)) {\r\n continue;\r\n }\r\n // Set the class list (as a list of classes, separated by space).\r\n if (m[2]) {\r\n node.className = m[2].substr(1).replace('.', ' ');\r\n }\r\n // Append the node to the current node, and enter the scope of the new\r\n // node.\r\n tagStack.push(m[1]);\r\n current.appendChild(node);\r\n current = node;\r\n continue;\r\n }\r\n\r\n // Text nodes are leaf nodes.\r\n current.appendChild(window.document.createTextNode(unescape(t)));\r\n }\r\n\r\n return rootDiv;\r\n }\r\n\r\n // This is a list of all the Unicode characters that have a strong\r\n // right-to-left category. What this means is that these characters are\r\n // written right-to-left for sure. It was generated by pulling all the strong\r\n // right-to-left characters out of the Unicode data table. That table can\r\n // found at: http://www.unicode.org/Public/UNIDATA/UnicodeData.txt\r\n var strongRTLChars = [0x05BE, 0x05C0, 0x05C3, 0x05C6, 0x05D0, 0x05D1,\r\n 0x05D2, 0x05D3, 0x05D4, 0x05D5, 0x05D6, 0x05D7, 0x05D8, 0x05D9, 0x05DA,\r\n 0x05DB, 0x05DC, 0x05DD, 0x05DE, 0x05DF, 0x05E0, 0x05E1, 0x05E2, 0x05E3,\r\n 0x05E4, 0x05E5, 0x05E6, 0x05E7, 0x05E8, 0x05E9, 0x05EA, 0x05F0, 0x05F1,\r\n 0x05F2, 0x05F3, 0x05F4, 0x0608, 0x060B, 0x060D, 0x061B, 0x061E, 0x061F,\r\n 0x0620, 0x0621, 0x0622, 0x0623, 0x0624, 0x0625, 0x0626, 0x0627, 0x0628,\r\n 0x0629, 0x062A, 0x062B, 0x062C, 0x062D, 0x062E, 0x062F, 0x0630, 0x0631,\r\n 0x0632, 0x0633, 0x0634, 0x0635, 0x0636, 0x0637, 0x0638, 0x0639, 0x063A,\r\n 0x063B, 0x063C, 0x063D, 0x063E, 0x063F, 0x0640, 0x0641, 0x0642, 0x0643,\r\n 0x0644, 0x0645, 0x0646, 0x0647, 0x0648, 0x0649, 0x064A, 0x066D, 0x066E,\r\n 0x066F, 0x0671, 0x0672, 0x0673, 0x0674, 0x0675, 0x0676, 0x0677, 0x0678,\r\n 0x0679, 0x067A, 0x067B, 0x067C, 0x067D, 0x067E, 0x067F, 0x0680, 0x0681,\r\n 0x0682, 0x0683, 0x0684, 0x0685, 0x0686, 0x0687, 0x0688, 0x0689, 0x068A,\r\n 0x068B, 0x068C, 0x068D, 0x068E, 0x068F, 0x0690, 0x0691, 0x0692, 0x0693,\r\n 0x0694, 0x0695, 0x0696, 0x0697, 0x0698, 0x0699, 0x069A, 0x069B, 0x069C,\r\n 0x069D, 0x069E, 0x069F, 0x06A0, 0x06A1, 0x06A2, 0x06A3, 0x06A4, 0x06A5,\r\n 0x06A6, 0x06A7, 0x06A8, 0x06A9, 0x06AA, 0x06AB, 0x06AC, 0x06AD, 0x06AE,\r\n 0x06AF, 0x06B0, 0x06B1, 0x06B2, 0x06B3, 0x06B4, 0x06B5, 0x06B6, 0x06B7,\r\n 0x06B8, 0x06B9, 0x06BA, 0x06BB, 0x06BC, 0x06BD, 0x06BE, 0x06BF, 0x06C0,\r\n 0x06C1, 0x06C2, 0x06C3, 0x06C4, 0x06C5, 0x06C6, 0x06C7, 0x06C8, 0x06C9,\r\n 0x06CA, 0x06CB, 0x06CC, 0x06CD, 0x06CE, 0x06CF, 0x06D0, 0x06D1, 0x06D2,\r\n 0x06D3, 0x06D4, 0x06D5, 0x06E5, 0x06E6, 0x06EE, 0x06EF, 0x06FA, 0x06FB,\r\n 0x06FC, 0x06FD, 0x06FE, 0x06FF, 0x0700, 0x0701, 0x0702, 0x0703, 0x0704,\r\n 0x0705, 0x0706, 0x0707, 0x0708, 0x0709, 0x070A, 0x070B, 0x070C, 0x070D,\r\n 0x070F, 0x0710, 0x0712, 0x0713, 0x0714, 0x0715, 0x0716, 0x0717, 0x0718,\r\n 0x0719, 0x071A, 0x071B, 0x071C, 0x071D, 0x071E, 0x071F, 0x0720, 0x0721,\r\n 0x0722, 0x0723, 0x0724, 0x0725, 0x0726, 0x0727, 0x0728, 0x0729, 0x072A,\r\n 0x072B, 0x072C, 0x072D, 0x072E, 0x072F, 0x074D, 0x074E, 0x074F, 0x0750,\r\n 0x0751, 0x0752, 0x0753, 0x0754, 0x0755, 0x0756, 0x0757, 0x0758, 0x0759,\r\n 0x075A, 0x075B, 0x075C, 0x075D, 0x075E, 0x075F, 0x0760, 0x0761, 0x0762,\r\n 0x0763, 0x0764, 0x0765, 0x0766, 0x0767, 0x0768, 0x0769, 0x076A, 0x076B,\r\n 0x076C, 0x076D, 0x076E, 0x076F, 0x0770, 0x0771, 0x0772, 0x0773, 0x0774,\r\n 0x0775, 0x0776, 0x0777, 0x0778, 0x0779, 0x077A, 0x077B, 0x077C, 0x077D,\r\n 0x077E, 0x077F, 0x0780, 0x0781, 0x0782, 0x0783, 0x0784, 0x0785, 0x0786,\r\n 0x0787, 0x0788, 0x0789, 0x078A, 0x078B, 0x078C, 0x078D, 0x078E, 0x078F,\r\n 0x0790, 0x0791, 0x0792, 0x0793, 0x0794, 0x0795, 0x0796, 0x0797, 0x0798,\r\n 0x0799, 0x079A, 0x079B, 0x079C, 0x079D, 0x079E, 0x079F, 0x07A0, 0x07A1,\r\n 0x07A2, 0x07A3, 0x07A4, 0x07A5, 0x07B1, 0x07C0, 0x07C1, 0x07C2, 0x07C3,\r\n 0x07C4, 0x07C5, 0x07C6, 0x07C7, 0x07C8, 0x07C9, 0x07CA, 0x07CB, 0x07CC,\r\n 0x07CD, 0x07CE, 0x07CF, 0x07D0, 0x07D1, 0x07D2, 0x07D3, 0x07D4, 0x07D5,\r\n 0x07D6, 0x07D7, 0x07D8, 0x07D9, 0x07DA, 0x07DB, 0x07DC, 0x07DD, 0x07DE,\r\n 0x07DF, 0x07E0, 0x07E1, 0x07E2, 0x07E3, 0x07E4, 0x07E5, 0x07E6, 0x07E7,\r\n 0x07E8, 0x07E9, 0x07EA, 0x07F4, 0x07F5, 0x07FA, 0x0800, 0x0801, 0x0802,\r\n 0x0803, 0x0804, 0x0805, 0x0806, 0x0807, 0x0808, 0x0809, 0x080A, 0x080B,\r\n 0x080C, 0x080D, 0x080E, 0x080F, 0x0810, 0x0811, 0x0812, 0x0813, 0x0814,\r\n 0x0815, 0x081A, 0x0824, 0x0828, 0x0830, 0x0831, 0x0832, 0x0833, 0x0834,\r\n 0x0835, 0x0836, 0x0837, 0x0838, 0x0839, 0x083A, 0x083B, 0x083C, 0x083D,\r\n 0x083E, 0x0840, 0x0841, 0x0842, 0x0843, 0x0844, 0x0845, 0x0846, 0x0847,\r\n 0x0848, 0x0849, 0x084A, 0x084B, 0x084C, 0x084D, 0x084E, 0x084F, 0x0850,\r\n 0x0851, 0x0852, 0x0853, 0x0854, 0x0855, 0x0856, 0x0857, 0x0858, 0x085E,\r\n 0x08A0, 0x08A2, 0x08A3, 0x08A4, 0x08A5, 0x08A6, 0x08A7, 0x08A8, 0x08A9,\r\n 0x08AA, 0x08AB, 0x08AC, 0x200F, 0xFB1D, 0xFB1F, 0xFB20, 0xFB21, 0xFB22,\r\n 0xFB23, 0xFB24, 0xFB25, 0xFB26, 0xFB27, 0xFB28, 0xFB2A, 0xFB2B, 0xFB2C,\r\n 0xFB2D, 0xFB2E, 0xFB2F, 0xFB30, 0xFB31, 0xFB32, 0xFB33, 0xFB34, 0xFB35,\r\n 0xFB36, 0xFB38, 0xFB39, 0xFB3A, 0xFB3B, 0xFB3C, 0xFB3E, 0xFB40, 0xFB41,\r\n 0xFB43, 0xFB44, 0xFB46, 0xFB47, 0xFB48, 0xFB49, 0xFB4A, 0xFB4B, 0xFB4C,\r\n 0xFB4D, 0xFB4E, 0xFB4F, 0xFB50, 0xFB51, 0xFB52, 0xFB53, 0xFB54, 0xFB55,\r\n 0xFB56, 0xFB57, 0xFB58, 0xFB59, 0xFB5A, 0xFB5B, 0xFB5C, 0xFB5D, 0xFB5E,\r\n 0xFB5F, 0xFB60, 0xFB61, 0xFB62, 0xFB63, 0xFB64, 0xFB65, 0xFB66, 0xFB67,\r\n 0xFB68, 0xFB69, 0xFB6A, 0xFB6B, 0xFB6C, 0xFB6D, 0xFB6E, 0xFB6F, 0xFB70,\r\n 0xFB71, 0xFB72, 0xFB73, 0xFB74, 0xFB75, 0xFB76, 0xFB77, 0xFB78, 0xFB79,\r\n 0xFB7A, 0xFB7B, 0xFB7C, 0xFB7D, 0xFB7E, 0xFB7F, 0xFB80, 0xFB81, 0xFB82,\r\n 0xFB83, 0xFB84, 0xFB85, 0xFB86, 0xFB87, 0xFB88, 0xFB89, 0xFB8A, 0xFB8B,\r\n 0xFB8C, 0xFB8D, 0xFB8E, 0xFB8F, 0xFB90, 0xFB91, 0xFB92, 0xFB93, 0xFB94,\r\n 0xFB95, 0xFB96, 0xFB97, 0xFB98, 0xFB99, 0xFB9A, 0xFB9B, 0xFB9C, 0xFB9D,\r\n 0xFB9E, 0xFB9F, 0xFBA0, 0xFBA1, 0xFBA2, 0xFBA3, 0xFBA4, 0xFBA5, 0xFBA6,\r\n 0xFBA7, 0xFBA8, 0xFBA9, 0xFBAA, 0xFBAB, 0xFBAC, 0xFBAD, 0xFBAE, 0xFBAF,\r\n 0xFBB0, 0xFBB1, 0xFBB2, 0xFBB3, 0xFBB4, 0xFBB5, 0xFBB6, 0xFBB7, 0xFBB8,\r\n 0xFBB9, 0xFBBA, 0xFBBB, 0xFBBC, 0xFBBD, 0xFBBE, 0xFBBF, 0xFBC0, 0xFBC1,\r\n 0xFBD3, 0xFBD4, 0xFBD5, 0xFBD6, 0xFBD7, 0xFBD8, 0xFBD9, 0xFBDA, 0xFBDB,\r\n 0xFBDC, 0xFBDD, 0xFBDE, 0xFBDF, 0xFBE0, 0xFBE1, 0xFBE2, 0xFBE3, 0xFBE4,\r\n 0xFBE5, 0xFBE6, 0xFBE7, 0xFBE8, 0xFBE9, 0xFBEA, 0xFBEB, 0xFBEC, 0xFBED,\r\n 0xFBEE, 0xFBEF, 0xFBF0, 0xFBF1, 0xFBF2, 0xFBF3, 0xFBF4, 0xFBF5, 0xFBF6,\r\n 0xFBF7, 0xFBF8, 0xFBF9, 0xFBFA, 0xFBFB, 0xFBFC, 0xFBFD, 0xFBFE, 0xFBFF,\r\n 0xFC00, 0xFC01, 0xFC02, 0xFC03, 0xFC04, 0xFC05, 0xFC06, 0xFC07, 0xFC08,\r\n 0xFC09, 0xFC0A, 0xFC0B, 0xFC0C, 0xFC0D, 0xFC0E, 0xFC0F, 0xFC10, 0xFC11,\r\n 0xFC12, 0xFC13, 0xFC14, 0xFC15, 0xFC16, 0xFC17, 0xFC18, 0xFC19, 0xFC1A,\r\n 0xFC1B, 0xFC1C, 0xFC1D, 0xFC1E, 0xFC1F, 0xFC20, 0xFC21, 0xFC22, 0xFC23,\r\n 0xFC24, 0xFC25, 0xFC26, 0xFC27, 0xFC28, 0xFC29, 0xFC2A, 0xFC2B, 0xFC2C,\r\n 0xFC2D, 0xFC2E, 0xFC2F, 0xFC30, 0xFC31, 0xFC32, 0xFC33, 0xFC34, 0xFC35,\r\n 0xFC36, 0xFC37, 0xFC38, 0xFC39, 0xFC3A, 0xFC3B, 0xFC3C, 0xFC3D, 0xFC3E,\r\n 0xFC3F, 0xFC40, 0xFC41, 0xFC42, 0xFC43, 0xFC44, 0xFC45, 0xFC46, 0xFC47,\r\n 0xFC48, 0xFC49, 0xFC4A, 0xFC4B, 0xFC4C, 0xFC4D, 0xFC4E, 0xFC4F, 0xFC50,\r\n 0xFC51, 0xFC52, 0xFC53, 0xFC54, 0xFC55, 0xFC56, 0xFC57, 0xFC58, 0xFC59,\r\n 0xFC5A, 0xFC5B, 0xFC5C, 0xFC5D, 0xFC5E, 0xFC5F, 0xFC60, 0xFC61, 0xFC62,\r\n 0xFC63, 0xFC64, 0xFC65, 0xFC66, 0xFC67, 0xFC68, 0xFC69, 0xFC6A, 0xFC6B,\r\n 0xFC6C, 0xFC6D, 0xFC6E, 0xFC6F, 0xFC70, 0xFC71, 0xFC72, 0xFC73, 0xFC74,\r\n 0xFC75, 0xFC76, 0xFC77, 0xFC78, 0xFC79, 0xFC7A, 0xFC7B, 0xFC7C, 0xFC7D,\r\n 0xFC7E, 0xFC7F, 0xFC80, 0xFC81, 0xFC82, 0xFC83, 0xFC84, 0xFC85, 0xFC86,\r\n 0xFC87, 0xFC88, 0xFC89, 0xFC8A, 0xFC8B, 0xFC8C, 0xFC8D, 0xFC8E, 0xFC8F,\r\n 0xFC90, 0xFC91, 0xFC92, 0xFC93, 0xFC94, 0xFC95, 0xFC96, 0xFC97, 0xFC98,\r\n 0xFC99, 0xFC9A, 0xFC9B, 0xFC9C, 0xFC9D, 0xFC9E, 0xFC9F, 0xFCA0, 0xFCA1,\r\n 0xFCA2, 0xFCA3, 0xFCA4, 0xFCA5, 0xFCA6, 0xFCA7, 0xFCA8, 0xFCA9, 0xFCAA,\r\n 0xFCAB, 0xFCAC, 0xFCAD, 0xFCAE, 0xFCAF, 0xFCB0, 0xFCB1, 0xFCB2, 0xFCB3,\r\n 0xFCB4, 0xFCB5, 0xFCB6, 0xFCB7, 0xFCB8, 0xFCB9, 0xFCBA, 0xFCBB, 0xFCBC,\r\n 0xFCBD, 0xFCBE, 0xFCBF, 0xFCC0, 0xFCC1, 0xFCC2, 0xFCC3, 0xFCC4, 0xFCC5,\r\n 0xFCC6, 0xFCC7, 0xFCC8, 0xFCC9, 0xFCCA, 0xFCCB, 0xFCCC, 0xFCCD, 0xFCCE,\r\n 0xFCCF, 0xFCD0, 0xFCD1, 0xFCD2, 0xFCD3, 0xFCD4, 0xFCD5, 0xFCD6, 0xFCD7,\r\n 0xFCD8, 0xFCD9, 0xFCDA, 0xFCDB, 0xFCDC, 0xFCDD, 0xFCDE, 0xFCDF, 0xFCE0,\r\n 0xFCE1, 0xFCE2, 0xFCE3, 0xFCE4, 0xFCE5, 0xFCE6, 0xFCE7, 0xFCE8, 0xFCE9,\r\n 0xFCEA, 0xFCEB, 0xFCEC, 0xFCED, 0xFCEE, 0xFCEF, 0xFCF0, 0xFCF1, 0xFCF2,\r\n 0xFCF3, 0xFCF4, 0xFCF5, 0xFCF6, 0xFCF7, 0xFCF8, 0xFCF9, 0xFCFA, 0xFCFB,\r\n 0xFCFC, 0xFCFD, 0xFCFE, 0xFCFF, 0xFD00, 0xFD01, 0xFD02, 0xFD03, 0xFD04,\r\n 0xFD05, 0xFD06, 0xFD07, 0xFD08, 0xFD09, 0xFD0A, 0xFD0B, 0xFD0C, 0xFD0D,\r\n 0xFD0E, 0xFD0F, 0xFD10, 0xFD11, 0xFD12, 0xFD13, 0xFD14, 0xFD15, 0xFD16,\r\n 0xFD17, 0xFD18, 0xFD19, 0xFD1A, 0xFD1B, 0xFD1C, 0xFD1D, 0xFD1E, 0xFD1F,\r\n 0xFD20, 0xFD21, 0xFD22, 0xFD23, 0xFD24, 0xFD25, 0xFD26, 0xFD27, 0xFD28,\r\n 0xFD29, 0xFD2A, 0xFD2B, 0xFD2C, 0xFD2D, 0xFD2E, 0xFD2F, 0xFD30, 0xFD31,\r\n 0xFD32, 0xFD33, 0xFD34, 0xFD35, 0xFD36, 0xFD37, 0xFD38, 0xFD39, 0xFD3A,\r\n 0xFD3B, 0xFD3C, 0xFD3D, 0xFD50, 0xFD51, 0xFD52, 0xFD53, 0xFD54, 0xFD55,\r\n 0xFD56, 0xFD57, 0xFD58, 0xFD59, 0xFD5A, 0xFD5B, 0xFD5C, 0xFD5D, 0xFD5E,\r\n 0xFD5F, 0xFD60, 0xFD61, 0xFD62, 0xFD63, 0xFD64, 0xFD65, 0xFD66, 0xFD67,\r\n 0xFD68, 0xFD69, 0xFD6A, 0xFD6B, 0xFD6C, 0xFD6D, 0xFD6E, 0xFD6F, 0xFD70,\r\n 0xFD71, 0xFD72, 0xFD73, 0xFD74, 0xFD75, 0xFD76, 0xFD77, 0xFD78, 0xFD79,\r\n 0xFD7A, 0xFD7B, 0xFD7C, 0xFD7D, 0xFD7E, 0xFD7F, 0xFD80, 0xFD81, 0xFD82,\r\n 0xFD83, 0xFD84, 0xFD85, 0xFD86, 0xFD87, 0xFD88, 0xFD89, 0xFD8A, 0xFD8B,\r\n 0xFD8C, 0xFD8D, 0xFD8E, 0xFD8F, 0xFD92, 0xFD93, 0xFD94, 0xFD95, 0xFD96,\r\n 0xFD97, 0xFD98, 0xFD99, 0xFD9A, 0xFD9B, 0xFD9C, 0xFD9D, 0xFD9E, 0xFD9F,\r\n 0xFDA0, 0xFDA1, 0xFDA2, 0xFDA3, 0xFDA4, 0xFDA5, 0xFDA6, 0xFDA7, 0xFDA8,\r\n 0xFDA9, 0xFDAA, 0xFDAB, 0xFDAC, 0xFDAD, 0xFDAE, 0xFDAF, 0xFDB0, 0xFDB1,\r\n 0xFDB2, 0xFDB3, 0xFDB4, 0xFDB5, 0xFDB6, 0xFDB7, 0xFDB8, 0xFDB9, 0xFDBA,\r\n 0xFDBB, 0xFDBC, 0xFDBD, 0xFDBE, 0xFDBF, 0xFDC0, 0xFDC1, 0xFDC2, 0xFDC3,\r\n 0xFDC4, 0xFDC5, 0xFDC6, 0xFDC7, 0xFDF0, 0xFDF1, 0xFDF2, 0xFDF3, 0xFDF4,\r\n 0xFDF5, 0xFDF6, 0xFDF7, 0xFDF8, 0xFDF9, 0xFDFA, 0xFDFB, 0xFDFC, 0xFE70,\r\n 0xFE71, 0xFE72, 0xFE73, 0xFE74, 0xFE76, 0xFE77, 0xFE78, 0xFE79, 0xFE7A,\r\n 0xFE7B, 0xFE7C, 0xFE7D, 0xFE7E, 0xFE7F, 0xFE80, 0xFE81, 0xFE82, 0xFE83,\r\n 0xFE84, 0xFE85, 0xFE86, 0xFE87, 0xFE88, 0xFE89, 0xFE8A, 0xFE8B, 0xFE8C,\r\n 0xFE8D, 0xFE8E, 0xFE8F, 0xFE90, 0xFE91, 0xFE92, 0xFE93, 0xFE94, 0xFE95,\r\n 0xFE96, 0xFE97, 0xFE98, 0xFE99, 0xFE9A, 0xFE9B, 0xFE9C, 0xFE9D, 0xFE9E,\r\n 0xFE9F, 0xFEA0, 0xFEA1, 0xFEA2, 0xFEA3, 0xFEA4, 0xFEA5, 0xFEA6, 0xFEA7,\r\n 0xFEA8, 0xFEA9, 0xFEAA, 0xFEAB, 0xFEAC, 0xFEAD, 0xFEAE, 0xFEAF, 0xFEB0,\r\n 0xFEB1, 0xFEB2, 0xFEB3, 0xFEB4, 0xFEB5, 0xFEB6, 0xFEB7, 0xFEB8, 0xFEB9,\r\n 0xFEBA, 0xFEBB, 0xFEBC, 0xFEBD, 0xFEBE, 0xFEBF, 0xFEC0, 0xFEC1, 0xFEC2,\r\n 0xFEC3, 0xFEC4, 0xFEC5, 0xFEC6, 0xFEC7, 0xFEC8, 0xFEC9, 0xFECA, 0xFECB,\r\n 0xFECC, 0xFECD, 0xFECE, 0xFECF, 0xFED0, 0xFED1, 0xFED2, 0xFED3, 0xFED4,\r\n 0xFED5, 0xFED6, 0xFED7, 0xFED8, 0xFED9, 0xFEDA, 0xFEDB, 0xFEDC, 0xFEDD,\r\n 0xFEDE, 0xFEDF, 0xFEE0, 0xFEE1, 0xFEE2, 0xFEE3, 0xFEE4, 0xFEE5, 0xFEE6,\r\n 0xFEE7, 0xFEE8, 0xFEE9, 0xFEEA, 0xFEEB, 0xFEEC, 0xFEED, 0xFEEE, 0xFEEF,\r\n 0xFEF0, 0xFEF1, 0xFEF2, 0xFEF3, 0xFEF4, 0xFEF5, 0xFEF6, 0xFEF7, 0xFEF8,\r\n 0xFEF9, 0xFEFA, 0xFEFB, 0xFEFC, 0x10800, 0x10801, 0x10802, 0x10803,\r\n 0x10804, 0x10805, 0x10808, 0x1080A, 0x1080B, 0x1080C, 0x1080D, 0x1080E,\r\n 0x1080F, 0x10810, 0x10811, 0x10812, 0x10813, 0x10814, 0x10815, 0x10816,\r\n 0x10817, 0x10818, 0x10819, 0x1081A, 0x1081B, 0x1081C, 0x1081D, 0x1081E,\r\n 0x1081F, 0x10820, 0x10821, 0x10822, 0x10823, 0x10824, 0x10825, 0x10826,\r\n 0x10827, 0x10828, 0x10829, 0x1082A, 0x1082B, 0x1082C, 0x1082D, 0x1082E,\r\n 0x1082F, 0x10830, 0x10831, 0x10832, 0x10833, 0x10834, 0x10835, 0x10837,\r\n 0x10838, 0x1083C, 0x1083F, 0x10840, 0x10841, 0x10842, 0x10843, 0x10844,\r\n 0x10845, 0x10846, 0x10847, 0x10848, 0x10849, 0x1084A, 0x1084B, 0x1084C,\r\n 0x1084D, 0x1084E, 0x1084F, 0x10850, 0x10851, 0x10852, 0x10853, 0x10854,\r\n 0x10855, 0x10857, 0x10858, 0x10859, 0x1085A, 0x1085B, 0x1085C, 0x1085D,\r\n 0x1085E, 0x1085F, 0x10900, 0x10901, 0x10902, 0x10903, 0x10904, 0x10905,\r\n 0x10906, 0x10907, 0x10908, 0x10909, 0x1090A, 0x1090B, 0x1090C, 0x1090D,\r\n 0x1090E, 0x1090F, 0x10910, 0x10911, 0x10912, 0x10913, 0x10914, 0x10915,\r\n 0x10916, 0x10917, 0x10918, 0x10919, 0x1091A, 0x1091B, 0x10920, 0x10921,\r\n 0x10922, 0x10923, 0x10924, 0x10925, 0x10926, 0x10927, 0x10928, 0x10929,\r\n 0x1092A, 0x1092B, 0x1092C, 0x1092D, 0x1092E, 0x1092F, 0x10930, 0x10931,\r\n 0x10932, 0x10933, 0x10934, 0x10935, 0x10936, 0x10937, 0x10938, 0x10939,\r\n 0x1093F, 0x10980, 0x10981, 0x10982, 0x10983, 0x10984, 0x10985, 0x10986,\r\n 0x10987, 0x10988, 0x10989, 0x1098A, 0x1098B, 0x1098C, 0x1098D, 0x1098E,\r\n 0x1098F, 0x10990, 0x10991, 0x10992, 0x10993, 0x10994, 0x10995, 0x10996,\r\n 0x10997, 0x10998, 0x10999, 0x1099A, 0x1099B, 0x1099C, 0x1099D, 0x1099E,\r\n 0x1099F, 0x109A0, 0x109A1, 0x109A2, 0x109A3, 0x109A4, 0x109A5, 0x109A6,\r\n 0x109A7, 0x109A8, 0x109A9, 0x109AA, 0x109AB, 0x109AC, 0x109AD, 0x109AE,\r\n 0x109AF, 0x109B0, 0x109B1, 0x109B2, 0x109B3, 0x109B4, 0x109B5, 0x109B6,\r\n 0x109B7, 0x109BE, 0x109BF, 0x10A00, 0x10A10, 0x10A11, 0x10A12, 0x10A13,\r\n 0x10A15, 0x10A16, 0x10A17, 0x10A19, 0x10A1A, 0x10A1B, 0x10A1C, 0x10A1D,\r\n 0x10A1E, 0x10A1F, 0x10A20, 0x10A21, 0x10A22, 0x10A23, 0x10A24, 0x10A25,\r\n 0x10A26, 0x10A27, 0x10A28, 0x10A29, 0x10A2A, 0x10A2B, 0x10A2C, 0x10A2D,\r\n 0x10A2E, 0x10A2F, 0x10A30, 0x10A31, 0x10A32, 0x10A33, 0x10A40, 0x10A41,\r\n 0x10A42, 0x10A43, 0x10A44, 0x10A45, 0x10A46, 0x10A47, 0x10A50, 0x10A51,\r\n 0x10A52, 0x10A53, 0x10A54, 0x10A55, 0x10A56, 0x10A57, 0x10A58, 0x10A60,\r\n 0x10A61, 0x10A62, 0x10A63, 0x10A64, 0x10A65, 0x10A66, 0x10A67, 0x10A68,\r\n 0x10A69, 0x10A6A, 0x10A6B, 0x10A6C, 0x10A6D, 0x10A6E, 0x10A6F, 0x10A70,\r\n 0x10A71, 0x10A72, 0x10A73, 0x10A74, 0x10A75, 0x10A76, 0x10A77, 0x10A78,\r\n 0x10A79, 0x10A7A, 0x10A7B, 0x10A7C, 0x10A7D, 0x10A7E, 0x10A7F, 0x10B00,\r\n 0x10B01, 0x10B02, 0x10B03, 0x10B04, 0x10B05, 0x10B06, 0x10B07, 0x10B08,\r\n 0x10B09, 0x10B0A, 0x10B0B, 0x10B0C, 0x10B0D, 0x10B0E, 0x10B0F, 0x10B10,\r\n 0x10B11, 0x10B12, 0x10B13, 0x10B14, 0x10B15, 0x10B16, 0x10B17, 0x10B18,\r\n 0x10B19, 0x10B1A, 0x10B1B, 0x10B1C, 0x10B1D, 0x10B1E, 0x10B1F, 0x10B20,\r\n 0x10B21, 0x10B22, 0x10B23, 0x10B24, 0x10B25, 0x10B26, 0x10B27, 0x10B28,\r\n 0x10B29, 0x10B2A, 0x10B2B, 0x10B2C, 0x10B2D, 0x10B2E, 0x10B2F, 0x10B30,\r\n 0x10B31, 0x10B32, 0x10B33, 0x10B34, 0x10B35, 0x10B40, 0x10B41, 0x10B42,\r\n 0x10B43, 0x10B44, 0x10B45, 0x10B46, 0x10B47, 0x10B48, 0x10B49, 0x10B4A,\r\n 0x10B4B, 0x10B4C, 0x10B4D, 0x10B4E, 0x10B4F, 0x10B50, 0x10B51, 0x10B52,\r\n 0x10B53, 0x10B54, 0x10B55, 0x10B58, 0x10B59, 0x10B5A, 0x10B5B, 0x10B5C,\r\n 0x10B5D, 0x10B5E, 0x10B5F, 0x10B60, 0x10B61, 0x10B62, 0x10B63, 0x10B64,\r\n 0x10B65, 0x10B66, 0x10B67, 0x10B68, 0x10B69, 0x10B6A, 0x10B6B, 0x10B6C,\r\n 0x10B6D, 0x10B6E, 0x10B6F, 0x10B70, 0x10B71, 0x10B72, 0x10B78, 0x10B79,\r\n 0x10B7A, 0x10B7B, 0x10B7C, 0x10B7D, 0x10B7E, 0x10B7F, 0x10C00, 0x10C01,\r\n 0x10C02, 0x10C03, 0x10C04, 0x10C05, 0x10C06, 0x10C07, 0x10C08, 0x10C09,\r\n 0x10C0A, 0x10C0B, 0x10C0C, 0x10C0D, 0x10C0E, 0x10C0F, 0x10C10, 0x10C11,\r\n 0x10C12, 0x10C13, 0x10C14, 0x10C15, 0x10C16, 0x10C17, 0x10C18, 0x10C19,\r\n 0x10C1A, 0x10C1B, 0x10C1C, 0x10C1D, 0x10C1E, 0x10C1F, 0x10C20, 0x10C21,\r\n 0x10C22, 0x10C23, 0x10C24, 0x10C25, 0x10C26, 0x10C27, 0x10C28, 0x10C29,\r\n 0x10C2A, 0x10C2B, 0x10C2C, 0x10C2D, 0x10C2E, 0x10C2F, 0x10C30, 0x10C31,\r\n 0x10C32, 0x10C33, 0x10C34, 0x10C35, 0x10C36, 0x10C37, 0x10C38, 0x10C39,\r\n 0x10C3A, 0x10C3B, 0x10C3C, 0x10C3D, 0x10C3E, 0x10C3F, 0x10C40, 0x10C41,\r\n 0x10C42, 0x10C43, 0x10C44, 0x10C45, 0x10C46, 0x10C47, 0x10C48, 0x1EE00,\r\n 0x1EE01, 0x1EE02, 0x1EE03, 0x1EE05, 0x1EE06, 0x1EE07, 0x1EE08, 0x1EE09,\r\n 0x1EE0A, 0x1EE0B, 0x1EE0C, 0x1EE0D, 0x1EE0E, 0x1EE0F, 0x1EE10, 0x1EE11,\r\n 0x1EE12, 0x1EE13, 0x1EE14, 0x1EE15, 0x1EE16, 0x1EE17, 0x1EE18, 0x1EE19,\r\n 0x1EE1A, 0x1EE1B, 0x1EE1C, 0x1EE1D, 0x1EE1E, 0x1EE1F, 0x1EE21, 0x1EE22,\r\n 0x1EE24, 0x1EE27, 0x1EE29, 0x1EE2A, 0x1EE2B, 0x1EE2C, 0x1EE2D, 0x1EE2E,\r\n 0x1EE2F, 0x1EE30, 0x1EE31, 0x1EE32, 0x1EE34, 0x1EE35, 0x1EE36, 0x1EE37,\r\n 0x1EE39, 0x1EE3B, 0x1EE42, 0x1EE47, 0x1EE49, 0x1EE4B, 0x1EE4D, 0x1EE4E,\r\n 0x1EE4F, 0x1EE51, 0x1EE52, 0x1EE54, 0x1EE57, 0x1EE59, 0x1EE5B, 0x1EE5D,\r\n 0x1EE5F, 0x1EE61, 0x1EE62, 0x1EE64, 0x1EE67, 0x1EE68, 0x1EE69, 0x1EE6A,\r\n 0x1EE6C, 0x1EE6D, 0x1EE6E, 0x1EE6F, 0x1EE70, 0x1EE71, 0x1EE72, 0x1EE74,\r\n 0x1EE75, 0x1EE76, 0x1EE77, 0x1EE79, 0x1EE7A, 0x1EE7B, 0x1EE7C, 0x1EE7E,\r\n 0x1EE80, 0x1EE81, 0x1EE82, 0x1EE83, 0x1EE84, 0x1EE85, 0x1EE86, 0x1EE87,\r\n 0x1EE88, 0x1EE89, 0x1EE8B, 0x1EE8C, 0x1EE8D, 0x1EE8E, 0x1EE8F, 0x1EE90,\r\n 0x1EE91, 0x1EE92, 0x1EE93, 0x1EE94, 0x1EE95, 0x1EE96, 0x1EE97, 0x1EE98,\r\n 0x1EE99, 0x1EE9A, 0x1EE9B, 0x1EEA1, 0x1EEA2, 0x1EEA3, 0x1EEA5, 0x1EEA6,\r\n 0x1EEA7, 0x1EEA8, 0x1EEA9, 0x1EEAB, 0x1EEAC, 0x1EEAD, 0x1EEAE, 0x1EEAF,\r\n 0x1EEB0, 0x1EEB1, 0x1EEB2, 0x1EEB3, 0x1EEB4, 0x1EEB5, 0x1EEB6, 0x1EEB7,\r\n 0x1EEB8, 0x1EEB9, 0x1EEBA, 0x1EEBB, 0x10FFFD];\r\n\r\n function determineBidi(cueDiv) {\r\n var nodeStack = [],\r\n text = \"\",\r\n charCode;\r\n\r\n if (!cueDiv || !cueDiv.childNodes) {\r\n return \"ltr\";\r\n }\r\n\r\n function pushNodes(nodeStack, node) {\r\n for (var i = node.childNodes.length - 1; i >= 0; i--) {\r\n nodeStack.push(node.childNodes[i]);\r\n }\r\n }\r\n\r\n function nextTextNode(nodeStack) {\r\n if (!nodeStack || !nodeStack.length) {\r\n return null;\r\n }\r\n\r\n var node = nodeStack.pop(),\r\n text = node.textContent || node.innerText;\r\n if (text) {\r\n // TODO: This should match all unicode type B characters (paragraph\r\n // separator characters). See issue #115.\r\n var m = text.match(/^.*(\\n|\\r)/);\r\n if (m) {\r\n nodeStack.length = 0;\r\n return m[0];\r\n }\r\n return text;\r\n }\r\n if (node.tagName === \"ruby\") {\r\n return nextTextNode(nodeStack);\r\n }\r\n if (node.childNodes) {\r\n pushNodes(nodeStack, node);\r\n return nextTextNode(nodeStack);\r\n }\r\n }\r\n\r\n pushNodes(nodeStack, cueDiv);\r\n while ((text = nextTextNode(nodeStack))) {\r\n for (var i = 0; i < text.length; i++) {\r\n charCode = text.charCodeAt(i);\r\n for (var j = 0; j < strongRTLChars.length; j++) {\r\n if (strongRTLChars[j] === charCode) {\r\n return \"rtl\";\r\n }\r\n }\r\n }\r\n }\r\n return \"ltr\";\r\n }\r\n\r\n function computeLinePos(cue) {\r\n if (typeof cue.line === \"number\" &&\r\n (cue.snapToLines || (cue.line >= 0 && cue.line <= 100))) {\r\n return cue.line;\r\n }\r\n if (!cue.track || !cue.track.textTrackList ||\r\n !cue.track.textTrackList.mediaElement) {\r\n return -1;\r\n }\r\n var track = cue.track,\r\n trackList = track.textTrackList,\r\n count = 0;\r\n for (var i = 0; i < trackList.length && trackList[i] !== track; i++) {\r\n if (trackList[i].mode === \"showing\") {\r\n count++;\r\n }\r\n }\r\n return ++count * -1;\r\n }\r\n\r\n function StyleBox() {\r\n }\r\n\r\n // Apply styles to a div. If there is no div passed then it defaults to the\r\n // div on 'this'.\r\n StyleBox.prototype.applyStyles = function(styles, div) {\r\n div = div || this.div;\r\n for (var prop in styles) {\r\n if (styles.hasOwnProperty(prop)) {\r\n div.style[prop] = styles[prop];\r\n }\r\n }\r\n };\r\n\r\n StyleBox.prototype.formatStyle = function(val, unit) {\r\n return val === 0 ? 0 : val + unit;\r\n };\r\n\r\n // Constructs the computed display state of the cue (a div). Places the div\r\n // into the overlay which should be a block level element (usually a div).\r\n function CueStyleBox(window, cue, styleOptions) {\r\n var isIE8 = (/MSIE\\s8\\.0/).test(navigator.userAgent);\r\n var color = \"rgba(255, 255, 255, 1)\";\r\n var backgroundColor = \"rgba(0, 0, 0, 0.8)\";\r\n\r\n if (isIE8) {\r\n color = \"rgb(255, 255, 255)\";\r\n backgroundColor = \"rgb(0, 0, 0)\";\r\n }\r\n\r\n StyleBox.call(this);\r\n this.cue = cue;\r\n\r\n // Parse our cue's text into a DOM tree rooted at 'cueDiv'. This div will\r\n // have inline positioning and will function as the cue background box.\r\n this.cueDiv = parseContent(window, cue.text);\r\n var styles = {\r\n color: color,\r\n backgroundColor: backgroundColor,\r\n position: \"relative\",\r\n left: 0,\r\n right: 0,\r\n top: 0,\r\n bottom: 0,\r\n display: \"inline\"\r\n };\r\n\r\n if (!isIE8) {\r\n styles.writingMode = cue.vertical === \"\" ? \"horizontal-tb\"\r\n : cue.vertical === \"lr\" ? \"vertical-lr\"\r\n : \"vertical-rl\";\r\n styles.unicodeBidi = \"plaintext\";\r\n }\r\n this.applyStyles(styles, this.cueDiv);\r\n\r\n // Create an absolutely positioned div that will be used to position the cue\r\n // div. Note, all WebVTT cue-setting alignments are equivalent to the CSS\r\n // mirrors of them except \"middle\" which is \"center\" in CSS.\r\n this.div = window.document.createElement(\"div\");\r\n styles = {\r\n textAlign: cue.align === \"middle\" ? \"center\" : cue.align,\r\n font: styleOptions.font,\r\n whiteSpace: \"pre-line\",\r\n position: \"absolute\"\r\n };\r\n\r\n if (!isIE8) {\r\n styles.direction = determineBidi(this.cueDiv);\r\n styles.writingMode = cue.vertical === \"\" ? \"horizontal-tb\"\r\n : cue.vertical === \"lr\" ? \"vertical-lr\"\r\n : \"vertical-rl\".\r\n stylesunicodeBidi = \"plaintext\";\r\n }\r\n\r\n this.applyStyles(styles);\r\n\r\n this.div.appendChild(this.cueDiv);\r\n\r\n // Calculate the distance from the reference edge of the viewport to the text\r\n // position of the cue box. The reference edge will be resolved later when\r\n // the box orientation styles are applied.\r\n var textPos = 0;\r\n switch (cue.positionAlign) {\r\n case \"start\":\r\n textPos = cue.position;\r\n break;\r\n case \"middle\":\r\n textPos = cue.position - (cue.size / 2);\r\n break;\r\n case \"end\":\r\n textPos = cue.position - cue.size;\r\n break;\r\n }\r\n\r\n // Horizontal box orientation; textPos is the distance from the left edge of the\r\n // area to the left edge of the box and cue.size is the distance extending to\r\n // the right from there.\r\n if (cue.vertical === \"\") {\r\n this.applyStyles({\r\n left: this.formatStyle(textPos, \"%\"),\r\n width: this.formatStyle(cue.size, \"%\")\r\n });\r\n // Vertical box orientation; textPos is the distance from the top edge of the\r\n // area to the top edge of the box and cue.size is the height extending\r\n // downwards from there.\r\n } else {\r\n this.applyStyles({\r\n top: this.formatStyle(textPos, \"%\"),\r\n height: this.formatStyle(cue.size, \"%\")\r\n });\r\n }\r\n\r\n this.move = function(box) {\r\n this.applyStyles({\r\n top: this.formatStyle(box.top, \"px\"),\r\n bottom: this.formatStyle(box.bottom, \"px\"),\r\n left: this.formatStyle(box.left, \"px\"),\r\n right: this.formatStyle(box.right, \"px\"),\r\n height: this.formatStyle(box.height, \"px\"),\r\n width: this.formatStyle(box.width, \"px\")\r\n });\r\n };\r\n }\r\n CueStyleBox.prototype = _objCreate(StyleBox.prototype);\r\n CueStyleBox.prototype.constructor = CueStyleBox;\r\n\r\n // Represents the co-ordinates of an Element in a way that we can easily\r\n // compute things with such as if it overlaps or intersects with another Element.\r\n // Can initialize it with either a StyleBox or another BoxPosition.\r\n function BoxPosition(obj) {\r\n var isIE8 = (/MSIE\\s8\\.0/).test(navigator.userAgent);\r\n\r\n // Either a BoxPosition was passed in and we need to copy it, or a StyleBox\r\n // was passed in and we need to copy the results of 'getBoundingClientRect'\r\n // as the object returned is readonly. All co-ordinate values are in reference\r\n // to the viewport origin (top left).\r\n var lh, height, width, top;\r\n if (obj.div) {\r\n height = obj.div.offsetHeight;\r\n width = obj.div.offsetWidth;\r\n top = obj.div.offsetTop;\r\n\r\n var rects = (rects = obj.div.childNodes) && (rects = rects[0]) &&\r\n rects.getClientRects && rects.getClientRects();\r\n obj = obj.div.getBoundingClientRect();\r\n // In certain cases the outter div will be slightly larger then the sum of\r\n // the inner div's lines. This could be due to bold text, etc, on some platforms.\r\n // In this case we should get the average line height and use that. This will\r\n // result in the desired behaviour.\r\n lh = rects ? Math.max((rects[0] && rects[0].height) || 0, obj.height / rects.length)\r\n : 0;\r\n\r\n }\r\n this.left = obj.left;\r\n this.right = obj.right;\r\n this.top = obj.top || top;\r\n this.height = obj.height || height;\r\n this.bottom = obj.bottom || (top + (obj.height || height));\r\n this.width = obj.width || width;\r\n this.lineHeight = lh !== undefined ? lh : obj.lineHeight;\r\n\r\n if (isIE8 && !this.lineHeight) {\r\n this.lineHeight = 13;\r\n }\r\n }\r\n\r\n // Move the box along a particular axis. Optionally pass in an amount to move\r\n // the box. If no amount is passed then the default is the line height of the\r\n // box.\r\n BoxPosition.prototype.move = function(axis, toMove) {\r\n toMove = toMove !== undefined ? toMove : this.lineHeight;\r\n switch (axis) {\r\n case \"+x\":\r\n this.left += toMove;\r\n this.right += toMove;\r\n break;\r\n case \"-x\":\r\n this.left -= toMove;\r\n this.right -= toMove;\r\n break;\r\n case \"+y\":\r\n this.top += toMove;\r\n this.bottom += toMove;\r\n break;\r\n case \"-y\":\r\n this.top -= toMove;\r\n this.bottom -= toMove;\r\n break;\r\n }\r\n };\r\n\r\n // Check if this box overlaps another box, b2.\r\n BoxPosition.prototype.overlaps = function(b2) {\r\n return this.left < b2.right &&\r\n this.right > b2.left &&\r\n this.top < b2.bottom &&\r\n this.bottom > b2.top;\r\n };\r\n\r\n // Check if this box overlaps any other boxes in boxes.\r\n BoxPosition.prototype.overlapsAny = function(boxes) {\r\n for (var i = 0; i < boxes.length; i++) {\r\n if (this.overlaps(boxes[i])) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n\r\n // Check if this box is within another box.\r\n BoxPosition.prototype.within = function(container) {\r\n return this.top >= container.top &&\r\n this.bottom <= container.bottom &&\r\n this.left >= container.left &&\r\n this.right <= container.right;\r\n };\r\n\r\n // Check if this box is entirely within the container or it is overlapping\r\n // on the edge opposite of the axis direction passed. For example, if \"+x\" is\r\n // passed and the box is overlapping on the left edge of the container, then\r\n // return true.\r\n BoxPosition.prototype.overlapsOppositeAxis = function(container, axis) {\r\n switch (axis) {\r\n case \"+x\":\r\n return this.left < container.left;\r\n case \"-x\":\r\n return this.right > container.right;\r\n case \"+y\":\r\n return this.top < container.top;\r\n case \"-y\":\r\n return this.bottom > container.bottom;\r\n }\r\n };\r\n\r\n // Find the percentage of the area that this box is overlapping with another\r\n // box.\r\n BoxPosition.prototype.intersectPercentage = function(b2) {\r\n var x = Math.max(0, Math.min(this.right, b2.right) - Math.max(this.left, b2.left)),\r\n y = Math.max(0, Math.min(this.bottom, b2.bottom) - Math.max(this.top, b2.top)),\r\n intersectArea = x * y;\r\n return intersectArea / (this.height * this.width);\r\n };\r\n\r\n // Convert the positions from this box to CSS compatible positions using\r\n // the reference container's positions. This has to be done because this\r\n // box's positions are in reference to the viewport origin, whereas, CSS\r\n // values are in referecne to their respective edges.\r\n BoxPosition.prototype.toCSSCompatValues = function(reference) {\r\n return {\r\n top: this.top - reference.top,\r\n bottom: reference.bottom - this.bottom,\r\n left: this.left - reference.left,\r\n right: reference.right - this.right,\r\n height: this.height,\r\n width: this.width\r\n };\r\n };\r\n\r\n // Get an object that represents the box's position without anything extra.\r\n // Can pass a StyleBox, HTMLElement, or another BoxPositon.\r\n BoxPosition.getSimpleBoxPosition = function(obj) {\r\n var height = obj.div ? obj.div.offsetHeight : obj.tagName ? obj.offsetHeight : 0;\r\n var width = obj.div ? obj.div.offsetWidth : obj.tagName ? obj.offsetWidth : 0;\r\n var top = obj.div ? obj.div.offsetTop : obj.tagName ? obj.offsetTop : 0;\r\n\r\n obj = obj.div ? obj.div.getBoundingClientRect() :\r\n obj.tagName ? obj.getBoundingClientRect() : obj;\r\n var ret = {\r\n left: obj.left,\r\n right: obj.right,\r\n top: obj.top || top,\r\n height: obj.height || height,\r\n bottom: obj.bottom || (top + (obj.height || height)),\r\n width: obj.width || width\r\n };\r\n return ret;\r\n };\r\n\r\n // Move a StyleBox to its specified, or next best, position. The containerBox\r\n // is the box that contains the StyleBox, such as a div. boxPositions are\r\n // a list of other boxes that the styleBox can't overlap with.\r\n function moveBoxToLinePosition(window, styleBox, containerBox, boxPositions) {\r\n\r\n // Find the best position for a cue box, b, on the video. The axis parameter\r\n // is a list of axis, the order of which, it will move the box along. For example:\r\n // Passing [\"+x\", \"-x\"] will move the box first along the x axis in the positive\r\n // direction. If it doesn't find a good position for it there it will then move\r\n // it along the x axis in the negative direction.\r\n function findBestPosition(b, axis) {\r\n var bestPosition,\r\n specifiedPosition = new BoxPosition(b),\r\n percentage = 1; // Highest possible so the first thing we get is better.\r\n\r\n for (var i = 0; i < axis.length; i++) {\r\n while (b.overlapsOppositeAxis(containerBox, axis[i]) ||\r\n (b.within(containerBox) && b.overlapsAny(boxPositions))) {\r\n b.move(axis[i]);\r\n }\r\n // We found a spot where we aren't overlapping anything. This is our\r\n // best position.\r\n if (b.within(containerBox)) {\r\n return b;\r\n }\r\n var p = b.intersectPercentage(containerBox);\r\n // If we're outside the container box less then we were on our last try\r\n // then remember this position as the best position.\r\n if (percentage > p) {\r\n bestPosition = new BoxPosition(b);\r\n percentage = p;\r\n }\r\n // Reset the box position to the specified position.\r\n b = new BoxPosition(specifiedPosition);\r\n }\r\n return bestPosition || specifiedPosition;\r\n }\r\n\r\n var boxPosition = new BoxPosition(styleBox),\r\n cue = styleBox.cue,\r\n linePos = computeLinePos(cue),\r\n axis = [];\r\n\r\n // If we have a line number to align the cue to.\r\n if (cue.snapToLines) {\r\n var size;\r\n switch (cue.vertical) {\r\n case \"\":\r\n axis = [ \"+y\", \"-y\" ];\r\n size = \"height\";\r\n break;\r\n case \"rl\":\r\n axis = [ \"+x\", \"-x\" ];\r\n size = \"width\";\r\n break;\r\n case \"lr\":\r\n axis = [ \"-x\", \"+x\" ];\r\n size = \"width\";\r\n break;\r\n }\r\n\r\n var step = boxPosition.lineHeight,\r\n position = step * Math.round(linePos),\r\n maxPosition = containerBox[size] + step,\r\n initialAxis = axis[0];\r\n\r\n // If the specified intial position is greater then the max position then\r\n // clamp the box to the amount of steps it would take for the box to\r\n // reach the max position.\r\n if (Math.abs(position) > maxPosition) {\r\n position = position < 0 ? -1 : 1;\r\n position *= Math.ceil(maxPosition / step) * step;\r\n }\r\n\r\n // If computed line position returns negative then line numbers are\r\n // relative to the bottom of the video instead of the top. Therefore, we\r\n // need to increase our initial position by the length or width of the\r\n // video, depending on the writing direction, and reverse our axis directions.\r\n if (linePos < 0) {\r\n position += cue.vertical === \"\" ? containerBox.height : containerBox.width;\r\n axis = axis.reverse();\r\n }\r\n\r\n // Move the box to the specified position. This may not be its best\r\n // position.\r\n boxPosition.move(initialAxis, position);\r\n\r\n } else {\r\n // If we have a percentage line value for the cue.\r\n var calculatedPercentage = (boxPosition.lineHeight / containerBox.height) * 100;\r\n\r\n switch (cue.lineAlign) {\r\n case \"middle\":\r\n linePos -= (calculatedPercentage / 2);\r\n break;\r\n case \"end\":\r\n linePos -= calculatedPercentage;\r\n break;\r\n }\r\n\r\n // Apply initial line position to the cue box.\r\n switch (cue.vertical) {\r\n case \"\":\r\n styleBox.applyStyles({\r\n top: styleBox.formatStyle(linePos, \"%\")\r\n });\r\n break;\r\n case \"rl\":\r\n styleBox.applyStyles({\r\n left: styleBox.formatStyle(linePos, \"%\")\r\n });\r\n break;\r\n case \"lr\":\r\n styleBox.applyStyles({\r\n right: styleBox.formatStyle(linePos, \"%\")\r\n });\r\n break;\r\n }\r\n\r\n axis = [ \"+y\", \"-x\", \"+x\", \"-y\" ];\r\n\r\n // Get the box position again after we've applied the specified positioning\r\n // to it.\r\n boxPosition = new BoxPosition(styleBox);\r\n }\r\n\r\n var bestPosition = findBestPosition(boxPosition, axis);\r\n styleBox.move(bestPosition.toCSSCompatValues(containerBox));\r\n }\r\n\r\n function WebVTT() {\r\n // Nothing\r\n }\r\n\r\n // Helper to allow strings to be decoded instead of the default binary utf8 data.\r\n WebVTT.StringDecoder = function() {\r\n return {\r\n decode: function(data) {\r\n if (!data) {\r\n return \"\";\r\n }\r\n if (typeof data !== \"string\") {\r\n throw new Error(\"Error - expected string data.\");\r\n }\r\n return decodeURIComponent(encodeURIComponent(data));\r\n }\r\n };\r\n };\r\n\r\n WebVTT.convertCueToDOMTree = function(window, cuetext) {\r\n if (!window || !cuetext) {\r\n return null;\r\n }\r\n return parseContent(window, cuetext);\r\n };\r\n\r\n var FONT_SIZE_PERCENT = 0.05;\r\n var FONT_STYLE = \"sans-serif\";\r\n var CUE_BACKGROUND_PADDING = \"1.5%\";\r\n\r\n // Runs the processing model over the cues and regions passed to it.\r\n // @param overlay A block level element (usually a div) that the computed cues\r\n // and regions will be placed into.\r\n WebVTT.processCues = function(window, cues, overlay) {\r\n if (!window || !cues || !overlay) {\r\n return null;\r\n }\r\n\r\n // Remove all previous children.\r\n while (overlay.firstChild) {\r\n overlay.removeChild(overlay.firstChild);\r\n }\r\n\r\n var paddedOverlay = window.document.createElement(\"div\");\r\n paddedOverlay.style.position = \"absolute\";\r\n paddedOverlay.style.left = \"0\";\r\n paddedOverlay.style.right = \"0\";\r\n paddedOverlay.style.top = \"0\";\r\n paddedOverlay.style.bottom = \"0\";\r\n paddedOverlay.style.margin = CUE_BACKGROUND_PADDING;\r\n overlay.appendChild(paddedOverlay);\r\n\r\n // Determine if we need to compute the display states of the cues. This could\r\n // be the case if a cue's state has been changed since the last computation or\r\n // if it has not been computed yet.\r\n function shouldCompute(cues) {\r\n for (var i = 0; i < cues.length; i++) {\r\n if (cues[i].hasBeenReset || !cues[i].displayState) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n // We don't need to recompute the cues' display states. Just reuse them.\r\n if (!shouldCompute(cues)) {\r\n for (var i = 0; i < cues.length; i++) {\r\n paddedOverlay.appendChild(cues[i].displayState);\r\n }\r\n return;\r\n }\r\n\r\n var boxPositions = [],\r\n containerBox = BoxPosition.getSimpleBoxPosition(paddedOverlay),\r\n fontSize = Math.round(containerBox.height * FONT_SIZE_PERCENT * 100) / 100;\r\n var styleOptions = {\r\n font: fontSize + \"px \" + FONT_STYLE\r\n };\r\n\r\n (function() {\r\n var styleBox, cue;\r\n\r\n for (var i = 0; i < cues.length; i++) {\r\n cue = cues[i];\r\n\r\n // Compute the intial position and styles of the cue div.\r\n styleBox = new CueStyleBox(window, cue, styleOptions);\r\n paddedOverlay.appendChild(styleBox.div);\r\n\r\n // Move the cue div to it's correct line position.\r\n moveBoxToLinePosition(window, styleBox, containerBox, boxPositions);\r\n\r\n // Remember the computed div so that we don't have to recompute it later\r\n // if we don't have too.\r\n cue.displayState = styleBox.div;\r\n\r\n boxPositions.push(BoxPosition.getSimpleBoxPosition(styleBox));\r\n }\r\n })();\r\n };\r\n\r\n WebVTT.Parser = function(window, vttjs, decoder) {\r\n if (!decoder) {\r\n decoder = vttjs;\r\n vttjs = {};\r\n }\r\n if (!vttjs) {\r\n vttjs = {};\r\n }\r\n\r\n this.window = window;\r\n this.vttjs = vttjs;\r\n this.state = \"INITIAL\";\r\n this.buffer = \"\";\r\n this.decoder = decoder || new TextDecoder(\"utf8\");\r\n this.regionList = [];\r\n };\r\n\r\n WebVTT.Parser.prototype = {\r\n // If the error is a ParsingError then report it to the consumer if\r\n // possible. If it's not a ParsingError then throw it like normal.\r\n reportOrThrowError: function(e) {\r\n if (e instanceof ParsingError) {\r\n this.onparsingerror && this.onparsingerror(e);\r\n } else {\r\n throw e;\r\n }\r\n },\r\n parse: function (data) {\r\n var self = this;\r\n\r\n // If there is no data then we won't decode it, but will just try to parse\r\n // whatever is in buffer already. This may occur in circumstances, for\r\n // example when flush() is called.\r\n if (data) {\r\n // Try to decode the data that we received.\r\n self.buffer += self.decoder.decode(data, {stream: true});\r\n }\r\n\r\n function collectNextLine() {\r\n var buffer = self.buffer;\r\n var pos = 0;\r\n while (pos < buffer.length && buffer[pos] !== '\\r' && buffer[pos] !== '\\n') {\r\n ++pos;\r\n }\r\n var line = buffer.substr(0, pos);\r\n // Advance the buffer early in case we fail below.\r\n if (buffer[pos] === '\\r') {\r\n ++pos;\r\n }\r\n if (buffer[pos] === '\\n') {\r\n ++pos;\r\n }\r\n self.buffer = buffer.substr(pos);\r\n return line;\r\n }\r\n\r\n // 3.4 WebVTT region and WebVTT region settings syntax\r\n function parseRegion(input) {\r\n var settings = new Settings();\r\n\r\n parseOptions(input, function (k, v) {\r\n switch (k) {\r\n case \"id\":\r\n settings.set(k, v);\r\n break;\r\n case \"width\":\r\n settings.percent(k, v);\r\n break;\r\n case \"lines\":\r\n settings.integer(k, v);\r\n break;\r\n case \"regionanchor\":\r\n case \"viewportanchor\":\r\n var xy = v.split(',');\r\n if (xy.length !== 2) {\r\n break;\r\n }\r\n // We have to make sure both x and y parse, so use a temporary\r\n // settings object here.\r\n var anchor = new Settings();\r\n anchor.percent(\"x\", xy[0]);\r\n anchor.percent(\"y\", xy[1]);\r\n if (!anchor.has(\"x\") || !anchor.has(\"y\")) {\r\n break;\r\n }\r\n settings.set(k + \"X\", anchor.get(\"x\"));\r\n settings.set(k + \"Y\", anchor.get(\"y\"));\r\n break;\r\n case \"scroll\":\r\n settings.alt(k, v, [\"up\"]);\r\n break;\r\n }\r\n }, /=/, /\\s/);\r\n\r\n // Create the region, using default values for any values that were not\r\n // specified.\r\n if (settings.has(\"id\")) {\r\n var region = new (self.vttjs.VTTRegion || self.window.VTTRegion)();\r\n region.width = settings.get(\"width\", 100);\r\n region.lines = settings.get(\"lines\", 3);\r\n region.regionAnchorX = settings.get(\"regionanchorX\", 0);\r\n region.regionAnchorY = settings.get(\"regionanchorY\", 100);\r\n region.viewportAnchorX = settings.get(\"viewportanchorX\", 0);\r\n region.viewportAnchorY = settings.get(\"viewportanchorY\", 100);\r\n region.scroll = settings.get(\"scroll\", \"\");\r\n // Register the region.\r\n self.onregion && self.onregion(region);\r\n // Remember the VTTRegion for later in case we parse any VTTCues that\r\n // reference it.\r\n self.regionList.push({\r\n id: settings.get(\"id\"),\r\n region: region\r\n });\r\n }\r\n }\r\n\r\n // 3.2 WebVTT metadata header syntax\r\n function parseHeader(input) {\r\n parseOptions(input, function (k, v) {\r\n switch (k) {\r\n case \"Region\":\r\n // 3.3 WebVTT region metadata header syntax\r\n parseRegion(v);\r\n break;\r\n }\r\n }, /:/);\r\n }\r\n\r\n // 5.1 WebVTT file parsing.\r\n try {\r\n var line;\r\n if (self.state === \"INITIAL\") {\r\n // We can't start parsing until we have the first line.\r\n if (!/\\r\\n|\\n/.test(self.buffer)) {\r\n return this;\r\n }\r\n\r\n line = collectNextLine();\r\n\r\n var m = line.match(/^WEBVTT([ \\t].*)?$/);\r\n if (!m || !m[0]) {\r\n throw new ParsingError(ParsingError.Errors.BadSignature);\r\n }\r\n\r\n self.state = \"HEADER\";\r\n }\r\n\r\n var alreadyCollectedLine = false;\r\n while (self.buffer) {\r\n // We can't parse a line until we have the full line.\r\n if (!/\\r\\n|\\n/.test(self.buffer)) {\r\n return this;\r\n }\r\n\r\n if (!alreadyCollectedLine) {\r\n line = collectNextLine();\r\n } else {\r\n alreadyCollectedLine = false;\r\n }\r\n\r\n switch (self.state) {\r\n case \"HEADER\":\r\n // 13-18 - Allow a header (metadata) under the WEBVTT line.\r\n if (/:/.test(line)) {\r\n parseHeader(line);\r\n } else if (!line) {\r\n // An empty line terminates the header and starts the body (cues).\r\n self.state = \"ID\";\r\n }\r\n continue;\r\n case \"NOTE\":\r\n // Ignore NOTE blocks.\r\n if (!line) {\r\n self.state = \"ID\";\r\n }\r\n continue;\r\n case \"ID\":\r\n // Check for the start of NOTE blocks.\r\n if (/^NOTE($|[ \\t])/.test(line)) {\r\n self.state = \"NOTE\";\r\n break;\r\n }\r\n // 19-29 - Allow any number of line terminators, then initialize new cue values.\r\n if (!line) {\r\n continue;\r\n }\r\n self.cue = new (self.vttjs.VTTCue || self.window.VTTCue)(0, 0, \"\");\r\n self.state = \"CUE\";\r\n // 30-39 - Check if self line contains an optional identifier or timing data.\r\n if (line.indexOf(\"-->\") === -1) {\r\n self.cue.id = line;\r\n continue;\r\n }\r\n // Process line as start of a cue.\r\n /*falls through*/\r\n case \"CUE\":\r\n // 40 - Collect cue timings and settings.\r\n try {\r\n parseCue(line, self.cue, self.regionList);\r\n } catch (e) {\r\n self.reportOrThrowError(e);\r\n // In case of an error ignore rest of the cue.\r\n self.cue = null;\r\n self.state = \"BADCUE\";\r\n continue;\r\n }\r\n self.state = \"CUETEXT\";\r\n continue;\r\n case \"CUETEXT\":\r\n var hasSubstring = line.indexOf(\"-->\") !== -1;\r\n // 34 - If we have an empty line then report the cue.\r\n // 35 - If we have the special substring '-->' then report the cue,\r\n // but do not collect the line as we need to process the current\r\n // one as a new cue.\r\n if (!line || hasSubstring && (alreadyCollectedLine = true)) {\r\n // We are done parsing self cue.\r\n self.oncue && self.oncue(self.cue);\r\n self.cue = null;\r\n self.state = \"ID\";\r\n continue;\r\n }\r\n if (self.cue.text) {\r\n self.cue.text += \"\\n\";\r\n }\r\n self.cue.text += line;\r\n continue;\r\n case \"BADCUE\": // BADCUE\r\n // 54-62 - Collect and discard the remaining cue.\r\n if (!line) {\r\n self.state = \"ID\";\r\n }\r\n continue;\r\n }\r\n }\r\n } catch (e) {\r\n self.reportOrThrowError(e);\r\n\r\n // If we are currently parsing a cue, report what we have.\r\n if (self.state === \"CUETEXT\" && self.cue && self.oncue) {\r\n self.oncue(self.cue);\r\n }\r\n self.cue = null;\r\n // Enter BADWEBVTT state if header was not parsed correctly otherwise\r\n // another exception occurred so enter BADCUE state.\r\n self.state = self.state === \"INITIAL\" ? \"BADWEBVTT\" : \"BADCUE\";\r\n }\r\n return this;\r\n },\r\n flush: function () {\r\n var self = this;\r\n try {\r\n // Finish decoding the stream.\r\n self.buffer += self.decoder.decode();\r\n // Synthesize the end of the current cue or region.\r\n if (self.cue || self.state === \"HEADER\") {\r\n self.buffer += \"\\n\\n\";\r\n self.parse();\r\n }\r\n // If we've flushed, parsed, and we're still on the INITIAL state then\r\n // that means we don't have enough of the stream to parse the first\r\n // line.\r\n if (self.state === \"INITIAL\") {\r\n throw new ParsingError(ParsingError.Errors.BadSignature);\r\n }\r\n } catch(e) {\r\n self.reportOrThrowError(e);\r\n }\r\n self.onflush && self.onflush();\r\n return this;\r\n }\r\n };\r\n\r\n global.WebVTT = WebVTT;\r\n\r\n}(this, (this.vttjs || {})));\r\n","/*! FileAPI 2.1.0 - BSD | git://github.com/mailru/FileAPI.git\n * FileAPI — a set of javascript tools for working with files. Multiupload, drag'n'drop and chunked file upload. Images: crop, resize and auto orientation by EXIF.\n */\n\n/*\n * JavaScript Canvas to Blob 2.0.5\n * https://github.com/blueimp/JavaScript-Canvas-to-Blob\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n *\n * Based on stackoverflow user Stoive's code snippet:\n * http://stackoverflow.com/q/4998908\n */\n\n/*jslint nomen: true, regexp: true */\n/*global window, atob, Blob, ArrayBuffer, Uint8Array */\n\n(function (window) {\n 'use strict';\n var CanvasPrototype = window.HTMLCanvasElement &&\n window.HTMLCanvasElement.prototype,\n hasBlobConstructor = window.Blob && (function () {\n try {\n return Boolean(new Blob());\n } catch (e) {\n return false;\n }\n }()),\n hasArrayBufferViewSupport = hasBlobConstructor && window.Uint8Array &&\n (function () {\n try {\n return new Blob([new Uint8Array(100)]).size === 100;\n } catch (e) {\n return false;\n }\n }()),\n BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||\n window.MozBlobBuilder || window.MSBlobBuilder,\n dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window.atob &&\n window.ArrayBuffer && window.Uint8Array && function (dataURI) {\n var byteString,\n arrayBuffer,\n intArray,\n i,\n mimeString,\n bb;\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\n // Convert base64 to raw binary data held in a string:\n byteString = atob(dataURI.split(',')[1]);\n } else {\n // Convert base64/URLEncoded data component to raw binary data:\n byteString = decodeURIComponent(dataURI.split(',')[1]);\n }\n // Write the bytes of the string to an ArrayBuffer:\n arrayBuffer = new ArrayBuffer(byteString.length);\n intArray = new Uint8Array(arrayBuffer);\n for (i = 0; i < byteString.length; i += 1) {\n intArray[i] = byteString.charCodeAt(i);\n }\n // Separate out the mime component:\n mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n // Write the ArrayBuffer (or ArrayBufferView) to a blob:\n if (hasBlobConstructor) {\n return new Blob(\n [hasArrayBufferViewSupport ? intArray : arrayBuffer],\n {type: mimeString}\n );\n }\n bb = new BlobBuilder();\n bb.append(arrayBuffer);\n return bb.getBlob(mimeString);\n };\n if (window.HTMLCanvasElement && !CanvasPrototype.toBlob) {\n if (CanvasPrototype.mozGetAsFile) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {\n callback(dataURLtoBlob(this.toDataURL(type, quality)));\n } else {\n callback(this.mozGetAsFile('blob', type));\n }\n };\n } else if (CanvasPrototype.toDataURL && dataURLtoBlob) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n callback(dataURLtoBlob(this.toDataURL(type, quality)));\n };\n }\n }\n window.dataURLtoBlob = dataURLtoBlob;\n})(window);\n\n/*jslint evil: true */\n/*global window, URL, webkitURL, ActiveXObject */\n\n(function (window, undef){\n\t'use strict';\n\n\tvar\n\t\tgid = 1,\n\t\tnoop = function (){},\n\n\t\tdocument = window.document,\n\t\tdoctype = document.doctype || {},\n\t\tuserAgent = window.navigator.userAgent,\n\t\tsafari = /safari\\//i.test(userAgent) && !/chrome\\//i.test(userAgent),\n\t\tiemobile = /iemobile\\//i.test(userAgent),\n\t\tinsecureChrome = !safari && /chrome\\//i.test(userAgent) && window.location.protocol === 'http:',\n\n\t\t// https://github.com/blueimp/JavaScript-Load-Image/blob/master/load-image.js#L48\n\t\tapiURL = (window.createObjectURL && window) || (window.URL && URL.revokeObjectURL && URL) || (window.webkitURL && webkitURL),\n\n\t\tBlob = window.Blob,\n\t\tFile = window.File,\n\t\tFileReader = window.FileReader,\n\t\tFormData = window.FormData,\n\n\n\t\tXMLHttpRequest = window.XMLHttpRequest,\n\t\tjQuery = window.jQuery,\n\n\t\thtml5 = !!(File && (FileReader && (window.Uint8Array || FormData || XMLHttpRequest.prototype.sendAsBinary)))\n\t\t\t\t&& !(safari && /windows/i.test(userAgent) && !iemobile), // BugFix: https://github.com/mailru/FileAPI/issues/25\n\n\t\tcors = html5 && ('withCredentials' in (new XMLHttpRequest)),\n\n\t\tchunked = html5 && !!Blob && !!(Blob.prototype.webkitSlice || Blob.prototype.mozSlice || Blob.prototype.slice),\n\n\t\tnormalize = ('' + ''.normalize).indexOf('[native code]') > 0,\n\n\t\t// https://github.com/blueimp/JavaScript-Canvas-to-Blob\n\t\tdataURLtoBlob = window.dataURLtoBlob,\n\n\n\t\t_rimg = /img/i,\n\t\t_rcanvas = /canvas/i,\n\t\t_rimgcanvas = /img|canvas/i,\n\t\t_rinput = /input/i,\n\t\t_rdata = /^data:[^,]+,/,\n\n\t\t_toString = {}.toString,\n\t\t_supportConsoleLog,\n\t\t_supportConsoleLogApply,\n\n\n\t\tMath = window.Math,\n\n\t\t_SIZE_CONST = function (pow){\n\t\t\tpow = new window.Number(Math.pow(1024, pow));\n\t\t\tpow.from = function (sz){ return Math.round(sz * this); };\n\t\t\treturn\tpow;\n\t\t},\n\n\t\t_elEvents = {}, // element event listeners\n\t\t_infoReader = [], // list of file info processors\n\n\t\t_readerEvents = 'abort progress error load loadend',\n\t\t_xhrPropsExport = 'status statusText readyState response responseXML responseText responseBody'.split(' '),\n\n\t\tcurrentTarget = 'currentTarget', // for minimize\n\t\tpreventDefault = 'preventDefault', // and this too\n\n\t\t_isArray = function (ar) {\n\t\t\treturn\tar && ('length' in ar);\n\t\t},\n\n\t\t/**\n\t\t * Iterate over a object or array\n\t\t */\n\t\t_each = function (obj, fn, ctx){\n\t\t\tif( obj ){\n\t\t\t\tif( _isArray(obj) ){\n\t\t\t\t\tfor( var i = 0, n = obj.length; i < n; i++ ){\n\t\t\t\t\t\tif( i in obj ){\n\t\t\t\t\t\t\tfn.call(ctx, obj[i], i, obj);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfor( var key in obj ){\n\t\t\t\t\t\tif( obj.hasOwnProperty(key) ){\n\t\t\t\t\t\t\tfn.call(ctx, obj[key], key, obj);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Merge the contents of two or more objects together into the first object\n\t\t */\n\t\t_extend = function (dst){\n\t\t\tvar args = arguments, i = 1, _ext = function (val, key){ dst[key] = val; };\n\t\t\tfor( ; i < args.length; i++ ){\n\t\t\t\t_each(args[i], _ext);\n\t\t\t}\n\t\t\treturn dst;\n\t\t},\n\n\t\t/**\n\t\t * Add event listener\n\t\t */\n\t\t_on = function (el, type, fn){\n\t\t\tif( el ){\n\t\t\t\tvar uid = api.uid(el);\n\n\t\t\t\tif( !_elEvents[uid] ){\n\t\t\t\t\t_elEvents[uid] = {};\n\t\t\t\t}\n\n\t\t\t\tvar isFileReader = (FileReader && el) && (el instanceof FileReader);\n\t\t\t\t_each(type.split(/\\s+/), function (type){\n\t\t\t\t\tif( jQuery && !isFileReader){\n\t\t\t\t\t\tjQuery.event.add(el, type, fn);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( !_elEvents[uid][type] ){\n\t\t\t\t\t\t\t_elEvents[uid][type] = [];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_elEvents[uid][type].push(fn);\n\n\t\t\t\t\t\tif( el.addEventListener ){ el.addEventListener(type, fn, false); }\n\t\t\t\t\t\telse if( el.attachEvent ){ el.attachEvent('on'+type, fn); }\n\t\t\t\t\t\telse { el['on'+type] = fn; }\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Remove event listener\n\t\t */\n\t\t_off = function (el, type, fn){\n\t\t\tif( el ){\n\t\t\t\tvar uid = api.uid(el), events = _elEvents[uid] || {};\n\n\t\t\t\tvar isFileReader = (FileReader && el) && (el instanceof FileReader);\n\t\t\t\t_each(type.split(/\\s+/), function (type){\n\t\t\t\t\tif( jQuery && !isFileReader){\n\t\t\t\t\t\tjQuery.event.remove(el, type, fn);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar fns = events[type] || [], i = fns.length;\n\n\t\t\t\t\t\twhile( i-- ){\n\t\t\t\t\t\t\tif( fns[i] === fn ){\n\t\t\t\t\t\t\t\tfns.splice(i, 1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( el.addEventListener ){ el.removeEventListener(type, fn, false); }\n\t\t\t\t\t\telse if( el.detachEvent ){ el.detachEvent('on'+type, fn); }\n\t\t\t\t\t\telse { el['on'+type] = null; }\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\n\t\t_one = function(el, type, fn){\n\t\t\t_on(el, type, function _(evt){\n\t\t\t\t_off(el, type, _);\n\t\t\t\tfn(evt);\n\t\t\t});\n\t\t},\n\n\n\t\t_fixEvent = function (evt){\n\t\t\tif( !evt.target ){ evt.target = window.event && window.event.srcElement || document; }\n\t\t\tif( evt.target.nodeType === 3 ){ evt.target = evt.target.parentNode; }\n\t\t\treturn evt;\n\t\t},\n\n\n\t\t_supportInputAttr = function (attr){\n\t\t\tvar input = document.createElement('input');\n\t\t\tinput.setAttribute('type', \"file\");\n\t\t\treturn attr in input;\n\t\t},\n\n\n\t\t/**\n\t\t * FileAPI (core object)\n\t\t */\n\t\tapi = {\n\t\t\tversion: '2.1.0',\n\n\t\t\tcors: false,\n\t\t\thtml5: true,\n\t\t\tmedia: false,\n\t\t\tformData: true,\n\t\t\tmultiPassResize: true,\n\t\t\tinsecureChrome: insecureChrome,\n\n\t\t\tdebug: false,\n\t\t\tpingUrl: false,\n\t\t\tmultiFlash: false,\n\t\t\tflashAbortTimeout: 0,\n\t\t\twithCredentials: true,\n\n\t\t\tstaticPath: './dist/',\n\n\t\t\tflashUrl: 0, // @default: './FileAPI.flash.swf'\n\t\t\tflashImageUrl: 0, // @default: './FileAPI.flash.image.swf'\n\n\t\t\tpostNameConcat: function (name, idx){\n\t\t\t\treturn\tname + (idx != null ? '['+ idx +']' : '');\n\t\t\t},\n\n\t\t\text2mime: {\n\t\t\t\t jpg:\t'image/jpeg'\n\t\t\t\t, tif:\t'image/tiff'\n\t\t\t\t, txt:\t'text/plain'\n\t\t\t},\n\n\t\t\t// Fallback for flash\n\t\t\taccept: {\n\t\t\t\t 'image/*': 'art bm bmp dwg dxf cbr cbz fif fpx gif ico iefs jfif jpe jpeg jpg jps jut mcf nap nif pbm pcx pgm pict pm png pnm qif qtif ras rast rf rp svf tga tif tiff xbm xbm xpm xwd'\n\t\t\t\t, 'audio/*': 'm4a flac aac rm mpa wav wma ogg mp3 mp2 m3u mod amf dmf dsm far gdm imf it m15 med okt s3m stm sfx ult uni xm sid ac3 dts cue aif aiff wpl ape mac mpc mpp shn wv nsf spc gym adplug adx dsp adp ymf ast afc hps xs'\n\t\t\t\t, 'video/*': 'm4v 3gp nsv ts ty strm rm rmvb m3u ifo mov qt divx xvid bivx vob nrg img iso pva wmv asf asx ogm m2v avi bin dat dvr-ms mpg mpeg mp4 mkv avc vp3 svq3 nuv viv dv fli flv wpl'\n\t\t\t},\n\n\t\t\tuploadRetry : 0,\n\t\t\tnetworkDownRetryTimeout : 5000, // milliseconds, don't flood when network is down\n\n\t\t\tchunkSize : 0,\n\t\t\tchunkUploadRetry : 0,\n\t\t\tchunkNetworkDownRetryTimeout : 2000, // milliseconds, don't flood when network is down\n\n\t\t\tKB: _SIZE_CONST(1),\n\t\t\tMB: _SIZE_CONST(2),\n\t\t\tGB: _SIZE_CONST(3),\n\t\t\tTB: _SIZE_CONST(4),\n\n\t\t\tEMPTY_PNG: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII=',\n\n\t\t\texpando: 'fileapi' + (new Date).getTime(),\n\n\t\t\tuid: function (obj){\n\t\t\t\treturn\tobj\n\t\t\t\t\t? (obj[api.expando] = obj[api.expando] || api.uid())\n\t\t\t\t\t: (++gid, api.expando + gid)\n\t\t\t\t;\n\t\t\t},\n\n\t\t\tlog: function (){\n\t\t\t\tif( api.debug && _supportConsoleLog ){\n\t\t\t\t\tif( _supportConsoleLogApply ){\n\t\t\t\t\t\tconsole.log.apply(console, arguments);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconsole.log([].join.call(arguments, ' '));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Create new image\n\t\t\t *\n\t\t\t * @param {String} [src]\n\t\t\t * @param {Function} [fn] 1. error -- boolean, 2. img -- Image element\n\t\t\t * @returns {HTMLElement}\n\t\t\t */\n\t\t\tnewImage: function (src, fn){\n\t\t\t\tvar img = document.createElement('img');\n\t\t\t\tif( fn ){\n\t\t\t\t\tapi.event.one(img, 'error load', function (evt){\n\t\t\t\t\t\tfn(evt.type == 'error', img);\n\t\t\t\t\t\timg = null;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\timg.src = src;\n\t\t\t\treturn\timg;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get XHR\n\t\t\t * @returns {XMLHttpRequest}\n\t\t\t */\n\t\t\tgetXHR: function (){\n\t\t\t\tvar xhr;\n\n\t\t\t\tif( XMLHttpRequest ){\n\t\t\t\t\txhr = new XMLHttpRequest;\n\t\t\t\t}\n\t\t\t\telse if( window.ActiveXObject ){\n\t\t\t\t\ttry {\n\t\t\t\t\t\txhr = new ActiveXObject('MSXML2.XMLHttp.3.0');\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\txhr = new ActiveXObject('Microsoft.XMLHTTP');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn xhr;\n\t\t\t},\n\n\t\t\tisArray: _isArray,\n\n\t\t\tsupport: {\n\t\t\t\tdnd: cors && ('ondrop' in document.createElement('div')),\n\t\t\t\tcors: cors,\n\t\t\t\thtml5: html5,\n\t\t\t\tchunked: chunked,\n\t\t\t\tdataURI: true,\n\t\t\t\taccept: _supportInputAttr('accept'),\n\t\t\t\tmultiple: _supportInputAttr('multiple')\n\t\t\t},\n\n\t\t\tevent: {\n\t\t\t\t on: _on\n\t\t\t\t, off: _off\n\t\t\t\t, one: _one\n\t\t\t\t, fix: _fixEvent\n\t\t\t},\n\n\n\t\t\tthrottle: function(fn, delay) {\n\t\t\t\tvar id, args;\n\n\t\t\t\treturn function _throttle(){\n\t\t\t\t\targs = arguments;\n\n\t\t\t\t\tif( !id ){\n\t\t\t\t\t\tfn.apply(window, args);\n\t\t\t\t\t\tid = setTimeout(function (){\n\t\t\t\t\t\t\tid = 0;\n\t\t\t\t\t\t\tfn.apply(window, args);\n\t\t\t\t\t\t}, delay);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\n\t\t\tF: function (){},\n\n\n\t\t\tparseJSON: function (str){\n\t\t\t\tvar json;\n\t\t\t\tif( window.JSON && JSON.parse ){\n\t\t\t\t\tjson = JSON.parse(str);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tjson = (new Function('return ('+str.replace(/([\\r\\n])/g, '\\\\$1')+');'))();\n\t\t\t\t}\n\t\t\t\treturn json;\n\t\t\t},\n\n\n\t\t\ttrim: function (str){\n\t\t\t\tstr = String(str);\n\t\t\t\treturn\tstr.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Simple Defer\n\t\t\t * @return\t{Object}\n\t\t\t */\n\t\t\tdefer: function (){\n\t\t\t\tvar\n\t\t\t\t\t list = []\n\t\t\t\t\t, result\n\t\t\t\t\t, error\n\t\t\t\t\t, defer = {\n\t\t\t\t\t\tresolve: function (err, res){\n\t\t\t\t\t\t\tdefer.resolve = noop;\n\t\t\t\t\t\t\terror\t= err || false;\n\t\t\t\t\t\t\tresult\t= res;\n\n\t\t\t\t\t\t\twhile( res = list.shift() ){\n\t\t\t\t\t\t\t\tres(error, result);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tthen: function (fn){\n\t\t\t\t\t\t\tif( error !== undef ){\n\t\t\t\t\t\t\t\tfn(error, result);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tlist.push(fn);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn\tdefer;\n\t\t\t},\n\n\t\t\tqueue: function (fn){\n\t\t\t\tvar\n\t\t\t\t\t _idx = 0\n\t\t\t\t\t, _length = 0\n\t\t\t\t\t, _fail = false\n\t\t\t\t\t, _end = false\n\t\t\t\t\t, queue = {\n\t\t\t\t\t\tinc: function (){\n\t\t\t\t\t\t\t_length++;\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tnext: function (){\n\t\t\t\t\t\t\t_idx++;\n\t\t\t\t\t\t\tsetTimeout(queue.check, 0);\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tcheck: function (){\n\t\t\t\t\t\t\t(_idx >= _length) && !_fail && queue.end();\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tisFail: function (){\n\t\t\t\t\t\t\treturn _fail;\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tfail: function (){\n\t\t\t\t\t\t\t!_fail && fn(_fail = true);\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tend: function (){\n\t\t\t\t\t\t\tif( !_end ){\n\t\t\t\t\t\t\t\t_end = true;\n\t\t\t\t\t\t\t\tfn();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t;\n\t\t\t\treturn queue;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * For each object\n\t\t\t *\n\t\t\t * @param\t{Object|Array}\tobj\n\t\t\t * @param\t{Function}\t\tfn\n\t\t\t * @param\t{*}\t\t\t\t[ctx]\n\t\t\t */\n\t\t\teach: _each,\n\n\n\t\t\t/**\n\t\t\t * Async for\n\t\t\t * @param {Array} array\n\t\t\t * @param {Function} callback\n\t\t\t */\n\t\t\tafor: function (array, callback){\n\t\t\t\tvar i = 0, n = array.length;\n\n\t\t\t\tif( _isArray(array) && n-- ){\n\t\t\t\t\t(function _next(){\n\t\t\t\t\t\tcallback(n != i && _next, array[i], i++);\n\t\t\t\t\t})();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallback(false);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Merge the contents of two or more objects together into the first object\n\t\t\t *\n\t\t\t * @param\t{Object}\tdst\n\t\t\t * @return\t{Object}\n\t\t\t */\n\t\t\textend: _extend,\n\n\n\t\t\t/**\n\t\t\t * Is file?\n\t\t\t * @param {File} file\n\t\t\t * @return {Boolean}\n\t\t\t */\n\t\t\tisFile: function (file){\n\t\t\t\treturn _toString.call(file) === '[object File]';\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Is blob?\n\t\t\t * @param {Blob} blob\n\t\t\t * @returns {Boolean}\n\t\t\t */\n\t\t\tisBlob: function (blob) {\n\t\t\t\treturn this.isFile(blob) || (_toString.call(blob) === '[object Blob]');\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Is canvas element\n\t\t\t *\n\t\t\t * @param\t{HTMLElement}\tel\n\t\t\t * @return\t{Boolean}\n\t\t\t */\n\t\t\tisCanvas: function (el){\n\t\t\t\treturn\tel && _rcanvas.test(el.nodeName);\n\t\t\t},\n\n\n\t\t\tgetFilesFilter: function (filter){\n\t\t\t\tfilter = typeof filter == 'string' ? filter : (filter.getAttribute && filter.getAttribute('accept') || '');\n\t\t\t\treturn\tfilter ? new RegExp('('+ filter.replace(/\\./g, '\\\\.').replace(/,/g, '|') +')$', 'i') : /./;\n\t\t\t},\n\n\n\n\t\t\t/**\n\t\t\t * Read as DataURL\n\t\t\t *\n\t\t\t * @param {File|Element} file\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\treadAsDataURL: function (file, fn){\n\t\t\t\tif( api.isCanvas(file) ){\n\t\t\t\t\t_emit(file, fn, 'load', api.toDataURL(file));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t_readAs(file, fn, 'DataURL');\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read as Binary string\n\t\t\t *\n\t\t\t * @param {File} file\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\treadAsBinaryString: function (file, fn){\n\t\t\t\tif( _hasSupportReadAs('BinaryString') ){\n\t\t\t\t\t_readAs(file, fn, 'BinaryString');\n\t\t\t\t} else {\n\t\t\t\t\t// Hello IE10!\n\t\t\t\t\t_readAs(file, function (evt){\n\t\t\t\t\t\tif( evt.type == 'load' ){\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t// dataURL -> binaryString\n\t\t\t\t\t\t\t\tevt.result = api.toBinaryString(evt.result);\n\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\tevt.type = 'error';\n\t\t\t\t\t\t\t\tevt.message = e.toString();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfn(evt);\n\t\t\t\t\t}, 'DataURL');\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read as ArrayBuffer\n\t\t\t *\n\t\t\t * @param {File} file\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\treadAsArrayBuffer: function(file, fn){\n\t\t\t\t_readAs(file, fn, 'ArrayBuffer');\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read as text\n\t\t\t *\n\t\t\t * @param {File} file\n\t\t\t * @param {String} encoding\n\t\t\t * @param {Function} [fn]\n\t\t\t */\n\t\t\treadAsText: function(file, encoding, fn){\n\t\t\t\tif( !fn ){\n\t\t\t\t\tfn\t= encoding;\n\t\t\t\t\tencoding = 'utf-8';\n\t\t\t\t}\n\n\t\t\t\t_readAs(file, fn, 'Text', encoding);\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Convert image or canvas to DataURL\n\t\t\t *\n\t\t\t * @param {Element} el Image or Canvas element\n\t\t\t * @param {String} [type] mime-type\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\ttoDataURL: function (el, type){\n\t\t\t\tif( typeof el == 'string' ){\n\t\t\t\t\treturn el;\n\t\t\t\t}\n\t\t\t\telse if( el.toDataURL ){\n\t\t\t\t\treturn el.toDataURL(type || 'image/png');\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Canvert string, image or canvas to binary string\n\t\t\t *\n\t\t\t * @param {String|Element} val\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\ttoBinaryString: function (val){\n\t\t\t\treturn window.atob(api.toDataURL(val).replace(_rdata, ''));\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read file or DataURL as ImageElement\n\t\t\t *\n\t\t\t * @param\t{File|String}\tfile\n\t\t\t * @param\t{Function}\t\tfn\n\t\t\t * @param\t{Boolean}\t\t[progress]\n\t\t\t */\n\t\t\treadAsImage: function (file, fn, progress){\n\t\t\t\tif( api.isBlob(file) ){\n\t\t\t\t\tif( apiURL ){\n\t\t\t\t\t\t/** @namespace apiURL.createObjectURL */\n\t\t\t\t\t\tvar data = apiURL.createObjectURL(file);\n\t\t\t\t\t\tif( data === undef ){\n\t\t\t\t\t\t\t_emit(file, fn, 'error');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tapi.readAsImage(data, fn, progress);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tapi.readAsDataURL(file, function (evt){\n\t\t\t\t\t\t\tif( evt.type == 'load' ){\n\t\t\t\t\t\t\t\tapi.readAsImage(evt.result, fn, progress);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if( progress || evt.type == 'error' ){\n\t\t\t\t\t\t\t\t_emit(file, fn, evt, null, { loaded: evt.loaded, total: evt.total });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( api.isCanvas(file) ){\n\t\t\t\t\t_emit(file, fn, 'load', file);\n\t\t\t\t}\n\t\t\t\telse if( _rimg.test(file.nodeName) ){\n\t\t\t\t\tif( file.complete ){\n\t\t\t\t\t\t_emit(file, fn, 'load', file);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar events = 'error abort load';\n\t\t\t\t\t\t_one(file, events, function _fn(evt){\n\t\t\t\t\t\t\tif( evt.type == 'load' && apiURL ){\n\t\t\t\t\t\t\t\t/** @namespace apiURL.revokeObjectURL */\n\t\t\t\t\t\t\t\tapiURL.revokeObjectURL(file.src);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t_off(file, events, _fn);\n\t\t\t\t\t\t\t_emit(file, fn, evt, file);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( file.iframe ){\n\t\t\t\t\t_emit(file, fn, { type: 'error' });\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Created image\n\t\t\t\t\tvar img = api.newImage(file.dataURL || file);\n\t\t\t\t\tapi.readAsImage(img, fn, progress);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Make file by name\n\t\t\t *\n\t\t\t * @param\t{String}\tname\n\t\t\t * @return\t{Array}\n\t\t\t */\n\t\t\tcheckFileObj: function (name){\n\t\t\t\tvar file = {}, accept = api.accept;\n\n\t\t\t\tif( typeof name == 'object' ){\n\t\t\t\t\tfile = name;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfile.name = (name + '').split(/\\\\|\\//g).pop();\n\t\t\t\t}\n\n\t\t\t\tif( file.type == null ){\n\t\t\t\t\tfile.type = file.name.split('.').pop();\n\t\t\t\t}\n\n\t\t\t\t_each(accept, function (ext, type){\n\t\t\t\t\text = new RegExp(ext.replace(/\\s/g, '|'), 'i');\n\t\t\t\t\tif( ext.test(file.type) || api.ext2mime[file.type] ){\n\t\t\t\t\t\tfile.type = api.ext2mime[file.type] || (type.split('/')[0] +'/'+ file.type);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn\tfile;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get drop files\n\t\t\t *\n\t\t\t * @param\t{Event}\tevt\n\t\t\t * @param\t{Function} callback\n\t\t\t */\n\t\t\tgetDropFiles: function (evt, callback){\n\t\t\t\tvar\n\t\t\t\t\t files = []\n\t\t\t\t\t, all = []\n\t\t\t\t\t, items\n\t\t\t\t\t, dataTransfer = _getDataTransfer(evt)\n\t\t\t\t\t, transFiles = dataTransfer.files\n\t\t\t\t\t, transItems = dataTransfer.items\n\t\t\t\t\t, entrySupport = _isArray(transItems) && transItems[0] && _getAsEntry(transItems[0])\n\t\t\t\t\t, queue = api.queue(function (){ callback(files, all); })\n\t\t\t\t;\n\n\t\t\t\tif( entrySupport ){\n\t\t\t\t\tif( normalize && transFiles ){\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\ti = transFiles.length\n\t\t\t\t\t\t\t, file\n\t\t\t\t\t\t\t, entry\n\t\t\t\t\t\t;\n\n\t\t\t\t\t\titems = new Array(i);\n\t\t\t\t\t\twhile( i-- ){\n\t\t\t\t\t\t\tfile = transFiles[i];\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tentry = _getAsEntry(transItems[i]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch( err ){\n\t\t\t\t\t\t\t\tapi.log('[err] getDropFiles: ', err);\n\t\t\t\t\t\t\t\tentry = null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( _isEntry(entry) ){\n\t\t\t\t\t\t\t\t// OSX filesystems use Unicode Normalization Form D (NFD),\n\t\t\t\t\t\t\t\t// and entry.file(…) can't read the files with the same names\n\t\t\t\t\t\t\t\tif( entry.isDirectory || (entry.isFile && file.name == file.name.normalize('NFC')) ){\n\t\t\t\t\t\t\t\t\titems[i] = entry;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\titems[i] = file;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\titems[i] = file;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\titems = transItems;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\titems = transFiles;\n\t\t\t\t}\n\n\t\t\t\t_each(items || [], function (item){\n\t\t\t\t\tqueue.inc();\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif( entrySupport && _isEntry(item) ){\n\t\t\t\t\t\t\t_readEntryAsFiles(item, function (err, entryFiles, allEntries){\n\t\t\t\t\t\t\t\tif( err ){\n\t\t\t\t\t\t\t\t\tapi.log('[err] getDropFiles:', err);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tfiles.push.apply(files, entryFiles);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tall.push.apply(all, allEntries);\n\n\t\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t_isRegularFile(item, function (yes, err){\n\t\t\t\t\t\t\t\tif( yes ){\n\t\t\t\t\t\t\t\t\tfiles.push(item);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\titem.error = err;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tall.push(item);\n\n\t\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch( err ){\n\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\tapi.log('[err] getDropFiles: ', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tqueue.check();\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get file list\n\t\t\t *\n\t\t\t * @param\t{HTMLInputElement|Event}\tinput\n\t\t\t * @param\t{String|Function}\t[filter]\n\t\t\t * @param\t{Function}\t\t\t[callback]\n\t\t\t * @return\t{Array|Null}\n\t\t\t */\n\t\t\tgetFiles: function (input, filter, callback){\n\t\t\t\tvar files = [];\n\n\t\t\t\tif( callback ){\n\t\t\t\t\tapi.filterFiles(api.getFiles(input), filter, callback);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tif( input.jquery ){\n\t\t\t\t\t// jQuery object\n\t\t\t\t\tinput.each(function (){\n\t\t\t\t\t\tfiles = files.concat(api.getFiles(this));\n\t\t\t\t\t});\n\t\t\t\t\tinput\t= files;\n\t\t\t\t\tfiles\t= [];\n\t\t\t\t}\n\n\t\t\t\tif( typeof filter == 'string' ){\n\t\t\t\t\tfilter\t= api.getFilesFilter(filter);\n\t\t\t\t}\n\n\t\t\t\tif( input.originalEvent ){\n\t\t\t\t\t// jQuery event\n\t\t\t\t\tinput = _fixEvent(input.originalEvent);\n\t\t\t\t}\n\t\t\t\telse if( input.srcElement ){\n\t\t\t\t\t// IE Event\n\t\t\t\t\tinput = _fixEvent(input);\n\t\t\t\t}\n\n\n\t\t\t\tif( input.dataTransfer ){\n\t\t\t\t\t// Drag'n'Drop\n\t\t\t\t\tinput = input.dataTransfer;\n\t\t\t\t}\n\t\t\t\telse if( input.target ){\n\t\t\t\t\t// Event\n\t\t\t\t\tinput = input.target;\n\t\t\t\t}\n\n\t\t\t\tif( input.files ){\n\t\t\t\t\t// Input[type=\"file\"]\n\t\t\t\t\tfiles = input.files;\n\n\t\t\t\t\tif( !html5 ){\n\t\t\t\t\t\t// Partial support for file api\n\t\t\t\t\t\tfiles[0].blob\t= input;\n\t\t\t\t\t\tfiles[0].iframe\t= true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( !html5 && isInputFile(input) ){\n\t\t\t\t\tif( api.trim(input.value) ){\n\t\t\t\t\t\tfiles = [api.checkFileObj(input.value)];\n\t\t\t\t\t\tfiles[0].blob = input;\n\t\t\t\t\t\tfiles[0].iframe = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( _isArray(input) ){\n\t\t\t\t\tfiles\t= input;\n\t\t\t\t}\n\n\t\t\t\treturn\tapi.filter(files, function (file){ return !filter || filter.test(file.name); });\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get total file size\n\t\t\t * @param\t{Array}\tfiles\n\t\t\t * @return\t{Number}\n\t\t\t */\n\t\t\tgetTotalSize: function (files){\n\t\t\t\tvar size = 0, i = files && files.length;\n\t\t\t\twhile( i-- ){\n\t\t\t\t\tsize += files[i].size;\n\t\t\t\t}\n\t\t\t\treturn\tsize;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get image information\n\t\t\t *\n\t\t\t * @param\t{File}\t\tfile\n\t\t\t * @param\t{Function}\tfn\n\t\t\t */\n\t\t\tgetInfo: function (file, fn){\n\t\t\t\tvar info = {}, readers = _infoReader.concat();\n\n\t\t\t\tif( api.isBlob(file) ){\n\t\t\t\t\t(function _next(){\n\t\t\t\t\t\tvar reader = readers.shift();\n\t\t\t\t\t\tif( reader ){\n\t\t\t\t\t\t\tif( reader.test(file.type) ){\n\t\t\t\t\t\t\t\treader(file, function (err, res){\n\t\t\t\t\t\t\t\t\tif( err ){\n\t\t\t\t\t\t\t\t\t\tfn(err);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t_extend(info, res);\n\t\t\t\t\t\t\t\t\t\t_next();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t_next();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tfn(false, info);\n\t\t\t\t\t\t}\n\t\t\t\t\t})();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfn('not_support_info', info);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Add information reader\n\t\t\t *\n\t\t\t * @param {RegExp} mime\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\taddInfoReader: function (mime, fn){\n\t\t\t\tfn.test = function (type){ return mime.test(type); };\n\t\t\t\t_infoReader.push(fn);\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Filter of array\n\t\t\t *\n\t\t\t * @param\t{Array}\t\tinput\n\t\t\t * @param\t{Function}\tfn\n\t\t\t * @return\t{Array}\n\t\t\t */\n\t\t\tfilter: function (input, fn){\n\t\t\t\tvar result = [], i = 0, n = input.length, val;\n\n\t\t\t\tfor( ; i < n; i++ ){\n\t\t\t\t\tif( i in input ){\n\t\t\t\t\t\tval = input[i];\n\t\t\t\t\t\tif( fn.call(val, val, i, input) ){\n\t\t\t\t\t\t\tresult.push(val);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn\tresult;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Filter files\n\t\t\t *\n\t\t\t * @param\t{Array}\t\tfiles\n\t\t\t * @param\t{Function}\teachFn\n\t\t\t * @param\t{Function}\tresultFn\n\t\t\t */\n\t\t\tfilterFiles: function (files, eachFn, resultFn){\n\t\t\t\tif( files.length ){\n\t\t\t\t\t// HTML5 or Flash\n\t\t\t\t\tvar queue = files.concat(), file, result = [], deleted = [];\n\n\t\t\t\t\t(function _next(){\n\t\t\t\t\t\tif( queue.length ){\n\t\t\t\t\t\t\tfile = queue.shift();\n\t\t\t\t\t\t\tapi.getInfo(file, function (err, info){\n\t\t\t\t\t\t\t\t(eachFn(file, err ? false : info) ? result : deleted).push(file);\n\t\t\t\t\t\t\t\t_next();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresultFn(result, deleted);\n\t\t\t\t\t\t}\n\t\t\t\t\t})();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tresultFn([], files);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\tupload: function (options){\n\t\t\t\toptions = _extend({\n\t\t\t\t\t jsonp: 'callback'\n\t\t\t\t\t, prepare: api.F\n\t\t\t\t\t, beforeupload: api.F\n\t\t\t\t\t, upload: api.F\n\t\t\t\t\t, fileupload: api.F\n\t\t\t\t\t, fileprogress: api.F\n\t\t\t\t\t, filecomplete: api.F\n\t\t\t\t\t, progress: api.F\n\t\t\t\t\t, complete: api.F\n\t\t\t\t\t, pause: api.F\n\t\t\t\t\t, imageOriginal: true\n\t\t\t\t\t, chunkSize: api.chunkSize\n\t\t\t\t\t, chunkUploadRetry: api.chunkUploadRetry\n\t\t\t\t\t, uploadRetry: api.uploadRetry\n\t\t\t\t}, options);\n\n\n\t\t\t\tif( options.imageAutoOrientation && !options.imageTransform ){\n\t\t\t\t\toptions.imageTransform = { rotate: 'auto' };\n\t\t\t\t}\n\n\n\t\t\t\tvar\n\t\t\t\t\t proxyXHR = new api.XHR(options)\n\t\t\t\t\t, dataArray = this._getFilesDataArray(options.files)\n\t\t\t\t\t, _this = this\n\t\t\t\t\t, _total = 0\n\t\t\t\t\t, _loaded = 0\n\t\t\t\t\t, _nextFile\n\t\t\t\t\t, _complete = false\n\t\t\t\t;\n\n\n\t\t\t\t// calc total size\n\t\t\t\t_each(dataArray, function (data){\n\t\t\t\t\t_total += data.size;\n\t\t\t\t});\n\n\t\t\t\t// Array of files\n\t\t\t\tproxyXHR.files = [];\n\t\t\t\t_each(dataArray, function (data){\n\t\t\t\t\tproxyXHR.files.push(data.file);\n\t\t\t\t});\n\n\t\t\t\t// Set upload status props\n\t\t\t\tproxyXHR.total\t= _total;\n\t\t\t\tproxyXHR.loaded\t= 0;\n\t\t\t\tproxyXHR.filesLeft = dataArray.length;\n\n\t\t\t\t// emit \"beforeupload\" event\n\t\t\t\toptions.beforeupload(proxyXHR, options);\n\n\t\t\t\t// Upload by file\n\t\t\t\t_nextFile = function (){\n\t\t\t\t\tvar\n\t\t\t\t\t\t data = dataArray.shift()\n\t\t\t\t\t\t, _file = data && data.file\n\t\t\t\t\t\t, _fileLoaded = false\n\t\t\t\t\t\t, _fileOptions = _simpleClone(options)\n\t\t\t\t\t;\n\n\t\t\t\t\tproxyXHR.filesLeft = dataArray.length;\n\n\t\t\t\t\tif( _file && _file.name === api.expando ){\n\t\t\t\t\t\t_file = null;\n\t\t\t\t\t\tapi.log('[warn] FileAPI.upload() — called without files');\n\t\t\t\t\t}\n\n\t\t\t\t\tif( ( proxyXHR.statusText != 'abort' || proxyXHR.current ) && data ){\n\t\t\t\t\t\t// Mark active job\n\t\t\t\t\t\t_complete = false;\n\n\t\t\t\t\t\t// Set current upload file\n\t\t\t\t\t\tproxyXHR.currentFile = _file;\n\n\t\t\t\t\t\t// Prepare file options\n\t\t\t\t\t\tif (_file && options.prepare(_file, _fileOptions) === false) {\n\t\t\t\t\t\t\t_nextFile.call(_this);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_fileOptions.file = _file;\n\n\t\t\t\t\t\t_this._getFormData(_fileOptions, data, function (form){\n\t\t\t\t\t\t\tif( !_loaded ){\n\t\t\t\t\t\t\t\t// emit \"upload\" event\n\t\t\t\t\t\t\t\toptions.upload(proxyXHR, options);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar xhr = new api.XHR(_extend({}, _fileOptions, {\n\n\t\t\t\t\t\t\t\tupload: _file ? function (){\n\t\t\t\t\t\t\t\t\t// emit \"fileupload\" event\n\t\t\t\t\t\t\t\t\toptions.fileupload(_file, xhr, _fileOptions);\n\t\t\t\t\t\t\t\t} : noop,\n\n\t\t\t\t\t\t\t\tprogress: _file ? function (evt){\n\t\t\t\t\t\t\t\t\tif( !_fileLoaded ){\n\t\t\t\t\t\t\t\t\t\t// For ignore the double calls.\n\t\t\t\t\t\t\t\t\t\t_fileLoaded = (evt.loaded === evt.total);\n\n\t\t\t\t\t\t\t\t\t\t// emit \"fileprogress\" event\n\t\t\t\t\t\t\t\t\t\toptions.fileprogress({\n\t\t\t\t\t\t\t\t\t\t\t type: 'progress'\n\t\t\t\t\t\t\t\t\t\t\t, total: data.total = evt.total\n\t\t\t\t\t\t\t\t\t\t\t, loaded: data.loaded = evt.loaded\n\t\t\t\t\t\t\t\t\t\t}, _file, xhr, _fileOptions);\n\n\t\t\t\t\t\t\t\t\t\t// emit \"progress\" event\n\t\t\t\t\t\t\t\t\t\toptions.progress({\n\t\t\t\t\t\t\t\t\t\t\t type: 'progress'\n\t\t\t\t\t\t\t\t\t\t\t, total: _total\n\t\t\t\t\t\t\t\t\t\t\t, loaded: proxyXHR.loaded = (_loaded + data.size * (evt.loaded/evt.total)) || 0\n\t\t\t\t\t\t\t\t\t\t}, _file, xhr, _fileOptions);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} : noop,\n\n\t\t\t\t\t\t\t\tcomplete: function (err){\n\t\t\t\t\t\t\t\t\t_each(_xhrPropsExport, function (name){\n\t\t\t\t\t\t\t\t\t\tproxyXHR[name] = xhr[name];\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif( _file ){\n\t\t\t\t\t\t\t\t\t\tdata.total = (data.total || data.size);\n\t\t\t\t\t\t\t\t\t\tdata.loaded\t= data.total;\n\n\t\t\t\t\t\t\t\t\t\tif( !err ) {\n\t\t\t\t\t\t\t\t\t\t\t// emulate 100% \"progress\"\n\t\t\t\t\t\t\t\t\t\t\tthis.progress(data);\n\n\t\t\t\t\t\t\t\t\t\t\t// fixed throttle event\n\t\t\t\t\t\t\t\t\t\t\t_fileLoaded = true;\n\n\t\t\t\t\t\t\t\t\t\t\t// bytes loaded\n\t\t\t\t\t\t\t\t\t\t\t_loaded += data.size; // data.size != data.total, it's desirable fix this\n\t\t\t\t\t\t\t\t\t\t\tproxyXHR.loaded = _loaded;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// emit \"filecomplete\" event\n\t\t\t\t\t\t\t\t\t\toptions.filecomplete(err, xhr, _file, _fileOptions);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// upload next file\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {_nextFile.call(_this);}, 0);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})); // xhr\n\n\n\t\t\t\t\t\t\t// ...\n\t\t\t\t\t\t\tproxyXHR.abort = function (current){\n\t\t\t\t\t\t\t\tif (!current) { dataArray.length = 0; }\n\t\t\t\t\t\t\t\tthis.current = current;\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Start upload\n\t\t\t\t\t\t\txhr.send(form);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar successful = proxyXHR.status == 200 || proxyXHR.status == 201 || proxyXHR.status == 204;\n\t\t\t\t\t\toptions.complete(successful ? false : (proxyXHR.statusText || 'error'), proxyXHR, options);\n\t\t\t\t\t\t// Mark done state\n\t\t\t\t\t\t_complete = true;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\n\t\t\t\t// Next tick\n\t\t\t\tsetTimeout(_nextFile, 0);\n\n\n\t\t\t\t// Append more files to the existing request\n\t\t\t\t// first - add them to the queue head/tail\n\t\t\t\tproxyXHR.append = function (files, first) {\n\t\t\t\t\tfiles = api._getFilesDataArray([].concat(files));\n\n\t\t\t\t\t_each(files, function (data) {\n\t\t\t\t\t\t_total += data.size;\n\t\t\t\t\t\tproxyXHR.files.push(data.file);\n\t\t\t\t\t\tif (first) {\n\t\t\t\t\t\t\tdataArray.unshift(data);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdataArray.push(data);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tproxyXHR.statusText = \"\";\n\n\t\t\t\t\tif( _complete ){\n\t\t\t\t\t\t_nextFile.call(_this);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\n\t\t\t\t// Removes file from queue by file reference and returns it\n\t\t\t\tproxyXHR.remove = function (file) {\n\t\t\t\t var i = dataArray.length, _file;\n\t\t\t\t while( i-- ){\n\t\t\t\t\t\tif( dataArray[i].file == file ){\n\t\t\t\t\t\t\t_file = dataArray.splice(i, 1);\n\t\t\t\t\t\t\t_total -= _file.size;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn\t_file;\n\t\t\t\t};\n\n\t\t\t\treturn proxyXHR;\n\t\t\t},\n\n\n\t\t\t_getFilesDataArray: function (data){\n\t\t\t\tvar files = [], oFiles = {};\n\n\t\t\t\tif( isInputFile(data) ){\n\t\t\t\t\tvar tmp = api.getFiles(data);\n\t\t\t\t\toFiles[data.name || 'file'] = data.getAttribute('multiple') !== null ? tmp : tmp[0];\n\t\t\t\t}\n\t\t\t\telse if( _isArray(data) && isInputFile(data[0]) ){\n\t\t\t\t\t_each(data, function (input){\n\t\t\t\t\t\toFiles[input.name || 'file'] = api.getFiles(input);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\toFiles = data;\n\t\t\t\t}\n\n\t\t\t\t_each(oFiles, function add(file, name){\n\t\t\t\t\tif( _isArray(file) ){\n\t\t\t\t\t\t_each(file, function (file){\n\t\t\t\t\t\t\tadd(file, name);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse if( file && (file.name || file.image) ){\n\t\t\t\t\t\tfiles.push({\n\t\t\t\t\t\t\t name: name\n\t\t\t\t\t\t\t, file: file\n\t\t\t\t\t\t\t, size: file.size\n\t\t\t\t\t\t\t, total: file.size\n\t\t\t\t\t\t\t, loaded: 0\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif( !files.length ){\n\t\t\t\t\t// Create fake `file` object\n\t\t\t\t\tfiles.push({ file: { name: api.expando } });\n\t\t\t\t}\n\n\t\t\t\treturn\tfiles;\n\t\t\t},\n\n\n\t\t\t_getFormData: function (options, data, fn){\n\t\t\t\tvar\n\t\t\t\t\t file = data.file\n\t\t\t\t\t, name = data.name\n\t\t\t\t\t, filename = file.name\n\t\t\t\t\t, filetype = file.type\n\t\t\t\t\t, trans = api.support.transform && options.imageTransform\n\t\t\t\t\t, Form = new api.Form\n\t\t\t\t\t, queue = api.queue(function (){ fn(Form); })\n\t\t\t\t\t, isOrignTrans = trans && _isOriginTransform(trans)\n\t\t\t\t\t, postNameConcat = api.postNameConcat\n\t\t\t\t;\n\n\t\t\t\t// Append data\n\t\t\t\t_each(options.data, function add(val, name){\n\t\t\t\t\tif( typeof val == 'object' ){\n\t\t\t\t\t\t_each(val, function (v, i){\n\t\t\t\t\t\t\tadd(v, postNameConcat(name, i));\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tForm.append(name, val);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t(function _addFile(file/**Object*/){\n\t\t\t\t\tif( file.image ){ // This is a FileAPI.Image\n\t\t\t\t\t\tqueue.inc();\n\n\t\t\t\t\t\tfile.toData(function (err, image){\n\t\t\t\t\t\t\t// @todo: требует рефакторинга и обработки ошибки\n\t\t\t\t\t\t\tif (file.file) {\n\t\t\t\t\t\t\t\timage.type = file.file.type;\n\t\t\t\t\t\t\t\timage.quality = file.matrix.quality;\n\t\t\t\t\t\t\t\tfilename = file.file && file.file.name;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfilename = filename || (new Date).getTime()+'.png';\n\n\t\t\t\t\t\t\t_addFile(image);\n\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse if( api.Image && trans && (/^image/.test(file.type) || _rimgcanvas.test(file.nodeName)) ){\n\t\t\t\t\t\tqueue.inc();\n\n\t\t\t\t\t\tif( isOrignTrans ){\n\t\t\t\t\t\t\t// Convert to array for transform function\n\t\t\t\t\t\t\ttrans = [trans];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tapi.Image.transform(file, trans, options.imageAutoOrientation, function (err, images){\n\t\t\t\t\t\t\tif( isOrignTrans && !err ){\n\t\t\t\t\t\t\t\tif( !dataURLtoBlob && !api.flashEngine ){\n\t\t\t\t\t\t\t\t\t// Canvas.toBlob or Flash not supported, use multipart\n\t\t\t\t\t\t\t\t\tForm.multipart = true;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tForm.append(name, images[0], filename, trans[0].type || filetype);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tvar addOrigin = 0;\n\n\t\t\t\t\t\t\t\tif( !err ){\n\t\t\t\t\t\t\t\t\t_each(images, function (image, idx){\n\t\t\t\t\t\t\t\t\t\tif( !dataURLtoBlob && !api.flashEngine ){\n\t\t\t\t\t\t\t\t\t\t\tForm.multipart = true;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif( !trans[idx].postName ){\n\t\t\t\t\t\t\t\t\t\t\taddOrigin = 1;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tForm.append(trans[idx].postName || postNameConcat(name, idx), image, filename, trans[idx].type || filetype);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif( err || options.imageOriginal ){\n\t\t\t\t\t\t\t\t\tForm.append(postNameConcat(name, (addOrigin ? 'original' : null)), file, filename, filetype);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse if( filename !== api.expando ){\n\t\t\t\t\t\tForm.append(name, file, filename);\n\t\t\t\t\t}\n\t\t\t\t})(file);\n\n\t\t\t\tqueue.check();\n\t\t\t},\n\n\n\t\t\treset: function (inp, notRemove){\n\t\t\t\tvar parent, clone;\n\n\t\t\t\tif( jQuery ){\n\t\t\t\t\tclone = jQuery(inp).clone(true).insertBefore(inp).val('')[0];\n\t\t\t\t\tif( !notRemove ){\n\t\t\t\t\t\tjQuery(inp).remove();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tparent = inp.parentNode;\n\t\t\t\t\tclone = parent.insertBefore(inp.cloneNode(true), inp);\n\t\t\t\t\tclone.value = '';\n\n\t\t\t\t\tif( !notRemove ){\n\t\t\t\t\t\tparent.removeChild(inp);\n\t\t\t\t\t}\n\n\t\t\t\t\t_each(_elEvents[api.uid(inp)], function (fns, type){\n\t\t\t\t\t\t_each(fns, function (fn){\n\t\t\t\t\t\t\t_off(inp, type, fn);\n\t\t\t\t\t\t\t_on(clone, type, fn);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn clone;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Load remote file\n\t\t\t *\n\t\t\t * @param {String} url\n\t\t\t * @param {Function} fn\n\t\t\t * @return {XMLHttpRequest}\n\t\t\t */\n\t\t\tload: function (url, fn){\n\t\t\t\tvar xhr = api.getXHR();\n\t\t\t\tif( xhr ){\n\t\t\t\t\txhr.open('GET', url, true);\n\n\t\t\t\t\tif( xhr.overrideMimeType ){\n\t\t\t\t xhr.overrideMimeType('text/plain; charset=x-user-defined');\n\t\t\t\t\t}\n\n\t\t\t\t\t_on(xhr, 'progress', function (/**Event*/evt){\n\t\t\t\t\t\t/** @namespace evt.lengthComputable */\n\t\t\t\t\t\tif( evt.lengthComputable ){\n\t\t\t\t\t\t\tfn({ type: evt.type, loaded: evt.loaded, total: evt.total }, xhr);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\txhr.onreadystatechange = function(){\n\t\t\t\t\t\tif( xhr.readyState == 4 ){\n\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\t\t\t\t\t\t\tif( xhr.status == 200 ){\n\t\t\t\t\t\t\t\turl = url.split('/');\n\t\t\t\t\t\t\t\t/** @namespace xhr.responseBody */\n\t\t\t\t\t\t\t\tvar file = {\n\t\t\t\t\t\t\t\t name: url[url.length-1]\n\t\t\t\t\t\t\t\t\t, size: xhr.getResponseHeader('Content-Length')\n\t\t\t\t\t\t\t\t\t, type: xhr.getResponseHeader('Content-Type')\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tfile.dataURL = 'data:'+file.type+';base64,' + api.encode64(xhr.responseBody || xhr.responseText);\n\t\t\t\t\t\t\t\tfn({ type: 'load', result: file }, xhr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tfn({ type: 'error' }, xhr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t }\n\t\t\t\t\t};\n\t\t\t\t xhr.send(null);\n\t\t\t\t} else {\n\t\t\t\t\tfn({ type: 'error' });\n\t\t\t\t}\n\n\t\t\t\treturn xhr;\n\t\t\t},\n\n\t\t\tencode64: function (str){\n\t\t\t\tvar b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', outStr = '', i = 0;\n\n\t\t\t\tif( typeof str !== 'string' ){\n\t\t\t\t\tstr\t= String(str);\n\t\t\t\t}\n\n\t\t\t\twhile( i < str.length ){\n\t\t\t\t\t//all three \"& 0xff\" added below are there to fix a known bug\n\t\t\t\t\t//with bytes returned by xhr.responseText\n\t\t\t\t\tvar\n\t\t\t\t\t\t byte1 = str.charCodeAt(i++) & 0xff\n\t\t\t\t\t\t, byte2 = str.charCodeAt(i++) & 0xff\n\t\t\t\t\t\t, byte3 = str.charCodeAt(i++) & 0xff\n\t\t\t\t\t\t, enc1 = byte1 >> 2\n\t\t\t\t\t\t, enc2 = ((byte1 & 3) << 4) | (byte2 >> 4)\n\t\t\t\t\t\t, enc3, enc4\n\t\t\t\t\t;\n\n\t\t\t\t\tif( isNaN(byte2) ){\n\t\t\t\t\t\tenc3 = enc4 = 64;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tenc3 = ((byte2 & 15) << 2) | (byte3 >> 6);\n\t\t\t\t\t\tenc4 = isNaN(byte3) ? 64 : byte3 & 63;\n\t\t\t\t\t}\n\n\t\t\t\t\toutStr += b64.charAt(enc1) + b64.charAt(enc2) + b64.charAt(enc3) + b64.charAt(enc4);\n\t\t\t\t}\n\n\t\t\t\treturn outStr;\n\t\t\t}\n\n\t\t} // api\n\t;\n\n\n\tfunction _emit(target, fn, name, res, ext){\n\t\tvar evt = {\n\t\t\t type:\t\tname.type || name\n\t\t\t, target:\ttarget\n\t\t\t, result:\tres\n\t\t};\n\t\t_extend(evt, ext);\n\t\tfn(evt);\n\t}\n\n\n\tfunction _hasSupportReadAs(method){\n\t\treturn\tFileReader && !!FileReader.prototype['readAs' + method];\n\t}\n\n\n\tfunction _readAs(file, fn, method, encoding){\n\t\tif( api.isBlob(file) && _hasSupportReadAs(method) ){\n\t\t\tvar Reader = new FileReader;\n\n\t\t\t// Add event listener\n\t\t\t_on(Reader, _readerEvents, function _fn(evt){\n\t\t\t\tvar type = evt.type;\n\t\t\t\tif( type == 'progress' ){\n\t\t\t\t\t_emit(file, fn, evt, evt.target.result, { loaded: evt.loaded, total: evt.total });\n\t\t\t\t}\n\t\t\t\telse if( type == 'loadend' ){\n\t\t\t\t\t_off(Reader, _readerEvents, _fn);\n\t\t\t\t\tReader = null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t_emit(file, fn, evt, evt.target.result);\n\t\t\t\t}\n\t\t\t});\n\n\n\t\t\ttry {\n\t\t\t\t// ReadAs ...\n\t\t\t\tif( encoding ){\n\t\t\t\t\tReader['readAs' + method](file, encoding);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tReader['readAs' + method](file);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err){\n\t\t\t\t_emit(file, fn, 'error', undef, { error: err.toString() });\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t_emit(file, fn, 'error', undef, { error: 'filreader_not_support_' + method });\n\t\t}\n\t}\n\n\n\tfunction _isRegularFile(file, callback){\n\t\t// http://stackoverflow.com/questions/8856628/detecting-folders-directories-in-javascript-filelist-objects\n\t\tif( !file.type && (safari || ((file.size % 4096) === 0 && (file.size <= 102400))) ){\n\t\t\tif( FileReader ){\n\t\t\t\ttry {\n\t\t\t\t\tvar reader = new FileReader();\n\n\t\t\t\t\t_one(reader, _readerEvents, function (evt){\n\t\t\t\t\t\tvar isFile = evt.type != 'error';\n\t\t\t\t\t\tif( isFile ){\n\t\t\t\t\t\t\tif ( reader.readyState == null || reader.readyState === reader.LOADING ) {\n\t\t\t\t\t\t\t\treader.abort();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback(isFile);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tcallback(false, reader.error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\treader.readAsDataURL(file);\n\t\t\t\t} catch( err ){\n\t\t\t\t\tcallback(false, err);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcallback(null, new Error('FileReader is not supported'));\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tcallback(true);\n\t\t}\n\t}\n\n\n\tfunction _isEntry(item){\n\t\treturn item && (item.isFile || item.isDirectory);\n\t}\n\n\n\tfunction _getAsEntry(item){\n\t\tvar entry;\n\t\tif( item.getAsEntry ){ entry = item.getAsEntry(); }\n\t\telse if( item.webkitGetAsEntry ){ entry = item.webkitGetAsEntry(); }\n\t\treturn\tentry;\n\t}\n\n\n\tfunction _readEntryAsFiles(entry, callback){\n\t\tif( !entry ){\n\t\t\t// error\n\t\t\tvar err = new Error('invalid entry');\n\t\t\tentry = new Object(entry);\n\t\t\tentry.error = err;\n\t\t\tcallback(err.message, [], [entry]);\n\t\t}\n\t\telse if( entry.isFile ){\n\t\t\t// Read as file\n\t\t\tentry.file(function (file){\n\t\t\t\t// success\n\t\t\t\tfile.fullPath = entry.fullPath;\n\t\t\t\tcallback(false, [file], [file]);\n\t\t\t}, function (err){\n\t\t\t\t// error\n\t\t\t\tentry.error = err;\n\t\t\t\tcallback('FileError.code: ' + err.code, [], [entry]);\n\t\t\t});\n\t\t}\n\t\telse if( entry.isDirectory ){\n\t\t\tvar\n\t\t\t\treader = entry.createReader()\n\t\t\t\t, firstAttempt = true\n\t\t\t\t, files = []\n\t\t\t\t, all = [entry]\n\t\t\t;\n\n\t\t\tvar onerror = function (err){\n\t\t\t\t// error\n\t\t\t\tentry.error = err;\n\t\t\t\tcallback('DirectoryError.code: ' + err.code, files, all);\n\t\t\t};\n\t\t\tvar ondone = function ondone(entries){\n\t\t\t\tif( firstAttempt ){\n\t\t\t\t\tfirstAttempt = false;\n\t\t\t\t\tif( !entries.length ){\n\t\t\t\t\t\tentry.error = new Error('directory is empty');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// success\n\t\t\t\tif( entries.length ){\n\t\t\t\t\tapi.afor(entries, function (next, entry){\n\t\t\t\t\t\t_readEntryAsFiles(entry, function (err, entryFiles, allEntries){\n\t\t\t\t\t\t\tif( !err ){\n\t\t\t\t\t\t\t\tfiles = files.concat(entryFiles);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tall = all.concat(allEntries);\n\n\t\t\t\t\t\t\tif( next ){\n\t\t\t\t\t\t\t\tnext();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treader.readEntries(ondone, onerror);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallback(false, files, all);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treader.readEntries(ondone, onerror);\n\t\t}\n\t\telse {\n\t\t\t_readEntryAsFiles(_getAsEntry(entry), callback);\n\t\t}\n\t}\n\n\n\tfunction _simpleClone(obj){\n\t\tvar copy = {};\n\t\t_each(obj, function (val, key){\n\t\t\tif( val && (typeof val === 'object') && (val.nodeType === void 0) ){\n\t\t\t\tval = _extend({}, val);\n\t\t\t}\n\t\t\tcopy[key] = val;\n\t\t});\n\t\treturn\tcopy;\n\t}\n\n\n\tfunction isInputFile(el){\n\t\treturn\t_rinput.test(el && el.tagName);\n\t}\n\n\n\tfunction _getDataTransfer(evt){\n\t\treturn\t(evt.originalEvent || evt || '').dataTransfer || {};\n\t}\n\n\n\tfunction _isOriginTransform(trans){\n\t\tvar key;\n\t\tfor( key in trans ){\n\t\t\tif( trans.hasOwnProperty(key) ){\n\t\t\t\tif( !(trans[key] instanceof Object || key === 'overlay' || key === 'filter') ){\n\t\t\t\t\treturn\ttrue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn\tfalse;\n\t}\n\n\n\t// Add default image info reader\n\tapi.addInfoReader(/^image/, function (file/**File*/, callback/**Function*/){\n\t\tif( !file.__dimensions ){\n\t\t\tvar defer = file.__dimensions = api.defer();\n\n\t\t\tapi.readAsImage(file, function (evt){\n\t\t\t\tvar img = evt.target;\n\t\t\t\tdefer.resolve(evt.type == 'load' ? false : 'error', {\n\t\t\t\t\t width: img.width\n\t\t\t\t\t, height: img.height\n\t\t\t\t});\n img.src = api.EMPTY_PNG;\n\t\t\t\timg = null;\n\t\t\t});\n\t\t}\n\n\t\tfile.__dimensions.then(callback);\n\t});\n\n\n\t/**\n\t * Drag'n'Drop special event\n\t *\n\t * @param\t{HTMLElement}\tel\n\t * @param\t{Function}\t\tonHover\n\t * @param\t{Function}\t\tonDrop\n\t */\n\tapi.event.dnd = function (el, onHover, onDrop){\n\t\tvar _id, _type;\n\n\t\tif( !onDrop ){\n\t\t\tonDrop = onHover;\n\t\t\tonHover = api.F;\n\t\t}\n\n\t\tif( FileReader ){\n\t\t\t// Hover\n\t\t\t_on(el, 'dragenter dragleave dragover', onHover.ff = onHover.ff || function (evt){\n\t\t\t\tvar\n\t\t\t\t\t types = _getDataTransfer(evt).types\n\t\t\t\t\t, i = types && types.length\n\t\t\t\t\t, debounceTrigger = false\n\t\t\t\t;\n\n\t\t\t\twhile( i-- ){\n\t\t\t\t\tif( ~types[i].indexOf('File') ){\n\t\t\t\t\t\tevt[preventDefault]();\n\n\t\t\t\t\t\tif( _type !== evt.type ){\n\t\t\t\t\t\t\t_type = evt.type; // Store current type of event\n\n\t\t\t\t\t\t\tif( _type != 'dragleave' ){\n\t\t\t\t\t\t\t\tonHover.call(evt[currentTarget], true, evt);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdebounceTrigger = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak; // exit from \"while\"\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif( debounceTrigger ){\n\t\t\t\t\tclearTimeout(_id);\n\t\t\t\t\t_id = setTimeout(function (){\n\t\t\t\t\t\tonHover.call(evt[currentTarget], _type != 'dragleave', evt);\n\t\t\t\t\t}, 50);\n\t\t\t\t}\n\t\t\t});\n\n\n\t\t\t// Drop\n\t\t\t_on(el, 'drop', onDrop.ff = onDrop.ff || function (evt){\n\t\t\t\tevt[preventDefault]();\n\n\t\t\t\t_type = 0;\n\n\t\t\t\tapi.getDropFiles(evt, function (files, all){\n\t\t\t\t\tonDrop.call(evt[currentTarget], files, all, evt);\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tonHover.call(evt[currentTarget], false, evt);\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tapi.log(\"Drag'n'Drop -- not supported\");\n\t\t}\n\t};\n\n\n\t/**\n\t * Remove drag'n'drop\n\t * @param\t{HTMLElement}\tel\n\t * @param\t{Function}\t\tonHover\n\t * @param\t{Function}\t\tonDrop\n\t */\n\tapi.event.dnd.off = function (el, onHover, onDrop){\n\t\t_off(el, 'dragenter dragleave dragover', onHover.ff);\n\t\t_off(el, 'drop', onDrop.ff);\n\t};\n\n\n\t// Support jQuery\n\tif( jQuery && !jQuery.fn.dnd ){\n\t\tjQuery.fn.dnd = function (onHover, onDrop){\n\t\t\treturn this.each(function (){\n\t\t\t\tapi.event.dnd(this, onHover, onDrop);\n\t\t\t});\n\t\t};\n\n\t\tjQuery.fn.offdnd = function (onHover, onDrop){\n\t\t\treturn this.each(function (){\n\t\t\t\tapi.event.dnd.off(this, onHover, onDrop);\n\t\t\t});\n\t\t};\n\t}\n\n\t// @export\n\twindow.FileAPI = _extend(api, window.FileAPI);\n\n\n\t// Debug info\n\tapi.log('FileAPI: ' + api.version);\n\tapi.log('protocol: ' + window.location.protocol);\n\tapi.log('doctype: [' + doctype.name + '] ' + doctype.publicId + ' ' + doctype.systemId);\n\n\n\t// @detect 'x-ua-compatible'\n\t_each(document.getElementsByTagName('meta'), function (meta){\n\t\tif( /x-ua-compatible/i.test(meta.getAttribute('http-equiv')) ){\n\t\t\tapi.log('meta.http-equiv: ' + meta.getAttribute('content'));\n\t\t}\n\t});\n\n\n\t// Configuration\n\ttry {\n\t\t_supportConsoleLog = !!console.log;\n\t\t_supportConsoleLogApply = !!console.log.apply;\n\t}\n\tcatch (err) {}\n\n\tif( !api.flashUrl ){ api.flashUrl = api.staticPath + 'FileAPI.flash.swf'; }\n\tif( !api.flashImageUrl ){ api.flashImageUrl = api.staticPath + 'FileAPI.flash.image.swf'; }\n\tif( !api.flashWebcamUrl ){ api.flashWebcamUrl = api.staticPath + 'FileAPI.flash.camera.swf'; }\n})(window, void 0);\n\n/*global window, FileAPI, document */\n\n(function (api, document, undef) {\n\t'use strict';\n\n\tvar\n\t\tmin = Math.min,\n\t\tround = Math.round,\n\t\tgetCanvas = function () { return document.createElement('canvas'); },\n\t\tsupport = false,\n\t\texifOrientation = {\n\t\t\t 8:\t270\n\t\t\t, 3:\t180\n\t\t\t, 6:\t90\n\t\t\t, 7:\t270\n\t\t\t, 4:\t180\n\t\t\t, 5:\t90\n\t\t}\n\t;\n\n\ttry {\n\t\tsupport = getCanvas().toDataURL('image/png').indexOf('data:image/png') > -1;\n\t}\n\tcatch (e){}\n\n\n\tfunction Image(file){\n\t\tif( file instanceof Image ){\n\t\t\tvar img = new Image(file.file);\n\t\t\tapi.extend(img.matrix, file.matrix);\n\t\t\treturn\timg;\n\t\t}\n\t\telse if( !(this instanceof Image) ){\n\t\t\treturn\tnew Image(file);\n\t\t}\n\n\t\tthis.file = file;\n\t\tthis.size = file.size || 100;\n\n\t\tthis.matrix\t= {\n\t\t\tsx: 0,\n\t\t\tsy: 0,\n\t\t\tsw: 0,\n\t\t\tsh: 0,\n\t\t\tdx: 0,\n\t\t\tdy: 0,\n\t\t\tdw: 0,\n\t\t\tdh: 0,\n\t\t\tresize: 0, // min, max OR preview\n\t\t\tdeg: 0,\n\t\t\tquality: 1, // jpeg quality\n\t\t\tfilter: 0\n\t\t};\n\t}\n\n\n\tImage.prototype = {\n\t\timage: true,\n\t\tconstructor: Image,\n\n\t\tset: function (attrs){\n\t\t\tapi.extend(this.matrix, attrs);\n\t\t\treturn\tthis;\n\t\t},\n\n\t\tcrop: function (x, y, w, h){\n\t\t\tif( w === undef ){\n\t\t\t\tw\t= x;\n\t\t\t\th\t= y;\n\t\t\t\tx = y = 0;\n\t\t\t}\n\t\t\treturn\tthis.set({ sx: x, sy: y, sw: w, sh: h || w });\n\t\t},\n\n\t\tresize: function (w, h, strategy){\n\t\t\tif( /min|max|height|width/.test(h) ){\n\t\t\t\tstrategy = h;\n\t\t\t\th = w;\n\t\t\t}\n\n\t\t\treturn\tthis.set({ dw: w, dh: h || w, resize: strategy });\n\t\t},\n\n\t\tpreview: function (w, h){\n\t\t\treturn\tthis.resize(w, h || w, 'preview');\n\t\t},\n\n\t\trotate: function (deg){\n\t\t\treturn\tthis.set({ deg: deg });\n\t\t},\n\n\t\tfilter: function (filter){\n\t\t\treturn\tthis.set({ filter: filter });\n\t\t},\n\n\t\toverlay: function (images){\n\t\t\treturn\tthis.set({ overlay: images });\n\t\t},\n\n\t\tclone: function (){\n\t\t\treturn\tnew Image(this);\n\t\t},\n\n\t\t_load: function (image, fn){\n\t\t\tvar self = this;\n\n\t\t\tif( /img|video/i.test(image.nodeName) ){\n\t\t\t\tfn.call(self, null, image);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tapi.readAsImage(image, function (evt){\n\t\t\t\t\tfn.call(self, evt.type != 'load', evt.result);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t_apply: function (image, fn){\n\t\t\tvar\n\t\t\t\t canvas = getCanvas()\n\t\t\t\t, m = this.getMatrix(image)\n\t\t\t\t, ctx = canvas.getContext('2d')\n\t\t\t\t, width = image.videoWidth || image.width\n\t\t\t\t, height = image.videoHeight || image.height\n\t\t\t\t, deg = m.deg\n\t\t\t\t, dw = m.dw\n\t\t\t\t, dh = m.dh\n\t\t\t\t, w = width\n\t\t\t\t, h = height\n\t\t\t\t, filter = m.filter\n\t\t\t\t, copy // canvas copy\n\t\t\t\t, buffer = image\n\t\t\t\t, overlay = m.overlay\n\t\t\t\t, queue = api.queue(function (){ image.src = api.EMPTY_PNG; fn(false, canvas); })\n\t\t\t\t, renderImageToCanvas = api.renderImageToCanvas\n\t\t\t;\n\n\t\t\t// Normalize angle\n\t\t\tdeg = deg - Math.floor(deg/360)*360;\n\n\t\t\t// For `renderImageToCanvas`\n\t\t\timage._type = this.file.type;\n\n\t\t\twhile(m.multipass && min(w/dw, h/dh) > 2 ){\n\t\t\t\tw = (w/2 + 0.5)|0;\n\t\t\t\th = (h/2 + 0.5)|0;\n\n\t\t\t\tcopy = getCanvas();\n\t\t\t\tcopy.width = w;\n\t\t\t\tcopy.height = h;\n\n\t\t\t\tif( buffer !== image ){\n\t\t\t\t\trenderImageToCanvas(copy, buffer, 0, 0, buffer.width, buffer.height, 0, 0, w, h);\n\t\t\t\t\tbuffer = copy;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tbuffer = copy;\n\t\t\t\t\trenderImageToCanvas(buffer, image, m.sx, m.sy, m.sw, m.sh, 0, 0, w, h);\n\t\t\t\t\tm.sx = m.sy = m.sw = m.sh = 0;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tcanvas.width = (deg % 180) ? dh : dw;\n\t\t\tcanvas.height = (deg % 180) ? dw : dh;\n\n\t\t\tcanvas.type = m.type;\n\t\t\tcanvas.quality = m.quality;\n\n\t\t\tctx.rotate(deg * Math.PI / 180);\n\t\t\trenderImageToCanvas(ctx.canvas, buffer\n\t\t\t\t, m.sx, m.sy\n\t\t\t\t, m.sw || buffer.width\n\t\t\t\t, m.sh || buffer.height\n\t\t\t\t, (deg == 180 || deg == 270 ? -dw : 0)\n\t\t\t\t, (deg == 90 || deg == 180 ? -dh : 0)\n\t\t\t\t, dw, dh\n\t\t\t);\n\t\t\tdw = canvas.width;\n\t\t\tdh = canvas.height;\n\n\t\t\t// Apply overlay\n\t\t\toverlay && api.each([].concat(overlay), function (over){\n\t\t\t\tqueue.inc();\n\t\t\t\t// preload\n\t\t\t\tvar img = new window.Image, fn = function (){\n\t\t\t\t\tvar\n\t\t\t\t\t\t x = over.x|0\n\t\t\t\t\t\t, y = over.y|0\n\t\t\t\t\t\t, w = over.w || img.width\n\t\t\t\t\t\t, h = over.h || img.height\n\t\t\t\t\t\t, rel = over.rel\n\t\t\t\t\t;\n\n\t\t\t\t\t// center | right | left\n\t\t\t\t\tx = (rel == 1 || rel == 4 || rel == 7) ? (dw - w + x)/2 : (rel == 2 || rel == 5 || rel == 8 ? dw - (w + x) : x);\n\n\t\t\t\t\t// center | bottom | top\n\t\t\t\t\ty = (rel == 3 || rel == 4 || rel == 5) ? (dh - h + y)/2 : (rel >= 6 ? dh - (h + y) : y);\n\n\t\t\t\t\tapi.event.off(img, 'error load abort', fn);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tctx.globalAlpha = over.opacity || 1;\n\t\t\t\t\t\tctx.drawImage(img, x, y, w, h);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (er){}\n\n\t\t\t\t\tqueue.next();\n\t\t\t\t};\n\n\t\t\t\tapi.event.on(img, 'error load abort', fn);\n\t\t\t\timg.src = over.src;\n\n\t\t\t\tif( img.complete ){\n\t\t\t\t\tfn();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif( filter ){\n\t\t\t\tqueue.inc();\n\t\t\t\tImage.applyFilter(canvas, filter, queue.next);\n\t\t\t}\n\n\t\t\tqueue.check();\n\t\t},\n\n\t\tgetMatrix: function (image){\n\t\t\tvar\n\t\t\t\t m = api.extend({}, this.matrix)\n\t\t\t\t, sw = m.sw = m.sw || image.videoWidth || image.naturalWidth || image.width\n\t\t\t\t, sh = m.sh = m.sh || image.videoHeight || image.naturalHeight || image.height\n\t\t\t\t, dw = m.dw = m.dw || sw\n\t\t\t\t, dh = m.dh = m.dh || sh\n\t\t\t\t, sf = sw/sh, df = dw/dh\n\t\t\t\t, strategy = m.resize\n\t\t\t;\n\n\t\t\tif( strategy == 'preview' ){\n\t\t\t\tif( dw != sw || dh != sh ){\n\t\t\t\t\t// Make preview\n\t\t\t\t\tvar w, h;\n\n\t\t\t\t\tif( df >= sf ){\n\t\t\t\t\t\tw\t= sw;\n\t\t\t\t\t\th\t= w / df;\n\t\t\t\t\t} else {\n\t\t\t\t\t\th\t= sh;\n\t\t\t\t\t\tw\t= h * df;\n\t\t\t\t\t}\n\n\t\t\t\t\tif( w != sw || h != sh ){\n\t\t\t\t\t\tm.sx\t= ~~((sw - w)/2);\n\t\t\t\t\t\tm.sy\t= ~~((sh - h)/2);\n\t\t\t\t\t\tsw\t\t= w;\n\t\t\t\t\t\tsh\t\t= h;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if( strategy == 'height' ){\n\t\t\t\tdw = dh * sf;\n\t\t\t}\n\t\t\telse if( strategy == 'width' ){\n\t\t\t\tdh = dw / sf;\n\t\t\t}\n\t\t\telse if( strategy ){\n\t\t\t\tif( !(sw > dw || sh > dh) ){\n\t\t\t\t\tdw = sw;\n\t\t\t\t\tdh = sh;\n\t\t\t\t}\n\t\t\t\telse if( strategy == 'min' ){\n\t\t\t\t\tdw = round(sf < df ? min(sw, dw) : dh*sf);\n\t\t\t\t\tdh = round(sf < df ? dw/sf : min(sh, dh));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdw = round(sf >= df ? min(sw, dw) : dh*sf);\n\t\t\t\t\tdh = round(sf >= df ? dw/sf : min(sh, dh));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tm.sw = sw;\n\t\t\tm.sh = sh;\n\t\t\tm.dw = dw;\n\t\t\tm.dh = dh;\n\t\t\tm.multipass = api.multiPassResize;\n\t\t\treturn\tm;\n\t\t},\n\n\t\t_trans: function (fn){\n\t\t\tthis._load(this.file, function (err, image){\n\t\t\t\tif( err ){\n\t\t\t\t\tfn(err);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis._apply(image, fn);\n\t\t\t\t\t} catch (err){\n\t\t\t\t\t\tapi.log('[err] FileAPI.Image.fn._apply:', err);\n\t\t\t\t\t\tfn(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\tget: function (fn){\n\t\t\tif( api.support.transform ){\n\t\t\t\tvar _this = this, matrix = _this.matrix;\n\n\t\t\t\tif( matrix.deg == 'auto' ){\n\t\t\t\t\tapi.getInfo(_this.file, function (err, info){\n\t\t\t\t\t\t// rotate by exif orientation\n\t\t\t\t\t\tmatrix.deg = exifOrientation[info && info.exif && info.exif.Orientation] || 0;\n\t\t\t\t\t\t_this._trans(fn);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t_this._trans(fn);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfn('not_support_transform');\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\n\t\ttoData: function (fn){\n\t\t\treturn this.get(fn);\n\t\t}\n\n\t};\n\n\n\tImage.exifOrientation = exifOrientation;\n\n\n\tImage.transform = function (file, transform, autoOrientation, fn){\n\t\tfunction _transform(err, img){\n\t\t\t// img -- info object\n\t\t\tvar\n\t\t\t\t images = {}\n\t\t\t\t, queue = api.queue(function (err){\n\t\t\t\t\tfn(err, images);\n\t\t\t\t})\n\t\t\t;\n\n\t\t\tif( !err ){\n\t\t\t\tapi.each(transform, function (params, name){\n\t\t\t\t\tif( !queue.isFail() ){\n\t\t\t\t\t\tvar ImgTrans = new Image(img.nodeType ? img : file), isFn = typeof params == 'function';\n\n\t\t\t\t\t\tif( isFn ){\n\t\t\t\t\t\t\tparams(img, ImgTrans);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( params.width ){\n\t\t\t\t\t\t\tImgTrans[params.preview ? 'preview' : 'resize'](params.width, params.height, params.strategy);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif( params.maxWidth && (img.width > params.maxWidth || img.height > params.maxHeight) ){\n\t\t\t\t\t\t\t\tImgTrans.resize(params.maxWidth, params.maxHeight, 'max');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( params.crop ){\n\t\t\t\t\t\t\tvar crop = params.crop;\n\t\t\t\t\t\t\tImgTrans.crop(crop.x|0, crop.y|0, crop.w || crop.width, crop.h || crop.height);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( params.rotate === undef && autoOrientation ){\n\t\t\t\t\t\t\tparams.rotate = 'auto';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tImgTrans.set({ type: ImgTrans.matrix.type || params.type || file.type || 'image/png' });\n\n\t\t\t\t\t\tif( !isFn ){\n\t\t\t\t\t\t\tImgTrans.set({\n\t\t\t\t\t\t\t\t deg: params.rotate\n\t\t\t\t\t\t\t\t, overlay: params.overlay\n\t\t\t\t\t\t\t\t, filter: params.filter\n\t\t\t\t\t\t\t\t, quality: params.quality || 1\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tqueue.inc();\n\t\t\t\t\t\tImgTrans.toData(function (err, image){\n\t\t\t\t\t\t\tif( err ){\n\t\t\t\t\t\t\t\tqueue.fail();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\timages[name] = image;\n\t\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tqueue.fail();\n\t\t\t}\n\t\t}\n\n\n\t\t// @todo: Оло-ло, нужно рефакторить это место\n\t\tif( file.width ){\n\t\t\t_transform(false, file);\n\t\t} else {\n\t\t\tapi.getInfo(file, _transform);\n\t\t}\n\t};\n\n\n\t// @const\n\tapi.each(['TOP', 'CENTER', 'BOTTOM'], function (x, i){\n\t\tapi.each(['LEFT', 'CENTER', 'RIGHT'], function (y, j){\n\t\t\tImage[x+'_'+y] = i*3 + j;\n\t\t\tImage[y+'_'+x] = i*3 + j;\n\t\t});\n\t});\n\n\n\t/**\n\t * Trabsform element to canvas\n\t *\n\t * @param {Image|HTMLVideoElement} el\n\t * @returns {Canvas}\n\t */\n\tImage.toCanvas = function(el){\n\t\tvar canvas\t\t= document.createElement('canvas');\n\t\tcanvas.width\t= el.videoWidth || el.width;\n\t\tcanvas.height\t= el.videoHeight || el.height;\n\t\tcanvas.getContext('2d').drawImage(el, 0, 0);\n\t\treturn\tcanvas;\n\t};\n\n\n\t/**\n\t * Create image from DataURL\n\t * @param {String} dataURL\n\t * @param {Object} size\n\t * @param {Function} callback\n\t */\n\tImage.fromDataURL = function (dataURL, size, callback){\n\t\tvar img = api.newImage(dataURL);\n\t\tapi.extend(img, size);\n\t\tcallback(img);\n\t};\n\n\n\t/**\n\t * Apply filter (caman.js)\n\t *\n\t * @param {Canvas|Image} canvas\n\t * @param {String|Function} filter\n\t * @param {Function} doneFn\n\t */\n\tImage.applyFilter = function (canvas, filter, doneFn){\n\t\tif( typeof filter == 'function' ){\n\t\t\tfilter(canvas, doneFn);\n\t\t}\n\t\telse if( window.Caman ){\n\t\t\t// http://camanjs.com/guides/\n\t\t\twindow.Caman(canvas.tagName == 'IMG' ? Image.toCanvas(canvas) : canvas, function (){\n\t\t\t\tif( typeof filter == 'string' ){\n\t\t\t\t\tthis[filter]();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tapi.each(filter, function (val, method){\n\t\t\t\t\t\tthis[method](val);\n\t\t\t\t\t}, this);\n\t\t\t\t}\n\t\t\t\tthis.render(doneFn);\n\t\t\t});\n\t\t}\n\t};\n\n\n\t/**\n\t * For load-image-ios.js\n\t */\n\tapi.renderImageToCanvas = function (canvas, img, sx, sy, sw, sh, dx, dy, dw, dh){\n\t\ttry {\n\t\t\treturn canvas.getContext('2d').drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh);\n\t\t} catch (ex) {\n\t\t\tapi.log('renderImageToCanvas failed');\n\t\t\tthrow ex;\n\t\t}\n\t};\n\n\n\t// @export\n\tapi.support.canvas = api.support.transform = support;\n\tapi.Image = Image;\n})(FileAPI, document);\n\n/*\n * JavaScript Load Image iOS scaling fixes 1.0.3\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * iOS image scaling fixes based on\n * https://github.com/stomita/ios-imagefile-megapixel\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/*jslint nomen: true, bitwise: true */\n/*global FileAPI, window, document */\n\n(function (factory) {\n\t'use strict';\n\tfactory(FileAPI);\n}(function (loadImage) {\n 'use strict';\n\n // Only apply fixes on the iOS platform:\n if (!window.navigator || !window.navigator.platform ||\n !(/iP(hone|od|ad)/).test(window.navigator.platform)) {\n return;\n }\n\n var originalRenderMethod = loadImage.renderImageToCanvas;\n\n // Detects subsampling in JPEG images:\n loadImage.detectSubsampling = function (img) {\n var canvas,\n context;\n if (img.width * img.height > 1024 * 1024) { // only consider mexapixel images\n canvas = document.createElement('canvas');\n canvas.width = canvas.height = 1;\n context = canvas.getContext('2d');\n context.drawImage(img, -img.width + 1, 0);\n // subsampled image becomes half smaller in rendering size.\n // check alpha channel value to confirm image is covering edge pixel or not.\n // if alpha value is 0 image is not covering, hence subsampled.\n return context.getImageData(0, 0, 1, 1).data[3] === 0;\n }\n return false;\n };\n\n // Detects vertical squash in JPEG images:\n loadImage.detectVerticalSquash = function (img, subsampled) {\n var naturalHeight = img.naturalHeight || img.height,\n canvas = document.createElement('canvas'),\n context = canvas.getContext('2d'),\n data,\n sy,\n ey,\n py,\n alpha;\n if (subsampled) {\n naturalHeight /= 2;\n }\n canvas.width = 1;\n canvas.height = naturalHeight;\n context.drawImage(img, 0, 0);\n data = context.getImageData(0, 0, 1, naturalHeight).data;\n // search image edge pixel position in case it is squashed vertically:\n sy = 0;\n ey = naturalHeight;\n py = naturalHeight;\n while (py > sy) {\n alpha = data[(py - 1) * 4 + 3];\n if (alpha === 0) {\n ey = py;\n } else {\n sy = py;\n }\n py = (ey + sy) >> 1;\n }\n return (py / naturalHeight) || 1;\n };\n\n // Renders image to canvas while working around iOS image scaling bugs:\n // https://github.com/blueimp/JavaScript-Load-Image/issues/13\n loadImage.renderImageToCanvas = function (\n canvas,\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destX,\n destY,\n destWidth,\n destHeight\n ) {\n if (img._type === 'image/jpeg') {\n var context = canvas.getContext('2d'),\n tmpCanvas = document.createElement('canvas'),\n tileSize = 1024,\n tmpContext = tmpCanvas.getContext('2d'),\n subsampled,\n vertSquashRatio,\n tileX,\n tileY;\n tmpCanvas.width = tileSize;\n tmpCanvas.height = tileSize;\n context.save();\n subsampled = loadImage.detectSubsampling(img);\n if (subsampled) {\n sourceX /= 2;\n sourceY /= 2;\n sourceWidth /= 2;\n sourceHeight /= 2;\n }\n vertSquashRatio = loadImage.detectVerticalSquash(img, subsampled);\n if (subsampled || vertSquashRatio !== 1) {\n sourceY *= vertSquashRatio;\n destWidth = Math.ceil(tileSize * destWidth / sourceWidth);\n destHeight = Math.ceil(\n tileSize * destHeight / sourceHeight / vertSquashRatio\n );\n destY = 0;\n tileY = 0;\n while (tileY < sourceHeight) {\n destX = 0;\n tileX = 0;\n while (tileX < sourceWidth) {\n tmpContext.clearRect(0, 0, tileSize, tileSize);\n tmpContext.drawImage(\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n -tileX,\n -tileY,\n sourceWidth,\n sourceHeight\n );\n context.drawImage(\n tmpCanvas,\n 0,\n 0,\n tileSize,\n tileSize,\n destX,\n destY,\n destWidth,\n destHeight\n );\n tileX += tileSize;\n destX += destWidth;\n }\n tileY += tileSize;\n destY += destHeight;\n }\n context.restore();\n return canvas;\n }\n }\n return originalRenderMethod(\n canvas,\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destX,\n destY,\n destWidth,\n destHeight\n );\n };\n\n}));\n\n/*global window, FileAPI */\n\n(function (api, window){\n\t\"use strict\";\n\n\tvar\n\t\t document = window.document\n\t\t, FormData = window.FormData\n\t\t, Form = function (){ this.items = []; }\n\t\t, encodeURIComponent = window.encodeURIComponent\n\t;\n\n\n\tForm.prototype = {\n\n\t\tappend: function (name, blob, file, type){\n\t\t\tthis.items.push({\n\t\t\t\t name: name\n\t\t\t\t, blob: blob && blob.blob || (blob == void 0 ? '' : blob)\n\t\t\t\t, file: blob && (file || blob.name)\n\t\t\t\t, type:\tblob && (type || blob.type)\n\t\t\t});\n\t\t},\n\n\t\teach: function (fn){\n\t\t\tvar i = 0, n = this.items.length;\n\t\t\tfor( ; i < n; i++ ){\n\t\t\t\tfn.call(this, this.items[i]);\n\t\t\t}\n\t\t},\n\n\t\ttoData: function (fn, options){\n\t\t // allow chunked transfer if we have only one file to send\n\t\t // flag is used below and in XHR._send\n\t\t options._chunked = api.support.chunked && options.chunkSize > 0 && api.filter(this.items, function (item){ return item.file; }).length == 1;\n\n\t\t\tif( !api.support.html5 ){\n\t\t\t\tapi.log('FileAPI.Form.toHtmlData');\n\t\t\t\tthis.toHtmlData(fn);\n\t\t\t}\n\t\t\telse if( !api.formData || this.multipart || !FormData ){\n\t\t\t\tapi.log('FileAPI.Form.toMultipartData');\n\t\t\t\tthis.toMultipartData(fn);\n\t\t\t}\n\t\t\telse if( options._chunked ){\n\t\t\t\tapi.log('FileAPI.Form.toPlainData');\n\t\t\t\tthis.toPlainData(fn);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tapi.log('FileAPI.Form.toFormData');\n\t\t\t\tthis.toFormData(fn);\n\t\t\t}\n\t\t},\n\n\t\t_to: function (data, complete, next, arg){\n\t\t\tvar queue = api.queue(function (){\n\t\t\t\tcomplete(data);\n\t\t\t});\n\n\t\t\tthis.each(function (file){\n\t\t\t\ttry{\n\t\t\t\t\tnext(file, data, queue, arg);\n\t\t\t\t}\n\t\t\t\tcatch( err ){\n\t\t\t\t\tapi.log('FileAPI.Form._to: ' + err.message);\n\t\t\t\t\tcomplete(err);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tqueue.check();\n\t\t},\n\n\n\t\ttoHtmlData: function (fn){\n\t\t\tthis._to(document.createDocumentFragment(), fn, function (file, data/**DocumentFragment*/){\n\t\t\t\tvar blob = file.blob, hidden;\n\n\t\t\t\tif( file.file ){\n\t\t\t\t\tapi.reset(blob, true);\n\t\t\t\t\t// set new name\n\t\t\t\t\tblob.name = file.name;\n\t\t\t\t\tblob.disabled = false;\n\t\t\t\t\tdata.appendChild(blob);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\thidden = document.createElement('input');\n\t\t\t\t\thidden.name = file.name;\n\t\t\t\t\thidden.type = 'hidden';\n\t\t\t\t\thidden.value = blob;\n\t\t\t\t\tdata.appendChild(hidden);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\ttoPlainData: function (fn){\n\t\t\tthis._to({}, fn, function (file, data, queue){\n\t\t\t\tif( file.file ){\n\t\t\t\t\tdata.type = file.file;\n\t\t\t\t}\n\n\t\t\t\tif( file.blob.toBlob ){\n\t\t\t\t // canvas\n\t\t\t\t\tqueue.inc();\n\t\t\t\t\t_convertFile(file, function (file, blob){\n\t\t\t\t\t\tdata.name = file.name;\n\t\t\t\t\t\tdata.file = blob;\n\t\t\t\t\t\tdata.size = blob.length;\n\t\t\t\t\t\tdata.type = file.type;\n\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if( file.file ){\n\t\t\t\t // file\n\t\t\t\t\tdata.name = file.blob.name;\n\t\t\t\t\tdata.file = file.blob;\n\t\t\t\t\tdata.size = file.blob.size;\n\t\t\t\t\tdata.type = file.type;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t // additional data\n\t\t\t\t if( !data.params ){\n\t\t\t\t data.params = [];\n\t\t\t\t }\n\t\t\t\t data.params.push(encodeURIComponent(file.name) +\"=\"+ encodeURIComponent(file.blob));\n\t\t\t\t}\n\n\t\t\t\tdata.start = -1;\n\t\t\t\tdata.end = data.file && data.file.FileAPIReadPosition || -1;\n\t\t\t\tdata.retry = 0;\n\t\t\t});\n\t\t},\n\n\t\ttoFormData: function (fn){\n\t\t\tthis._to(new FormData, fn, function (file, data, queue){\n\t\t\t\tif( file.blob && file.blob.toBlob ){\n\t\t\t\t\tqueue.inc();\n\t\t\t\t\t_convertFile(file, function (file, blob){\n\t\t\t\t\t\tdata.append(file.name, blob, file.file);\n\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if( file.file ){\n\t\t\t\t\tdata.append(file.name, file.blob, file.file);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdata.append(file.name, file.blob);\n\t\t\t\t}\n\n\t\t\t\tif( file.file ){\n\t\t\t\t\tdata.append('_'+file.name, file.file);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\ttoMultipartData: function (fn){\n\t\t\tthis._to([], fn, function (file, data, queue, boundary){\n\t\t\t\tqueue.inc();\n\t\t\t\t_convertFile(file, function (file, blob){\n\t\t\t\t\tdata.push(\n\t\t\t\t\t\t '--_' + boundary + ('\\r\\nContent-Disposition: form-data; name=\"'+ file.name +'\"'+ (file.file ? '; filename=\"'+ encodeURIComponent(file.file) +'\"' : '')\n\t\t\t\t\t\t+ (file.file ? '\\r\\nContent-Type: '+ (file.type || 'application/octet-stream') : '')\n\t\t\t\t\t\t+ '\\r\\n'\n\t\t\t\t\t\t+ '\\r\\n'+ (file.file ? blob : encodeURIComponent(blob))\n\t\t\t\t\t\t+ '\\r\\n')\n\t\t\t\t\t);\n\t\t\t\t\tqueue.next();\n\t\t\t\t}, true);\n\t\t\t}, api.expando);\n\t\t}\n\t};\n\n\n\tfunction _convertFile(file, fn, useBinaryString){\n\t\tvar blob = file.blob, filename = file.file;\n\n\t\tif( filename ){\n\t\t\tif( !blob.toDataURL ){\n\t\t\t\t// The Blob is not an image.\n\t\t\t\tapi.readAsBinaryString(blob, function (evt){\n\t\t\t\t\tif( evt.type == 'load' ){\n\t\t\t\t\t\tfn(file, evt.result);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar\n\t\t\t\t mime = { 'image/jpeg': '.jpe?g', 'image/png': '.png' }\n\t\t\t\t, type = mime[file.type] ? file.type : 'image/png'\n\t\t\t\t, ext = mime[type] || '.png'\n\t\t\t\t, quality = blob.quality || 1\n\t\t\t;\n\n\t\t\tif( !filename.match(new RegExp(ext+'$', 'i')) ){\n\t\t\t\t// Does not change the current extension, but add a new one.\n\t\t\t\tfilename += ext.replace('?', '');\n\t\t\t}\n\n\t\t\tfile.file = filename;\n\t\t\tfile.type = type;\n\n\t\t\tif( !useBinaryString && blob.toBlob ){\n\t\t\t\tblob.toBlob(function (blob){\n\t\t\t\t\tfn(file, blob);\n\t\t\t\t}, type, quality);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfn(file, api.toBinaryString(blob.toDataURL(type, quality)));\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfn(file, blob);\n\t\t}\n\t}\n\n\n\t// @export\n\tapi.Form = Form;\n})(FileAPI, window);\n\n/*global window, FileAPI, Uint8Array */\n\n(function (window, api){\n\t\"use strict\";\n\n\tvar\n\t\t noop = function (){}\n\t\t, document = window.document\n\n\t\t, XHR = function (options){\n\t\t\tthis.uid = api.uid();\n\t\t\tthis.xhr = {\n\t\t\t\t abort: noop\n\t\t\t\t, getResponseHeader: noop\n\t\t\t\t, getAllResponseHeaders: noop\n\t\t\t};\n\t\t\tthis.options = options;\n\t\t},\n\n\t\t_xhrResponsePostfix = { '': 1, XML: 1, Text: 1, Body: 1 }\n\t;\n\n\n\tXHR.prototype = {\n\t\tstatus: 0,\n\t\tstatusText: '',\n\t\tconstructor: XHR,\n\n\t\tgetResponseHeader: function (name){\n\t\t\treturn this.xhr.getResponseHeader(name);\n\t\t},\n\n\t\tgetAllResponseHeaders: function (){\n\t\t\treturn this.xhr.getAllResponseHeaders() || {};\n\t\t},\n\n\t\tend: function (status, statusText){\n\t\t\tvar _this = this, options = _this.options;\n\n\t\t\t_this.end\t\t=\n\t\t\t_this.abort\t\t= noop;\n\t\t\t_this.status\t= status;\n\n\t\t\tif( statusText ){\n\t\t\t\t_this.statusText = statusText;\n\t\t\t}\n\n\t\t\tapi.log('xhr.end:', status, statusText);\n\t\t\toptions.complete(status == 200 || status == 201 ? false : _this.statusText || 'unknown', _this);\n\n\t\t\tif( _this.xhr && _this.xhr.node ){\n\t\t\t\tsetTimeout(function (){\n\t\t\t\t\tvar node = _this.xhr.node;\n\t\t\t\t\ttry { node.parentNode.removeChild(node); } catch (e){}\n\t\t\t\t\ttry { delete window[_this.uid]; } catch (e){}\n\t\t\t\t\twindow[_this.uid] = _this.xhr.node = null;\n\t\t\t\t}, 9);\n\t\t\t}\n\t\t},\n\n\t\tabort: function (){\n\t\t\tthis.end(0, 'abort');\n\n\t\t\tif( this.xhr ){\n\t\t\t\tthis.xhr.aborted = true;\n\t\t\t\tthis.xhr.abort();\n\t\t\t}\n\t\t},\n\n\t\tsend: function (FormData){\n\t\t\tvar _this = this, options = this.options;\n\n\t\t\tFormData.toData(function (data){\n\t\t\t\tif( data instanceof Error ){\n\t\t\t\t\t_this.end(0, data.message);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\t// Start uploading\n\t\t\t\t\toptions.upload(options, _this);\n\t\t\t\t\t_this._send.call(_this, options, data);\n\t\t\t\t}\n\t\t\t}, options);\n\t\t},\n\n\t\t_send: function (options, data){\n\t\t\tvar _this = this, xhr, uid = _this.uid, onLoadFnName = _this.uid + \"Load\", url = options.url;\n\n\t\t\tapi.log('XHR._send:', data);\n\n\t\t\tif( !options.cache ){\n\t\t\t\t// No cache\n\t\t\t\turl += (~url.indexOf('?') ? '&' : '?') + api.uid();\n\t\t\t}\n\n\t\t\tif( data.nodeName ){\n\t\t\t\tvar jsonp = options.jsonp;\n\n\t\t\t\t// prepare callback in GET\n\t\t\t\turl = url.replace(/([a-z]+)=(\\?)/i, '$1='+uid);\n\n\t\t\t\t// legacy\n\t\t\t\toptions.upload(options, _this);\n\n\t\t\t\tvar\n\t\t\t\t\tonPostMessage = function (evt){\n\t\t\t\t\t\tif( ~url.indexOf(evt.origin) ){\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tvar result = api.parseJSON(evt.data);\n\t\t\t\t\t\t\t\tif( result.id == uid ){\n\t\t\t\t\t\t\t\t\tcomplete(result.status, result.statusText, result.response);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch( err ){\n\t\t\t\t\t\t\t\tcomplete(0, err.message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\t// jsonp-callack\n\t\t\t\t\tcomplete = window[uid] = function (status, statusText, response){\n\t\t\t\t\t\t_this.readyState\t= 4;\n\t\t\t\t\t\t_this.responseText\t= response;\n\t\t\t\t\t\t_this.end(status, statusText);\n\n\t\t\t\t\t\tapi.event.off(window, 'message', onPostMessage);\n\t\t\t\t\t\twindow[uid] = xhr = transport = window[onLoadFnName] = null;\n\t\t\t\t\t}\n\t\t\t\t;\n\n\t\t\t\t_this.xhr.abort = function (){\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif( transport.stop ){ transport.stop(); }\n\t\t\t\t\t\telse if( transport.contentWindow.stop ){ transport.contentWindow.stop(); }\n\t\t\t\t\t\telse { transport.contentWindow.document.execCommand('Stop'); }\n\t\t\t\t\t}\n\t\t\t\t\tcatch (er) {}\n\t\t\t\t\tcomplete(0, \"abort\");\n\t\t\t\t};\n\n\t\t\t\tapi.event.on(window, 'message', onPostMessage);\n\n\t\t\t\twindow[onLoadFnName] = function (){\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t win = transport.contentWindow\n\t\t\t\t\t\t\t, doc = win.document\n\t\t\t\t\t\t\t, result = win.result || api.parseJSON(doc.body.innerHTML)\n\t\t\t\t\t\t;\n\t\t\t\t\t\tcomplete(result.status, result.statusText, result.response);\n\t\t\t\t\t} catch (e){\n\t\t\t\t\t\tapi.log('[transport.onload]', e);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\txhr = document.createElement('div');\n\t\t\t\txhr.innerHTML = '
    '\n\t\t\t\t\t\t\t+ ''\n\t\t\t\t\t\t\t+ (jsonp && (options.url.indexOf('=?') < 0) ? '' : '')\n\t\t\t\t\t\t\t+ '
    '\n\t\t\t\t;\n\n\t\t\t\t// get form-data & transport\n\t\t\t\tvar\n\t\t\t\t\t form = xhr.getElementsByTagName('form')[0]\n\t\t\t\t\t, transport = xhr.getElementsByTagName('iframe')[0]\n\t\t\t\t;\n\n\t\t\t\tform.appendChild(data);\n\n\t\t\t\tapi.log(form.parentNode.innerHTML);\n\n\t\t\t\t// append to DOM\n\t\t\t\tdocument.body.appendChild(xhr);\n\n\t\t\t\t// keep a reference to node-transport\n\t\t\t\t_this.xhr.node = xhr;\n\n\t\t\t\t// send\n\t\t\t\t_this.readyState = 2; // loaded\n\t\t\t\ttry {\n\t\t\t\t\tform.submit();\n\t\t\t\t} catch (err) {\n\t\t\t\t\tapi.log('iframe.error: ' + err);\n\t\t\t\t}\n\t\t\t\tform = null;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Clean url\n\t\t\t\turl = url.replace(/([a-z]+)=(\\?)&?/i, '');\n\n\t\t\t\t// html5\n\t\t\t\tif (this.xhr && this.xhr.aborted) {\n\t\t\t\t\tapi.log(\"Error: already aborted\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\txhr = _this.xhr = api.getXHR();\n\n\t\t\t\tif (data.params) {\n\t\t\t\t\turl += (url.indexOf('?') < 0 ? \"?\" : \"&\") + data.params.join(\"&\");\n\t\t\t\t}\n\n\t\t\t\txhr.open(options.uploadMethod || 'POST', url, true);\n\n\t\t\t\tif( api.withCredentials ){\n\t\t\t\t\txhr.withCredentials = \"true\";\n\t\t\t\t}\n\n\t\t\t\tif( !options.headers || !options.headers['X-Requested-With'] ){\n\t\t\t\t\txhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n\t\t\t\t}\n\n\t\t\t\tapi.each(options.headers, function (val, key){\n\t\t\t\t\txhr.setRequestHeader(key, val);\n\t\t\t\t});\n\n\n\t\t\t\tif ( options._chunked ) {\n\t\t\t\t\t// chunked upload\n\t\t\t\t\tif( xhr.upload ){\n\t\t\t\t\t\txhr.upload.addEventListener('progress', api.throttle(function (/**Event*/evt){\n\t\t\t\t\t\t\tif (!data.retry) {\n\t\t\t\t\t\t\t\t// show progress only for correct chunk uploads\n\t\t\t\t\t\t\t\toptions.progress({\n\t\t\t\t\t\t\t\t\t type:\t\t\tevt.type\n\t\t\t\t\t\t\t\t\t, total:\t\tdata.size\n\t\t\t\t\t\t\t\t\t, loaded:\t\tdata.start + evt.loaded\n\t\t\t\t\t\t\t\t\t, totalSize:\tdata.size\n\t\t\t\t\t\t\t\t}, _this, options);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 100), false);\n\t\t\t\t\t}\n\n\t\t\t\t\txhr.onreadystatechange = function (){\n\t\t\t\t\t\tvar lkb = parseInt(xhr.getResponseHeader('X-Last-Known-Byte'), 10);\n\n\t\t\t\t\t\t_this.status = xhr.status;\n\t\t\t\t\t\t_this.statusText = xhr.statusText;\n\t\t\t\t\t\t_this.readyState = xhr.readyState;\n\n\t\t\t\t\t\tif( xhr.readyState == 4 ){\n\t\t\t\t\t\t\tfor( var k in _xhrResponsePostfix ){\n\t\t\t\t\t\t\t\t_this['response'+k] = xhr['response'+k];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif (!xhr.status || xhr.status - 201 > 0) {\n\t\t\t\t\t\t\t\tapi.log(\"Error: \" + xhr.status);\n\t\t\t\t\t\t\t\t// some kind of error\n\t\t\t\t\t\t\t\t// 0 - connection fail or timeout, if xhr.aborted is true, then it's not recoverable user action\n\t\t\t\t\t\t\t\t// up - server error\n\t\t\t\t\t\t\t\tif (((!xhr.status && !xhr.aborted) || 500 == xhr.status || 416 == xhr.status) && ++data.retry <= options.chunkUploadRetry) {\n\t\t\t\t\t\t\t\t\t// let's try again the same chunk\n\t\t\t\t\t\t\t\t\t// only applicable for recoverable error codes 500 && 416\n\t\t\t\t\t\t\t\t\tvar delay = xhr.status ? 0 : api.chunkNetworkDownRetryTimeout;\n\n\t\t\t\t\t\t\t\t\t// inform about recoverable problems\n\t\t\t\t\t\t\t\t\toptions.pause(data.file, options);\n\n\t\t\t\t\t\t\t\t\t// smart restart if server reports about the last known byte\n\t\t\t\t\t\t\t\t\tapi.log(\"X-Last-Known-Byte: \" + lkb);\n\t\t\t\t\t\t\t\t\tif (lkb) {\n\t\t\t\t\t\t\t\t\t\tdata.end = lkb;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tdata.end = data.start - 1;\n\t\t\t\t\t\t\t\t\t\tif (416 == xhr.status) {\n\t\t\t\t\t\t\t\t\t\t\tdata.end = data.end - options.chunkSize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t\t_this._send(options, data);\n\t\t\t\t\t\t\t\t\t}, delay);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// no mo retries\n\t\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// success\n\t\t\t\t\t\t\t\tdata.retry = 0;\n\n\t\t\t\t\t\t\t\tif (data.end == data.size - 1) {\n\t\t\t\t\t\t\t\t\t// finished\n\t\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// next chunk\n\n\t\t\t\t\t\t\t\t\t// shift position if server reports about the last known byte\n\t\t\t\t\t\t\t\t\tapi.log(\"X-Last-Known-Byte: \" + lkb);\n\t\t\t\t\t\t\t\t\tif (lkb) {\n\t\t\t\t\t\t\t\t\t\tdata.end = lkb;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdata.file.FileAPIReadPosition = data.end;\n\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t\t_this._send(options, data);\n\t\t\t\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\txhr = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tdata.start = data.end + 1;\n\t\t\t\t\tdata.end = Math.max(Math.min(data.start + options.chunkSize, data.size) - 1, data.start);\n\n\t\t\t\t\t// Retrieve a slice of file\n\t\t\t\t\tvar\n\t\t\t\t\t\t file = data.file\n\t\t\t\t\t\t, slice = (file.slice || file.mozSlice || file.webkitSlice).call(file, data.start, data.end + 1)\n\t\t\t\t\t;\n\n\t\t\t\t\tif( data.size && !slice.size ){\n\t\t\t\t\t\tsetTimeout(function (){\n\t\t\t\t\t\t\t_this.end(-1);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\txhr.setRequestHeader(\"Content-Range\", \"bytes \" + data.start + \"-\" + data.end + \"/\" + data.size);\n\t\t\t\t\t\txhr.setRequestHeader(\"Content-Disposition\", 'attachment; filename=' + encodeURIComponent(data.name));\n\t\t\t\t\t\txhr.setRequestHeader(\"Content-Type\", data.type || \"application/octet-stream\");\n\n\t\t\t\t\t\txhr.send(slice);\n\t\t\t\t\t}\n\n\t\t\t\t\tfile = slice = null;\n\t\t\t\t} else {\n\t\t\t\t\t// single piece upload\n\t\t\t\t\tif( xhr.upload ){\n\t\t\t\t\t\t// https://github.com/blueimp/jQuery-File-Upload/wiki/Fixing-Safari-hanging-on-very-high-speed-connections-%281Gbps%29\n\t\t\t\t\t\txhr.upload.addEventListener('progress', api.throttle(function (/**Event*/evt){\n\t\t\t\t\t\t\toptions.progress(evt, _this, options);\n\t\t\t\t\t\t}, 100), false);\n\t\t\t\t\t}\n\n\t\t\t\t\txhr.onreadystatechange = function (){\n\t\t\t\t\t\t_this.status = xhr.status;\n\t\t\t\t\t\t_this.statusText = xhr.statusText;\n\t\t\t\t\t\t_this.readyState = xhr.readyState;\n\n\t\t\t\t\t\tif( xhr.readyState == 4 ){\n\t\t\t\t\t\t\tfor( var k in _xhrResponsePostfix ){\n\t\t\t\t\t\t\t\t_this['response'+k] = xhr['response'+k];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif (!xhr.status || xhr.status > 201) {\n\t\t\t\t\t\t\t\tapi.log(\"Error: \" + xhr.status);\n\t\t\t\t\t\t\t\tif (((!xhr.status && !xhr.aborted) || 500 == xhr.status) && (options.retry || 0) < options.uploadRetry) {\n\t\t\t\t\t\t\t\t\toptions.retry = (options.retry || 0) + 1;\n\t\t\t\t\t\t\t\t\tvar delay = api.networkDownRetryTimeout;\n\n\t\t\t\t\t\t\t\t\t// inform about recoverable problems\n\t\t\t\t\t\t\t\t\toptions.pause(options.file, options);\n\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t\t_this._send(options, data);\n\t\t\t\t\t\t\t\t\t}, delay);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t//success\n\t\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t//success\n\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\txhr = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tif( api.isArray(data) ){\n\t\t\t\t\t\t// multipart\n\t\t\t\t\t\txhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary=_'+api.expando);\n\t\t\t\t\t\tvar rawData = data.join('') +'--_'+ api.expando +'--';\n\n\t\t\t\t\t\t/** @namespace xhr.sendAsBinary https://developer.mozilla.org/ru/XMLHttpRequest#Sending_binary_content */\n\t\t\t\t\t\tif( xhr.sendAsBinary ){\n\t\t\t\t\t\t\txhr.sendAsBinary(rawData);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar bytes = Array.prototype.map.call(rawData, function(c){ return c.charCodeAt(0) & 0xff; });\n\t\t\t\t\t\t\txhr.send(new Uint8Array(bytes).buffer);\n\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// FormData\n\t\t\t\t\t\txhr.send(data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\n\t// @export\n\tapi.XHR = XHR;\n})(window, FileAPI);\n\n/**\n * @class\tFileAPI.Camera\n * @author\tRubaXa\t\n * @support\tChrome 21+, FF 18+, Opera 12+\n */\n\n/*global window, FileAPI, jQuery */\n/** @namespace LocalMediaStream -- https://developer.mozilla.org/en-US/docs/WebRTC/MediaStream_API#LocalMediaStream */\n(function (window, api){\n\t\"use strict\";\n\n\tvar\n\t\tURL = window.URL || window.webkitURL,\n\n\t\tdocument = window.document,\n\t\tnavigator = window.navigator,\n\n\t\tgetMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia,\n\n\t\thtml5 = !!getMedia\n\t;\n\n\n\t// Support \"media\"\n\tapi.support.media = html5;\n\n\n\tvar Camera = function (video){\n\t\tthis.video = video;\n\t};\n\n\n\tCamera.prototype = {\n\t\tisActive: function (){\n\t\t\treturn\t!!this._active;\n\t\t},\n\n\n\t\t/**\n\t\t * Start camera streaming\n\t\t * @param\t{Function}\tcallback\n\t\t */\n\t\tstart: function (callback){\n\t\t\tvar\n\t\t\t\t _this = this\n\t\t\t\t, video = _this.video\n\t\t\t\t, _successId\n\t\t\t\t, _failId\n\t\t\t\t, _complete = function (err){\n\t\t\t\t\t_this._active = !err;\n\t\t\t\t\tclearTimeout(_failId);\n\t\t\t\t\tclearTimeout(_successId);\n//\t\t\t\t\tapi.event.off(video, 'loadedmetadata', _complete);\n\t\t\t\t\tcallback && callback(err, _this);\n\t\t\t\t}\n\t\t\t;\n\n\t\t\tgetMedia.call(navigator, { video: true }, function (stream/**LocalMediaStream*/){\n\t\t\t\t// Success\n\t\t\t\t_this.stream = stream;\n\n//\t\t\t\tapi.event.on(video, 'loadedmetadata', function (){\n//\t\t\t\t\t_complete(null);\n//\t\t\t\t});\n\n\t\t\t\t// Set camera stream\n\t\t\t\ttry {\n\t\t\t\t\tvideo.src = URL.createObjectURL(stream);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tvideo.srcObject = stream;\n\t\t\t\t}\n\n\t\t\t\t// Note: onloadedmetadata doesn't fire in Chrome when using it with getUserMedia.\n\t\t\t\t// See crbug.com/110938.\n\t\t\t\t_successId = setInterval(function (){\n\t\t\t\t\tif( _detectVideoSignal(video) ){\n\t\t\t\t\t\t_complete(null);\n\t\t\t\t\t}\n\t\t\t\t}, 1000);\n\n\t\t\t\t_failId = setTimeout(function (){\n\t\t\t\t\t_complete('timeout');\n\t\t\t\t}, 5000);\n\n\t\t\t\t// Go-go-go!\n\t\t\t\tvideo.play();\n\t\t\t}, _complete/*error*/);\n\t\t},\n\n\n\t\t/**\n\t\t * Stop camera streaming\n\t\t */\n\t\tstop: function (){\n\t\t\ttry {\n\t\t\t\tthis._active = false;\n\t\t\t\tthis.video.pause();\n\n\t\t\t\ttry {\n\t\t\t\t\tthis.stream.stop();\n\t\t\t\t} catch (err) {\n\t\t\t\t\tapi.each(this.stream.getTracks(), function (track) {\n\t\t\t\t\t\ttrack.stop();\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.stream = null;\n\t\t\t} catch( err ){\n\t\t\t\tapi.log('[FileAPI.Camera] stop:', err);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Create screenshot\n\t\t * @return {FileAPI.Camera.Shot}\n\t\t */\n\t\tshot: function (){\n\t\t\treturn\tnew Shot(this.video);\n\t\t}\n\t};\n\n\n\t/**\n\t * Get camera element from container\n\t *\n\t * @static\n\t * @param\t{HTMLElement}\tel\n\t * @return\t{Camera}\n\t */\n\tCamera.get = function (el){\n\t\treturn\tnew Camera(el.firstChild);\n\t};\n\n\n\t/**\n\t * Publish camera element into container\n\t *\n\t * @static\n\t * @param\t{HTMLElement}\tel\n\t * @param\t{Object}\t\toptions\n\t * @param\t{Function}\t\t[callback]\n\t */\n\tCamera.publish = function (el, options, callback){\n\t\tif( typeof options == 'function' ){\n\t\t\tcallback = options;\n\t\t\toptions = {};\n\t\t}\n\n\t\t// Dimensions of \"camera\"\n\t\toptions = api.extend({}, {\n\t\t\t width:\t'100%'\n\t\t\t, height:\t'100%'\n\t\t\t, start:\ttrue\n\t\t}, options);\n\n\n\t\tif( el.jquery ){\n\t\t\t// Extract first element, from jQuery collection\n\t\t\tel = el[0];\n\t\t}\n\n\n\t\tvar doneFn = function (err){\n\t\t\tif( err ){\n\t\t\t\tcallback(err);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Get camera\n\t\t\t\tvar cam = Camera.get(el);\n\t\t\t\tif( options.start ){\n\t\t\t\t\tcam.start(callback);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallback(null, cam);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\n\t\tel.style.width\t= _px(options.width);\n\t\tel.style.height\t= _px(options.height);\n\n\n\t\tif( api.html5 && html5 && !api.insecureChrome ){\n\t\t\t// Create video element\n\t\t\tvar video = document.createElement('video');\n\n\t\t\t// Set dimensions\n\t\t\tvideo.style.width\t= _px(options.width);\n\t\t\tvideo.style.height\t= _px(options.height);\n\n\t\t\t// Clean container\n\t\t\tif( window.jQuery ){\n\t\t\t\tjQuery(el).empty();\n\t\t\t} else {\n\t\t\t\tel.innerHTML = '';\n\t\t\t}\n\n\t\t\t// Add \"camera\" to container\n\t\t\tel.appendChild(video);\n\n\t\t\t// end\n\t\t\tdoneFn();\n\t\t}\n\t\telse {\n\t\t\tCamera.fallback(el, options, doneFn);\n\t\t}\n\t};\n\n\n\tCamera.fallback = function (el, options, callback){\n\t\tcallback('not_support_camera');\n\t};\n\n\tCamera.checkAlreadyCaptured = (function () {\n\t\tvar\tmediaDevices = navigator.mediaDevices,\n\t\t\tMediaStreamTrack = window.MediaStreamTrack,\n\t\t\tnavigatorEnumerateDevices = navigator.enumerateDevices,\n\t\t\tenumerateDevices;\n\n\t\tif (mediaDevices && mediaDevices.enumerateDevices) {\n\t\t\tenumerateDevices = function (callback) {\n\t\t\t\tmediaDevices.enumerateDevices().then(callback);\n\t\t\t};\n\t\t} else if (MediaStreamTrack && MediaStreamTrack.getSources) {\n\t\t\tenumerateDevices = MediaStreamTrack.getSources.bind(MediaStreamTrack);\n\t\t} else if (navigatorEnumerateDevices) {\n\t\t\tenumerateDevices = navigatorEnumerateDevices.bind(navigator);\n\t\t} else {\n\t\t\tenumerateDevices = function (fn) {\n\t\t\t\tfn([]);\n\t\t\t};\n\t\t}\n\n\t\treturn function (callback) {\n\t\t\tenumerateDevices(function (devices) {\n\t\t\t\tvar deviceExists = devices.some(function (device) {\n\t\t\t\t\treturn (device.kind === 'videoinput' || device.kind === 'video') && device.label;\n\t\t\t\t});\n\n\t\t\t\tcallback(deviceExists);\n\t\t\t});\n\t\t};\n\n\t})();\n\n\n\t/**\n\t * @class\tFileAPI.Camera.Shot\n\t */\n\tvar Shot = function (video){\n\t\tvar canvas\t= video.nodeName ? api.Image.toCanvas(video) : video;\n\t\tvar shot\t= api.Image(canvas);\n\t\tshot.type\t= 'image/png';\n\t\tshot.width\t= canvas.width;\n\t\tshot.height\t= canvas.height;\n\t\tshot.size\t= canvas.width * canvas.height * 4;\n\t\treturn\tshot;\n\t};\n\n\n\t/**\n\t * Add \"px\" postfix, if value is a number\n\t *\n\t * @private\n\t * @param\t{*} val\n\t * @return\t{String}\n\t */\n\tfunction _px(val){\n\t\treturn\tval >= 0 ? val + 'px' : val;\n\t}\n\n\n\t/**\n\t * @private\n\t * @param\t{HTMLVideoElement} video\n\t * @return\t{Boolean}\n\t */\n\tfunction _detectVideoSignal(video){\n\t\tvar canvas = document.createElement('canvas'), ctx, res = false;\n\t\ttry {\n\t\t\tctx = canvas.getContext('2d');\n\t\t\tctx.drawImage(video, 0, 0, 1, 1);\n\t\t\tres = ctx.getImageData(0, 0, 1, 1).data[4] != 255;\n\t\t}\n\t\tcatch( err ){\n\t\t\tapi.log('[FileAPI.Camera] detectVideoSignal:', err);\n\t\t}\n\t\treturn\tres;\n\t}\n\n\n\t// @export\n\tCamera.Shot\t= Shot;\n\tapi.Camera\t= Camera;\n})(window, FileAPI);\n\n/**\n * FileAPI fallback to Flash\n *\n * @flash-developer \"Vladimir Demidov\" \n */\n\n/*global window, FileAPI */\n(function (window, jQuery, api) {\n \"use strict\";\n\n var _each = api.each,\n _cameraQueue = [];\n\n if (api.support.flash && (api.media && (!api.support.media || !api.html5 || api.insecureChrome))) {\n (function () {\n function _wrap(fn) {\n var id = fn.wid = api.uid();\n api.Flash._fn[id] = fn;\n return 'FileAPI.Flash._fn.' + id;\n }\n\n\n function _unwrap(fn) {\n try {\n api.Flash._fn[fn.wid] = null;\n delete api.Flash._fn[fn.wid];\n } catch (e) {\n }\n }\n\n var flash = api.Flash;\n api.extend(api.Flash, {\n\n patchCamera: function () {\n api.Camera.fallback = function (el, options, callback) {\n var camId = api.uid();\n api.log('FlashAPI.Camera.publish: ' + camId);\n flash.publish(el, camId, api.extend(options, {\n camera: true,\n onEvent: _wrap(function _(evt) {\n if (evt.type === 'camera') {\n _unwrap(_);\n\n if (evt.error) {\n api.log('FlashAPI.Camera.publish.error: ' + evt.error);\n callback(evt.error);\n } else {\n api.log('FlashAPI.Camera.publish.success: ' + camId);\n callback(null);\n }\n }\n })\n }));\n };\n // Run\n _each(_cameraQueue, function (args) {\n api.Camera.fallback.apply(api.Camera, args);\n });\n _cameraQueue = [];\n\n\n // FileAPI.Camera:proto\n api.extend(api.Camera.prototype, {\n _id: function () {\n return this.video.id;\n },\n\n start: function (callback) {\n var _this = this;\n flash.cmd(this._id(), 'camera.on', {\n callback: _wrap(function _(evt) {\n _unwrap(_);\n\n if (evt.error) {\n api.log('FlashAPI.camera.on.error: ' + evt.error);\n callback(evt.error, _this);\n } else {\n api.log('FlashAPI.camera.on.success: ' + _this._id());\n _this._active = true;\n callback(null, _this);\n }\n })\n });\n },\n\n stop: function () {\n this._active = false;\n flash.cmd(this._id(), 'camera.off');\n },\n\n shot: function () {\n api.log('FlashAPI.Camera.shot:', this._id());\n\n var shot = api.Flash.cmd(this._id(), 'shot', {});\n shot.type = 'image/png';\n shot.flashId = this._id();\n shot.isShot = true;\n\n return new api.Camera.Shot(shot);\n }\n });\n }\n });\n\n api.Camera.fallback = function () {\n _cameraQueue.push(arguments);\n };\n\n }());\n }\n}(window, window.jQuery, FileAPI));\nif( typeof define === \"function\" && define.amd ){ define(\"FileAPI\", [], function (){ return FileAPI; }); }","/*! FileAPI 2.1.0 - BSD | git://github.com/mailru/FileAPI.git\n * FileAPI — a set of javascript tools for working with files. Multiupload, drag'n'drop and chunked file upload. Images: crop, resize and auto orientation by EXIF.\n */\n\n/*\n * JavaScript Canvas to Blob 2.0.5\n * https://github.com/blueimp/JavaScript-Canvas-to-Blob\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n *\n * Based on stackoverflow user Stoive's code snippet:\n * http://stackoverflow.com/q/4998908\n */\n\n/*jslint nomen: true, regexp: true */\n/*global window, atob, Blob, ArrayBuffer, Uint8Array */\n\n(function (window) {\n 'use strict';\n var CanvasPrototype = window.HTMLCanvasElement &&\n window.HTMLCanvasElement.prototype,\n hasBlobConstructor = window.Blob && (function () {\n try {\n return Boolean(new Blob());\n } catch (e) {\n return false;\n }\n }()),\n hasArrayBufferViewSupport = hasBlobConstructor && window.Uint8Array &&\n (function () {\n try {\n return new Blob([new Uint8Array(100)]).size === 100;\n } catch (e) {\n return false;\n }\n }()),\n BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder ||\n window.MozBlobBuilder || window.MSBlobBuilder,\n dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window.atob &&\n window.ArrayBuffer && window.Uint8Array && function (dataURI) {\n var byteString,\n arrayBuffer,\n intArray,\n i,\n mimeString,\n bb;\n if (dataURI.split(',')[0].indexOf('base64') >= 0) {\n // Convert base64 to raw binary data held in a string:\n byteString = atob(dataURI.split(',')[1]);\n } else {\n // Convert base64/URLEncoded data component to raw binary data:\n byteString = decodeURIComponent(dataURI.split(',')[1]);\n }\n // Write the bytes of the string to an ArrayBuffer:\n arrayBuffer = new ArrayBuffer(byteString.length);\n intArray = new Uint8Array(arrayBuffer);\n for (i = 0; i < byteString.length; i += 1) {\n intArray[i] = byteString.charCodeAt(i);\n }\n // Separate out the mime component:\n mimeString = dataURI.split(',')[0].split(':')[1].split(';')[0];\n // Write the ArrayBuffer (or ArrayBufferView) to a blob:\n if (hasBlobConstructor) {\n return new Blob(\n [hasArrayBufferViewSupport ? intArray : arrayBuffer],\n {type: mimeString}\n );\n }\n bb = new BlobBuilder();\n bb.append(arrayBuffer);\n return bb.getBlob(mimeString);\n };\n if (window.HTMLCanvasElement && !CanvasPrototype.toBlob) {\n if (CanvasPrototype.mozGetAsFile) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {\n callback(dataURLtoBlob(this.toDataURL(type, quality)));\n } else {\n callback(this.mozGetAsFile('blob', type));\n }\n };\n } else if (CanvasPrototype.toDataURL && dataURLtoBlob) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n callback(dataURLtoBlob(this.toDataURL(type, quality)));\n };\n }\n }\n window.dataURLtoBlob = dataURLtoBlob;\n})(window);\n\n/*jslint evil: true */\n/*global window, URL, webkitURL, ActiveXObject */\n\n(function (window, undef){\n\t'use strict';\n\n\tvar\n\t\tgid = 1,\n\t\tnoop = function (){},\n\n\t\tdocument = window.document,\n\t\tdoctype = document.doctype || {},\n\t\tuserAgent = window.navigator.userAgent,\n\t\tsafari = /safari\\//i.test(userAgent) && !/chrome\\//i.test(userAgent),\n\t\tiemobile = /iemobile\\//i.test(userAgent),\n\t\tinsecureChrome = !safari && /chrome\\//i.test(userAgent) && window.location.protocol === 'http:',\n\n\t\t// https://github.com/blueimp/JavaScript-Load-Image/blob/master/load-image.js#L48\n\t\tapiURL = (window.createObjectURL && window) || (window.URL && URL.revokeObjectURL && URL) || (window.webkitURL && webkitURL),\n\n\t\tBlob = window.Blob,\n\t\tFile = window.File,\n\t\tFileReader = window.FileReader,\n\t\tFormData = window.FormData,\n\n\n\t\tXMLHttpRequest = window.XMLHttpRequest,\n\t\tjQuery = window.jQuery,\n\n\t\thtml5 = !!(File && (FileReader && (window.Uint8Array || FormData || XMLHttpRequest.prototype.sendAsBinary)))\n\t\t\t\t&& !(safari && /windows/i.test(userAgent) && !iemobile), // BugFix: https://github.com/mailru/FileAPI/issues/25\n\n\t\tcors = html5 && ('withCredentials' in (new XMLHttpRequest)),\n\n\t\tchunked = html5 && !!Blob && !!(Blob.prototype.webkitSlice || Blob.prototype.mozSlice || Blob.prototype.slice),\n\n\t\tnormalize = ('' + ''.normalize).indexOf('[native code]') > 0,\n\n\t\t// https://github.com/blueimp/JavaScript-Canvas-to-Blob\n\t\tdataURLtoBlob = window.dataURLtoBlob,\n\n\n\t\t_rimg = /img/i,\n\t\t_rcanvas = /canvas/i,\n\t\t_rimgcanvas = /img|canvas/i,\n\t\t_rinput = /input/i,\n\t\t_rdata = /^data:[^,]+,/,\n\n\t\t_toString = {}.toString,\n\t\t_supportConsoleLog,\n\t\t_supportConsoleLogApply,\n\n\n\t\tMath = window.Math,\n\n\t\t_SIZE_CONST = function (pow){\n\t\t\tpow = new window.Number(Math.pow(1024, pow));\n\t\t\tpow.from = function (sz){ return Math.round(sz * this); };\n\t\t\treturn\tpow;\n\t\t},\n\n\t\t_elEvents = {}, // element event listeners\n\t\t_infoReader = [], // list of file info processors\n\n\t\t_readerEvents = 'abort progress error load loadend',\n\t\t_xhrPropsExport = 'status statusText readyState response responseXML responseText responseBody'.split(' '),\n\n\t\tcurrentTarget = 'currentTarget', // for minimize\n\t\tpreventDefault = 'preventDefault', // and this too\n\n\t\t_isArray = function (ar) {\n\t\t\treturn\tar && ('length' in ar);\n\t\t},\n\n\t\t/**\n\t\t * Iterate over a object or array\n\t\t */\n\t\t_each = function (obj, fn, ctx){\n\t\t\tif( obj ){\n\t\t\t\tif( _isArray(obj) ){\n\t\t\t\t\tfor( var i = 0, n = obj.length; i < n; i++ ){\n\t\t\t\t\t\tif( i in obj ){\n\t\t\t\t\t\t\tfn.call(ctx, obj[i], i, obj);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfor( var key in obj ){\n\t\t\t\t\t\tif( obj.hasOwnProperty(key) ){\n\t\t\t\t\t\t\tfn.call(ctx, obj[key], key, obj);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\t/**\n\t\t * Merge the contents of two or more objects together into the first object\n\t\t */\n\t\t_extend = function (dst){\n\t\t\tvar args = arguments, i = 1, _ext = function (val, key){ dst[key] = val; };\n\t\t\tfor( ; i < args.length; i++ ){\n\t\t\t\t_each(args[i], _ext);\n\t\t\t}\n\t\t\treturn dst;\n\t\t},\n\n\t\t/**\n\t\t * Add event listener\n\t\t */\n\t\t_on = function (el, type, fn){\n\t\t\tif( el ){\n\t\t\t\tvar uid = api.uid(el);\n\n\t\t\t\tif( !_elEvents[uid] ){\n\t\t\t\t\t_elEvents[uid] = {};\n\t\t\t\t}\n\n\t\t\t\tvar isFileReader = (FileReader && el) && (el instanceof FileReader);\n\t\t\t\t_each(type.split(/\\s+/), function (type){\n\t\t\t\t\tif( jQuery && !isFileReader){\n\t\t\t\t\t\tjQuery.event.add(el, type, fn);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif( !_elEvents[uid][type] ){\n\t\t\t\t\t\t\t_elEvents[uid][type] = [];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t_elEvents[uid][type].push(fn);\n\n\t\t\t\t\t\tif( el.addEventListener ){ el.addEventListener(type, fn, false); }\n\t\t\t\t\t\telse if( el.attachEvent ){ el.attachEvent('on'+type, fn); }\n\t\t\t\t\t\telse { el['on'+type] = fn; }\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Remove event listener\n\t\t */\n\t\t_off = function (el, type, fn){\n\t\t\tif( el ){\n\t\t\t\tvar uid = api.uid(el), events = _elEvents[uid] || {};\n\n\t\t\t\tvar isFileReader = (FileReader && el) && (el instanceof FileReader);\n\t\t\t\t_each(type.split(/\\s+/), function (type){\n\t\t\t\t\tif( jQuery && !isFileReader){\n\t\t\t\t\t\tjQuery.event.remove(el, type, fn);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar fns = events[type] || [], i = fns.length;\n\n\t\t\t\t\t\twhile( i-- ){\n\t\t\t\t\t\t\tif( fns[i] === fn ){\n\t\t\t\t\t\t\t\tfns.splice(i, 1);\n\t\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( el.addEventListener ){ el.removeEventListener(type, fn, false); }\n\t\t\t\t\t\telse if( el.detachEvent ){ el.detachEvent('on'+type, fn); }\n\t\t\t\t\t\telse { el['on'+type] = null; }\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\n\t\t_one = function(el, type, fn){\n\t\t\t_on(el, type, function _(evt){\n\t\t\t\t_off(el, type, _);\n\t\t\t\tfn(evt);\n\t\t\t});\n\t\t},\n\n\n\t\t_fixEvent = function (evt){\n\t\t\tif( !evt.target ){ evt.target = window.event && window.event.srcElement || document; }\n\t\t\tif( evt.target.nodeType === 3 ){ evt.target = evt.target.parentNode; }\n\t\t\treturn evt;\n\t\t},\n\n\n\t\t_supportInputAttr = function (attr){\n\t\t\tvar input = document.createElement('input');\n\t\t\tinput.setAttribute('type', \"file\");\n\t\t\treturn attr in input;\n\t\t},\n\n\n\t\t/**\n\t\t * FileAPI (core object)\n\t\t */\n\t\tapi = {\n\t\t\tversion: '2.1.0',\n\n\t\t\tcors: false,\n\t\t\thtml5: true,\n\t\t\tmedia: false,\n\t\t\tformData: true,\n\t\t\tmultiPassResize: true,\n\t\t\tinsecureChrome: insecureChrome,\n\n\t\t\tdebug: false,\n\t\t\tpingUrl: false,\n\t\t\tmultiFlash: false,\n\t\t\tflashAbortTimeout: 0,\n\t\t\twithCredentials: true,\n\n\t\t\tstaticPath: './dist/',\n\n\t\t\tflashUrl: 0, // @default: './FileAPI.flash.swf'\n\t\t\tflashImageUrl: 0, // @default: './FileAPI.flash.image.swf'\n\n\t\t\tpostNameConcat: function (name, idx){\n\t\t\t\treturn\tname + (idx != null ? '['+ idx +']' : '');\n\t\t\t},\n\n\t\t\text2mime: {\n\t\t\t\t jpg:\t'image/jpeg'\n\t\t\t\t, tif:\t'image/tiff'\n\t\t\t\t, txt:\t'text/plain'\n\t\t\t},\n\n\t\t\t// Fallback for flash\n\t\t\taccept: {\n\t\t\t\t 'image/*': 'art bm bmp dwg dxf cbr cbz fif fpx gif ico iefs jfif jpe jpeg jpg jps jut mcf nap nif pbm pcx pgm pict pm png pnm qif qtif ras rast rf rp svf tga tif tiff xbm xbm xpm xwd'\n\t\t\t\t, 'audio/*': 'm4a flac aac rm mpa wav wma ogg mp3 mp2 m3u mod amf dmf dsm far gdm imf it m15 med okt s3m stm sfx ult uni xm sid ac3 dts cue aif aiff wpl ape mac mpc mpp shn wv nsf spc gym adplug adx dsp adp ymf ast afc hps xs'\n\t\t\t\t, 'video/*': 'm4v 3gp nsv ts ty strm rm rmvb m3u ifo mov qt divx xvid bivx vob nrg img iso pva wmv asf asx ogm m2v avi bin dat dvr-ms mpg mpeg mp4 mkv avc vp3 svq3 nuv viv dv fli flv wpl'\n\t\t\t},\n\n\t\t\tuploadRetry : 0,\n\t\t\tnetworkDownRetryTimeout : 5000, // milliseconds, don't flood when network is down\n\n\t\t\tchunkSize : 0,\n\t\t\tchunkUploadRetry : 0,\n\t\t\tchunkNetworkDownRetryTimeout : 2000, // milliseconds, don't flood when network is down\n\n\t\t\tKB: _SIZE_CONST(1),\n\t\t\tMB: _SIZE_CONST(2),\n\t\t\tGB: _SIZE_CONST(3),\n\t\t\tTB: _SIZE_CONST(4),\n\n\t\t\tEMPTY_PNG: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAAC0lEQVQIW2NkAAIAAAoAAggA9GkAAAAASUVORK5CYII=',\n\n\t\t\texpando: 'fileapi' + (new Date).getTime(),\n\n\t\t\tuid: function (obj){\n\t\t\t\treturn\tobj\n\t\t\t\t\t? (obj[api.expando] = obj[api.expando] || api.uid())\n\t\t\t\t\t: (++gid, api.expando + gid)\n\t\t\t\t;\n\t\t\t},\n\n\t\t\tlog: function (){\n\t\t\t\tif( api.debug && _supportConsoleLog ){\n\t\t\t\t\tif( _supportConsoleLogApply ){\n\t\t\t\t\t\tconsole.log.apply(console, arguments);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tconsole.log([].join.call(arguments, ' '));\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Create new image\n\t\t\t *\n\t\t\t * @param {String} [src]\n\t\t\t * @param {Function} [fn] 1. error -- boolean, 2. img -- Image element\n\t\t\t * @returns {HTMLElement}\n\t\t\t */\n\t\t\tnewImage: function (src, fn){\n\t\t\t\tvar img = document.createElement('img');\n\t\t\t\tif( fn ){\n\t\t\t\t\tapi.event.one(img, 'error load', function (evt){\n\t\t\t\t\t\tfn(evt.type == 'error', img);\n\t\t\t\t\t\timg = null;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\timg.src = src;\n\t\t\t\treturn\timg;\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Get XHR\n\t\t\t * @returns {XMLHttpRequest}\n\t\t\t */\n\t\t\tgetXHR: function (){\n\t\t\t\tvar xhr;\n\n\t\t\t\tif( XMLHttpRequest ){\n\t\t\t\t\txhr = new XMLHttpRequest;\n\t\t\t\t}\n\t\t\t\telse if( window.ActiveXObject ){\n\t\t\t\t\ttry {\n\t\t\t\t\t\txhr = new ActiveXObject('MSXML2.XMLHttp.3.0');\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\txhr = new ActiveXObject('Microsoft.XMLHTTP');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn xhr;\n\t\t\t},\n\n\t\t\tisArray: _isArray,\n\n\t\t\tsupport: {\n\t\t\t\tdnd: cors && ('ondrop' in document.createElement('div')),\n\t\t\t\tcors: cors,\n\t\t\t\thtml5: html5,\n\t\t\t\tchunked: chunked,\n\t\t\t\tdataURI: true,\n\t\t\t\taccept: _supportInputAttr('accept'),\n\t\t\t\tmultiple: _supportInputAttr('multiple')\n\t\t\t},\n\n\t\t\tevent: {\n\t\t\t\t on: _on\n\t\t\t\t, off: _off\n\t\t\t\t, one: _one\n\t\t\t\t, fix: _fixEvent\n\t\t\t},\n\n\n\t\t\tthrottle: function(fn, delay) {\n\t\t\t\tvar id, args;\n\n\t\t\t\treturn function _throttle(){\n\t\t\t\t\targs = arguments;\n\n\t\t\t\t\tif( !id ){\n\t\t\t\t\t\tfn.apply(window, args);\n\t\t\t\t\t\tid = setTimeout(function (){\n\t\t\t\t\t\t\tid = 0;\n\t\t\t\t\t\t\tfn.apply(window, args);\n\t\t\t\t\t\t}, delay);\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t},\n\n\n\t\t\tF: function (){},\n\n\n\t\t\tparseJSON: function (str){\n\t\t\t\tvar json;\n\t\t\t\tif( window.JSON && JSON.parse ){\n\t\t\t\t\tjson = JSON.parse(str);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tjson = (new Function('return ('+str.replace(/([\\r\\n])/g, '\\\\$1')+');'))();\n\t\t\t\t}\n\t\t\t\treturn json;\n\t\t\t},\n\n\n\t\t\ttrim: function (str){\n\t\t\t\tstr = String(str);\n\t\t\t\treturn\tstr.trim ? str.trim() : str.replace(/^\\s+|\\s+$/g, '');\n\t\t\t},\n\n\t\t\t/**\n\t\t\t * Simple Defer\n\t\t\t * @return\t{Object}\n\t\t\t */\n\t\t\tdefer: function (){\n\t\t\t\tvar\n\t\t\t\t\t list = []\n\t\t\t\t\t, result\n\t\t\t\t\t, error\n\t\t\t\t\t, defer = {\n\t\t\t\t\t\tresolve: function (err, res){\n\t\t\t\t\t\t\tdefer.resolve = noop;\n\t\t\t\t\t\t\terror\t= err || false;\n\t\t\t\t\t\t\tresult\t= res;\n\n\t\t\t\t\t\t\twhile( res = list.shift() ){\n\t\t\t\t\t\t\t\tres(error, result);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tthen: function (fn){\n\t\t\t\t\t\t\tif( error !== undef ){\n\t\t\t\t\t\t\t\tfn(error, result);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tlist.push(fn);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\treturn\tdefer;\n\t\t\t},\n\n\t\t\tqueue: function (fn){\n\t\t\t\tvar\n\t\t\t\t\t _idx = 0\n\t\t\t\t\t, _length = 0\n\t\t\t\t\t, _fail = false\n\t\t\t\t\t, _end = false\n\t\t\t\t\t, queue = {\n\t\t\t\t\t\tinc: function (){\n\t\t\t\t\t\t\t_length++;\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tnext: function (){\n\t\t\t\t\t\t\t_idx++;\n\t\t\t\t\t\t\tsetTimeout(queue.check, 0);\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tcheck: function (){\n\t\t\t\t\t\t\t(_idx >= _length) && !_fail && queue.end();\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tisFail: function (){\n\t\t\t\t\t\t\treturn _fail;\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tfail: function (){\n\t\t\t\t\t\t\t!_fail && fn(_fail = true);\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\tend: function (){\n\t\t\t\t\t\t\tif( !_end ){\n\t\t\t\t\t\t\t\t_end = true;\n\t\t\t\t\t\t\t\tfn();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t;\n\t\t\t\treturn queue;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * For each object\n\t\t\t *\n\t\t\t * @param\t{Object|Array}\tobj\n\t\t\t * @param\t{Function}\t\tfn\n\t\t\t * @param\t{*}\t\t\t\t[ctx]\n\t\t\t */\n\t\t\teach: _each,\n\n\n\t\t\t/**\n\t\t\t * Async for\n\t\t\t * @param {Array} array\n\t\t\t * @param {Function} callback\n\t\t\t */\n\t\t\tafor: function (array, callback){\n\t\t\t\tvar i = 0, n = array.length;\n\n\t\t\t\tif( _isArray(array) && n-- ){\n\t\t\t\t\t(function _next(){\n\t\t\t\t\t\tcallback(n != i && _next, array[i], i++);\n\t\t\t\t\t})();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallback(false);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Merge the contents of two or more objects together into the first object\n\t\t\t *\n\t\t\t * @param\t{Object}\tdst\n\t\t\t * @return\t{Object}\n\t\t\t */\n\t\t\textend: _extend,\n\n\n\t\t\t/**\n\t\t\t * Is file?\n\t\t\t * @param {File} file\n\t\t\t * @return {Boolean}\n\t\t\t */\n\t\t\tisFile: function (file){\n\t\t\t\treturn _toString.call(file) === '[object File]';\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Is blob?\n\t\t\t * @param {Blob} blob\n\t\t\t * @returns {Boolean}\n\t\t\t */\n\t\t\tisBlob: function (blob) {\n\t\t\t\treturn this.isFile(blob) || (_toString.call(blob) === '[object Blob]');\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Is canvas element\n\t\t\t *\n\t\t\t * @param\t{HTMLElement}\tel\n\t\t\t * @return\t{Boolean}\n\t\t\t */\n\t\t\tisCanvas: function (el){\n\t\t\t\treturn\tel && _rcanvas.test(el.nodeName);\n\t\t\t},\n\n\n\t\t\tgetFilesFilter: function (filter){\n\t\t\t\tfilter = typeof filter == 'string' ? filter : (filter.getAttribute && filter.getAttribute('accept') || '');\n\t\t\t\treturn\tfilter ? new RegExp('('+ filter.replace(/\\./g, '\\\\.').replace(/,/g, '|') +')$', 'i') : /./;\n\t\t\t},\n\n\n\n\t\t\t/**\n\t\t\t * Read as DataURL\n\t\t\t *\n\t\t\t * @param {File|Element} file\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\treadAsDataURL: function (file, fn){\n\t\t\t\tif( api.isCanvas(file) ){\n\t\t\t\t\t_emit(file, fn, 'load', api.toDataURL(file));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t_readAs(file, fn, 'DataURL');\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read as Binary string\n\t\t\t *\n\t\t\t * @param {File} file\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\treadAsBinaryString: function (file, fn){\n\t\t\t\tif( _hasSupportReadAs('BinaryString') ){\n\t\t\t\t\t_readAs(file, fn, 'BinaryString');\n\t\t\t\t} else {\n\t\t\t\t\t// Hello IE10!\n\t\t\t\t\t_readAs(file, function (evt){\n\t\t\t\t\t\tif( evt.type == 'load' ){\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t// dataURL -> binaryString\n\t\t\t\t\t\t\t\tevt.result = api.toBinaryString(evt.result);\n\t\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\t\tevt.type = 'error';\n\t\t\t\t\t\t\t\tevt.message = e.toString();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfn(evt);\n\t\t\t\t\t}, 'DataURL');\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read as ArrayBuffer\n\t\t\t *\n\t\t\t * @param {File} file\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\treadAsArrayBuffer: function(file, fn){\n\t\t\t\t_readAs(file, fn, 'ArrayBuffer');\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read as text\n\t\t\t *\n\t\t\t * @param {File} file\n\t\t\t * @param {String} encoding\n\t\t\t * @param {Function} [fn]\n\t\t\t */\n\t\t\treadAsText: function(file, encoding, fn){\n\t\t\t\tif( !fn ){\n\t\t\t\t\tfn\t= encoding;\n\t\t\t\t\tencoding = 'utf-8';\n\t\t\t\t}\n\n\t\t\t\t_readAs(file, fn, 'Text', encoding);\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Convert image or canvas to DataURL\n\t\t\t *\n\t\t\t * @param {Element} el Image or Canvas element\n\t\t\t * @param {String} [type] mime-type\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\ttoDataURL: function (el, type){\n\t\t\t\tif( typeof el == 'string' ){\n\t\t\t\t\treturn el;\n\t\t\t\t}\n\t\t\t\telse if( el.toDataURL ){\n\t\t\t\t\treturn el.toDataURL(type || 'image/png');\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Canvert string, image or canvas to binary string\n\t\t\t *\n\t\t\t * @param {String|Element} val\n\t\t\t * @return {String}\n\t\t\t */\n\t\t\ttoBinaryString: function (val){\n\t\t\t\treturn window.atob(api.toDataURL(val).replace(_rdata, ''));\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Read file or DataURL as ImageElement\n\t\t\t *\n\t\t\t * @param\t{File|String}\tfile\n\t\t\t * @param\t{Function}\t\tfn\n\t\t\t * @param\t{Boolean}\t\t[progress]\n\t\t\t */\n\t\t\treadAsImage: function (file, fn, progress){\n\t\t\t\tif( api.isBlob(file) ){\n\t\t\t\t\tif( apiURL ){\n\t\t\t\t\t\t/** @namespace apiURL.createObjectURL */\n\t\t\t\t\t\tvar data = apiURL.createObjectURL(file);\n\t\t\t\t\t\tif( data === undef ){\n\t\t\t\t\t\t\t_emit(file, fn, 'error');\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tapi.readAsImage(data, fn, progress);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tapi.readAsDataURL(file, function (evt){\n\t\t\t\t\t\t\tif( evt.type == 'load' ){\n\t\t\t\t\t\t\t\tapi.readAsImage(evt.result, fn, progress);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if( progress || evt.type == 'error' ){\n\t\t\t\t\t\t\t\t_emit(file, fn, evt, null, { loaded: evt.loaded, total: evt.total });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( api.isCanvas(file) ){\n\t\t\t\t\t_emit(file, fn, 'load', file);\n\t\t\t\t}\n\t\t\t\telse if( _rimg.test(file.nodeName) ){\n\t\t\t\t\tif( file.complete ){\n\t\t\t\t\t\t_emit(file, fn, 'load', file);\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar events = 'error abort load';\n\t\t\t\t\t\t_one(file, events, function _fn(evt){\n\t\t\t\t\t\t\tif( evt.type == 'load' && apiURL ){\n\t\t\t\t\t\t\t\t/** @namespace apiURL.revokeObjectURL */\n\t\t\t\t\t\t\t\tapiURL.revokeObjectURL(file.src);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t_off(file, events, _fn);\n\t\t\t\t\t\t\t_emit(file, fn, evt, file);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( file.iframe ){\n\t\t\t\t\t_emit(file, fn, { type: 'error' });\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t// Created image\n\t\t\t\t\tvar img = api.newImage(file.dataURL || file);\n\t\t\t\t\tapi.readAsImage(img, fn, progress);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Make file by name\n\t\t\t *\n\t\t\t * @param\t{String}\tname\n\t\t\t * @return\t{Array}\n\t\t\t */\n\t\t\tcheckFileObj: function (name){\n\t\t\t\tvar file = {}, accept = api.accept;\n\n\t\t\t\tif( typeof name == 'object' ){\n\t\t\t\t\tfile = name;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfile.name = (name + '').split(/\\\\|\\//g).pop();\n\t\t\t\t}\n\n\t\t\t\tif( file.type == null ){\n\t\t\t\t\tfile.type = file.name.split('.').pop();\n\t\t\t\t}\n\n\t\t\t\t_each(accept, function (ext, type){\n\t\t\t\t\text = new RegExp(ext.replace(/\\s/g, '|'), 'i');\n\t\t\t\t\tif( ext.test(file.type) || api.ext2mime[file.type] ){\n\t\t\t\t\t\tfile.type = api.ext2mime[file.type] || (type.split('/')[0] +'/'+ file.type);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn\tfile;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get drop files\n\t\t\t *\n\t\t\t * @param\t{Event}\tevt\n\t\t\t * @param\t{Function} callback\n\t\t\t */\n\t\t\tgetDropFiles: function (evt, callback){\n\t\t\t\tvar\n\t\t\t\t\t files = []\n\t\t\t\t\t, all = []\n\t\t\t\t\t, items\n\t\t\t\t\t, dataTransfer = _getDataTransfer(evt)\n\t\t\t\t\t, transFiles = dataTransfer.files\n\t\t\t\t\t, transItems = dataTransfer.items\n\t\t\t\t\t, entrySupport = _isArray(transItems) && transItems[0] && _getAsEntry(transItems[0])\n\t\t\t\t\t, queue = api.queue(function (){ callback(files, all); })\n\t\t\t\t;\n\n\t\t\t\tif( entrySupport ){\n\t\t\t\t\tif( normalize && transFiles ){\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\ti = transFiles.length\n\t\t\t\t\t\t\t, file\n\t\t\t\t\t\t\t, entry\n\t\t\t\t\t\t;\n\n\t\t\t\t\t\titems = new Array(i);\n\t\t\t\t\t\twhile( i-- ){\n\t\t\t\t\t\t\tfile = transFiles[i];\n\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tentry = _getAsEntry(transItems[i]);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcatch( err ){\n\t\t\t\t\t\t\t\tapi.log('[err] getDropFiles: ', err);\n\t\t\t\t\t\t\t\tentry = null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( _isEntry(entry) ){\n\t\t\t\t\t\t\t\t// OSX filesystems use Unicode Normalization Form D (NFD),\n\t\t\t\t\t\t\t\t// and entry.file(…) can't read the files with the same names\n\t\t\t\t\t\t\t\tif( entry.isDirectory || (entry.isFile && file.name == file.name.normalize('NFC')) ){\n\t\t\t\t\t\t\t\t\titems[i] = entry;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\titems[i] = file;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\titems[i] = file;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\titems = transItems;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\titems = transFiles;\n\t\t\t\t}\n\n\t\t\t\t_each(items || [], function (item){\n\t\t\t\t\tqueue.inc();\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif( entrySupport && _isEntry(item) ){\n\t\t\t\t\t\t\t_readEntryAsFiles(item, function (err, entryFiles, allEntries){\n\t\t\t\t\t\t\t\tif( err ){\n\t\t\t\t\t\t\t\t\tapi.log('[err] getDropFiles:', err);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tfiles.push.apply(files, entryFiles);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tall.push.apply(all, allEntries);\n\n\t\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t_isRegularFile(item, function (yes, err){\n\t\t\t\t\t\t\t\tif( yes ){\n\t\t\t\t\t\t\t\t\tfiles.push(item);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\titem.error = err;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tall.push(item);\n\n\t\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tcatch( err ){\n\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\tapi.log('[err] getDropFiles: ', err);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tqueue.check();\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get file list\n\t\t\t *\n\t\t\t * @param\t{HTMLInputElement|Event}\tinput\n\t\t\t * @param\t{String|Function}\t[filter]\n\t\t\t * @param\t{Function}\t\t\t[callback]\n\t\t\t * @return\t{Array|Null}\n\t\t\t */\n\t\t\tgetFiles: function (input, filter, callback){\n\t\t\t\tvar files = [];\n\n\t\t\t\tif( callback ){\n\t\t\t\t\tapi.filterFiles(api.getFiles(input), filter, callback);\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tif( input.jquery ){\n\t\t\t\t\t// jQuery object\n\t\t\t\t\tinput.each(function (){\n\t\t\t\t\t\tfiles = files.concat(api.getFiles(this));\n\t\t\t\t\t});\n\t\t\t\t\tinput\t= files;\n\t\t\t\t\tfiles\t= [];\n\t\t\t\t}\n\n\t\t\t\tif( typeof filter == 'string' ){\n\t\t\t\t\tfilter\t= api.getFilesFilter(filter);\n\t\t\t\t}\n\n\t\t\t\tif( input.originalEvent ){\n\t\t\t\t\t// jQuery event\n\t\t\t\t\tinput = _fixEvent(input.originalEvent);\n\t\t\t\t}\n\t\t\t\telse if( input.srcElement ){\n\t\t\t\t\t// IE Event\n\t\t\t\t\tinput = _fixEvent(input);\n\t\t\t\t}\n\n\n\t\t\t\tif( input.dataTransfer ){\n\t\t\t\t\t// Drag'n'Drop\n\t\t\t\t\tinput = input.dataTransfer;\n\t\t\t\t}\n\t\t\t\telse if( input.target ){\n\t\t\t\t\t// Event\n\t\t\t\t\tinput = input.target;\n\t\t\t\t}\n\n\t\t\t\tif( input.files ){\n\t\t\t\t\t// Input[type=\"file\"]\n\t\t\t\t\tfiles = input.files;\n\n\t\t\t\t\tif( !html5 ){\n\t\t\t\t\t\t// Partial support for file api\n\t\t\t\t\t\tfiles[0].blob\t= input;\n\t\t\t\t\t\tfiles[0].iframe\t= true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( !html5 && isInputFile(input) ){\n\t\t\t\t\tif( api.trim(input.value) ){\n\t\t\t\t\t\tfiles = [api.checkFileObj(input.value)];\n\t\t\t\t\t\tfiles[0].blob = input;\n\t\t\t\t\t\tfiles[0].iframe = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if( _isArray(input) ){\n\t\t\t\t\tfiles\t= input;\n\t\t\t\t}\n\n\t\t\t\treturn\tapi.filter(files, function (file){ return !filter || filter.test(file.name); });\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get total file size\n\t\t\t * @param\t{Array}\tfiles\n\t\t\t * @return\t{Number}\n\t\t\t */\n\t\t\tgetTotalSize: function (files){\n\t\t\t\tvar size = 0, i = files && files.length;\n\t\t\t\twhile( i-- ){\n\t\t\t\t\tsize += files[i].size;\n\t\t\t\t}\n\t\t\t\treturn\tsize;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Get image information\n\t\t\t *\n\t\t\t * @param\t{File}\t\tfile\n\t\t\t * @param\t{Function}\tfn\n\t\t\t */\n\t\t\tgetInfo: function (file, fn){\n\t\t\t\tvar info = {}, readers = _infoReader.concat();\n\n\t\t\t\tif( api.isBlob(file) ){\n\t\t\t\t\t(function _next(){\n\t\t\t\t\t\tvar reader = readers.shift();\n\t\t\t\t\t\tif( reader ){\n\t\t\t\t\t\t\tif( reader.test(file.type) ){\n\t\t\t\t\t\t\t\treader(file, function (err, res){\n\t\t\t\t\t\t\t\t\tif( err ){\n\t\t\t\t\t\t\t\t\t\tfn(err);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t_extend(info, res);\n\t\t\t\t\t\t\t\t\t\t_next();\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t_next();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tfn(false, info);\n\t\t\t\t\t\t}\n\t\t\t\t\t})();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tfn('not_support_info', info);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Add information reader\n\t\t\t *\n\t\t\t * @param {RegExp} mime\n\t\t\t * @param {Function} fn\n\t\t\t */\n\t\t\taddInfoReader: function (mime, fn){\n\t\t\t\tfn.test = function (type){ return mime.test(type); };\n\t\t\t\t_infoReader.push(fn);\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Filter of array\n\t\t\t *\n\t\t\t * @param\t{Array}\t\tinput\n\t\t\t * @param\t{Function}\tfn\n\t\t\t * @return\t{Array}\n\t\t\t */\n\t\t\tfilter: function (input, fn){\n\t\t\t\tvar result = [], i = 0, n = input.length, val;\n\n\t\t\t\tfor( ; i < n; i++ ){\n\t\t\t\t\tif( i in input ){\n\t\t\t\t\t\tval = input[i];\n\t\t\t\t\t\tif( fn.call(val, val, i, input) ){\n\t\t\t\t\t\t\tresult.push(val);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn\tresult;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Filter files\n\t\t\t *\n\t\t\t * @param\t{Array}\t\tfiles\n\t\t\t * @param\t{Function}\teachFn\n\t\t\t * @param\t{Function}\tresultFn\n\t\t\t */\n\t\t\tfilterFiles: function (files, eachFn, resultFn){\n\t\t\t\tif( files.length ){\n\t\t\t\t\t// HTML5 or Flash\n\t\t\t\t\tvar queue = files.concat(), file, result = [], deleted = [];\n\n\t\t\t\t\t(function _next(){\n\t\t\t\t\t\tif( queue.length ){\n\t\t\t\t\t\t\tfile = queue.shift();\n\t\t\t\t\t\t\tapi.getInfo(file, function (err, info){\n\t\t\t\t\t\t\t\t(eachFn(file, err ? false : info) ? result : deleted).push(file);\n\t\t\t\t\t\t\t\t_next();\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tresultFn(result, deleted);\n\t\t\t\t\t\t}\n\t\t\t\t\t})();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tresultFn([], files);\n\t\t\t\t}\n\t\t\t},\n\n\n\t\t\tupload: function (options){\n\t\t\t\toptions = _extend({\n\t\t\t\t\t jsonp: 'callback'\n\t\t\t\t\t, prepare: api.F\n\t\t\t\t\t, beforeupload: api.F\n\t\t\t\t\t, upload: api.F\n\t\t\t\t\t, fileupload: api.F\n\t\t\t\t\t, fileprogress: api.F\n\t\t\t\t\t, filecomplete: api.F\n\t\t\t\t\t, progress: api.F\n\t\t\t\t\t, complete: api.F\n\t\t\t\t\t, pause: api.F\n\t\t\t\t\t, imageOriginal: true\n\t\t\t\t\t, chunkSize: api.chunkSize\n\t\t\t\t\t, chunkUploadRetry: api.chunkUploadRetry\n\t\t\t\t\t, uploadRetry: api.uploadRetry\n\t\t\t\t}, options);\n\n\n\t\t\t\tif( options.imageAutoOrientation && !options.imageTransform ){\n\t\t\t\t\toptions.imageTransform = { rotate: 'auto' };\n\t\t\t\t}\n\n\n\t\t\t\tvar\n\t\t\t\t\t proxyXHR = new api.XHR(options)\n\t\t\t\t\t, dataArray = this._getFilesDataArray(options.files)\n\t\t\t\t\t, _this = this\n\t\t\t\t\t, _total = 0\n\t\t\t\t\t, _loaded = 0\n\t\t\t\t\t, _nextFile\n\t\t\t\t\t, _complete = false\n\t\t\t\t;\n\n\n\t\t\t\t// calc total size\n\t\t\t\t_each(dataArray, function (data){\n\t\t\t\t\t_total += data.size;\n\t\t\t\t});\n\n\t\t\t\t// Array of files\n\t\t\t\tproxyXHR.files = [];\n\t\t\t\t_each(dataArray, function (data){\n\t\t\t\t\tproxyXHR.files.push(data.file);\n\t\t\t\t});\n\n\t\t\t\t// Set upload status props\n\t\t\t\tproxyXHR.total\t= _total;\n\t\t\t\tproxyXHR.loaded\t= 0;\n\t\t\t\tproxyXHR.filesLeft = dataArray.length;\n\n\t\t\t\t// emit \"beforeupload\" event\n\t\t\t\toptions.beforeupload(proxyXHR, options);\n\n\t\t\t\t// Upload by file\n\t\t\t\t_nextFile = function (){\n\t\t\t\t\tvar\n\t\t\t\t\t\t data = dataArray.shift()\n\t\t\t\t\t\t, _file = data && data.file\n\t\t\t\t\t\t, _fileLoaded = false\n\t\t\t\t\t\t, _fileOptions = _simpleClone(options)\n\t\t\t\t\t;\n\n\t\t\t\t\tproxyXHR.filesLeft = dataArray.length;\n\n\t\t\t\t\tif( _file && _file.name === api.expando ){\n\t\t\t\t\t\t_file = null;\n\t\t\t\t\t\tapi.log('[warn] FileAPI.upload() — called without files');\n\t\t\t\t\t}\n\n\t\t\t\t\tif( ( proxyXHR.statusText != 'abort' || proxyXHR.current ) && data ){\n\t\t\t\t\t\t// Mark active job\n\t\t\t\t\t\t_complete = false;\n\n\t\t\t\t\t\t// Set current upload file\n\t\t\t\t\t\tproxyXHR.currentFile = _file;\n\n\t\t\t\t\t\t// Prepare file options\n\t\t\t\t\t\tif (_file && options.prepare(_file, _fileOptions) === false) {\n\t\t\t\t\t\t\t_nextFile.call(_this);\n\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t}\n\t\t\t\t\t\t_fileOptions.file = _file;\n\n\t\t\t\t\t\t_this._getFormData(_fileOptions, data, function (form){\n\t\t\t\t\t\t\tif( !_loaded ){\n\t\t\t\t\t\t\t\t// emit \"upload\" event\n\t\t\t\t\t\t\t\toptions.upload(proxyXHR, options);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar xhr = new api.XHR(_extend({}, _fileOptions, {\n\n\t\t\t\t\t\t\t\tupload: _file ? function (){\n\t\t\t\t\t\t\t\t\t// emit \"fileupload\" event\n\t\t\t\t\t\t\t\t\toptions.fileupload(_file, xhr, _fileOptions);\n\t\t\t\t\t\t\t\t} : noop,\n\n\t\t\t\t\t\t\t\tprogress: _file ? function (evt){\n\t\t\t\t\t\t\t\t\tif( !_fileLoaded ){\n\t\t\t\t\t\t\t\t\t\t// For ignore the double calls.\n\t\t\t\t\t\t\t\t\t\t_fileLoaded = (evt.loaded === evt.total);\n\n\t\t\t\t\t\t\t\t\t\t// emit \"fileprogress\" event\n\t\t\t\t\t\t\t\t\t\toptions.fileprogress({\n\t\t\t\t\t\t\t\t\t\t\t type: 'progress'\n\t\t\t\t\t\t\t\t\t\t\t, total: data.total = evt.total\n\t\t\t\t\t\t\t\t\t\t\t, loaded: data.loaded = evt.loaded\n\t\t\t\t\t\t\t\t\t\t}, _file, xhr, _fileOptions);\n\n\t\t\t\t\t\t\t\t\t\t// emit \"progress\" event\n\t\t\t\t\t\t\t\t\t\toptions.progress({\n\t\t\t\t\t\t\t\t\t\t\t type: 'progress'\n\t\t\t\t\t\t\t\t\t\t\t, total: _total\n\t\t\t\t\t\t\t\t\t\t\t, loaded: proxyXHR.loaded = (_loaded + data.size * (evt.loaded/evt.total)) || 0\n\t\t\t\t\t\t\t\t\t\t}, _file, xhr, _fileOptions);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} : noop,\n\n\t\t\t\t\t\t\t\tcomplete: function (err){\n\t\t\t\t\t\t\t\t\t_each(_xhrPropsExport, function (name){\n\t\t\t\t\t\t\t\t\t\tproxyXHR[name] = xhr[name];\n\t\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\t\tif( _file ){\n\t\t\t\t\t\t\t\t\t\tdata.total = (data.total || data.size);\n\t\t\t\t\t\t\t\t\t\tdata.loaded\t= data.total;\n\n\t\t\t\t\t\t\t\t\t\tif( !err ) {\n\t\t\t\t\t\t\t\t\t\t\t// emulate 100% \"progress\"\n\t\t\t\t\t\t\t\t\t\t\tthis.progress(data);\n\n\t\t\t\t\t\t\t\t\t\t\t// fixed throttle event\n\t\t\t\t\t\t\t\t\t\t\t_fileLoaded = true;\n\n\t\t\t\t\t\t\t\t\t\t\t// bytes loaded\n\t\t\t\t\t\t\t\t\t\t\t_loaded += data.size; // data.size != data.total, it's desirable fix this\n\t\t\t\t\t\t\t\t\t\t\tproxyXHR.loaded = _loaded;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t// emit \"filecomplete\" event\n\t\t\t\t\t\t\t\t\t\toptions.filecomplete(err, xhr, _file, _fileOptions);\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t// upload next file\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {_nextFile.call(_this);}, 0);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t})); // xhr\n\n\n\t\t\t\t\t\t\t// ...\n\t\t\t\t\t\t\tproxyXHR.abort = function (current){\n\t\t\t\t\t\t\t\tif (!current) { dataArray.length = 0; }\n\t\t\t\t\t\t\t\tthis.current = current;\n\t\t\t\t\t\t\t\txhr.abort();\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\t// Start upload\n\t\t\t\t\t\t\txhr.send(form);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tvar successful = proxyXHR.status == 200 || proxyXHR.status == 201 || proxyXHR.status == 204;\n\t\t\t\t\t\toptions.complete(successful ? false : (proxyXHR.statusText || 'error'), proxyXHR, options);\n\t\t\t\t\t\t// Mark done state\n\t\t\t\t\t\t_complete = true;\n\t\t\t\t\t}\n\t\t\t\t};\n\n\n\t\t\t\t// Next tick\n\t\t\t\tsetTimeout(_nextFile, 0);\n\n\n\t\t\t\t// Append more files to the existing request\n\t\t\t\t// first - add them to the queue head/tail\n\t\t\t\tproxyXHR.append = function (files, first) {\n\t\t\t\t\tfiles = api._getFilesDataArray([].concat(files));\n\n\t\t\t\t\t_each(files, function (data) {\n\t\t\t\t\t\t_total += data.size;\n\t\t\t\t\t\tproxyXHR.files.push(data.file);\n\t\t\t\t\t\tif (first) {\n\t\t\t\t\t\t\tdataArray.unshift(data);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tdataArray.push(data);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\tproxyXHR.statusText = \"\";\n\n\t\t\t\t\tif( _complete ){\n\t\t\t\t\t\t_nextFile.call(_this);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\n\t\t\t\t// Removes file from queue by file reference and returns it\n\t\t\t\tproxyXHR.remove = function (file) {\n\t\t\t\t var i = dataArray.length, _file;\n\t\t\t\t while( i-- ){\n\t\t\t\t\t\tif( dataArray[i].file == file ){\n\t\t\t\t\t\t\t_file = dataArray.splice(i, 1);\n\t\t\t\t\t\t\t_total -= _file.size;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\treturn\t_file;\n\t\t\t\t};\n\n\t\t\t\treturn proxyXHR;\n\t\t\t},\n\n\n\t\t\t_getFilesDataArray: function (data){\n\t\t\t\tvar files = [], oFiles = {};\n\n\t\t\t\tif( isInputFile(data) ){\n\t\t\t\t\tvar tmp = api.getFiles(data);\n\t\t\t\t\toFiles[data.name || 'file'] = data.getAttribute('multiple') !== null ? tmp : tmp[0];\n\t\t\t\t}\n\t\t\t\telse if( _isArray(data) && isInputFile(data[0]) ){\n\t\t\t\t\t_each(data, function (input){\n\t\t\t\t\t\toFiles[input.name || 'file'] = api.getFiles(input);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\toFiles = data;\n\t\t\t\t}\n\n\t\t\t\t_each(oFiles, function add(file, name){\n\t\t\t\t\tif( _isArray(file) ){\n\t\t\t\t\t\t_each(file, function (file){\n\t\t\t\t\t\t\tadd(file, name);\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse if( file && (file.name || file.image) ){\n\t\t\t\t\t\tfiles.push({\n\t\t\t\t\t\t\t name: name\n\t\t\t\t\t\t\t, file: file\n\t\t\t\t\t\t\t, size: file.size\n\t\t\t\t\t\t\t, total: file.size\n\t\t\t\t\t\t\t, loaded: 0\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif( !files.length ){\n\t\t\t\t\t// Create fake `file` object\n\t\t\t\t\tfiles.push({ file: { name: api.expando } });\n\t\t\t\t}\n\n\t\t\t\treturn\tfiles;\n\t\t\t},\n\n\n\t\t\t_getFormData: function (options, data, fn){\n\t\t\t\tvar\n\t\t\t\t\t file = data.file\n\t\t\t\t\t, name = data.name\n\t\t\t\t\t, filename = file.name\n\t\t\t\t\t, filetype = file.type\n\t\t\t\t\t, trans = api.support.transform && options.imageTransform\n\t\t\t\t\t, Form = new api.Form\n\t\t\t\t\t, queue = api.queue(function (){ fn(Form); })\n\t\t\t\t\t, isOrignTrans = trans && _isOriginTransform(trans)\n\t\t\t\t\t, postNameConcat = api.postNameConcat\n\t\t\t\t;\n\n\t\t\t\t// Append data\n\t\t\t\t_each(options.data, function add(val, name){\n\t\t\t\t\tif( typeof val == 'object' ){\n\t\t\t\t\t\t_each(val, function (v, i){\n\t\t\t\t\t\t\tadd(v, postNameConcat(name, i));\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tForm.append(name, val);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\t(function _addFile(file/**Object*/){\n\t\t\t\t\tif( file.image ){ // This is a FileAPI.Image\n\t\t\t\t\t\tqueue.inc();\n\n\t\t\t\t\t\tfile.toData(function (err, image){\n\t\t\t\t\t\t\t// @todo: требует рефакторинга и обработки ошибки\n\t\t\t\t\t\t\tif (file.file) {\n\t\t\t\t\t\t\t\timage.type = file.file.type;\n\t\t\t\t\t\t\t\timage.quality = file.matrix.quality;\n\t\t\t\t\t\t\t\tfilename = file.file && file.file.name;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tfilename = filename || (new Date).getTime()+'.png';\n\n\t\t\t\t\t\t\t_addFile(image);\n\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse if( api.Image && trans && (/^image/.test(file.type) || _rimgcanvas.test(file.nodeName)) ){\n\t\t\t\t\t\tqueue.inc();\n\n\t\t\t\t\t\tif( isOrignTrans ){\n\t\t\t\t\t\t\t// Convert to array for transform function\n\t\t\t\t\t\t\ttrans = [trans];\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tapi.Image.transform(file, trans, options.imageAutoOrientation, function (err, images){\n\t\t\t\t\t\t\tif( isOrignTrans && !err ){\n\t\t\t\t\t\t\t\tif( !dataURLtoBlob && !api.flashEngine ){\n\t\t\t\t\t\t\t\t\t// Canvas.toBlob or Flash not supported, use multipart\n\t\t\t\t\t\t\t\t\tForm.multipart = true;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tForm.append(name, images[0], filename, trans[0].type || filetype);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tvar addOrigin = 0;\n\n\t\t\t\t\t\t\t\tif( !err ){\n\t\t\t\t\t\t\t\t\t_each(images, function (image, idx){\n\t\t\t\t\t\t\t\t\t\tif( !dataURLtoBlob && !api.flashEngine ){\n\t\t\t\t\t\t\t\t\t\t\tForm.multipart = true;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tif( !trans[idx].postName ){\n\t\t\t\t\t\t\t\t\t\t\taddOrigin = 1;\n\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\tForm.append(trans[idx].postName || postNameConcat(name, idx), image, filename, trans[idx].type || filetype);\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tif( err || options.imageOriginal ){\n\t\t\t\t\t\t\t\t\tForm.append(postNameConcat(name, (addOrigin ? 'original' : null)), file, filename, filetype);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\telse if( filename !== api.expando ){\n\t\t\t\t\t\tForm.append(name, file, filename);\n\t\t\t\t\t}\n\t\t\t\t})(file);\n\n\t\t\t\tqueue.check();\n\t\t\t},\n\n\n\t\t\treset: function (inp, notRemove){\n\t\t\t\tvar parent, clone;\n\n\t\t\t\tif( jQuery ){\n\t\t\t\t\tclone = jQuery(inp).clone(true).insertBefore(inp).val('')[0];\n\t\t\t\t\tif( !notRemove ){\n\t\t\t\t\t\tjQuery(inp).remove();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tparent = inp.parentNode;\n\t\t\t\t\tclone = parent.insertBefore(inp.cloneNode(true), inp);\n\t\t\t\t\tclone.value = '';\n\n\t\t\t\t\tif( !notRemove ){\n\t\t\t\t\t\tparent.removeChild(inp);\n\t\t\t\t\t}\n\n\t\t\t\t\t_each(_elEvents[api.uid(inp)], function (fns, type){\n\t\t\t\t\t\t_each(fns, function (fn){\n\t\t\t\t\t\t\t_off(inp, type, fn);\n\t\t\t\t\t\t\t_on(clone, type, fn);\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn clone;\n\t\t\t},\n\n\n\t\t\t/**\n\t\t\t * Load remote file\n\t\t\t *\n\t\t\t * @param {String} url\n\t\t\t * @param {Function} fn\n\t\t\t * @return {XMLHttpRequest}\n\t\t\t */\n\t\t\tload: function (url, fn){\n\t\t\t\tvar xhr = api.getXHR();\n\t\t\t\tif( xhr ){\n\t\t\t\t\txhr.open('GET', url, true);\n\n\t\t\t\t\tif( xhr.overrideMimeType ){\n\t\t\t\t xhr.overrideMimeType('text/plain; charset=x-user-defined');\n\t\t\t\t\t}\n\n\t\t\t\t\t_on(xhr, 'progress', function (/**Event*/evt){\n\t\t\t\t\t\t/** @namespace evt.lengthComputable */\n\t\t\t\t\t\tif( evt.lengthComputable ){\n\t\t\t\t\t\t\tfn({ type: evt.type, loaded: evt.loaded, total: evt.total }, xhr);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\txhr.onreadystatechange = function(){\n\t\t\t\t\t\tif( xhr.readyState == 4 ){\n\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\t\t\t\t\t\t\tif( xhr.status == 200 ){\n\t\t\t\t\t\t\t\turl = url.split('/');\n\t\t\t\t\t\t\t\t/** @namespace xhr.responseBody */\n\t\t\t\t\t\t\t\tvar file = {\n\t\t\t\t\t\t\t\t name: url[url.length-1]\n\t\t\t\t\t\t\t\t\t, size: xhr.getResponseHeader('Content-Length')\n\t\t\t\t\t\t\t\t\t, type: xhr.getResponseHeader('Content-Type')\n\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\tfile.dataURL = 'data:'+file.type+';base64,' + api.encode64(xhr.responseBody || xhr.responseText);\n\t\t\t\t\t\t\t\tfn({ type: 'load', result: file }, xhr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tfn({ type: 'error' }, xhr);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t }\n\t\t\t\t\t};\n\t\t\t\t xhr.send(null);\n\t\t\t\t} else {\n\t\t\t\t\tfn({ type: 'error' });\n\t\t\t\t}\n\n\t\t\t\treturn xhr;\n\t\t\t},\n\n\t\t\tencode64: function (str){\n\t\t\t\tvar b64 = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=', outStr = '', i = 0;\n\n\t\t\t\tif( typeof str !== 'string' ){\n\t\t\t\t\tstr\t= String(str);\n\t\t\t\t}\n\n\t\t\t\twhile( i < str.length ){\n\t\t\t\t\t//all three \"& 0xff\" added below are there to fix a known bug\n\t\t\t\t\t//with bytes returned by xhr.responseText\n\t\t\t\t\tvar\n\t\t\t\t\t\t byte1 = str.charCodeAt(i++) & 0xff\n\t\t\t\t\t\t, byte2 = str.charCodeAt(i++) & 0xff\n\t\t\t\t\t\t, byte3 = str.charCodeAt(i++) & 0xff\n\t\t\t\t\t\t, enc1 = byte1 >> 2\n\t\t\t\t\t\t, enc2 = ((byte1 & 3) << 4) | (byte2 >> 4)\n\t\t\t\t\t\t, enc3, enc4\n\t\t\t\t\t;\n\n\t\t\t\t\tif( isNaN(byte2) ){\n\t\t\t\t\t\tenc3 = enc4 = 64;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tenc3 = ((byte2 & 15) << 2) | (byte3 >> 6);\n\t\t\t\t\t\tenc4 = isNaN(byte3) ? 64 : byte3 & 63;\n\t\t\t\t\t}\n\n\t\t\t\t\toutStr += b64.charAt(enc1) + b64.charAt(enc2) + b64.charAt(enc3) + b64.charAt(enc4);\n\t\t\t\t}\n\n\t\t\t\treturn outStr;\n\t\t\t}\n\n\t\t} // api\n\t;\n\n\n\tfunction _emit(target, fn, name, res, ext){\n\t\tvar evt = {\n\t\t\t type:\t\tname.type || name\n\t\t\t, target:\ttarget\n\t\t\t, result:\tres\n\t\t};\n\t\t_extend(evt, ext);\n\t\tfn(evt);\n\t}\n\n\n\tfunction _hasSupportReadAs(method){\n\t\treturn\tFileReader && !!FileReader.prototype['readAs' + method];\n\t}\n\n\n\tfunction _readAs(file, fn, method, encoding){\n\t\tif( api.isBlob(file) && _hasSupportReadAs(method) ){\n\t\t\tvar Reader = new FileReader;\n\n\t\t\t// Add event listener\n\t\t\t_on(Reader, _readerEvents, function _fn(evt){\n\t\t\t\tvar type = evt.type;\n\t\t\t\tif( type == 'progress' ){\n\t\t\t\t\t_emit(file, fn, evt, evt.target.result, { loaded: evt.loaded, total: evt.total });\n\t\t\t\t}\n\t\t\t\telse if( type == 'loadend' ){\n\t\t\t\t\t_off(Reader, _readerEvents, _fn);\n\t\t\t\t\tReader = null;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t_emit(file, fn, evt, evt.target.result);\n\t\t\t\t}\n\t\t\t});\n\n\n\t\t\ttry {\n\t\t\t\t// ReadAs ...\n\t\t\t\tif( encoding ){\n\t\t\t\t\tReader['readAs' + method](file, encoding);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tReader['readAs' + method](file);\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (err){\n\t\t\t\t_emit(file, fn, 'error', undef, { error: err.toString() });\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\t_emit(file, fn, 'error', undef, { error: 'filreader_not_support_' + method });\n\t\t}\n\t}\n\n\n\tfunction _isRegularFile(file, callback){\n\t\t// http://stackoverflow.com/questions/8856628/detecting-folders-directories-in-javascript-filelist-objects\n\t\tif( !file.type && (safari || ((file.size % 4096) === 0 && (file.size <= 102400))) ){\n\t\t\tif( FileReader ){\n\t\t\t\ttry {\n\t\t\t\t\tvar reader = new FileReader();\n\n\t\t\t\t\t_one(reader, _readerEvents, function (evt){\n\t\t\t\t\t\tvar isFile = evt.type != 'error';\n\t\t\t\t\t\tif( isFile ){\n\t\t\t\t\t\t\tif ( reader.readyState == null || reader.readyState === reader.LOADING ) {\n\t\t\t\t\t\t\t\treader.abort();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tcallback(isFile);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tcallback(false, reader.error);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\treader.readAsDataURL(file);\n\t\t\t\t} catch( err ){\n\t\t\t\t\tcallback(false, err);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tcallback(null, new Error('FileReader is not supported'));\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tcallback(true);\n\t\t}\n\t}\n\n\n\tfunction _isEntry(item){\n\t\treturn item && (item.isFile || item.isDirectory);\n\t}\n\n\n\tfunction _getAsEntry(item){\n\t\tvar entry;\n\t\tif( item.getAsEntry ){ entry = item.getAsEntry(); }\n\t\telse if( item.webkitGetAsEntry ){ entry = item.webkitGetAsEntry(); }\n\t\treturn\tentry;\n\t}\n\n\n\tfunction _readEntryAsFiles(entry, callback){\n\t\tif( !entry ){\n\t\t\t// error\n\t\t\tvar err = new Error('invalid entry');\n\t\t\tentry = new Object(entry);\n\t\t\tentry.error = err;\n\t\t\tcallback(err.message, [], [entry]);\n\t\t}\n\t\telse if( entry.isFile ){\n\t\t\t// Read as file\n\t\t\tentry.file(function (file){\n\t\t\t\t// success\n\t\t\t\tfile.fullPath = entry.fullPath;\n\t\t\t\tcallback(false, [file], [file]);\n\t\t\t}, function (err){\n\t\t\t\t// error\n\t\t\t\tentry.error = err;\n\t\t\t\tcallback('FileError.code: ' + err.code, [], [entry]);\n\t\t\t});\n\t\t}\n\t\telse if( entry.isDirectory ){\n\t\t\tvar\n\t\t\t\treader = entry.createReader()\n\t\t\t\t, firstAttempt = true\n\t\t\t\t, files = []\n\t\t\t\t, all = [entry]\n\t\t\t;\n\n\t\t\tvar onerror = function (err){\n\t\t\t\t// error\n\t\t\t\tentry.error = err;\n\t\t\t\tcallback('DirectoryError.code: ' + err.code, files, all);\n\t\t\t};\n\t\t\tvar ondone = function ondone(entries){\n\t\t\t\tif( firstAttempt ){\n\t\t\t\t\tfirstAttempt = false;\n\t\t\t\t\tif( !entries.length ){\n\t\t\t\t\t\tentry.error = new Error('directory is empty');\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\t// success\n\t\t\t\tif( entries.length ){\n\t\t\t\t\tapi.afor(entries, function (next, entry){\n\t\t\t\t\t\t_readEntryAsFiles(entry, function (err, entryFiles, allEntries){\n\t\t\t\t\t\t\tif( !err ){\n\t\t\t\t\t\t\t\tfiles = files.concat(entryFiles);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tall = all.concat(allEntries);\n\n\t\t\t\t\t\t\tif( next ){\n\t\t\t\t\t\t\t\tnext();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\treader.readEntries(ondone, onerror);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallback(false, files, all);\n\t\t\t\t}\n\t\t\t};\n\n\t\t\treader.readEntries(ondone, onerror);\n\t\t}\n\t\telse {\n\t\t\t_readEntryAsFiles(_getAsEntry(entry), callback);\n\t\t}\n\t}\n\n\n\tfunction _simpleClone(obj){\n\t\tvar copy = {};\n\t\t_each(obj, function (val, key){\n\t\t\tif( val && (typeof val === 'object') && (val.nodeType === void 0) ){\n\t\t\t\tval = _extend({}, val);\n\t\t\t}\n\t\t\tcopy[key] = val;\n\t\t});\n\t\treturn\tcopy;\n\t}\n\n\n\tfunction isInputFile(el){\n\t\treturn\t_rinput.test(el && el.tagName);\n\t}\n\n\n\tfunction _getDataTransfer(evt){\n\t\treturn\t(evt.originalEvent || evt || '').dataTransfer || {};\n\t}\n\n\n\tfunction _isOriginTransform(trans){\n\t\tvar key;\n\t\tfor( key in trans ){\n\t\t\tif( trans.hasOwnProperty(key) ){\n\t\t\t\tif( !(trans[key] instanceof Object || key === 'overlay' || key === 'filter') ){\n\t\t\t\t\treturn\ttrue;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\treturn\tfalse;\n\t}\n\n\n\t// Add default image info reader\n\tapi.addInfoReader(/^image/, function (file/**File*/, callback/**Function*/){\n\t\tif( !file.__dimensions ){\n\t\t\tvar defer = file.__dimensions = api.defer();\n\n\t\t\tapi.readAsImage(file, function (evt){\n\t\t\t\tvar img = evt.target;\n\t\t\t\tdefer.resolve(evt.type == 'load' ? false : 'error', {\n\t\t\t\t\t width: img.width\n\t\t\t\t\t, height: img.height\n\t\t\t\t});\n img.src = api.EMPTY_PNG;\n\t\t\t\timg = null;\n\t\t\t});\n\t\t}\n\n\t\tfile.__dimensions.then(callback);\n\t});\n\n\n\t/**\n\t * Drag'n'Drop special event\n\t *\n\t * @param\t{HTMLElement}\tel\n\t * @param\t{Function}\t\tonHover\n\t * @param\t{Function}\t\tonDrop\n\t */\n\tapi.event.dnd = function (el, onHover, onDrop){\n\t\tvar _id, _type;\n\n\t\tif( !onDrop ){\n\t\t\tonDrop = onHover;\n\t\t\tonHover = api.F;\n\t\t}\n\n\t\tif( FileReader ){\n\t\t\t// Hover\n\t\t\t_on(el, 'dragenter dragleave dragover', onHover.ff = onHover.ff || function (evt){\n\t\t\t\tvar\n\t\t\t\t\t types = _getDataTransfer(evt).types\n\t\t\t\t\t, i = types && types.length\n\t\t\t\t\t, debounceTrigger = false\n\t\t\t\t;\n\n\t\t\t\twhile( i-- ){\n\t\t\t\t\tif( ~types[i].indexOf('File') ){\n\t\t\t\t\t\tevt[preventDefault]();\n\n\t\t\t\t\t\tif( _type !== evt.type ){\n\t\t\t\t\t\t\t_type = evt.type; // Store current type of event\n\n\t\t\t\t\t\t\tif( _type != 'dragleave' ){\n\t\t\t\t\t\t\t\tonHover.call(evt[currentTarget], true, evt);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tdebounceTrigger = true;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tbreak; // exit from \"while\"\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif( debounceTrigger ){\n\t\t\t\t\tclearTimeout(_id);\n\t\t\t\t\t_id = setTimeout(function (){\n\t\t\t\t\t\tonHover.call(evt[currentTarget], _type != 'dragleave', evt);\n\t\t\t\t\t}, 50);\n\t\t\t\t}\n\t\t\t});\n\n\n\t\t\t// Drop\n\t\t\t_on(el, 'drop', onDrop.ff = onDrop.ff || function (evt){\n\t\t\t\tevt[preventDefault]();\n\n\t\t\t\t_type = 0;\n\n\t\t\t\tapi.getDropFiles(evt, function (files, all){\n\t\t\t\t\tonDrop.call(evt[currentTarget], files, all, evt);\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\tonHover.call(evt[currentTarget], false, evt);\n\t\t\t});\n\t\t}\n\t\telse {\n\t\t\tapi.log(\"Drag'n'Drop -- not supported\");\n\t\t}\n\t};\n\n\n\t/**\n\t * Remove drag'n'drop\n\t * @param\t{HTMLElement}\tel\n\t * @param\t{Function}\t\tonHover\n\t * @param\t{Function}\t\tonDrop\n\t */\n\tapi.event.dnd.off = function (el, onHover, onDrop){\n\t\t_off(el, 'dragenter dragleave dragover', onHover.ff);\n\t\t_off(el, 'drop', onDrop.ff);\n\t};\n\n\n\t// Support jQuery\n\tif( jQuery && !jQuery.fn.dnd ){\n\t\tjQuery.fn.dnd = function (onHover, onDrop){\n\t\t\treturn this.each(function (){\n\t\t\t\tapi.event.dnd(this, onHover, onDrop);\n\t\t\t});\n\t\t};\n\n\t\tjQuery.fn.offdnd = function (onHover, onDrop){\n\t\t\treturn this.each(function (){\n\t\t\t\tapi.event.dnd.off(this, onHover, onDrop);\n\t\t\t});\n\t\t};\n\t}\n\n\t// @export\n\twindow.FileAPI = _extend(api, window.FileAPI);\n\n\n\t// Debug info\n\tapi.log('FileAPI: ' + api.version);\n\tapi.log('protocol: ' + window.location.protocol);\n\tapi.log('doctype: [' + doctype.name + '] ' + doctype.publicId + ' ' + doctype.systemId);\n\n\n\t// @detect 'x-ua-compatible'\n\t_each(document.getElementsByTagName('meta'), function (meta){\n\t\tif( /x-ua-compatible/i.test(meta.getAttribute('http-equiv')) ){\n\t\t\tapi.log('meta.http-equiv: ' + meta.getAttribute('content'));\n\t\t}\n\t});\n\n\n\t// Configuration\n\ttry {\n\t\t_supportConsoleLog = !!console.log;\n\t\t_supportConsoleLogApply = !!console.log.apply;\n\t}\n\tcatch (err) {}\n\n\tif( !api.flashUrl ){ api.flashUrl = api.staticPath + 'FileAPI.flash.swf'; }\n\tif( !api.flashImageUrl ){ api.flashImageUrl = api.staticPath + 'FileAPI.flash.image.swf'; }\n\tif( !api.flashWebcamUrl ){ api.flashWebcamUrl = api.staticPath + 'FileAPI.flash.camera.swf'; }\n})(window, void 0);\n\n/*global window, FileAPI, document */\n\n(function (api, document, undef) {\n\t'use strict';\n\n\tvar\n\t\tmin = Math.min,\n\t\tround = Math.round,\n\t\tgetCanvas = function () { return document.createElement('canvas'); },\n\t\tsupport = false,\n\t\texifOrientation = {\n\t\t\t 8:\t270\n\t\t\t, 3:\t180\n\t\t\t, 6:\t90\n\t\t\t, 7:\t270\n\t\t\t, 4:\t180\n\t\t\t, 5:\t90\n\t\t}\n\t;\n\n\ttry {\n\t\tsupport = getCanvas().toDataURL('image/png').indexOf('data:image/png') > -1;\n\t}\n\tcatch (e){}\n\n\n\tfunction Image(file){\n\t\tif( file instanceof Image ){\n\t\t\tvar img = new Image(file.file);\n\t\t\tapi.extend(img.matrix, file.matrix);\n\t\t\treturn\timg;\n\t\t}\n\t\telse if( !(this instanceof Image) ){\n\t\t\treturn\tnew Image(file);\n\t\t}\n\n\t\tthis.file = file;\n\t\tthis.size = file.size || 100;\n\n\t\tthis.matrix\t= {\n\t\t\tsx: 0,\n\t\t\tsy: 0,\n\t\t\tsw: 0,\n\t\t\tsh: 0,\n\t\t\tdx: 0,\n\t\t\tdy: 0,\n\t\t\tdw: 0,\n\t\t\tdh: 0,\n\t\t\tresize: 0, // min, max OR preview\n\t\t\tdeg: 0,\n\t\t\tquality: 1, // jpeg quality\n\t\t\tfilter: 0\n\t\t};\n\t}\n\n\n\tImage.prototype = {\n\t\timage: true,\n\t\tconstructor: Image,\n\n\t\tset: function (attrs){\n\t\t\tapi.extend(this.matrix, attrs);\n\t\t\treturn\tthis;\n\t\t},\n\n\t\tcrop: function (x, y, w, h){\n\t\t\tif( w === undef ){\n\t\t\t\tw\t= x;\n\t\t\t\th\t= y;\n\t\t\t\tx = y = 0;\n\t\t\t}\n\t\t\treturn\tthis.set({ sx: x, sy: y, sw: w, sh: h || w });\n\t\t},\n\n\t\tresize: function (w, h, strategy){\n\t\t\tif( /min|max|height|width/.test(h) ){\n\t\t\t\tstrategy = h;\n\t\t\t\th = w;\n\t\t\t}\n\n\t\t\treturn\tthis.set({ dw: w, dh: h || w, resize: strategy });\n\t\t},\n\n\t\tpreview: function (w, h){\n\t\t\treturn\tthis.resize(w, h || w, 'preview');\n\t\t},\n\n\t\trotate: function (deg){\n\t\t\treturn\tthis.set({ deg: deg });\n\t\t},\n\n\t\tfilter: function (filter){\n\t\t\treturn\tthis.set({ filter: filter });\n\t\t},\n\n\t\toverlay: function (images){\n\t\t\treturn\tthis.set({ overlay: images });\n\t\t},\n\n\t\tclone: function (){\n\t\t\treturn\tnew Image(this);\n\t\t},\n\n\t\t_load: function (image, fn){\n\t\t\tvar self = this;\n\n\t\t\tif( /img|video/i.test(image.nodeName) ){\n\t\t\t\tfn.call(self, null, image);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tapi.readAsImage(image, function (evt){\n\t\t\t\t\tfn.call(self, evt.type != 'load', evt.result);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\t_apply: function (image, fn){\n\t\t\tvar\n\t\t\t\t canvas = getCanvas()\n\t\t\t\t, m = this.getMatrix(image)\n\t\t\t\t, ctx = canvas.getContext('2d')\n\t\t\t\t, width = image.videoWidth || image.width\n\t\t\t\t, height = image.videoHeight || image.height\n\t\t\t\t, deg = m.deg\n\t\t\t\t, dw = m.dw\n\t\t\t\t, dh = m.dh\n\t\t\t\t, w = width\n\t\t\t\t, h = height\n\t\t\t\t, filter = m.filter\n\t\t\t\t, copy // canvas copy\n\t\t\t\t, buffer = image\n\t\t\t\t, overlay = m.overlay\n\t\t\t\t, queue = api.queue(function (){ image.src = api.EMPTY_PNG; fn(false, canvas); })\n\t\t\t\t, renderImageToCanvas = api.renderImageToCanvas\n\t\t\t;\n\n\t\t\t// Normalize angle\n\t\t\tdeg = deg - Math.floor(deg/360)*360;\n\n\t\t\t// For `renderImageToCanvas`\n\t\t\timage._type = this.file.type;\n\n\t\t\twhile(m.multipass && min(w/dw, h/dh) > 2 ){\n\t\t\t\tw = (w/2 + 0.5)|0;\n\t\t\t\th = (h/2 + 0.5)|0;\n\n\t\t\t\tcopy = getCanvas();\n\t\t\t\tcopy.width = w;\n\t\t\t\tcopy.height = h;\n\n\t\t\t\tif( buffer !== image ){\n\t\t\t\t\trenderImageToCanvas(copy, buffer, 0, 0, buffer.width, buffer.height, 0, 0, w, h);\n\t\t\t\t\tbuffer = copy;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tbuffer = copy;\n\t\t\t\t\trenderImageToCanvas(buffer, image, m.sx, m.sy, m.sw, m.sh, 0, 0, w, h);\n\t\t\t\t\tm.sx = m.sy = m.sw = m.sh = 0;\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\tcanvas.width = (deg % 180) ? dh : dw;\n\t\t\tcanvas.height = (deg % 180) ? dw : dh;\n\n\t\t\tcanvas.type = m.type;\n\t\t\tcanvas.quality = m.quality;\n\n\t\t\tctx.rotate(deg * Math.PI / 180);\n\t\t\trenderImageToCanvas(ctx.canvas, buffer\n\t\t\t\t, m.sx, m.sy\n\t\t\t\t, m.sw || buffer.width\n\t\t\t\t, m.sh || buffer.height\n\t\t\t\t, (deg == 180 || deg == 270 ? -dw : 0)\n\t\t\t\t, (deg == 90 || deg == 180 ? -dh : 0)\n\t\t\t\t, dw, dh\n\t\t\t);\n\t\t\tdw = canvas.width;\n\t\t\tdh = canvas.height;\n\n\t\t\t// Apply overlay\n\t\t\toverlay && api.each([].concat(overlay), function (over){\n\t\t\t\tqueue.inc();\n\t\t\t\t// preload\n\t\t\t\tvar img = new window.Image, fn = function (){\n\t\t\t\t\tvar\n\t\t\t\t\t\t x = over.x|0\n\t\t\t\t\t\t, y = over.y|0\n\t\t\t\t\t\t, w = over.w || img.width\n\t\t\t\t\t\t, h = over.h || img.height\n\t\t\t\t\t\t, rel = over.rel\n\t\t\t\t\t;\n\n\t\t\t\t\t// center | right | left\n\t\t\t\t\tx = (rel == 1 || rel == 4 || rel == 7) ? (dw - w + x)/2 : (rel == 2 || rel == 5 || rel == 8 ? dw - (w + x) : x);\n\n\t\t\t\t\t// center | bottom | top\n\t\t\t\t\ty = (rel == 3 || rel == 4 || rel == 5) ? (dh - h + y)/2 : (rel >= 6 ? dh - (h + y) : y);\n\n\t\t\t\t\tapi.event.off(img, 'error load abort', fn);\n\n\t\t\t\t\ttry {\n\t\t\t\t\t\tctx.globalAlpha = over.opacity || 1;\n\t\t\t\t\t\tctx.drawImage(img, x, y, w, h);\n\t\t\t\t\t}\n\t\t\t\t\tcatch (er){}\n\n\t\t\t\t\tqueue.next();\n\t\t\t\t};\n\n\t\t\t\tapi.event.on(img, 'error load abort', fn);\n\t\t\t\timg.src = over.src;\n\n\t\t\t\tif( img.complete ){\n\t\t\t\t\tfn();\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tif( filter ){\n\t\t\t\tqueue.inc();\n\t\t\t\tImage.applyFilter(canvas, filter, queue.next);\n\t\t\t}\n\n\t\t\tqueue.check();\n\t\t},\n\n\t\tgetMatrix: function (image){\n\t\t\tvar\n\t\t\t\t m = api.extend({}, this.matrix)\n\t\t\t\t, sw = m.sw = m.sw || image.videoWidth || image.naturalWidth || image.width\n\t\t\t\t, sh = m.sh = m.sh || image.videoHeight || image.naturalHeight || image.height\n\t\t\t\t, dw = m.dw = m.dw || sw\n\t\t\t\t, dh = m.dh = m.dh || sh\n\t\t\t\t, sf = sw/sh, df = dw/dh\n\t\t\t\t, strategy = m.resize\n\t\t\t;\n\n\t\t\tif( strategy == 'preview' ){\n\t\t\t\tif( dw != sw || dh != sh ){\n\t\t\t\t\t// Make preview\n\t\t\t\t\tvar w, h;\n\n\t\t\t\t\tif( df >= sf ){\n\t\t\t\t\t\tw\t= sw;\n\t\t\t\t\t\th\t= w / df;\n\t\t\t\t\t} else {\n\t\t\t\t\t\th\t= sh;\n\t\t\t\t\t\tw\t= h * df;\n\t\t\t\t\t}\n\n\t\t\t\t\tif( w != sw || h != sh ){\n\t\t\t\t\t\tm.sx\t= ~~((sw - w)/2);\n\t\t\t\t\t\tm.sy\t= ~~((sh - h)/2);\n\t\t\t\t\t\tsw\t\t= w;\n\t\t\t\t\t\tsh\t\t= h;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if( strategy == 'height' ){\n\t\t\t\tdw = dh * sf;\n\t\t\t}\n\t\t\telse if( strategy == 'width' ){\n\t\t\t\tdh = dw / sf;\n\t\t\t}\n\t\t\telse if( strategy ){\n\t\t\t\tif( !(sw > dw || sh > dh) ){\n\t\t\t\t\tdw = sw;\n\t\t\t\t\tdh = sh;\n\t\t\t\t}\n\t\t\t\telse if( strategy == 'min' ){\n\t\t\t\t\tdw = round(sf < df ? min(sw, dw) : dh*sf);\n\t\t\t\t\tdh = round(sf < df ? dw/sf : min(sh, dh));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdw = round(sf >= df ? min(sw, dw) : dh*sf);\n\t\t\t\t\tdh = round(sf >= df ? dw/sf : min(sh, dh));\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tm.sw = sw;\n\t\t\tm.sh = sh;\n\t\t\tm.dw = dw;\n\t\t\tm.dh = dh;\n\t\t\tm.multipass = api.multiPassResize;\n\t\t\treturn\tm;\n\t\t},\n\n\t\t_trans: function (fn){\n\t\t\tthis._load(this.file, function (err, image){\n\t\t\t\tif( err ){\n\t\t\t\t\tfn(err);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\ttry {\n\t\t\t\t\t\tthis._apply(image, fn);\n\t\t\t\t\t} catch (err){\n\t\t\t\t\t\tapi.log('[err] FileAPI.Image.fn._apply:', err);\n\t\t\t\t\t\tfn(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\tget: function (fn){\n\t\t\tif( api.support.transform ){\n\t\t\t\tvar _this = this, matrix = _this.matrix;\n\n\t\t\t\tif( matrix.deg == 'auto' ){\n\t\t\t\t\tapi.getInfo(_this.file, function (err, info){\n\t\t\t\t\t\t// rotate by exif orientation\n\t\t\t\t\t\tmatrix.deg = exifOrientation[info && info.exif && info.exif.Orientation] || 0;\n\t\t\t\t\t\t_this._trans(fn);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t_this._trans(fn);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfn('not_support_transform');\n\t\t\t}\n\n\t\t\treturn this;\n\t\t},\n\n\n\t\ttoData: function (fn){\n\t\t\treturn this.get(fn);\n\t\t}\n\n\t};\n\n\n\tImage.exifOrientation = exifOrientation;\n\n\n\tImage.transform = function (file, transform, autoOrientation, fn){\n\t\tfunction _transform(err, img){\n\t\t\t// img -- info object\n\t\t\tvar\n\t\t\t\t images = {}\n\t\t\t\t, queue = api.queue(function (err){\n\t\t\t\t\tfn(err, images);\n\t\t\t\t})\n\t\t\t;\n\n\t\t\tif( !err ){\n\t\t\t\tapi.each(transform, function (params, name){\n\t\t\t\t\tif( !queue.isFail() ){\n\t\t\t\t\t\tvar ImgTrans = new Image(img.nodeType ? img : file), isFn = typeof params == 'function';\n\n\t\t\t\t\t\tif( isFn ){\n\t\t\t\t\t\t\tparams(img, ImgTrans);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( params.width ){\n\t\t\t\t\t\t\tImgTrans[params.preview ? 'preview' : 'resize'](params.width, params.height, params.strategy);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tif( params.maxWidth && (img.width > params.maxWidth || img.height > params.maxHeight) ){\n\t\t\t\t\t\t\t\tImgTrans.resize(params.maxWidth, params.maxHeight, 'max');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( params.crop ){\n\t\t\t\t\t\t\tvar crop = params.crop;\n\t\t\t\t\t\t\tImgTrans.crop(crop.x|0, crop.y|0, crop.w || crop.width, crop.h || crop.height);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tif( params.rotate === undef && autoOrientation ){\n\t\t\t\t\t\t\tparams.rotate = 'auto';\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tImgTrans.set({ type: ImgTrans.matrix.type || params.type || file.type || 'image/png' });\n\n\t\t\t\t\t\tif( !isFn ){\n\t\t\t\t\t\t\tImgTrans.set({\n\t\t\t\t\t\t\t\t deg: params.rotate\n\t\t\t\t\t\t\t\t, overlay: params.overlay\n\t\t\t\t\t\t\t\t, filter: params.filter\n\t\t\t\t\t\t\t\t, quality: params.quality || 1\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tqueue.inc();\n\t\t\t\t\t\tImgTrans.toData(function (err, image){\n\t\t\t\t\t\t\tif( err ){\n\t\t\t\t\t\t\t\tqueue.fail();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\timages[name] = image;\n\t\t\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse {\n\t\t\t\tqueue.fail();\n\t\t\t}\n\t\t}\n\n\n\t\t// @todo: Оло-ло, нужно рефакторить это место\n\t\tif( file.width ){\n\t\t\t_transform(false, file);\n\t\t} else {\n\t\t\tapi.getInfo(file, _transform);\n\t\t}\n\t};\n\n\n\t// @const\n\tapi.each(['TOP', 'CENTER', 'BOTTOM'], function (x, i){\n\t\tapi.each(['LEFT', 'CENTER', 'RIGHT'], function (y, j){\n\t\t\tImage[x+'_'+y] = i*3 + j;\n\t\t\tImage[y+'_'+x] = i*3 + j;\n\t\t});\n\t});\n\n\n\t/**\n\t * Trabsform element to canvas\n\t *\n\t * @param {Image|HTMLVideoElement} el\n\t * @returns {Canvas}\n\t */\n\tImage.toCanvas = function(el){\n\t\tvar canvas\t\t= document.createElement('canvas');\n\t\tcanvas.width\t= el.videoWidth || el.width;\n\t\tcanvas.height\t= el.videoHeight || el.height;\n\t\tcanvas.getContext('2d').drawImage(el, 0, 0);\n\t\treturn\tcanvas;\n\t};\n\n\n\t/**\n\t * Create image from DataURL\n\t * @param {String} dataURL\n\t * @param {Object} size\n\t * @param {Function} callback\n\t */\n\tImage.fromDataURL = function (dataURL, size, callback){\n\t\tvar img = api.newImage(dataURL);\n\t\tapi.extend(img, size);\n\t\tcallback(img);\n\t};\n\n\n\t/**\n\t * Apply filter (caman.js)\n\t *\n\t * @param {Canvas|Image} canvas\n\t * @param {String|Function} filter\n\t * @param {Function} doneFn\n\t */\n\tImage.applyFilter = function (canvas, filter, doneFn){\n\t\tif( typeof filter == 'function' ){\n\t\t\tfilter(canvas, doneFn);\n\t\t}\n\t\telse if( window.Caman ){\n\t\t\t// http://camanjs.com/guides/\n\t\t\twindow.Caman(canvas.tagName == 'IMG' ? Image.toCanvas(canvas) : canvas, function (){\n\t\t\t\tif( typeof filter == 'string' ){\n\t\t\t\t\tthis[filter]();\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tapi.each(filter, function (val, method){\n\t\t\t\t\t\tthis[method](val);\n\t\t\t\t\t}, this);\n\t\t\t\t}\n\t\t\t\tthis.render(doneFn);\n\t\t\t});\n\t\t}\n\t};\n\n\n\t/**\n\t * For load-image-ios.js\n\t */\n\tapi.renderImageToCanvas = function (canvas, img, sx, sy, sw, sh, dx, dy, dw, dh){\n\t\ttry {\n\t\t\treturn canvas.getContext('2d').drawImage(img, sx, sy, sw, sh, dx, dy, dw, dh);\n\t\t} catch (ex) {\n\t\t\tapi.log('renderImageToCanvas failed');\n\t\t\tthrow ex;\n\t\t}\n\t};\n\n\n\t// @export\n\tapi.support.canvas = api.support.transform = support;\n\tapi.Image = Image;\n})(FileAPI, document);\n\n/*\n * JavaScript Load Image iOS scaling fixes 1.0.3\n * https://github.com/blueimp/JavaScript-Load-Image\n *\n * Copyright 2013, Sebastian Tschan\n * https://blueimp.net\n *\n * iOS image scaling fixes based on\n * https://github.com/stomita/ios-imagefile-megapixel\n *\n * Licensed under the MIT license:\n * http://www.opensource.org/licenses/MIT\n */\n\n/*jslint nomen: true, bitwise: true */\n/*global FileAPI, window, document */\n\n(function (factory) {\n\t'use strict';\n\tfactory(FileAPI);\n}(function (loadImage) {\n 'use strict';\n\n // Only apply fixes on the iOS platform:\n if (!window.navigator || !window.navigator.platform ||\n !(/iP(hone|od|ad)/).test(window.navigator.platform)) {\n return;\n }\n\n var originalRenderMethod = loadImage.renderImageToCanvas;\n\n // Detects subsampling in JPEG images:\n loadImage.detectSubsampling = function (img) {\n var canvas,\n context;\n if (img.width * img.height > 1024 * 1024) { // only consider mexapixel images\n canvas = document.createElement('canvas');\n canvas.width = canvas.height = 1;\n context = canvas.getContext('2d');\n context.drawImage(img, -img.width + 1, 0);\n // subsampled image becomes half smaller in rendering size.\n // check alpha channel value to confirm image is covering edge pixel or not.\n // if alpha value is 0 image is not covering, hence subsampled.\n return context.getImageData(0, 0, 1, 1).data[3] === 0;\n }\n return false;\n };\n\n // Detects vertical squash in JPEG images:\n loadImage.detectVerticalSquash = function (img, subsampled) {\n var naturalHeight = img.naturalHeight || img.height,\n canvas = document.createElement('canvas'),\n context = canvas.getContext('2d'),\n data,\n sy,\n ey,\n py,\n alpha;\n if (subsampled) {\n naturalHeight /= 2;\n }\n canvas.width = 1;\n canvas.height = naturalHeight;\n context.drawImage(img, 0, 0);\n data = context.getImageData(0, 0, 1, naturalHeight).data;\n // search image edge pixel position in case it is squashed vertically:\n sy = 0;\n ey = naturalHeight;\n py = naturalHeight;\n while (py > sy) {\n alpha = data[(py - 1) * 4 + 3];\n if (alpha === 0) {\n ey = py;\n } else {\n sy = py;\n }\n py = (ey + sy) >> 1;\n }\n return (py / naturalHeight) || 1;\n };\n\n // Renders image to canvas while working around iOS image scaling bugs:\n // https://github.com/blueimp/JavaScript-Load-Image/issues/13\n loadImage.renderImageToCanvas = function (\n canvas,\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destX,\n destY,\n destWidth,\n destHeight\n ) {\n if (img._type === 'image/jpeg') {\n var context = canvas.getContext('2d'),\n tmpCanvas = document.createElement('canvas'),\n tileSize = 1024,\n tmpContext = tmpCanvas.getContext('2d'),\n subsampled,\n vertSquashRatio,\n tileX,\n tileY;\n tmpCanvas.width = tileSize;\n tmpCanvas.height = tileSize;\n context.save();\n subsampled = loadImage.detectSubsampling(img);\n if (subsampled) {\n sourceX /= 2;\n sourceY /= 2;\n sourceWidth /= 2;\n sourceHeight /= 2;\n }\n vertSquashRatio = loadImage.detectVerticalSquash(img, subsampled);\n if (subsampled || vertSquashRatio !== 1) {\n sourceY *= vertSquashRatio;\n destWidth = Math.ceil(tileSize * destWidth / sourceWidth);\n destHeight = Math.ceil(\n tileSize * destHeight / sourceHeight / vertSquashRatio\n );\n destY = 0;\n tileY = 0;\n while (tileY < sourceHeight) {\n destX = 0;\n tileX = 0;\n while (tileX < sourceWidth) {\n tmpContext.clearRect(0, 0, tileSize, tileSize);\n tmpContext.drawImage(\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n -tileX,\n -tileY,\n sourceWidth,\n sourceHeight\n );\n context.drawImage(\n tmpCanvas,\n 0,\n 0,\n tileSize,\n tileSize,\n destX,\n destY,\n destWidth,\n destHeight\n );\n tileX += tileSize;\n destX += destWidth;\n }\n tileY += tileSize;\n destY += destHeight;\n }\n context.restore();\n return canvas;\n }\n }\n return originalRenderMethod(\n canvas,\n img,\n sourceX,\n sourceY,\n sourceWidth,\n sourceHeight,\n destX,\n destY,\n destWidth,\n destHeight\n );\n };\n\n}));\n\n/*global window, FileAPI */\n\n(function (api, window){\n\t\"use strict\";\n\n\tvar\n\t\t document = window.document\n\t\t, FormData = window.FormData\n\t\t, Form = function (){ this.items = []; }\n\t\t, encodeURIComponent = window.encodeURIComponent\n\t;\n\n\n\tForm.prototype = {\n\n\t\tappend: function (name, blob, file, type){\n\t\t\tthis.items.push({\n\t\t\t\t name: name\n\t\t\t\t, blob: blob && blob.blob || (blob == void 0 ? '' : blob)\n\t\t\t\t, file: blob && (file || blob.name)\n\t\t\t\t, type:\tblob && (type || blob.type)\n\t\t\t});\n\t\t},\n\n\t\teach: function (fn){\n\t\t\tvar i = 0, n = this.items.length;\n\t\t\tfor( ; i < n; i++ ){\n\t\t\t\tfn.call(this, this.items[i]);\n\t\t\t}\n\t\t},\n\n\t\ttoData: function (fn, options){\n\t\t // allow chunked transfer if we have only one file to send\n\t\t // flag is used below and in XHR._send\n\t\t options._chunked = api.support.chunked && options.chunkSize > 0 && api.filter(this.items, function (item){ return item.file; }).length == 1;\n\n\t\t\tif( !api.support.html5 ){\n\t\t\t\tapi.log('FileAPI.Form.toHtmlData');\n\t\t\t\tthis.toHtmlData(fn);\n\t\t\t}\n\t\t\telse if( !api.formData || this.multipart || !FormData ){\n\t\t\t\tapi.log('FileAPI.Form.toMultipartData');\n\t\t\t\tthis.toMultipartData(fn);\n\t\t\t}\n\t\t\telse if( options._chunked ){\n\t\t\t\tapi.log('FileAPI.Form.toPlainData');\n\t\t\t\tthis.toPlainData(fn);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tapi.log('FileAPI.Form.toFormData');\n\t\t\t\tthis.toFormData(fn);\n\t\t\t}\n\t\t},\n\n\t\t_to: function (data, complete, next, arg){\n\t\t\tvar queue = api.queue(function (){\n\t\t\t\tcomplete(data);\n\t\t\t});\n\n\t\t\tthis.each(function (file){\n\t\t\t\ttry{\n\t\t\t\t\tnext(file, data, queue, arg);\n\t\t\t\t}\n\t\t\t\tcatch( err ){\n\t\t\t\t\tapi.log('FileAPI.Form._to: ' + err.message);\n\t\t\t\t\tcomplete(err);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\tqueue.check();\n\t\t},\n\n\n\t\ttoHtmlData: function (fn){\n\t\t\tthis._to(document.createDocumentFragment(), fn, function (file, data/**DocumentFragment*/){\n\t\t\t\tvar blob = file.blob, hidden;\n\n\t\t\t\tif( file.file ){\n\t\t\t\t\tapi.reset(blob, true);\n\t\t\t\t\t// set new name\n\t\t\t\t\tblob.name = file.name;\n\t\t\t\t\tblob.disabled = false;\n\t\t\t\t\tdata.appendChild(blob);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\thidden = document.createElement('input');\n\t\t\t\t\thidden.name = file.name;\n\t\t\t\t\thidden.type = 'hidden';\n\t\t\t\t\thidden.value = blob;\n\t\t\t\t\tdata.appendChild(hidden);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\t\ttoPlainData: function (fn){\n\t\t\tthis._to({}, fn, function (file, data, queue){\n\t\t\t\tif( file.file ){\n\t\t\t\t\tdata.type = file.file;\n\t\t\t\t}\n\n\t\t\t\tif( file.blob.toBlob ){\n\t\t\t\t // canvas\n\t\t\t\t\tqueue.inc();\n\t\t\t\t\t_convertFile(file, function (file, blob){\n\t\t\t\t\t\tdata.name = file.name;\n\t\t\t\t\t\tdata.file = blob;\n\t\t\t\t\t\tdata.size = blob.length;\n\t\t\t\t\t\tdata.type = file.type;\n\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if( file.file ){\n\t\t\t\t // file\n\t\t\t\t\tdata.name = file.blob.name;\n\t\t\t\t\tdata.file = file.blob;\n\t\t\t\t\tdata.size = file.blob.size;\n\t\t\t\t\tdata.type = file.type;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t // additional data\n\t\t\t\t if( !data.params ){\n\t\t\t\t data.params = [];\n\t\t\t\t }\n\t\t\t\t data.params.push(encodeURIComponent(file.name) +\"=\"+ encodeURIComponent(file.blob));\n\t\t\t\t}\n\n\t\t\t\tdata.start = -1;\n\t\t\t\tdata.end = data.file && data.file.FileAPIReadPosition || -1;\n\t\t\t\tdata.retry = 0;\n\t\t\t});\n\t\t},\n\n\t\ttoFormData: function (fn){\n\t\t\tthis._to(new FormData, fn, function (file, data, queue){\n\t\t\t\tif( file.blob && file.blob.toBlob ){\n\t\t\t\t\tqueue.inc();\n\t\t\t\t\t_convertFile(file, function (file, blob){\n\t\t\t\t\t\tdata.append(file.name, blob, file.file);\n\t\t\t\t\t\tqueue.next();\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse if( file.file ){\n\t\t\t\t\tdata.append(file.name, file.blob, file.file);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tdata.append(file.name, file.blob);\n\t\t\t\t}\n\n\t\t\t\tif( file.file ){\n\t\t\t\t\tdata.append('_'+file.name, file.file);\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\n\n\t\ttoMultipartData: function (fn){\n\t\t\tthis._to([], fn, function (file, data, queue, boundary){\n\t\t\t\tqueue.inc();\n\t\t\t\t_convertFile(file, function (file, blob){\n\t\t\t\t\tdata.push(\n\t\t\t\t\t\t '--_' + boundary + ('\\r\\nContent-Disposition: form-data; name=\"'+ file.name +'\"'+ (file.file ? '; filename=\"'+ encodeURIComponent(file.file) +'\"' : '')\n\t\t\t\t\t\t+ (file.file ? '\\r\\nContent-Type: '+ (file.type || 'application/octet-stream') : '')\n\t\t\t\t\t\t+ '\\r\\n'\n\t\t\t\t\t\t+ '\\r\\n'+ (file.file ? blob : encodeURIComponent(blob))\n\t\t\t\t\t\t+ '\\r\\n')\n\t\t\t\t\t);\n\t\t\t\t\tqueue.next();\n\t\t\t\t}, true);\n\t\t\t}, api.expando);\n\t\t}\n\t};\n\n\n\tfunction _convertFile(file, fn, useBinaryString){\n\t\tvar blob = file.blob, filename = file.file;\n\n\t\tif( filename ){\n\t\t\tif( !blob.toDataURL ){\n\t\t\t\t// The Blob is not an image.\n\t\t\t\tapi.readAsBinaryString(blob, function (evt){\n\t\t\t\t\tif( evt.type == 'load' ){\n\t\t\t\t\t\tfn(file, evt.result);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvar\n\t\t\t\t mime = { 'image/jpeg': '.jpe?g', 'image/png': '.png' }\n\t\t\t\t, type = mime[file.type] ? file.type : 'image/png'\n\t\t\t\t, ext = mime[type] || '.png'\n\t\t\t\t, quality = blob.quality || 1\n\t\t\t;\n\n\t\t\tif( !filename.match(new RegExp(ext+'$', 'i')) ){\n\t\t\t\t// Does not change the current extension, but add a new one.\n\t\t\t\tfilename += ext.replace('?', '');\n\t\t\t}\n\n\t\t\tfile.file = filename;\n\t\t\tfile.type = type;\n\n\t\t\tif( !useBinaryString && blob.toBlob ){\n\t\t\t\tblob.toBlob(function (blob){\n\t\t\t\t\tfn(file, blob);\n\t\t\t\t}, type, quality);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tfn(file, api.toBinaryString(blob.toDataURL(type, quality)));\n\t\t\t}\n\t\t}\n\t\telse {\n\t\t\tfn(file, blob);\n\t\t}\n\t}\n\n\n\t// @export\n\tapi.Form = Form;\n})(FileAPI, window);\n\n/*global window, FileAPI, Uint8Array */\n\n(function (window, api){\n\t\"use strict\";\n\n\tvar\n\t\t noop = function (){}\n\t\t, document = window.document\n\n\t\t, XHR = function (options){\n\t\t\tthis.uid = api.uid();\n\t\t\tthis.xhr = {\n\t\t\t\t abort: noop\n\t\t\t\t, getResponseHeader: noop\n\t\t\t\t, getAllResponseHeaders: noop\n\t\t\t};\n\t\t\tthis.options = options;\n\t\t},\n\n\t\t_xhrResponsePostfix = { '': 1, XML: 1, Text: 1, Body: 1 }\n\t;\n\n\n\tXHR.prototype = {\n\t\tstatus: 0,\n\t\tstatusText: '',\n\t\tconstructor: XHR,\n\n\t\tgetResponseHeader: function (name){\n\t\t\treturn this.xhr.getResponseHeader(name);\n\t\t},\n\n\t\tgetAllResponseHeaders: function (){\n\t\t\treturn this.xhr.getAllResponseHeaders() || {};\n\t\t},\n\n\t\tend: function (status, statusText){\n\t\t\tvar _this = this, options = _this.options;\n\n\t\t\t_this.end\t\t=\n\t\t\t_this.abort\t\t= noop;\n\t\t\t_this.status\t= status;\n\n\t\t\tif( statusText ){\n\t\t\t\t_this.statusText = statusText;\n\t\t\t}\n\n\t\t\tapi.log('xhr.end:', status, statusText);\n\t\t\toptions.complete(status == 200 || status == 201 ? false : _this.statusText || 'unknown', _this);\n\n\t\t\tif( _this.xhr && _this.xhr.node ){\n\t\t\t\tsetTimeout(function (){\n\t\t\t\t\tvar node = _this.xhr.node;\n\t\t\t\t\ttry { node.parentNode.removeChild(node); } catch (e){}\n\t\t\t\t\ttry { delete window[_this.uid]; } catch (e){}\n\t\t\t\t\twindow[_this.uid] = _this.xhr.node = null;\n\t\t\t\t}, 9);\n\t\t\t}\n\t\t},\n\n\t\tabort: function (){\n\t\t\tthis.end(0, 'abort');\n\n\t\t\tif( this.xhr ){\n\t\t\t\tthis.xhr.aborted = true;\n\t\t\t\tthis.xhr.abort();\n\t\t\t}\n\t\t},\n\n\t\tsend: function (FormData){\n\t\t\tvar _this = this, options = this.options;\n\n\t\t\tFormData.toData(function (data){\n\t\t\t\tif( data instanceof Error ){\n\t\t\t\t\t_this.end(0, data.message);\n\t\t\t\t}\n\t\t\t\telse{\n\t\t\t\t\t// Start uploading\n\t\t\t\t\toptions.upload(options, _this);\n\t\t\t\t\t_this._send.call(_this, options, data);\n\t\t\t\t}\n\t\t\t}, options);\n\t\t},\n\n\t\t_send: function (options, data){\n\t\t\tvar _this = this, xhr, uid = _this.uid, onLoadFnName = _this.uid + \"Load\", url = options.url;\n\n\t\t\tapi.log('XHR._send:', data);\n\n\t\t\tif( !options.cache ){\n\t\t\t\t// No cache\n\t\t\t\turl += (~url.indexOf('?') ? '&' : '?') + api.uid();\n\t\t\t}\n\n\t\t\tif( data.nodeName ){\n\t\t\t\tvar jsonp = options.jsonp;\n\n\t\t\t\t// prepare callback in GET\n\t\t\t\turl = url.replace(/([a-z]+)=(\\?)/i, '$1='+uid);\n\n\t\t\t\t// legacy\n\t\t\t\toptions.upload(options, _this);\n\n\t\t\t\tvar\n\t\t\t\t\tonPostMessage = function (evt){\n\t\t\t\t\t\tif( ~url.indexOf(evt.origin) ){\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tvar result = api.parseJSON(evt.data);\n\t\t\t\t\t\t\t\tif( result.id == uid ){\n\t\t\t\t\t\t\t\t\tcomplete(result.status, result.statusText, result.response);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} catch( err ){\n\t\t\t\t\t\t\t\tcomplete(0, err.message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\n\t\t\t\t\t// jsonp-callack\n\t\t\t\t\tcomplete = window[uid] = function (status, statusText, response){\n\t\t\t\t\t\t_this.readyState\t= 4;\n\t\t\t\t\t\t_this.responseText\t= response;\n\t\t\t\t\t\t_this.end(status, statusText);\n\n\t\t\t\t\t\tapi.event.off(window, 'message', onPostMessage);\n\t\t\t\t\t\twindow[uid] = xhr = transport = window[onLoadFnName] = null;\n\t\t\t\t\t}\n\t\t\t\t;\n\n\t\t\t\t_this.xhr.abort = function (){\n\t\t\t\t\ttry {\n\t\t\t\t\t\tif( transport.stop ){ transport.stop(); }\n\t\t\t\t\t\telse if( transport.contentWindow.stop ){ transport.contentWindow.stop(); }\n\t\t\t\t\t\telse { transport.contentWindow.document.execCommand('Stop'); }\n\t\t\t\t\t}\n\t\t\t\t\tcatch (er) {}\n\t\t\t\t\tcomplete(0, \"abort\");\n\t\t\t\t};\n\n\t\t\t\tapi.event.on(window, 'message', onPostMessage);\n\n\t\t\t\twindow[onLoadFnName] = function (){\n\t\t\t\t\ttry {\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t win = transport.contentWindow\n\t\t\t\t\t\t\t, doc = win.document\n\t\t\t\t\t\t\t, result = win.result || api.parseJSON(doc.body.innerHTML)\n\t\t\t\t\t\t;\n\t\t\t\t\t\tcomplete(result.status, result.statusText, result.response);\n\t\t\t\t\t} catch (e){\n\t\t\t\t\t\tapi.log('[transport.onload]', e);\n\t\t\t\t\t}\n\t\t\t\t};\n\n\t\t\t\txhr = document.createElement('div');\n\t\t\t\txhr.innerHTML = '
    '\n\t\t\t\t\t\t\t+ ''\n\t\t\t\t\t\t\t+ (jsonp && (options.url.indexOf('=?') < 0) ? '' : '')\n\t\t\t\t\t\t\t+ '
    '\n\t\t\t\t;\n\n\t\t\t\t// get form-data & transport\n\t\t\t\tvar\n\t\t\t\t\t form = xhr.getElementsByTagName('form')[0]\n\t\t\t\t\t, transport = xhr.getElementsByTagName('iframe')[0]\n\t\t\t\t;\n\n\t\t\t\tform.appendChild(data);\n\n\t\t\t\tapi.log(form.parentNode.innerHTML);\n\n\t\t\t\t// append to DOM\n\t\t\t\tdocument.body.appendChild(xhr);\n\n\t\t\t\t// keep a reference to node-transport\n\t\t\t\t_this.xhr.node = xhr;\n\n\t\t\t\t// send\n\t\t\t\t_this.readyState = 2; // loaded\n\t\t\t\ttry {\n\t\t\t\t\tform.submit();\n\t\t\t\t} catch (err) {\n\t\t\t\t\tapi.log('iframe.error: ' + err);\n\t\t\t\t}\n\t\t\t\tform = null;\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Clean url\n\t\t\t\turl = url.replace(/([a-z]+)=(\\?)&?/i, '');\n\n\t\t\t\t// html5\n\t\t\t\tif (this.xhr && this.xhr.aborted) {\n\t\t\t\t\tapi.log(\"Error: already aborted\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\txhr = _this.xhr = api.getXHR();\n\n\t\t\t\tif (data.params) {\n\t\t\t\t\turl += (url.indexOf('?') < 0 ? \"?\" : \"&\") + data.params.join(\"&\");\n\t\t\t\t}\n\n\t\t\t\txhr.open(options.uploadMethod || 'POST', url, true);\n\n\t\t\t\tif( api.withCredentials ){\n\t\t\t\t\txhr.withCredentials = \"true\";\n\t\t\t\t}\n\n\t\t\t\tif( !options.headers || !options.headers['X-Requested-With'] ){\n\t\t\t\t\txhr.setRequestHeader('X-Requested-With', 'XMLHttpRequest');\n\t\t\t\t}\n\n\t\t\t\tapi.each(options.headers, function (val, key){\n\t\t\t\t\txhr.setRequestHeader(key, val);\n\t\t\t\t});\n\n\n\t\t\t\tif ( options._chunked ) {\n\t\t\t\t\t// chunked upload\n\t\t\t\t\tif( xhr.upload ){\n\t\t\t\t\t\txhr.upload.addEventListener('progress', api.throttle(function (/**Event*/evt){\n\t\t\t\t\t\t\tif (!data.retry) {\n\t\t\t\t\t\t\t\t// show progress only for correct chunk uploads\n\t\t\t\t\t\t\t\toptions.progress({\n\t\t\t\t\t\t\t\t\t type:\t\t\tevt.type\n\t\t\t\t\t\t\t\t\t, total:\t\tdata.size\n\t\t\t\t\t\t\t\t\t, loaded:\t\tdata.start + evt.loaded\n\t\t\t\t\t\t\t\t\t, totalSize:\tdata.size\n\t\t\t\t\t\t\t\t}, _this, options);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}, 100), false);\n\t\t\t\t\t}\n\n\t\t\t\t\txhr.onreadystatechange = function (){\n\t\t\t\t\t\tvar lkb = parseInt(xhr.getResponseHeader('X-Last-Known-Byte'), 10);\n\n\t\t\t\t\t\t_this.status = xhr.status;\n\t\t\t\t\t\t_this.statusText = xhr.statusText;\n\t\t\t\t\t\t_this.readyState = xhr.readyState;\n\n\t\t\t\t\t\tif( xhr.readyState == 4 ){\n\t\t\t\t\t\t\tfor( var k in _xhrResponsePostfix ){\n\t\t\t\t\t\t\t\t_this['response'+k] = xhr['response'+k];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif (!xhr.status || xhr.status - 201 > 0) {\n\t\t\t\t\t\t\t\tapi.log(\"Error: \" + xhr.status);\n\t\t\t\t\t\t\t\t// some kind of error\n\t\t\t\t\t\t\t\t// 0 - connection fail or timeout, if xhr.aborted is true, then it's not recoverable user action\n\t\t\t\t\t\t\t\t// up - server error\n\t\t\t\t\t\t\t\tif (((!xhr.status && !xhr.aborted) || 500 == xhr.status || 416 == xhr.status) && ++data.retry <= options.chunkUploadRetry) {\n\t\t\t\t\t\t\t\t\t// let's try again the same chunk\n\t\t\t\t\t\t\t\t\t// only applicable for recoverable error codes 500 && 416\n\t\t\t\t\t\t\t\t\tvar delay = xhr.status ? 0 : api.chunkNetworkDownRetryTimeout;\n\n\t\t\t\t\t\t\t\t\t// inform about recoverable problems\n\t\t\t\t\t\t\t\t\toptions.pause(data.file, options);\n\n\t\t\t\t\t\t\t\t\t// smart restart if server reports about the last known byte\n\t\t\t\t\t\t\t\t\tapi.log(\"X-Last-Known-Byte: \" + lkb);\n\t\t\t\t\t\t\t\t\tif (lkb) {\n\t\t\t\t\t\t\t\t\t\tdata.end = lkb;\n\t\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t\tdata.end = data.start - 1;\n\t\t\t\t\t\t\t\t\t\tif (416 == xhr.status) {\n\t\t\t\t\t\t\t\t\t\t\tdata.end = data.end - options.chunkSize;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t\t_this._send(options, data);\n\t\t\t\t\t\t\t\t\t}, delay);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// no mo retries\n\t\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t// success\n\t\t\t\t\t\t\t\tdata.retry = 0;\n\n\t\t\t\t\t\t\t\tif (data.end == data.size - 1) {\n\t\t\t\t\t\t\t\t\t// finished\n\t\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t// next chunk\n\n\t\t\t\t\t\t\t\t\t// shift position if server reports about the last known byte\n\t\t\t\t\t\t\t\t\tapi.log(\"X-Last-Known-Byte: \" + lkb);\n\t\t\t\t\t\t\t\t\tif (lkb) {\n\t\t\t\t\t\t\t\t\t\tdata.end = lkb;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdata.file.FileAPIReadPosition = data.end;\n\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t\t_this._send(options, data);\n\t\t\t\t\t\t\t\t\t}, 0);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\txhr = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tdata.start = data.end + 1;\n\t\t\t\t\tdata.end = Math.max(Math.min(data.start + options.chunkSize, data.size) - 1, data.start);\n\n\t\t\t\t\t// Retrieve a slice of file\n\t\t\t\t\tvar\n\t\t\t\t\t\t file = data.file\n\t\t\t\t\t\t, slice = (file.slice || file.mozSlice || file.webkitSlice).call(file, data.start, data.end + 1)\n\t\t\t\t\t;\n\n\t\t\t\t\tif( data.size && !slice.size ){\n\t\t\t\t\t\tsetTimeout(function (){\n\t\t\t\t\t\t\t_this.end(-1);\n\t\t\t\t\t\t});\n\t\t\t\t\t} else {\n\t\t\t\t\t\txhr.setRequestHeader(\"Content-Range\", \"bytes \" + data.start + \"-\" + data.end + \"/\" + data.size);\n\t\t\t\t\t\txhr.setRequestHeader(\"Content-Disposition\", 'attachment; filename=' + encodeURIComponent(data.name));\n\t\t\t\t\t\txhr.setRequestHeader(\"Content-Type\", data.type || \"application/octet-stream\");\n\n\t\t\t\t\t\txhr.send(slice);\n\t\t\t\t\t}\n\n\t\t\t\t\tfile = slice = null;\n\t\t\t\t} else {\n\t\t\t\t\t// single piece upload\n\t\t\t\t\tif( xhr.upload ){\n\t\t\t\t\t\t// https://github.com/blueimp/jQuery-File-Upload/wiki/Fixing-Safari-hanging-on-very-high-speed-connections-%281Gbps%29\n\t\t\t\t\t\txhr.upload.addEventListener('progress', api.throttle(function (/**Event*/evt){\n\t\t\t\t\t\t\toptions.progress(evt, _this, options);\n\t\t\t\t\t\t}, 100), false);\n\t\t\t\t\t}\n\n\t\t\t\t\txhr.onreadystatechange = function (){\n\t\t\t\t\t\t_this.status = xhr.status;\n\t\t\t\t\t\t_this.statusText = xhr.statusText;\n\t\t\t\t\t\t_this.readyState = xhr.readyState;\n\n\t\t\t\t\t\tif( xhr.readyState == 4 ){\n\t\t\t\t\t\t\tfor( var k in _xhrResponsePostfix ){\n\t\t\t\t\t\t\t\t_this['response'+k] = xhr['response'+k];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\txhr.onreadystatechange = null;\n\n\t\t\t\t\t\t\tif (!xhr.status || xhr.status > 201) {\n\t\t\t\t\t\t\t\tapi.log(\"Error: \" + xhr.status);\n\t\t\t\t\t\t\t\tif (((!xhr.status && !xhr.aborted) || 500 == xhr.status) && (options.retry || 0) < options.uploadRetry) {\n\t\t\t\t\t\t\t\t\toptions.retry = (options.retry || 0) + 1;\n\t\t\t\t\t\t\t\t\tvar delay = api.networkDownRetryTimeout;\n\n\t\t\t\t\t\t\t\t\t// inform about recoverable problems\n\t\t\t\t\t\t\t\t\toptions.pause(options.file, options);\n\n\t\t\t\t\t\t\t\t\tsetTimeout(function () {\n\t\t\t\t\t\t\t\t\t\t_this._send(options, data);\n\t\t\t\t\t\t\t\t\t}, delay);\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\t//success\n\t\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t//success\n\t\t\t\t\t\t\t\t_this.end(xhr.status);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\txhr = null;\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\n\t\t\t\t\tif( api.isArray(data) ){\n\t\t\t\t\t\t// multipart\n\t\t\t\t\t\txhr.setRequestHeader('Content-Type', 'multipart/form-data; boundary=_'+api.expando);\n\t\t\t\t\t\tvar rawData = data.join('') +'--_'+ api.expando +'--';\n\n\t\t\t\t\t\t/** @namespace xhr.sendAsBinary https://developer.mozilla.org/ru/XMLHttpRequest#Sending_binary_content */\n\t\t\t\t\t\tif( xhr.sendAsBinary ){\n\t\t\t\t\t\t\txhr.sendAsBinary(rawData);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse {\n\t\t\t\t\t\t\tvar bytes = Array.prototype.map.call(rawData, function(c){ return c.charCodeAt(0) & 0xff; });\n\t\t\t\t\t\t\txhr.send(new Uint8Array(bytes).buffer);\n\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// FormData\n\t\t\t\t\t\txhr.send(data);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\n\n\t// @export\n\tapi.XHR = XHR;\n})(window, FileAPI);\n\n/**\n * @class\tFileAPI.Camera\n * @author\tRubaXa\t\n * @support\tChrome 21+, FF 18+, Opera 12+\n */\n\n/*global window, FileAPI, jQuery */\n/** @namespace LocalMediaStream -- https://developer.mozilla.org/en-US/docs/WebRTC/MediaStream_API#LocalMediaStream */\n(function (window, api){\n\t\"use strict\";\n\n\tvar\n\t\tURL = window.URL || window.webkitURL,\n\n\t\tdocument = window.document,\n\t\tnavigator = window.navigator,\n\n\t\tgetMedia = navigator.getUserMedia || navigator.webkitGetUserMedia || navigator.mozGetUserMedia || navigator.msGetUserMedia,\n\n\t\thtml5 = !!getMedia\n\t;\n\n\n\t// Support \"media\"\n\tapi.support.media = html5;\n\n\n\tvar Camera = function (video){\n\t\tthis.video = video;\n\t};\n\n\n\tCamera.prototype = {\n\t\tisActive: function (){\n\t\t\treturn\t!!this._active;\n\t\t},\n\n\n\t\t/**\n\t\t * Start camera streaming\n\t\t * @param\t{Function}\tcallback\n\t\t */\n\t\tstart: function (callback){\n\t\t\tvar\n\t\t\t\t _this = this\n\t\t\t\t, video = _this.video\n\t\t\t\t, _successId\n\t\t\t\t, _failId\n\t\t\t\t, _complete = function (err){\n\t\t\t\t\t_this._active = !err;\n\t\t\t\t\tclearTimeout(_failId);\n\t\t\t\t\tclearTimeout(_successId);\n//\t\t\t\t\tapi.event.off(video, 'loadedmetadata', _complete);\n\t\t\t\t\tcallback && callback(err, _this);\n\t\t\t\t}\n\t\t\t;\n\n\t\t\tgetMedia.call(navigator, { video: true }, function (stream/**LocalMediaStream*/){\n\t\t\t\t// Success\n\t\t\t\t_this.stream = stream;\n\n//\t\t\t\tapi.event.on(video, 'loadedmetadata', function (){\n//\t\t\t\t\t_complete(null);\n//\t\t\t\t});\n\n\t\t\t\t// Set camera stream\n\t\t\t\ttry {\n\t\t\t\t\tvideo.src = URL.createObjectURL(stream);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tvideo.srcObject = stream;\n\t\t\t\t}\n\n\t\t\t\t// Note: onloadedmetadata doesn't fire in Chrome when using it with getUserMedia.\n\t\t\t\t// See crbug.com/110938.\n\t\t\t\t_successId = setInterval(function (){\n\t\t\t\t\tif( _detectVideoSignal(video) ){\n\t\t\t\t\t\t_complete(null);\n\t\t\t\t\t}\n\t\t\t\t}, 1000);\n\n\t\t\t\t_failId = setTimeout(function (){\n\t\t\t\t\t_complete('timeout');\n\t\t\t\t}, 5000);\n\n\t\t\t\t// Go-go-go!\n\t\t\t\tvideo.play();\n\t\t\t}, _complete/*error*/);\n\t\t},\n\n\n\t\t/**\n\t\t * Stop camera streaming\n\t\t */\n\t\tstop: function (){\n\t\t\ttry {\n\t\t\t\tthis._active = false;\n\t\t\t\tthis.video.pause();\n\n\t\t\t\ttry {\n\t\t\t\t\tthis.stream.stop();\n\t\t\t\t} catch (err) {\n\t\t\t\t\tapi.each(this.stream.getTracks(), function (track) {\n\t\t\t\t\t\ttrack.stop();\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.stream = null;\n\t\t\t} catch( err ){\n\t\t\t\tapi.log('[FileAPI.Camera] stop:', err);\n\t\t\t}\n\t\t},\n\n\n\t\t/**\n\t\t * Create screenshot\n\t\t * @return {FileAPI.Camera.Shot}\n\t\t */\n\t\tshot: function (){\n\t\t\treturn\tnew Shot(this.video);\n\t\t}\n\t};\n\n\n\t/**\n\t * Get camera element from container\n\t *\n\t * @static\n\t * @param\t{HTMLElement}\tel\n\t * @return\t{Camera}\n\t */\n\tCamera.get = function (el){\n\t\treturn\tnew Camera(el.firstChild);\n\t};\n\n\n\t/**\n\t * Publish camera element into container\n\t *\n\t * @static\n\t * @param\t{HTMLElement}\tel\n\t * @param\t{Object}\t\toptions\n\t * @param\t{Function}\t\t[callback]\n\t */\n\tCamera.publish = function (el, options, callback){\n\t\tif( typeof options == 'function' ){\n\t\t\tcallback = options;\n\t\t\toptions = {};\n\t\t}\n\n\t\t// Dimensions of \"camera\"\n\t\toptions = api.extend({}, {\n\t\t\t width:\t'100%'\n\t\t\t, height:\t'100%'\n\t\t\t, start:\ttrue\n\t\t}, options);\n\n\n\t\tif( el.jquery ){\n\t\t\t// Extract first element, from jQuery collection\n\t\t\tel = el[0];\n\t\t}\n\n\n\t\tvar doneFn = function (err){\n\t\t\tif( err ){\n\t\t\t\tcallback(err);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t// Get camera\n\t\t\t\tvar cam = Camera.get(el);\n\t\t\t\tif( options.start ){\n\t\t\t\t\tcam.start(callback);\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tcallback(null, cam);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\n\n\t\tel.style.width\t= _px(options.width);\n\t\tel.style.height\t= _px(options.height);\n\n\n\t\tif( api.html5 && html5 && !api.insecureChrome ){\n\t\t\t// Create video element\n\t\t\tvar video = document.createElement('video');\n\n\t\t\t// Set dimensions\n\t\t\tvideo.style.width\t= _px(options.width);\n\t\t\tvideo.style.height\t= _px(options.height);\n\n\t\t\t// Clean container\n\t\t\tif( window.jQuery ){\n\t\t\t\tjQuery(el).empty();\n\t\t\t} else {\n\t\t\t\tel.innerHTML = '';\n\t\t\t}\n\n\t\t\t// Add \"camera\" to container\n\t\t\tel.appendChild(video);\n\n\t\t\t// end\n\t\t\tdoneFn();\n\t\t}\n\t\telse {\n\t\t\tCamera.fallback(el, options, doneFn);\n\t\t}\n\t};\n\n\n\tCamera.fallback = function (el, options, callback){\n\t\tcallback('not_support_camera');\n\t};\n\n\tCamera.checkAlreadyCaptured = (function () {\n\t\tvar\tmediaDevices = navigator.mediaDevices,\n\t\t\tMediaStreamTrack = window.MediaStreamTrack,\n\t\t\tnavigatorEnumerateDevices = navigator.enumerateDevices,\n\t\t\tenumerateDevices;\n\n\t\tif (mediaDevices && mediaDevices.enumerateDevices) {\n\t\t\tenumerateDevices = function (callback) {\n\t\t\t\tmediaDevices.enumerateDevices().then(callback);\n\t\t\t};\n\t\t} else if (MediaStreamTrack && MediaStreamTrack.getSources) {\n\t\t\tenumerateDevices = MediaStreamTrack.getSources.bind(MediaStreamTrack);\n\t\t} else if (navigatorEnumerateDevices) {\n\t\t\tenumerateDevices = navigatorEnumerateDevices.bind(navigator);\n\t\t} else {\n\t\t\tenumerateDevices = function (fn) {\n\t\t\t\tfn([]);\n\t\t\t};\n\t\t}\n\n\t\treturn function (callback) {\n\t\t\tenumerateDevices(function (devices) {\n\t\t\t\tvar deviceExists = devices.some(function (device) {\n\t\t\t\t\treturn (device.kind === 'videoinput' || device.kind === 'video') && device.label;\n\t\t\t\t});\n\n\t\t\t\tcallback(deviceExists);\n\t\t\t});\n\t\t};\n\n\t})();\n\n\n\t/**\n\t * @class\tFileAPI.Camera.Shot\n\t */\n\tvar Shot = function (video){\n\t\tvar canvas\t= video.nodeName ? api.Image.toCanvas(video) : video;\n\t\tvar shot\t= api.Image(canvas);\n\t\tshot.type\t= 'image/png';\n\t\tshot.width\t= canvas.width;\n\t\tshot.height\t= canvas.height;\n\t\tshot.size\t= canvas.width * canvas.height * 4;\n\t\treturn\tshot;\n\t};\n\n\n\t/**\n\t * Add \"px\" postfix, if value is a number\n\t *\n\t * @private\n\t * @param\t{*} val\n\t * @return\t{String}\n\t */\n\tfunction _px(val){\n\t\treturn\tval >= 0 ? val + 'px' : val;\n\t}\n\n\n\t/**\n\t * @private\n\t * @param\t{HTMLVideoElement} video\n\t * @return\t{Boolean}\n\t */\n\tfunction _detectVideoSignal(video){\n\t\tvar canvas = document.createElement('canvas'), ctx, res = false;\n\t\ttry {\n\t\t\tctx = canvas.getContext('2d');\n\t\t\tctx.drawImage(video, 0, 0, 1, 1);\n\t\t\tres = ctx.getImageData(0, 0, 1, 1).data[4] != 255;\n\t\t}\n\t\tcatch( err ){\n\t\t\tapi.log('[FileAPI.Camera] detectVideoSignal:', err);\n\t\t}\n\t\treturn\tres;\n\t}\n\n\n\t// @export\n\tCamera.Shot\t= Shot;\n\tapi.Camera\t= Camera;\n})(window, FileAPI);\n\n/**\n * FileAPI fallback to Flash\n *\n * @flash-developer \"Vladimir Demidov\" \n */\n\n/*global window, ActiveXObject, FileAPI */\n(function (window, jQuery, api) {\n\t\"use strict\";\n\n\tvar\n\t\t document = window.document\n\t\t, location = window.location\n\t\t, navigator = window.navigator\n\t\t, _each = api.each\n\t;\n\n\n\tapi.support.flash = (function (){\n\t\tvar mime = navigator.mimeTypes, has = false;\n\n\t\tif( navigator.plugins && typeof navigator.plugins['Shockwave Flash'] == 'object' ){\n\t\t\thas\t= navigator.plugins['Shockwave Flash'].description && !(mime && mime['application/x-shockwave-flash'] && !mime['application/x-shockwave-flash'].enabledPlugin);\n\t\t}\n\t\telse {\n\t\t\ttry {\n\t\t\t\thas\t= !!(window.ActiveXObject && new ActiveXObject('ShockwaveFlash.ShockwaveFlash'));\n\t\t\t}\n\t\t\tcatch(er){\n\t\t\t\tapi.log('Flash -- does not supported.');\n\t\t\t}\n\t\t}\n\n\t\tif( has && /^file:/i.test(location) ){\n\t\t\tapi.log('[warn] Flash does not work on `file:` protocol.');\n\t\t}\n\n\t\treturn\thas;\n\t})();\n\n\n\t api.support.flash\n\t&& (0\n\t\t|| !api.html5 || !api.support.html5\n\t\t|| (api.cors && !api.support.cors)\n\t\t|| (api.media && !api.support.media)\n\t\t|| api.insecureChrome\n\t)\n\t&& (function (){\n\t\tvar\n\t\t\t _attr = api.uid()\n\t\t\t, _retry = 0\n\t\t\t, _files = {}\n\t\t\t, _rhttp = /^https?:/i\n\n\t\t\t, flash = {\n\t\t\t\t_fn: {},\n\n\n\t\t\t\t/**\n\t\t\t\t * Initialization & preload flash object\n\t\t\t\t */\n\t\t\t\tinit: function (){\n\t\t\t\t\tvar child = document.body && document.body.firstChild;\n\n\t\t\t\t\tif( child ){\n\t\t\t\t\t\tdo {\n\t\t\t\t\t\t\tif( child.nodeType == 1 ){\n\t\t\t\t\t\t\t\tapi.log('FlashAPI.state: awaiting');\n\n\t\t\t\t\t\t\t\tvar dummy = document.createElement('div');\n\n\t\t\t\t\t\t\t\tdummy.id = '_' + _attr;\n\n\t\t\t\t\t\t\t\t_css(dummy, {\n\t\t\t\t\t\t\t\t\t top: 1\n\t\t\t\t\t\t\t\t\t, right: 1\n\t\t\t\t\t\t\t\t\t, width: 5\n\t\t\t\t\t\t\t\t\t, height: 5\n\t\t\t\t\t\t\t\t\t, position: 'absolute'\n\t\t\t\t\t\t\t\t\t, zIndex: 2147483647+'' // set max zIndex\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\tchild.parentNode.insertBefore(dummy, child);\n\t\t\t\t\t\t\t\tflash.publish(dummy, _attr);\n\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\twhile( child = child.nextSibling );\n\t\t\t\t\t}\n\n\t\t\t\t\tif( _retry < 10 ){\n\t\t\t\t\t\tsetTimeout(flash.init, ++_retry*50);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\n\t\t\t\t/**\n\t\t\t\t * Publish flash-object\n\t\t\t\t *\n\t\t\t\t * @param {HTMLElement} el\n\t\t\t\t * @param {String} id\n\t\t\t\t * @param {Object} [opts]\n\t\t\t\t */\n\t\t\t\tpublish: function (el, id, opts){\n\t\t\t\t\topts = opts || {};\n\t\t\t\t\tel.innerHTML = _makeFlashHTML({\n\t\t\t\t\t\t id: id\n\t\t\t\t\t\t, src: _getUrl(api.flashUrl, 'r=' + api.version)\n//\t\t\t\t\t\t, src: _getUrl('http://v.demidov.boom.corp.mail.ru/uploaderfileapi/FlashFileAPI.swf?1')\n\t\t\t\t\t\t, wmode: opts.camera ? '' : 'transparent'\n\t\t\t\t\t\t, flashvars: 'callback=' + (opts.onEvent || 'FileAPI.Flash.onEvent')\n\t\t\t\t\t\t\t+ '&flashId='+ id\n\t\t\t\t\t\t\t+ '&storeKey='+ navigator.userAgent.match(/\\d/ig).join('') +'_'+ api.version\n\t\t\t\t\t\t\t+ (flash.isReady || (api.pingUrl ? '&ping='+api.pingUrl : ''))\n\t\t\t\t\t\t\t+ '&timeout='+api.flashAbortTimeout\n\t\t\t\t\t\t\t+ (opts.camera ? '&useCamera=' + _getUrl(api.flashWebcamUrl) : '')\n\t\t\t\t\t\t\t+ '&debug='+(api.debug?\"1\":\"\")\n\t\t\t\t\t}, opts);\n\t\t\t\t},\n\n\n\t\t\t\tready: function (){\n\t\t\t\t\tapi.log('FlashAPI.state: ready');\n\n\t\t\t\t\tflash.ready = api.F;\n\t\t\t\t\tflash.isReady = true;\n\t\t\t\t\tflash.patch();\n\t\t\t\t\tflash.patchCamera && flash.patchCamera();\n\t\t\t\t\tapi.event.on(document, 'mouseover', flash.mouseover);\n\t\t\t\t\tapi.event.on(document, 'click', function (evt){\n\t\t\t\t\t\tif( flash.mouseover(evt) ){\n\t\t\t\t\t\t\tevt.preventDefault\n\t\t\t\t\t\t\t\t? evt.preventDefault()\n\t\t\t\t\t\t\t\t: (evt.returnValue = true)\n\t\t\t\t\t\t\t;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t},\n\n\n\t\t\t\tgetEl: function (){\n\t\t\t\t\treturn\tdocument.getElementById('_'+_attr);\n\t\t\t\t},\n\n\n\t\t\t\tgetWrapper: function (node){\n\t\t\t\t\tdo {\n\t\t\t\t\t\tif( /js-fileapi-wrapper/.test(node.className) ){\n\t\t\t\t\t\t\treturn\tnode;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\twhile( (node = node.parentNode) && (node !== document.body) );\n\t\t\t\t},\n\n\n\t\t\t\tmouseover: function (evt){\n\t\t\t\t\tvar target = api.event.fix(evt).target;\n\n\t\t\t\t\tif( /input/i.test(target.nodeName) && target.type == 'file' && !target.disabled ){\n\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t state = target.getAttribute(_attr)\n\t\t\t\t\t\t\t, wrapper = flash.getWrapper(target)\n\t\t\t\t\t\t;\n\n\t\t\t\t\t\tif( api.multiFlash ){\n\t\t\t\t\t\t\t// check state:\n\t\t\t\t\t\t\t// p — published\n\t\t\t\t\t\t\t// i — initialization\n\t\t\t\t\t\t\t// r — ready\n\t\t\t\t\t\t\tif( state == 'i' || state == 'r' ){\n\t\t\t\t\t\t\t\t// publish fail\n\t\t\t\t\t\t\t\treturn\tfalse;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if( state != 'p' ){\n\t\t\t\t\t\t\t\t// set \"init\" state\n\t\t\t\t\t\t\t\ttarget.setAttribute(_attr, 'i');\n\n\t\t\t\t\t\t\t\tvar dummy = document.createElement('div');\n\n\t\t\t\t\t\t\t\tif( !wrapper ){\n\t\t\t\t\t\t\t\t\tapi.log('[err] FlashAPI.mouseover: js-fileapi-wrapper not found');\n\t\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t_css(dummy, {\n\t\t\t\t\t\t\t\t\t top: 0\n\t\t\t\t\t\t\t\t\t, left: 0\n\t\t\t\t\t\t\t\t\t, width: target.offsetWidth\n\t\t\t\t\t\t\t\t\t, height: target.offsetHeight\n\t\t\t\t\t\t\t\t\t, zIndex: 2147483647+'' // set max zIndex\n\t\t\t\t\t\t\t\t\t, position: 'absolute'\n\t\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\t\twrapper.appendChild(dummy);\n\t\t\t\t\t\t\t\tflash.publish(dummy, api.uid());\n\n\t\t\t\t\t\t\t\t// set \"publish\" state\n\t\t\t\t\t\t\t\ttarget.setAttribute(_attr, 'p');\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn\ttrue;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if( wrapper ){\n\t\t\t\t\t\t\t// Use one flash element\n\t\t\t\t\t\t\tvar box = _getDimensions(wrapper);\n\n\t\t\t\t\t\t\t_css(flash.getEl(), box);\n\n\t\t\t\t\t\t\t// Set current input\n\t\t\t\t\t\t\tflash.curInp = target;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse if( !/object|embed/i.test(target.nodeName) ){\n\t\t\t\t\t\t_css(flash.getEl(), { top: 1, left: 1, width: 5, height: 5 });\n\t\t\t\t\t}\n\t\t\t\t},\n\n\t\t\t\tonEvent: function (evt){\n\t\t\t\t\tvar type = evt.type;\n\n\t\t\t\t\tif( type == 'ready' ){\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t// set \"ready\" state\n\t\t\t\t\t\t\tflash.getInput(evt.flashId).setAttribute(_attr, 'r');\n\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tflash.ready();\n\t\t\t\t\t\tsetTimeout(function (){ flash.mouseenter(evt); }, 50);\n\t\t\t\t\t\treturn\ttrue;\n\t\t\t\t\t}\n\t\t\t\t\telse if( type === 'ping' ){\n\t\t\t\t\t\tapi.log('(flash -> js).ping:', [evt.status, evt.savedStatus], evt.error);\n\t\t\t\t\t}\n\t\t\t\t\telse if( type === 'log' ){\n\t\t\t\t\t\tapi.log('(flash -> js).log:', evt.target);\n\t\t\t\t\t}\n\t\t\t\t\telse if( type in flash ){\n\t\t\t\t\t\tsetTimeout(function (){\n\t\t\t\t\t\t\tapi.log('FlashAPI.event.'+evt.type+':', evt);\n\t\t\t\t\t\t\tflash[type](evt);\n\t\t\t\t\t\t}, 1);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\n\t\t\t\tmouseenter: function (evt){\n\t\t\t\t\tvar node = flash.getInput(evt.flashId);\n\n\t\t\t\t\tif( node ){\n\t\t\t\t\t\t// Set multiple mode\n\t\t\t\t\t\tflash.cmd(evt, 'multiple', node.getAttribute('multiple') != null);\n\n\n\t\t\t\t\t\t// Set files filter\n\t\t\t\t\t\tvar accept = [], exts = {};\n\n\t\t\t\t\t\t_each((node.getAttribute('accept') || '').split(/,\\s*/), function (mime){\n\t\t\t\t\t\t\tapi.accept[mime] && _each(api.accept[mime].split(' '), function (ext){\n\t\t\t\t\t\t\t\texts[ext] = 1;\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t_each(exts, function (i, ext){\n\t\t\t\t\t\t\taccept.push( ext );\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tflash.cmd(evt, 'accept', accept.length ? accept.join(',')+','+accept.join(',').toUpperCase() : '*');\n\t\t\t\t\t}\n\t\t\t\t},\n\n\n\t\t\t\tget: function (id){\n\t\t\t\t\treturn\tdocument[id] || window[id] || document.embeds[id];\n\t\t\t\t},\n\n\n\t\t\t\tgetInput: function (id){\n\t\t\t\t\tif( api.multiFlash ){\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\tvar node = flash.getWrapper(flash.get(id));\n\t\t\t\t\t\t\tif( node ){\n\t\t\t\t\t\t\t\treturn node.getElementsByTagName('input')[0];\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} catch (e){\n\t\t\t\t\t\t\tapi.log('[err] Can not find \"input\" by flashId:', id, e);\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\treturn\tflash.curInp;\n\t\t\t\t\t}\n\t\t\t\t},\n\n\n\t\t\t\tselect: function (evt){\n\t\t\t\t\tvar\n\t\t\t\t\t\t inp = flash.getInput(evt.flashId)\n\t\t\t\t\t\t, uid = api.uid(inp)\n\t\t\t\t\t\t, files = evt.target.files\n\t\t\t\t\t\t, event\n\t\t\t\t\t;\n\n\t\t\t\t\t_each(files, function (file){\n\t\t\t\t\t\tapi.checkFileObj(file);\n\t\t\t\t\t});\n\n\t\t\t\t\t_files[uid] = files;\n\n\t\t\t\t\tif( document.createEvent ){\n\t\t\t\t\t\tevent = document.createEvent('Event');\n\t\t\t\t\t\tevent.files = files;\n\t\t\t\t\t\tevent.initEvent('change', true, true);\n\t\t\t\t\t\tinp.dispatchEvent(event);\n\t\t\t\t\t}\n\t\t\t\t\telse if( jQuery ){\n\t\t\t\t\t\tjQuery(inp).trigger({ type: 'change', files: files });\n\t\t\t\t\t}\n\t\t\t\t\telse {\n\t\t\t\t\t\tevent = document.createEventObject();\n\t\t\t\t\t\tevent.files = files;\n\t\t\t\t\t\tinp.fireEvent('onchange', event);\n\t\t\t\t\t}\n\t\t\t\t},\n\n\n\t\t\t\tcmd: function (id, name, data, last){\n\t\t\t\t\ttry {\n\t\t\t\t\t\tapi.log('(js -> flash).'+name+':', data);\n\t\t\t\t\t\treturn flash.get(id.flashId || id).cmd(name, data);\n\t\t\t\t\t} catch (err){\n\t\t\t\t\t\tapi.log('(js -> flash).onError:', err.toString());\n\t\t\t\t\t\tif( !last ){\n\t\t\t\t\t\t\t// try again\n\t\t\t\t\t\t\tsetTimeout(function (){ flash.cmd(id, name, data, true); }, 50);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t},\n\n\n\t\t\t\tpatch: function (){\n\t\t\t\t\tapi.flashEngine = true;\n\n\t\t\t\t\t// FileAPI\n\t\t\t\t\t_inherit(api, {\n\t\t\t\t\t\tgetFiles: function (input, filter, callback){\n\t\t\t\t\t\t\tif( callback ){\n\t\t\t\t\t\t\t\tapi.filterFiles(api.getFiles(input), filter, callback);\n\t\t\t\t\t\t\t\treturn null;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tvar files = api.isArray(input) ? input : _files[api.uid(input.target || input.srcElement || input)];\n\n\n\t\t\t\t\t\t\tif( !files ){\n\t\t\t\t\t\t\t\t// Файлов нету, вызываем родительский метод\n\t\t\t\t\t\t\t\treturn\tthis.parent.apply(this, arguments);\n\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\tif( filter ){\n\t\t\t\t\t\t\t\tfilter\t= api.getFilesFilter(filter);\n\t\t\t\t\t\t\t\tfiles\t= api.filter(files, function (file){ return filter.test(file.name); });\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn\tfiles;\n\t\t\t\t\t\t},\n\n\n\t\t\t\t\t\tgetInfo: function (file, fn){\n\t\t\t\t\t\t\tif( _isHtmlFile(file) ){\n\t\t\t\t\t\t\t\tthis.parent.apply(this, arguments);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse if( file.isShot ){\n\t\t\t\t\t\t\t\tfn(null, file.info = {\n\t\t\t\t\t\t\t\t\twidth: file.width,\n\t\t\t\t\t\t\t\t\theight: file.height\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif( !file.__info ){\n\t\t\t\t\t\t\t\t\tvar defer = file.__info = api.defer();\n\n\t\t\t\t\t\t\t\t\tflash.cmd(file, 'getFileInfo', {\n\t\t\t\t\t\t\t\t\t\t id: file.id\n\t\t\t\t\t\t\t\t\t\t, callback: _wrap(function _(err, info){\n\t\t\t\t\t\t\t\t\t\t\t_unwrap(_);\n\t\t\t\t\t\t\t\t\t\t\tdefer.resolve(err, file.info = info);\n\t\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfile.__info.then(fn);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\n\t\t\t\t\t// FileAPI.Image\n\t\t\t\t\tapi.support.transform = true;\n\t\t\t\t\tapi.Image && _inherit(api.Image.prototype, {\n\t\t\t\t\t\tget: function (fn, scaleMode){\n\t\t\t\t\t\t\tthis.set({ scaleMode: scaleMode || 'noScale' }); // noScale, exactFit\n\t\t\t\t\t\t\treturn this.parent(fn);\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t_load: function (file, fn){\n\t\t\t\t\t\t\tapi.log('FlashAPI.Image._load:', file);\n\n\t\t\t\t\t\t\tif( _isHtmlFile(file) ){\n\t\t\t\t\t\t\t\tthis.parent.apply(this, arguments);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tvar _this = this;\n\t\t\t\t\t\t\t\tapi.getInfo(file, function (err){\n\t\t\t\t\t\t\t\t\tfn.call(_this, err, file);\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\t_apply: function (file, fn){\n\t\t\t\t\t\t\tapi.log('FlashAPI.Image._apply:', file);\n\n\t\t\t\t\t\t\tif( _isHtmlFile(file) ){\n\t\t\t\t\t\t\t\tthis.parent.apply(this, arguments);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tvar m = this.getMatrix(file.info), doneFn = fn;\n\n\t\t\t\t\t\t\t\tflash.cmd(file, 'imageTransform', {\n\t\t\t\t\t\t\t\t\t id: file.id\n\t\t\t\t\t\t\t\t\t, matrix: m\n\t\t\t\t\t\t\t\t\t, callback: _wrap(function _(err, base64){\n\t\t\t\t\t\t\t\t\t\tapi.log('FlashAPI.Image._apply.callback:', err);\n\t\t\t\t\t\t\t\t\t\t_unwrap(_);\n\n\t\t\t\t\t\t\t\t\t\tif( err ){\n\t\t\t\t\t\t\t\t\t\t\tdoneFn(err);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if( !api.support.html5 && (!api.support.dataURI || base64.length > 3e4) ){\n\t\t\t\t\t\t\t\t\t\t\t_makeFlashImage({\n\t\t\t\t\t\t\t\t\t\t\t\t width:\t(m.deg % 180) ? m.dh : m.dw\n\t\t\t\t\t\t\t\t\t\t\t\t, height:\t(m.deg % 180) ? m.dw : m.dh\n\t\t\t\t\t\t\t\t\t\t\t\t, scale:\tm.scaleMode\n\t\t\t\t\t\t\t\t\t\t\t}, base64, doneFn);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\tif( m.filter ){\n\t\t\t\t\t\t\t\t\t\t\t\tdoneFn = function (err, img){\n\t\t\t\t\t\t\t\t\t\t\t\t\tif( err ){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tfn(err);\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tapi.Image.applyFilter(img, m.filter, function (){\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tfn(err, this.canvas);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t};\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\tapi.newImage('data:'+ file.type +';base64,'+ base64, doneFn);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t},\n\n\t\t\t\t\t\ttoData: function (fn){\n\t\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t\t file = this.file\n\t\t\t\t\t\t\t\t, info = file.info\n\t\t\t\t\t\t\t\t, matrix = this.getMatrix(info)\n\t\t\t\t\t\t\t;\n\t\t\t\t\t\t\tapi.log('FlashAPI.Image.toData');\n\n\t\t\t\t\t\t\tif( _isHtmlFile(file) ){\n\t\t\t\t\t\t\t\tthis.parent.apply(this, arguments);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tif( matrix.deg == 'auto' ){\n\t\t\t\t\t\t\t\t\tmatrix.deg = api.Image.exifOrientation[info && info.exif && info.exif.Orientation] || 0;\n\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\tfn.call(this, !file.info, {\n\t\t\t\t\t\t\t\t\t id:\t\tfile.id\n\t\t\t\t\t\t\t\t\t, flashId:\tfile.flashId\n\t\t\t\t\t\t\t\t\t, name:\t\tfile.name\n\t\t\t\t\t\t\t\t\t, type:\t\tfile.type\n\t\t\t\t\t\t\t\t\t, matrix:\tmatrix\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\n\t\t\t\t\tapi.Image && _inherit(api.Image, {\n\t\t\t\t\t\tfromDataURL: function (dataURL, size, callback){\n\t\t\t\t\t\t\tif( !api.support.dataURI || dataURL.length > 3e4 ){\n\t\t\t\t\t\t\t\t_makeFlashImage(\n\t\t\t\t\t\t\t\t\t api.extend({ scale: 'exactFit' }, size)\n\t\t\t\t\t\t\t\t\t, dataURL.replace(/^data:[^,]+,/, '')\n\t\t\t\t\t\t\t\t\t, function (err, el){ callback(el); }\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tthis.parent(dataURL, size, callback);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\t\t\t\t\t// FileAPI.Form\n\t\t\t\t\t_inherit(api.Form.prototype, {\n\t\t\t\t\t\ttoData: function (fn){\n\t\t\t\t\t\t\tvar items = this.items, i = items.length;\n\n\t\t\t\t\t\t\tfor( ; i--; ){\n\t\t\t\t\t\t\t\tif( items[i].file && _isHtmlFile(items[i].blob) ){\n\t\t\t\t\t\t\t\t\treturn this.parent.apply(this, arguments);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tapi.log('FlashAPI.Form.toData');\n\t\t\t\t\t\t\tfn(items);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\n\n\t\t\t\t\t// FileAPI.XHR\n\t\t\t\t\t_inherit(api.XHR.prototype, {\n\t\t\t\t\t\t_send: function (options, formData){\n\t\t\t\t\t\t\tif(\n\t\t\t\t\t\t\t\t formData.nodeName\n\t\t\t\t\t\t\t\t|| formData.append && api.support.html5\n\t\t\t\t\t\t\t\t|| api.isArray(formData) && (typeof formData[0] === 'string')\n\t\t\t\t\t\t\t){\n\t\t\t\t\t\t\t\t// HTML5, Multipart or IFrame\n\t\t\t\t\t\t\t\treturn\tthis.parent.apply(this, arguments);\n\t\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t\tvar\n\t\t\t\t\t\t\t\t data = {}\n\t\t\t\t\t\t\t\t, files = {}\n\t\t\t\t\t\t\t\t, _this = this\n\t\t\t\t\t\t\t\t, flashId\n\t\t\t\t\t\t\t\t, fileId\n\t\t\t\t\t\t\t;\n\n\t\t\t\t\t\t\t_each(formData, function (item){\n\t\t\t\t\t\t\t\tif( item.file ){\n\t\t\t\t\t\t\t\t\tfiles[item.name] = item = _getFileDescr(item.blob);\n\t\t\t\t\t\t\t\t\tfileId = item.id;\n\t\t\t\t\t\t\t\t\tflashId = item.flashId;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\t\tdata[item.name] = item.blob;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tif( !fileId ){\n\t\t\t\t\t\t\t\tflashId = _attr;\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif( !flashId ){\n\t\t\t\t\t\t\t\tapi.log('[err] FlashAPI._send: flashId -- undefined');\n\t\t\t\t\t\t\t\treturn this.parent.apply(this, arguments);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\telse {\n\t\t\t\t\t\t\t\tapi.log('FlashAPI.XHR._send: '+ flashId +' -> '+ fileId);\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t_this.xhr = {\n\t\t\t\t\t\t\t\theaders: {},\n\t\t\t\t\t\t\t\tabort: function (){ flash.cmd(flashId, 'abort', { id: fileId }); },\n\t\t\t\t\t\t\t\tgetResponseHeader: function (name){ return this.headers[name]; },\n\t\t\t\t\t\t\t\tgetAllResponseHeaders: function (){ return this.headers; }\n\t\t\t\t\t\t\t};\n\n\t\t\t\t\t\t\tvar queue = api.queue(function (){\n\t\t\t\t\t\t\t\tflash.cmd(flashId, 'upload', {\n\t\t\t\t\t\t\t\t\t url: _getUrl(options.url.replace(/([a-z]+)=(\\?)&?/i, ''))\n\t\t\t\t\t\t\t\t\t, data: data\n\t\t\t\t\t\t\t\t\t, files: fileId ? files : null\n\t\t\t\t\t\t\t\t\t, headers: options.headers || {}\n\t\t\t\t\t\t\t\t\t, callback: _wrap(function upload(evt){\n\t\t\t\t\t\t\t\t\t\tvar type = evt.type, result = evt.result;\n\n\t\t\t\t\t\t\t\t\t\tapi.log('FlashAPI.upload.'+type);\n\n\t\t\t\t\t\t\t\t\t\tif( type == 'progress' ){\n\t\t\t\t\t\t\t\t\t\t\tevt.loaded = Math.min(evt.loaded, evt.total); // @todo fixme\n\t\t\t\t\t\t\t\t\t\t\tevt.lengthComputable = true;\n\t\t\t\t\t\t\t\t\t\t\toptions.progress(evt);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if( type == 'complete' ){\n\t\t\t\t\t\t\t\t\t\t\t_unwrap(upload);\n\n\t\t\t\t\t\t\t\t\t\t\tif( typeof result == 'string' ){\n\t\t\t\t\t\t\t\t\t\t\t\t_this.responseText\t= result.replace(/%22/g, \"\\\"\").replace(/%5c/g, \"\\\\\").replace(/%26/g, \"&\").replace(/%25/g, \"%\");\n\t\t\t\t\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\t\t\t\t\t_this.end(evt.status || 200);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\telse if( type == 'abort' || type == 'error' ){\n\t\t\t\t\t\t\t\t\t\t\t_this.end(evt.status || 0, evt.message);\n\t\t\t\t\t\t\t\t\t\t\t_unwrap(upload);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t});\n\n\n\t\t\t\t\t\t\t// #2174: FileReference.load() call while FileReference.upload() or vice versa\n\t\t\t\t\t\t\t_each(files, function (file){\n\t\t\t\t\t\t\t\tqueue.inc();\n\t\t\t\t\t\t\t\tapi.getInfo(file, queue.next);\n\t\t\t\t\t\t\t});\n\n\t\t\t\t\t\t\tqueue.check();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t;\n\n\n\t\tfunction _makeFlashHTML(opts){\n\t\t\treturn (''\n\t\t\t\t+ ''\n\t\t\t\t+ ''\n\t\t\t\t+ ''\n\t\t\t\t+ ''\n\t\t\t\t+ ''\n\t\t\t\t+ ''\n\t\t\t\t+ ''\n\t\t\t\t+ ''\n\t\t\t\t+ '').replace(/#(\\w+)#/ig, function (a, name){ return opts[name]; })\n\t\t\t;\n\t\t}\n\n\n\t\tfunction _css(el, css){\n\t\t\tif( el && el.style ){\n\t\t\t\tvar key, val;\n\t\t\t\tfor( key in css ){\n\t\t\t\t\tval = css[key];\n\t\t\t\t\tif( typeof val == 'number' ){\n\t\t\t\t\t\tval += 'px';\n\t\t\t\t\t}\n\t\t\t\t\ttry { el.style[key] = val; } catch (e) {}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\n\t\tfunction _inherit(obj, methods){\n\t\t\t_each(methods, function (fn, name){\n\t\t\t\tvar prev = obj[name];\n\t\t\t\tobj[name] = function (){\n\t\t\t\t\tthis.parent = prev;\n\t\t\t\t\treturn fn.apply(this, arguments);\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\n\t\tfunction _isHtmlFile(file){\n\t\t\treturn\tfile && !file.flashId;\n\t\t}\n\n\t\tfunction _wrap(fn){\n\t\t\tvar id = fn.wid = api.uid();\n\t\t\tflash._fn[id] = fn;\n\t\t\treturn\t'FileAPI.Flash._fn.'+id;\n\t\t}\n\n\n\t\tfunction _unwrap(fn){\n\t\t\ttry {\n\t\t\t\tflash._fn[fn.wid] = null;\n\t\t\t\tdelete\tflash._fn[fn.wid];\n\t\t\t}\n\t\t\tcatch(e){}\n\t\t}\n\n\n\t\tfunction _getUrl(url, params){\n\t\t\tif( !_rhttp.test(url) ){\n\t\t\t\tif( /^\\.\\//.test(url) || '/' != url.charAt(0) ){\n\t\t\t\t\tvar path = location.pathname;\n\t\t\t\t\tpath = path.substr(0, path.lastIndexOf('/'));\n\t\t\t\t\turl = (path +'/'+ url).replace('/./', '/');\n\t\t\t\t}\n\n\t\t\t\tif( '//' != url.substr(0, 2) ){\n\t\t\t\t\turl = '//' + location.host + url;\n\t\t\t\t}\n\n\t\t\t\tif( !_rhttp.test(url) ){\n\t\t\t\t\turl = location.protocol + url;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif( params ){\n\t\t\t\turl += (/\\?/.test(url) ? '&' : '?') + params;\n\t\t\t}\n\n\t\t\treturn\turl;\n\t\t}\n\n\n\t\tfunction _makeFlashImage(opts, base64, fn){\n\t\t\tvar\n\t\t\t\t key\n\t\t\t\t, flashId = api.uid()\n\t\t\t\t, el = document.createElement('div')\n\t\t\t\t, attempts = 10\n\t\t\t;\n\n\t\t\tfor( key in opts ){\n\t\t\t\tel.setAttribute(key, opts[key]);\n\t\t\t\tel[key] = opts[key];\n\t\t\t}\n\n\t\t\t_css(el, opts);\n\n\t\t\topts.width\t= '100%';\n\t\t\topts.height\t= '100%';\n\n\t\t\tel.innerHTML = _makeFlashHTML(api.extend({\n\t\t\t\t id: flashId\n\t\t\t\t, src: _getUrl(api.flashImageUrl, 'r='+ api.uid())\n\t\t\t\t, wmode: 'opaque'\n\t\t\t\t, flashvars: 'scale='+ opts.scale +'&callback='+_wrap(function _(){\n\t\t\t\t\t_unwrap(_);\n\t\t\t\t\tif( --attempts > 0 ){\n\t\t\t\t\t\t_setImage();\n\t\t\t\t\t}\n\t\t\t\t\treturn true;\n\t\t\t\t})\n\t\t\t}, opts));\n\n\t\t\tfunction _setImage(){\n\t\t\t\ttry {\n\t\t\t\t\t// Get flash-object by id\n\t\t\t\t\tvar img = flash.get(flashId);\n\t\t\t\t\timg.setImage(base64);\n\t\t\t\t} catch (e){\n\t\t\t\t\tapi.log('[err] FlashAPI.Preview.setImage -- can not set \"base64\":', e);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfn(false, el);\n\t\t\tel = null;\n\t\t}\n\n\n\t\tfunction _getFileDescr(file){\n\t\t\treturn\t{\n\t\t\t\t id: file.id\n\t\t\t\t, name: file.name\n\t\t\t\t, matrix: file.matrix\n\t\t\t\t, flashId: file.flashId\n\t\t\t};\n\t\t}\n\n\n\t\tfunction _getDimensions(el){\n\t\t\tvar\n\t\t\t\t box = el.getBoundingClientRect()\n\t\t\t\t, body = document.body\n\t\t\t\t, docEl = (el && el.ownerDocument).documentElement\n\t\t\t;\n\n\t\t\treturn {\n\t\t\t\t top:\t\tbox.top + (window.pageYOffset || docEl.scrollTop) - (docEl.clientTop || body.clientTop || 0)\n\t\t\t\t, left:\t\tbox.left + (window.pageXOffset || docEl.scrollLeft) - (docEl.clientLeft || body.clientLeft || 0)\n\t\t\t\t, width:\tbox.right - box.left\n\t\t\t\t, height:\tbox.bottom - box.top\n\t\t\t};\n\t\t}\n\n\t\t// @export\n\t\tapi.Flash = flash;\n\n\n\t\t// Check dataURI support\n\t\tapi.newImage('data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///ywAAAAAAQABAAACAUwAOw==', function (err, img){\n\t\t\tapi.support.dataURI = !(img.width != 1 || img.height != 1);\n\t\t\tflash.init();\n\t\t});\n\t})();\n})(window, window.jQuery, FileAPI);\n\n/**\n * FileAPI fallback to Flash\n *\n * @flash-developer \"Vladimir Demidov\" \n */\n\n/*global window, FileAPI */\n(function (window, jQuery, api) {\n \"use strict\";\n\n var _each = api.each,\n _cameraQueue = [];\n\n if (api.support.flash && (api.media && (!api.support.media || !api.html5 || api.insecureChrome))) {\n (function () {\n function _wrap(fn) {\n var id = fn.wid = api.uid();\n api.Flash._fn[id] = fn;\n return 'FileAPI.Flash._fn.' + id;\n }\n\n\n function _unwrap(fn) {\n try {\n api.Flash._fn[fn.wid] = null;\n delete api.Flash._fn[fn.wid];\n } catch (e) {\n }\n }\n\n var flash = api.Flash;\n api.extend(api.Flash, {\n\n patchCamera: function () {\n api.Camera.fallback = function (el, options, callback) {\n var camId = api.uid();\n api.log('FlashAPI.Camera.publish: ' + camId);\n flash.publish(el, camId, api.extend(options, {\n camera: true,\n onEvent: _wrap(function _(evt) {\n if (evt.type === 'camera') {\n _unwrap(_);\n\n if (evt.error) {\n api.log('FlashAPI.Camera.publish.error: ' + evt.error);\n callback(evt.error);\n } else {\n api.log('FlashAPI.Camera.publish.success: ' + camId);\n callback(null);\n }\n }\n })\n }));\n };\n // Run\n _each(_cameraQueue, function (args) {\n api.Camera.fallback.apply(api.Camera, args);\n });\n _cameraQueue = [];\n\n\n // FileAPI.Camera:proto\n api.extend(api.Camera.prototype, {\n _id: function () {\n return this.video.id;\n },\n\n start: function (callback) {\n var _this = this;\n flash.cmd(this._id(), 'camera.on', {\n callback: _wrap(function _(evt) {\n _unwrap(_);\n\n if (evt.error) {\n api.log('FlashAPI.camera.on.error: ' + evt.error);\n callback(evt.error, _this);\n } else {\n api.log('FlashAPI.camera.on.success: ' + _this._id());\n _this._active = true;\n callback(null, _this);\n }\n })\n });\n },\n\n stop: function () {\n this._active = false;\n flash.cmd(this._id(), 'camera.off');\n },\n\n shot: function () {\n api.log('FlashAPI.Camera.shot:', this._id());\n\n var shot = api.Flash.cmd(this._id(), 'shot', {});\n shot.type = 'image/png';\n shot.flashId = this._id();\n shot.isShot = true;\n\n return new api.Camera.Shot(shot);\n }\n });\n }\n });\n\n api.Camera.fallback = function () {\n _cameraQueue.push(arguments);\n };\n\n }());\n }\n}(window, window.jQuery, FileAPI));\nif( typeof define === \"function\" && define.amd ){ define(\"FileAPI\", [], function (){ return FileAPI; }); }","/*! fileapi 2.0.1 - BSD | git://github.com/mailru/FileAPI.git */\n(function(e,t){\"use strict\";var n=e.noop,i=!e.fn.prop,a=i?\"attr\":\"prop\",r=\"data-fileapi\",o=\"data-fileapi-id\",s=function(i,a){if(this.$el=i=e(i).on(\"change.fileapi\",e.proxy(this,\"_onSelect\")),this.el=i[0],this._options={},this.options=a=e.extend({url:0,data:{},accept:0,multiple:!1,paramName:0,dataType:\"json\",duplicate:!1,chunkSize:0,chunkUploadRetry:3,maxSize:0,maxFiles:0,imageSize:0,sortFn:0,filterFn:0,autoUpload:!1,lang:{B:\"bytes\",KB:\"KB\",MB:\"MB\",GB:\"GB\",TB:\"TB\"},sizeFormat:\"0.00\",imageTransform:0,elements:{ctrl:{upload:'[data-fileapi=\"ctrl.upload\"]',reset:'[data-fileapi=\"ctrl.reset\"]',abort:'[data-fileapi=\"ctrl.abort\"]'},empty:{show:'[data-fileapi=\"empty.show\"]',hide:'[data-fileapi=\"empty.hide\"]'},emptyQueue:{show:'[data-fileapi=\"emptyQueue.show\"]',hide:'[data-fileapi=\"emptyQueue.hide\"]'},active:{show:'[data-fileapi=\"active.show\"]',hide:'[data-fileapi=\"active.hide\"]'},size:'[data-fileapi=\"size\"]',name:'[data-fileapi=\"name\"]',progress:'[data-fileapi=\"progress\"]',file:{tpl:'[data-fileapi=\"file.tpl\"]',progress:'[data-fileapi=\"file.progress\"]',active:{show:'[data-fileapi=\"active.show\"]',hide:'[data-fileapi=\"active.hide\"]'},preview:{el:0,get:0,width:0,height:0,processing:0}},dnd:{el:'[data-fileapi=\"dnd\"]',hover:\"dnd_hover\"}},onDrop:n,onDropHover:n,onSelect:n,onUpload:n,onProgress:n,onComplete:n,onFileUpload:n,onFileProgress:n,onFileComplete:n},a),!a.url){var o=this.$el.attr(\"action\")||this.$el.find(\"form\").attr(\"action\");o?a.url=o:this._throw(\"url — is not defined\")}this.$files=this.elem(\"list\"),this.itemTplFn=e.fn.fileapi.tpl(e(\"
    \").append(this.elem(\"file.tpl\")).html()),t.each(a,function(e,t){this._setOption(t,e)},this),this.$el.on(\"reset.fileapi\",e.proxy(this,\"_onReset\")).on(\"submit.fileapi\",e.proxy(this,\"_onSubmit\")).on(\"upload.fileapi progress.fileapi complete.fileapi\",e.proxy(this,\"_onUploadEvent\")).on(\"fileupload.fileapi fileprogress.fileapi filecomplete.fileapi\",e.proxy(this,\"_onFileUploadEvent\")).on(\"click\",\"[\"+r+\"]\",e.proxy(this,\"_onActionClick\"));var s=a.elements.ctrl;s&&(s.reset&&this.$el.on(\"click.fileapi\",s.reset,e.proxy(this,\"_onReset\")),s.upload&&this.$el.on(\"click.fileapi\",s.upload,e.proxy(this,\"_onSubmit\"))),this.elem(\"dnd.el\",!0).dnd(e.proxy(this,\"_onDropHover\"),e.proxy(this,\"_onDrop\")),this.$progress=this.elem(\"progress\"),this._crop={},this._rotate={},this.files=[],this.uploaded=[],this.clear()};s.prototype={constructor:s,_throw:function(e){throw\"jquery.fileapi: \"+e},_getFiles:function(e,n){var i=this.options,a=i.maxSize,r=i.filterFn,o=t.getFiles(e),s={all:o,files:[],other:[],duplicate:i.duplicate?[]:this._extractDuplicateFiles(o)},l=i.imageSize,u=this;l||r?t.filterFiles(o,function(e,t){var n=!0;return t&&l&&(n=(!l.minWidth||t.width>=l.minWidth)&&(!l.minHeight||t.height>=l.minHeight)&&(!l.maxWidth||t.height<=l.maxWidth)&&(!l.maxHeight||t.height<=l.maxHeight)),n&&(!a||a>=e.size)&&(!r||r(e,t))},function(e,t){s.files=e,s.other=t,n.call(u,s)}):(t.each(o,function(e){s[!a||a>=e.size?\"files\":\"other\"].push(e)}),n.call(u,s))},_extractDuplicateFiles:function(e){for(var t,n=[],i=e.length,a=this.files;i--;)for(t=a.length;t--;)if(this._fileCompare(e[i],a[t])){n.push(e.splice(i,1));break}return n},_fileCompare:function(e,t){return e.size==t.size&&e.name==t.name},_getFormatedSize:function(e){var n=this.options,i=\"B\";return e>=t.TB?e/=t[i=\"TB\"]:e>=t.GB?e/=t[i=\"GB\"]:e>=t.MB?e/=t[i=\"MB\"]:e>=t.KB&&(e/=t[i=\"KB\"]),n.sizeFormat.replace(/^\\d+([^\\d]+)(\\d*)/,function(t,a,r){return e=e.toFixed(r.length),(e+\"\").replace(\".\",a)+\" \"+n.lang[i]})},_onSelect:function(t){this._getFiles(t,e.proxy(function(e){e.all.length&&this.emit(\"select\",e)!==!1&&this.add(e.files)},this))},_onActionClick:function(n){var i=n.currentTarget,a=e.attr(i,r),s=e(i).closest(\"[\"+o+\"]\",this.$el),l=s.attr(o),u=!0;\"remove\"==a?(s.remove(),this.queue=t.filter(this.queue,function(e){return t.uid(e)!=l}),this.files=t.filter(this.files,function(e){return t.uid(e)!=l}),this._redraw()):/^rotate/.test(a)?this.rotate(l,/ccw/.test(a)?\"-=90\":\"+=90\"):u=!1,u&&n.preventDefault()},_onSubmit:function(e){this.upload(),e.preventDefault()},_onReset:function(e){this.clear(),e.preventDefault()},_onDrop:function(e){this._getFiles(e,function(e){this.emit(\"drop\",e)!==!1&&this.add(e.files)})},_onDropHover:function(t,n){if(this.emit(\"dropHover\",{state:t,event:n})!==!1){var i=this.option(\"elements.dnd.hover\");i&&e(n.currentTarget).toggleClass(i,t)}},_getUploadEvent:function(t){var n=this.xhr,i={xhr:n,file:n.currentFile,files:n.files,widget:this};return e.extend(i,t)},_emitUploadEvent:function(e){var t=this._getUploadEvent();this.emit(e+\"upload\",t)},_emitProgressEvent:function(e,t){var n=this._getUploadEvent(t);this.emit(e+\"progress\",n)},_emitCompleteEvent:function(t,n){var i=this.xhr,a=this._getUploadEvent({error:n,status:i.status,statusText:i.statusText,result:i.responseText});\"json\"==this.options.dataType&&(a.result=e.parseJSON(a.result)),this.emit(t+\"complete\",a)},_onUploadEvent:function(e,t){var n=this,i=this.$progress,a=e.type;if(\"progress\"==a)i.stop().animate({width:100*(t.loaded/t.total)+\"%\"},300);else if(\"upload\"==a)i.width(0);else{var r=function(){i.dequeue(),n.clear()};this.xhr=null,this.active=!1,i.length?i.queue(r):r()}},_onFileUploadPrepare:function(n,i){var a=t.uid(n),r=this._rotate[a],o=this._crop[a];if(r||o){var s=i.imageTransform=i.imageTransform||{};e.isEmptyObject(s)||parseInt(s.maxWidth||s.minWidth||s.width,10)>0||s.type||s.quality?(s.crop=o,s.rotate=r):t.each(s,function(e){e.crop=o,e.rotate=r})}},_onFileUploadEvent:function(e,n){var i=this,a=e.type.substr(4),o=t.uid(n.file),s=this.fileElem(o),l=this._$fileprogress;if(this.__fileId!==o&&(this.__fileId=o,this._$fileprogress=l=s.find(this.option(\"elements.file.progress\"))),\"progress\"==a)l.stop().animate({width:100*(n.loaded/n.total)+\"%\"},300);else if(\"upload\"==a||\"complete\"==a){var u=function(){var e=\"elements.file.\"+a;\"upload\"==a&&(s.find(\"[\"+r+'=\"remove\"]').hide(),l.width(0)),l.dequeue(),s.find(i.option(e+\".show\")).show(),s.find(i.option(e+\".hide\")).hide()};l.length?l.queue(u):u(),\"complete\"==a&&(this.uploaded.push(n.file),delete this._rotate[o])}},_redraw:function(){var n=!!this.active,i=this.files,r=!i.length&&!n,s=!this.queue.length&&!n,l=[],u=0,c=this.$files,f=c.children().length,d=this.option(\"elements.file.preview\");t.each(i,function(n,i){var a=t.uid(n);if(l.push(n.name),u+=n.size,c.length&&!this.fileElem(a).length){var r=this.itemTplFn({$idx:f+i,uid:n.uid,name:n.name,type:n.type,size:n.size,sizeText:this._getFormatedSize(n.size)});c.append(e(r).attr(o,a)),d.el&&this._makeFilePreview(a,n,d)}},this),this.elem(\"name\").text(l.join(\", \")),this.elem(\"size\").text(this._getFormatedSize(u)),this.__empty!==r&&(this.__empty=r,this.elem(\"empty.show\").toggle(r),this.elem(\"empty.hide\").toggle(!r)),this.__emptyQueue!==s&&(this.__emptyQueue=r,this.elem(\"emptyQueue.show\").toggle(s),this.elem(\"emptyQueue.hide\").toggle(!s)),this.__active!==n&&(this.__active=n,this.elem(\"active.show\").toggle(n),this.elem(\"active.hide\").toggle(!n),this.$(\".js-fileapi-wrapper,:file\")[n?\"attr\":\"removeAttr\"](\"aria-disabled\",n)[a](\"disabled\",n)),this.elem(\"ctrl.upload\").add(this.elem(\"ctrl.reset\"))[r||n?\"attr\":\"removeAttr\"](\"aria-disabled\",r||n)[a](\"disabled\",r||n)},_makeFilePreview:function(e,n,i,a){var r=this,o=a?r.$(i.el):r.fileElem(e).find(i.el);if(/^image/.test(n.type)){t.log(\"_makeFilePreview:\",e,n);var s=t.Image(n),l=function(){s.get(function(t,a){r._crop[e]||(t?(i.get&&i.get(o,n),r.emit(\"filePreviewError\",{error:t,file:n})):o.html(a))})};i.width&&s.preview(i.width,i.height),i.rotate&&s.rotate(i.rotate),i.processing?i.processing(n,s,l):l()}else i.get&&i.get(o,n)},emit:function(t,n){var i,a=this.options,r=e.Event(t);return r.widget=this,t=e.camelCase(\"on-\"+t.replace(/(file)(upload)/,\"$1-$2\")),e.isFunction(a[t])&&(i=a[t].call(this.el,r,n)),i!==!1&&this.$el.triggerHandler(r,n)},add:function(e){if(e.length){var n=this.options,i=n.sortFn,a=n.elements.preview;i&&e.sort(i),a&&a.el&&t.each(e,function(e){this._makeFilePreview(t.uid(e),e,a,!0)},this),this.xhr&&this.xhr.append(e),this.queue=this.queue.concat(e),this.files=this.files.concat(e),this.options.autoUpload?this.upload():this._redraw()}},$:function(t,n){return\"string\"==typeof t&&(t=/^#/.test(t)?t:(n?e(n):this.$el).find(t)),e(t)},elem:function(t,n){var i=this.option(\"elements.\"+t);return void 0===i&&n&&(i=this.option(\"elements.\"+t.substr(0,t.lastIndexOf(\".\")))),this.$(\"string\"!=e.type(i)&&e.isEmptyObject(i)?[]:i)},fileElem:function(e){return this.$(\"[\"+o+'=\"'+e+'\"]')},option:function(n,i){if(void 0!==i&&e.isPlainObject(i))return t.each(i,function(e,t){this.option(n+\".\"+t,e)},this),this;var a,r,o=this.options,s=o[n],l=0;if(-1!=n.indexOf(\".\"))for(s=o,n=n.split(\".\"),a=n.length;a>l;l++){if(r=n[l],void 0!==i&&1===a-l){s[r]=i;break}void 0===s[r]&&(s[r]={}),s=s[r]}else void 0!==i&&(o[n]=i);return void 0!==i&&(this._setOption(n,i,this._options[n]),this._options[n]=i),void 0!==i?i:s},_setOption:function(e,t){switch(e){case\"accept\":case\"multiple\":case\"paramName\":\"paramName\"==e&&(e=\"name\"),t&&this.$(\":file\")[a](e,t)}},serialize:function(){var t,n={};return this.$el.find(\":input\").each(function(i,a){(i=a.name)&&!a.disabled&&(a.checked||/select|textarea|input/i.test(a.nodeName)&&/checkbox|radio/i.test(a.type))&&(t=e(a).val(),void 0!==n[i]?(n[i].push||(n[i]=[n[i]]),n[i].push(t)):n[i]=t)}),n},upload:function(){if(!this.active){this.active=!0;var n=this.$el,i=this.options,a={},r={url:i.url,data:e.extend({},this.serialize(),i.data),files:a,chunkSize:0|i.chunkSize,chunkUploadRetry:0|i.chunkUploadRetry,prepare:e.proxy(this,\"_onFileUploadPrepare\"),imageTransform:i.imageTransform};a[n.find(\":file\").attr(\"name\")||\"files[]\"]=this.queue,t.each([\"upload\",\"progress\",\"complete\"],function(t){r[t]=e.proxy(this,e.camelCase(\"_emit-\"+t+\"Event\"),\"\"),r[\"file\"+t]=e.proxy(this,e.camelCase(\"_emit-\"+t+\"Event\"),\"file\")},this),this.xhr=t.upload(r),this._redraw()}},crop:function(n,i){var a=t.uid(n),r=this.options,o=r.multiple?this.option(\"elements.file.preview\"):r.elements.preview,s=(r.multiple?this.fileElem(a):this.$el).find(o&&o.el);s.length&&t.getInfo(n,e.proxy(function(a,r){if(!a){s.find(\"div>div\").length||s.html(e(\"
    \").css(o).css(\"overflow\",\"hidden\")),this.__cropFile!==n&&(this.__cropFile=n,t.Image(n).get(function(t,n){s.find(\">div>div\").html(e(n).width(\"100%\").height(\"100%\"))},\"exactFit\"));var l=o.width/i.w,u=o.height/i.h;s.find(\">div>div\").css({width:Math.round(l*r.width),height:Math.round(u*r.height),marginLeft:-Math.round(l*i.x),marginTop:-Math.round(u*i.y)})}},this)),this._crop[a]=i},rotate:function(e,n){var i=\"object\"==typeof e?t.uid(e):e,a=this.options,r=a.multiple?this.option(\"elements.file.preview\"):a.elements.preview,o=(a.multiple?this.fileElem(i):this.$el).find(r&&r.el),s=this._rotate;/([+-])=/.test(n)?n=s[i]=(s[i]||0)+(\"+\"==RegExp.$1?1:-1)*n.substr(2):s[i]=n,o.css({\"-webkit-transform\":\"rotate(\"+n+\"deg)\",\"-moz-transform\":\"rotate(\"+n+\"deg)\",transform:\"rotate(\"+n+\"deg)\"})},clear:function(){this.queue=[],this._redraw()},widget:function(){return this},destroy:function(){this.$el.off(\".fileapi\").removeData(\"fileapi\")}},e.fn.fileapi=function(t,n){var i=this.data(\"fileapi\");if(i){if(\"widget\"===t)return i;if(\"string\"==typeof t){var a,r=i[t];return e.isFunction(r)?a=r.call(i,n,arguments[2]):void 0===r&&(a=this.option(t,n)),void 0===a?this:a}}else this.data(\"fileapi\",new s(this,t));return this},e.fn.fileapi.version=\"0.1.0\",e.fn.fileapi.tpl=function(e){var t=0,n=\"__b+='\";return e.replace(/(?:<|<)%([-=])?([\\s\\S]+?)%(?:>|>)|$/g,function(i,a,r,o){return n+=e.slice(t,o).replace(/[\\r\\n\"']/g,function(e){return\"\\\\\"+e}),r&&(n+=a?\"'+\\n((__x=(\"+r+\"))==null?'':\"+(\"-\"==a?\"__esc(__x)\":\"__x\")+\")\\n+'\":\"';\\n\"+r+\"\\n__b+='\"),t=o+i.length,i}),Function(\"ctx\",\"var __x,__b='',__esc=function(val){return typeof val=='string'?val.replace(/
  • \");\n }\n\n /**\n * We use the position of the placeholder node to determine at which position of the array the\n * object needs to be inserted\n */\n function getPlaceholderIndex() {\n return Array.prototype.indexOf.call(listNode.children, placeholderNode);\n }\n\n /**\n * Checks various conditions that must be fulfilled for a drop to be allowed\n */\n function isDropAllowed(event) {\n // Disallow drop from external source unless it's allowed explicitly.\n if (!dndDragTypeWorkaround.isDragging && !externalSources) return false;\n\n // Check mimetype. Usually we would use a custom drag type instead of Text, but IE doesn't\n // support that.\n if (!hasTextMimetype(event.dataTransfer.types)) return false;\n\n // Now check the dnd-allowed-types against the type of the incoming element. For drops from\n // external sources we don't know the type, so it will need to be checked via dnd-drop.\n if (attr.dndAllowedTypes && dndDragTypeWorkaround.isDragging) {\n var allowed = scope.$eval(attr.dndAllowedTypes);\n if (angular.isArray(allowed) && allowed.indexOf(dndDragTypeWorkaround.dragType) === -1) {\n return false;\n }\n }\n\n // Check whether droping is disabled completely\n if (attr.dndDisableIf && scope.$eval(attr.dndDisableIf)) return false;\n\n return true;\n }\n\n /**\n * Small helper function that cleans up if we aborted a drop.\n */\n function stopDragover() {\n placeholder.remove();\n element.removeClass(\"dndDragover\");\n return true;\n }\n\n /**\n * Invokes a callback with some interesting parameters and returns the callbacks return value.\n */\n function invokeCallback(expression, event, index, item) {\n return $parse(expression)(scope, {\n event: event,\n index: index,\n item: item || undefined,\n external: !dndDragTypeWorkaround.isDragging,\n type: dndDragTypeWorkaround.isDragging ? dndDragTypeWorkaround.dragType : undefined\n });\n }\n\n /**\n * Check if the dataTransfer object contains a drag type that we can handle. In old versions\n * of IE the types collection will not even be there, so we just assume a drop is possible.\n */\n function hasTextMimetype(types) {\n if (!types) return true;\n for (var i = 0; i < types.length; i++) {\n if (types[i] === \"Text\" || types[i] === \"text/plain\") return true;\n }\n\n return false;\n }\n };\n }])\n\n /**\n * Use the dnd-nodrag attribute inside of dnd-draggable elements to prevent them from starting\n * drag operations. This is especially useful if you want to use input elements inside of\n * dnd-draggable elements or create specific handle elements. Note: This directive does not work\n * in Internet Explorer 9.\n */\n .directive('dndNodrag', function() {\n return function(scope, element, attr) {\n // Set as draggable so that we can cancel the events explicitly\n element.attr(\"draggable\", \"true\");\n\n /**\n * Since the element is draggable, the browser's default operation is to drag it on dragstart.\n * We will prevent that and also stop the event from bubbling up.\n */\n element.on('dragstart', function(event) {\n event = event.originalEvent || event;\n\n if (!event._dndHandle) {\n // If a child element already reacted to dragstart and set a dataTransfer object, we will\n // allow that. For example, this is the case for user selections inside of input elements.\n if (!(event.dataTransfer.types && event.dataTransfer.types.length)) {\n event.preventDefault();\n }\n event.stopPropagation();\n }\n });\n\n /**\n * Stop propagation of dragend events, otherwise dnd-moved might be triggered and the element\n * would be removed.\n */\n element.on('dragend', function(event) {\n event = event.originalEvent || event;\n if (!event._dndHandle) {\n event.stopPropagation();\n }\n });\n };\n })\n\n /**\n * Use the dnd-handle directive within a dnd-nodrag element in order to allow dragging with that\n * element after all. Therefore, by combining dnd-nodrag and dnd-handle you can allow\n * dnd-draggable elements to only be dragged via specific \"handle\" elements. Note that Internet\n * Explorer will show the handle element as drag image instead of the dnd-draggable element. You\n * can work around this by styling the handle element differently when it is being dragged. Use\n * the CSS selector .dndDragging:not(.dndDraggingSource) [dnd-handle] for that.\n */\n .directive('dndHandle', function() {\n return function(scope, element, attr) {\n element.attr(\"draggable\", \"true\");\n\n element.on('dragstart dragend', function(event) {\n event = event.originalEvent || event;\n event._dndHandle = true;\n });\n };\n })\n\n /**\n * This workaround handles the fact that Internet Explorer does not support drag types other than\n * \"Text\" and \"URL\". That means we can not know whether the data comes from one of our elements or\n * is just some other data like a text selection. As a workaround we save the isDragging flag in\n * here. When a dropover event occurs, we only allow the drop if we are already dragging, because\n * that means the element is ours.\n */\n .factory('dndDragTypeWorkaround', function(){ return {} })\n\n /**\n * Chrome on Windows does not set the dropEffect field, which we need in dragend to determine\n * whether a drag operation was successful. Therefore we have to maintain it in this global\n * variable. The bug report for that has been open for years:\n * https://code.google.com/p/chromium/issues/detail?id=39399\n */\n .factory('dndDropEffectWorkaround', function(){ return {} });\n","/*! videojs-resolution-switcher - 2015-7-26\n * Copyright (c) 2016 Kasper Moskwiak\n * Modified by Pierre Kraft\n * Licensed under the Apache-2.0 license. */\n\n(function() {\n /* jshint eqnull: true*/\n /* global require */\n 'use strict';\n var videojs = null;\n if(typeof window.videojs === 'undefined' && typeof require === 'function') {\n videojs = require('video.js');\n } else {\n videojs = window.videojs;\n }\n\n (function(window, videojs) {\n\n\n var defaults = {},\n videoJsResolutionSwitcher,\n currentResolution = {}, // stores current resolution\n menuItemsHolder = {}; // stores menuItems\n\n function setSourcesSanitized(player, sources, label, customSourcePicker) {\n currentResolution = {\n label: label,\n sources: sources\n };\n if(typeof customSourcePicker === 'function'){\n return customSourcePicker(player, sources, label);\n }\n return player.src(sources.map(function(src) {\n return {src: src.src, type: src.type, res: src.res};\n }));\n }\n\n /*\n * Resolution menu item\n */\n var MenuItem = videojs.getComponent('MenuItem');\n var ResolutionMenuItem = videojs.extend(MenuItem, {\n constructor: function(player, options, onClickListener, label){\n this.onClickListener = onClickListener;\n this.label = label;\n // Sets this.player_, this.options_ and initializes the component\n MenuItem.call(this, player, options);\n this.src = options.src;\n\n this.on('click', this.onClick);\n this.on('touchstart', this.onClick);\n\n if (options.initialySelected) {\n this.showAsLabel();\n this.selected(true);\n\n this.addClass('vjs-selected');\n }\n },\n showAsLabel: function() {\n // Change menu button label to the label of this item if the menu button label is provided\n if(this.label) {\n this.label.innerHTML = this.options_.label;\n }\n },\n onClick: function(customSourcePicker){\n this.onClickListener(this);\n // Remember player state\n var currentTime = this.player_.currentTime();\n var isPaused = this.player_.paused();\n this.showAsLabel();\n\n // add .current class\n this.addClass('vjs-selected');\n\n // Hide bigPlayButton\n if(!isPaused){\n this.player_.bigPlayButton.hide();\n }\n if(typeof customSourcePicker !== 'function' &&\n typeof this.options_.customSourcePicker === 'function'){\n customSourcePicker = this.options_.customSourcePicker;\n }\n // Change player source and wait for loadeddata event, then play video\n // loadedmetadata doesn't work right now for flash.\n // Probably because of https://github.com/videojs/video-js-swf/issues/124\n // If player preload is 'none' and then loadeddata not fired. So, we need timeupdate event for seek handle (timeupdate doesn't work properly with flash)\n var handleSeekEvent = 'loadeddata';\n if(this.player_.techName_ !== 'Youtube' && this.player_.preload() === 'none' && this.player_.techName_ !== 'Flash') {\n handleSeekEvent = 'timeupdate';\n }\n setSourcesSanitized(this.player_, this.src, this.options_.label, customSourcePicker).one(handleSeekEvent, function() {\n this.player_.currentTime(currentTime);\n this.player_.handleTechSeeked_();\n if(!isPaused){\n // Start playing and hide loadingSpinner (flash issue ?)\n this.player_.play().handleTechSeeked_();\n }\n this.player_.trigger('resolutionchange');\n });\n }\n });\n\n\n /*\n * Resolution menu button\n */\n var MenuButton = videojs.getComponent('MenuButton');\n var ResolutionMenuButton = videojs.extend(MenuButton, {\n constructor: function(player, options, settings, label){\n this.sources = options.sources;\n this.label = label;\n this.label.innerHTML = options.initialySelectedLabel;\n // Sets this.player_, this.options_ and initializes the component\n MenuButton.call(this, player, options, settings);\n this.controlText('Quality');\n\n if(settings.dynamicLabel){\n this.el().appendChild(label);\n }else{\n var staticLabel = document.createElement('span');\n\t\t\t\t\tvideojs.addClass(staticLabel, 'vjs-resolution-button-staticlabel');\n this.el().appendChild(staticLabel);\n }\n },\n createItems: function(){\n var menuItems = [];\n var labels = (this.sources && this.sources.label) || {};\n var onClickUnselectOthers = function(clickedItem) {\n menuItems.map(function(item) {\n item.selected(item === clickedItem);\n item.removeClass('vjs-selected');\n });\n };\n\n for (var key in labels) {\n if (labels.hasOwnProperty(key)) {\n menuItems.push(new ResolutionMenuItem(\n this.player_,\n {\n label: key,\n src: labels[key],\n initialySelected: key === this.options_.initialySelectedLabel,\n customSourcePicker: this.options_.customSourcePicker\n },\n onClickUnselectOthers,\n this.label));\n // Store menu item for API calls\n menuItemsHolder[key] = menuItems[menuItems.length - 1];\n }\n }\n return menuItems;\n }\n });\n\n /**\n * Initialize the plugin.\n * @param {object} [options] configuration for the plugin\n */\n videoJsResolutionSwitcher = function(options) {\n var settings = videojs.mergeOptions(defaults, options),\n player = this,\n label = document.createElement('span'),\n groupedSrc = {};\n\n\t\t\tvideojs.addClass(label, 'vjs-resolution-button-label');\n\t\t\t\n /**\n * Updates player sources or returns current source URL\n * @param {Array} [src] array of sources [{src: '', type: '', label: '', res: ''}]\n * @returns {Object|String|Array} videojs player object if used as setter or current source URL, object, or array of sources\n */\n player.updateSrc = function(src){\n //Return current src if src is not given\n if(!src){ return player.src(); }\n // Dispose old resolution menu button before adding new sources\n if(player.controlBar.resolutionSwitcher){\n player.controlBar.resolutionSwitcher.dispose();\n delete player.controlBar.resolutionSwitcher;\n }\n //Sort sources\n src = src.sort(compareResolutions);\n groupedSrc = bucketSources(src);\n var choosen = chooseSrc(groupedSrc, src);\n var menuButton = new ResolutionMenuButton(player, { sources: groupedSrc, initialySelectedLabel: choosen.label , initialySelectedRes: choosen.res , customSourcePicker: settings.customSourcePicker}, settings, label);\n\t\t\t\tvideojs.addClass(menuButton.el(), 'vjs-resolution-button');\n player.controlBar.resolutionSwitcher = player.controlBar.el_.insertBefore(menuButton.el_, player.controlBar.getChild('fullscreenToggle').el_);\n player.controlBar.resolutionSwitcher.dispose = function(){\n this.parentNode.removeChild(this);\n };\n return setSourcesSanitized(player, choosen.sources, choosen.label);\n };\n\n /**\n * Returns current resolution or sets one when label is specified\n * @param {String} [label] label name\n * @param {Function} [customSourcePicker] custom function to choose source. Takes 3 arguments: player, sources, label. Must return player object.\n * @returns {Object} current resolution object {label: '', sources: []} if used as getter or player object if used as setter\n */\n player.currentResolution = function(label, customSourcePicker){\n if(label == null) { return currentResolution; }\n if(menuItemsHolder[label] != null){\n menuItemsHolder[label].onClick(customSourcePicker);\n }\n return player;\n };\n\n /**\n * Returns grouped sources by label, resolution and type\n * @returns {Object} grouped sources: { label: { key: [] }, res: { key: [] }, type: { key: [] } }\n */\n player.getGroupedSrc = function(){\n return groupedSrc;\n };\n\n /**\n * Method used for sorting list of sources\n * @param {Object} a - source object with res property\n * @param {Object} b - source object with res property\n * @returns {Number} result of comparation\n */\n function compareResolutions(a, b){\n if(!a.res || !b.res){ return 0; }\n return (+b.res)-(+a.res);\n }\n\n /**\n * Group sources by label, resolution and type\n * @param {Array} src Array of sources\n * @returns {Object} grouped sources: { label: { key: [] }, res: { key: [] }, type: { key: [] } }\n */\n function bucketSources(src){\n var resolutions = {\n label: {},\n res: {},\n type: {}\n };\n src.map(function(source) {\n initResolutionKey(resolutions, 'label', source);\n initResolutionKey(resolutions, 'res', source);\n initResolutionKey(resolutions, 'type', source);\n\n appendSourceToKey(resolutions, 'label', source);\n appendSourceToKey(resolutions, 'res', source);\n appendSourceToKey(resolutions, 'type', source);\n });\n return resolutions;\n }\n\n function initResolutionKey(resolutions, key, source) {\n if(resolutions[key][source[key]] == null) {\n resolutions[key][source[key]] = [];\n }\n }\n\n function appendSourceToKey(resolutions, key, source) {\n resolutions[key][source[key]].push(source);\n }\n\n /**\n * Choose src if option.default is specified\n * @param {Object} groupedSrc {res: { key: [] }}\n * @param {Array} src Array of sources sorted by resolution used to find high and low res\n * @returns {Object} {res: string, sources: []}\n */\n function chooseSrc(groupedSrc, src){\n var selectedRes = settings['default']; // use array access as default is a reserved keyword\n var selectedLabel = '';\n if (selectedRes === 'high') {\n selectedRes = src[0].res;\n selectedLabel = src[0].label;\n } else if (selectedRes === 'low' || selectedRes == null || !groupedSrc.res[selectedRes]) {\n // Select low-res if default is low or not set\n selectedRes = src[src.length - 1].res;\n selectedLabel = src[src.length -1].label;\n } else if (groupedSrc.res[selectedRes]) {\n selectedLabel = groupedSrc.res[selectedRes][0].label;\n }\n\t\t\t\t\n return {res: selectedRes, label: selectedLabel, sources: groupedSrc.res[selectedRes]};\n }\n\t\t\t\n\t\t\tfunction initResolutionForYt(player){\n\t\t\t\t// Init resolution\n\t\t\t\tplayer.tech_.ytPlayer.setPlaybackQuality('default');\n\t\t\t\t\n\t\t\t\t// Capture events\n\t\t\t\tplayer.tech_.ytPlayer.addEventListener('onPlaybackQualityChange', function(){\n\t\t\t\t\tplayer.trigger('resolutionchange');\n\t\t\t\t});\n\t\t\t\t\n\t\t\t\t// We must wait for play event\n\t\t\t\tplayer.one('play', function(){\n\t\t\t\t\tvar qualities = player.tech_.ytPlayer.getAvailableQualityLevels();\n\t\t\t\t\t// Map youtube qualities names\n\t\t\t\t\tvar _yts = {\n\t\t\t\t\t\thighres: {res: 1080, label: '1080', yt: 'highres'},\n\t\t\t\t\t\thd1080: {res: 1080, label: '1080', yt: 'hd1080'}, \n\t\t\t\t\t\thd720: {res: 720, label: '720', yt: 'hd720'}, \n\t\t\t\t\t\tlarge: {res: 480, label: '480', yt: 'large'},\n\t\t\t\t\t\tmedium: {res: 360, label: '360', yt: 'medium'}, \n\t\t\t\t\t\tsmall: {res: 240, label: '240', yt: 'small'},\n\t\t\t\t\t\ttiny: {res: 144, label: '144', yt: 'tiny'},\n\t\t\t\t\t\tauto: {res: 0, label: 'auto', yt: 'default'}\n\t\t\t\t\t};\n\n\t\t\t\t\tvar _sources = [];\n\n\t\t\t\t\tqualities.map(function(q){\n\t\t\t\t\t\t_sources.push({\n\t\t\t\t\t\t\tsrc: player.src().src,\n\t\t\t\t\t\t\ttype: player.src().type,\n\t\t\t\t\t\t\tlabel: _yts[q].label,\n\t\t\t\t\t\t\tres: _yts[q].res,\n\t\t\t\t\t\t\t_yt: _yts[q].yt\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\n\t\t\t\t\tgroupedSrc = bucketSources(_sources);\n\n\t\t\t\t\t// Overwrite defualt sourcePicer function\n\t\t\t\t\tvar _customSourcePicker = function(_player, _sources, _label){\n\t\t\t\t\t\tplayer.tech_.ytPlayer.setPlaybackQuality(_sources[0]._yt);\n\t\t\t\t\t\treturn player;\n\t\t\t\t\t};\n\n\t\t\t\t\tvar choosen = {label: 'auto', res: 0, sources: groupedSrc.label.auto};\n\t\t\t\t\tvar menuButton = new ResolutionMenuButton(player, { \n\t\t\t\t\t\tsources: groupedSrc, \n\t\t\t\t\t\tinitialySelectedLabel: choosen.label, \n\t\t\t\t\t\tinitialySelectedRes: choosen.res, \n\t\t\t\t\t\tcustomSourcePicker: _customSourcePicker\n\t\t\t\t\t}, settings, label);\n\n\t\t\t\t\tmenuButton.el().classList.add('vjs-resolution-button');\n\t\t\t\t\tplayer.controlBar.resolutionSwitcher = player.controlBar.addChild(menuButton);\n\t\t\t\t});\n\t\t\t}\n\t\t\t\n\t\t\tplayer.ready(function(){\n\t\t\t\tif(player.options_.sources.length > 1){\n\t\t\t\t\t// tech: Html5 and Flash\n\t\t\t\t\t// Create resolution switcher for videos form tag inside